@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { o as getPricingSync, s as init_cost } from "./cost-
|
|
2
|
+
import { o as getPricingSync, s as init_cost } from "./cost-Ca0YTWDw.js";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
4
|
//#region ../../lib/cost-parsers/codex-parser.ts
|
|
5
5
|
/**
|
|
@@ -244,4 +244,4 @@ var init_codex_parser = __esmMin((() => {
|
|
|
244
244
|
//#endregion
|
|
245
245
|
export { parseCodexSessionCostEventsSync as n, parseCodexSessionSync as r, init_codex_parser as t };
|
|
246
246
|
|
|
247
|
-
//# sourceMappingURL=codex-parser-
|
|
247
|
+
//# sourceMappingURL=codex-parser-C4gSH-IR.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Vr as init_paths, f as loadConfigSync$1, ir as FsError, mr as init_errors, t as init_config_yaml, xr as CONFIG_FILE } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
import { t as require_toml } from "./toml-CeLDATih.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { existsSync, promises, readFileSync, writeFileSync } from "fs";
|
|
@@ -253,4 +253,4 @@ var init_config = __esmMin((() => {
|
|
|
253
253
|
//#endregion
|
|
254
254
|
export { saveConfigSync as _, getConversationsConfigSync as a, getDefaultConfig as c, getDevrootPathSync as d, init_config as f, saveConfig as g, normalizeRemoteConfig as h, getConversationsConfig as i, getDefaultConfigSync as l, loadConfigSync as m, findDevrootForProject as n, getDashboardApiUrl as o, loadConfig as p, findDevrootForProjectSync as r, getDashboardApiUrlSync as s, checkDevrootDeprecation as t, getDevrootPath as u };
|
|
255
255
|
|
|
256
|
-
//# sourceMappingURL=config-
|
|
256
|
+
//# sourceMappingURL=config-CCvjQf27.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as saveConfigSync, a as getConversationsConfigSync, c as getDefaultConfig, d as getDevrootPathSync, f as init_config, g as saveConfig, h as normalizeRemoteConfig, i as getConversationsConfig, l as getDefaultConfigSync, m as loadConfigSync, n as findDevrootForProject, o as getDashboardApiUrl, p as loadConfig, r as findDevrootForProjectSync, s as getDashboardApiUrlSync, t as checkDevrootDeprecation, u as getDevrootPath } from "./config-
|
|
1
|
+
import { _ as saveConfigSync, a as getConversationsConfigSync, c as getDefaultConfig, d as getDevrootPathSync, f as init_config, g as saveConfig, h as normalizeRemoteConfig, i as getConversationsConfig, l as getDefaultConfigSync, m as loadConfigSync, n as findDevrootForProject, o as getDashboardApiUrl, p as loadConfig, r as findDevrootForProjectSync, s as getDashboardApiUrlSync, t as checkDevrootDeprecation, u as getDevrootPath } from "./config-CCvjQf27.js";
|
|
2
2
|
init_config();
|
|
3
3
|
export { checkDevrootDeprecation, findDevrootForProject, findDevrootForProjectSync, getConversationsConfig, getConversationsConfigSync, getDashboardApiUrl, getDashboardApiUrlSync, getDefaultConfig, getDefaultConfigSync, getDevrootPath, getDevrootPathSync, loadConfig, loadConfigSync, normalizeRemoteConfig, saveConfig, saveConfigSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Vr as init_paths, ir as FsError, mr as init_errors, rr as ConfigError, wr as OVERDECK_HOME } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
import { t as require_toml } from "./toml-CeLDATih.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -289,4 +289,4 @@ var init_config = __esmMin((() => {
|
|
|
289
289
|
//#endregion
|
|
290
290
|
export { loadCloisterConfigSync as a, loadCloisterConfig as i, getHealthThresholdsMs as n, saveCloisterConfigSync as o, init_config as r, shouldAutoStart as s, DEFAULT_CLOISTER_CONFIG as t };
|
|
291
291
|
|
|
292
|
-
//# sourceMappingURL=config-
|
|
292
|
+
//# sourceMappingURL=config-DjLOdbgT.js.map
|
|
@@ -7564,9 +7564,11 @@ function stateMigrationLockPath(projectKey) {
|
|
|
7564
7564
|
return join(getOverdeckHome(), "locks", "state-migration", `${projectKey}.lock`);
|
|
7565
7565
|
}
|
|
7566
7566
|
function isStateMigrationLocked(projectKey) {
|
|
7567
|
+
const path = stateMigrationLockPath(projectKey);
|
|
7568
|
+
mkdirSync$1(dirname(path), { recursive: true });
|
|
7567
7569
|
try {
|
|
7568
|
-
closeSync$1(openSync$1(
|
|
7569
|
-
rmSync$1(
|
|
7570
|
+
closeSync$1(openSync$1(path, "wx"));
|
|
7571
|
+
rmSync$1(path);
|
|
7570
7572
|
return false;
|
|
7571
7573
|
} catch {
|
|
7572
7574
|
return true;
|
|
@@ -7768,7 +7770,7 @@ function isAutoCommitExcludedPath(relativePath) {
|
|
|
7768
7770
|
return false;
|
|
7769
7771
|
}
|
|
7770
7772
|
/** Run a git subcommand. Fails with GitError on non-zero exit. */
|
|
7771
|
-
function
|
|
7773
|
+
function runGitRaw(args, cwd) {
|
|
7772
7774
|
return Effect.gen(function* () {
|
|
7773
7775
|
const handle = yield* ChildProcess.make("git", [...args], {
|
|
7774
7776
|
cwd,
|
|
@@ -7788,10 +7790,13 @@ function runGit(args, cwd) {
|
|
|
7788
7790
|
stderr: stderrBuf.toString("utf-8"),
|
|
7789
7791
|
exitCode
|
|
7790
7792
|
};
|
|
7791
|
-
}).pipe(Effect.scoped, Effect.provide(spawnerLayer)
|
|
7793
|
+
}).pipe(Effect.scoped, Effect.provide(spawnerLayer));
|
|
7794
|
+
}
|
|
7795
|
+
function runGit(args, cwd) {
|
|
7796
|
+
return runGitWithTimeout(args, cwd, parsePositiveInteger(process.env.OVERDECK_STATE_GIT_TIMEOUT_MS, DEFAULT_STATE_GIT_TIMEOUT_MS));
|
|
7792
7797
|
}
|
|
7793
7798
|
function runGitWithTimeout(args, cwd, timeoutMs) {
|
|
7794
|
-
return
|
|
7799
|
+
return runGitRaw(args, cwd).pipe(Effect.timeout(Duration.millis(timeoutMs)), Effect.catchCause((cause) => Effect.fail(causeToGitError(cause, args))));
|
|
7795
7800
|
}
|
|
7796
7801
|
function causeToGitError(cause, args) {
|
|
7797
7802
|
const squashed = Cause.squash(cause);
|
|
@@ -7885,11 +7890,13 @@ function reconcileStatePlaneDrift(projectRoot) {
|
|
|
7885
7890
|
});
|
|
7886
7891
|
}
|
|
7887
7892
|
/**
|
|
7888
|
-
* Force a flush of
|
|
7889
|
-
*
|
|
7893
|
+
* Force a flush of every pending or active commit that targets the same Git
|
|
7894
|
+
* checkout as `projectRoot`. Callers may pass either a logical project root or
|
|
7895
|
+
* the effective Git root; the Effect resolves only after every matching writer
|
|
7896
|
+
* has settled.
|
|
7890
7897
|
*/
|
|
7891
|
-
function flushAutoCommits(projectRoot) {
|
|
7892
|
-
return Effect.promise(() => flushPromise(projectRoot));
|
|
7898
|
+
function flushAutoCommits(projectRoot, signal) {
|
|
7899
|
+
return Effect.promise(() => flushPromise(projectRoot, signal));
|
|
7893
7900
|
}
|
|
7894
7901
|
/**
|
|
7895
7902
|
* Force a flush of every project root with a pending auto-commit. Used during
|
|
@@ -7898,29 +7905,116 @@ function flushAutoCommits(projectRoot) {
|
|
|
7898
7905
|
*/
|
|
7899
7906
|
function flushAllPendingAutoCommits() {
|
|
7900
7907
|
return Effect.promise(() => {
|
|
7901
|
-
const projectRoots =
|
|
7908
|
+
const projectRoots = [...new Set([...pending.keys(), ...active.keys()])];
|
|
7902
7909
|
return Promise.all(projectRoots.map((projectRoot) => flushPromise(projectRoot)));
|
|
7903
7910
|
});
|
|
7904
7911
|
}
|
|
7905
|
-
function flushPromise(projectRoot) {
|
|
7906
|
-
const
|
|
7907
|
-
|
|
7908
|
-
|
|
7909
|
-
|
|
7910
|
-
|
|
7911
|
-
|
|
7912
|
-
|
|
7912
|
+
function flushPromise(projectRoot, signal) {
|
|
7913
|
+
const gitRoot = pending.get(projectRoot)?.repoRoot ?? active.get(projectRoot)?.gitRoot ?? projectRoot;
|
|
7914
|
+
const matching = /* @__PURE__ */ new Set();
|
|
7915
|
+
for (const [queuedProjectRoot, batch] of pending) {
|
|
7916
|
+
if ((batch.repoRoot ?? queuedProjectRoot) !== gitRoot) continue;
|
|
7917
|
+
clearTimeout(batch.timer);
|
|
7918
|
+
const started = flushInner(queuedProjectRoot);
|
|
7919
|
+
if (started) matching.add(started);
|
|
7920
|
+
}
|
|
7921
|
+
for (const activeFlush of active.values()) if (activeFlush.gitRoot === gitRoot) matching.add(activeFlush);
|
|
7922
|
+
if (matching.size === 0) {
|
|
7923
|
+
signal?.throwIfAborted();
|
|
7924
|
+
return Promise.resolve({
|
|
7925
|
+
committed: false,
|
|
7926
|
+
reason: "no pending"
|
|
7927
|
+
});
|
|
7928
|
+
}
|
|
7929
|
+
return waitForFlushes(gitRoot, [...matching], signal);
|
|
7913
7930
|
}
|
|
7914
7931
|
function flushInner(projectRoot) {
|
|
7915
7932
|
const batch = pending.get(projectRoot);
|
|
7916
|
-
if (!batch) return
|
|
7917
|
-
committed: false,
|
|
7918
|
-
reason: "no pending"
|
|
7919
|
-
});
|
|
7933
|
+
if (!batch) return active.get(projectRoot);
|
|
7920
7934
|
pending.delete(projectRoot);
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7935
|
+
return startSerializedFlush(projectRoot, batch.repoRoot ?? projectRoot, doBoundedCommit(projectRoot, batch));
|
|
7936
|
+
}
|
|
7937
|
+
function startSerializedFlush(projectRoot, gitRoot, operation) {
|
|
7938
|
+
const prior = serializers.get(gitRoot) ?? Promise.resolve();
|
|
7939
|
+
const controller = new AbortController();
|
|
7940
|
+
const promise = prior.then(() => {
|
|
7941
|
+
controller.signal.throwIfAborted();
|
|
7942
|
+
return Effect.runPromise(operation, { signal: controller.signal });
|
|
7943
|
+
});
|
|
7944
|
+
const activeFlush = {
|
|
7945
|
+
controller,
|
|
7946
|
+
gitRoot,
|
|
7947
|
+
promise
|
|
7948
|
+
};
|
|
7949
|
+
active.set(projectRoot, activeFlush);
|
|
7950
|
+
const tail = promise.catch(() => void 0);
|
|
7951
|
+
serializers.set(gitRoot, tail);
|
|
7952
|
+
promise.then(() => clearActiveFlush(projectRoot, activeFlush, tail), () => clearActiveFlush(projectRoot, activeFlush, tail));
|
|
7953
|
+
return activeFlush;
|
|
7954
|
+
}
|
|
7955
|
+
async function waitForFlushes(gitRoot, activeFlushes, signal) {
|
|
7956
|
+
const completion = Promise.all(activeFlushes.map((flush) => flush.promise)).then(combineFlushResults);
|
|
7957
|
+
if (!signal) return completion;
|
|
7958
|
+
if (signal.aborted) {
|
|
7959
|
+
await abortAndSettleGitRoot(gitRoot, signal.reason);
|
|
7960
|
+
throw signal.reason;
|
|
7961
|
+
}
|
|
7962
|
+
return new Promise((resolve, reject) => {
|
|
7963
|
+
let completed = false;
|
|
7964
|
+
const onAbort = () => {
|
|
7965
|
+
if (completed) return;
|
|
7966
|
+
completed = true;
|
|
7967
|
+
signal.removeEventListener("abort", onAbort);
|
|
7968
|
+
abortAndSettleGitRoot(gitRoot, signal.reason).then(() => reject(signal.reason), reject);
|
|
7969
|
+
};
|
|
7970
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
7971
|
+
completion.then((result) => {
|
|
7972
|
+
if (completed) return;
|
|
7973
|
+
completed = true;
|
|
7974
|
+
signal.removeEventListener("abort", onAbort);
|
|
7975
|
+
resolve(result);
|
|
7976
|
+
}, (error) => {
|
|
7977
|
+
if (completed) return;
|
|
7978
|
+
completed = true;
|
|
7979
|
+
signal.removeEventListener("abort", onAbort);
|
|
7980
|
+
reject(error);
|
|
7981
|
+
});
|
|
7982
|
+
if (signal.aborted) onAbort();
|
|
7983
|
+
});
|
|
7984
|
+
}
|
|
7985
|
+
function combineFlushResults(results) {
|
|
7986
|
+
if (results.length === 1) return results[0];
|
|
7987
|
+
const combined = { committed: results.some((result) => result.committed) };
|
|
7988
|
+
const committed = results.filter((result) => result.committed);
|
|
7989
|
+
if (committed.some((result) => result.pushed === false)) combined.pushed = false;
|
|
7990
|
+
else if (committed.length > 0 && committed.every((result) => result.pushed === true)) combined.pushed = true;
|
|
7991
|
+
if (results.some((result) => result.errored)) combined.errored = true;
|
|
7992
|
+
const reasons = results.flatMap((result) => result.reason ? [result.reason] : []);
|
|
7993
|
+
if (reasons.length > 0) combined.reason = reasons.join("; ");
|
|
7994
|
+
return combined;
|
|
7995
|
+
}
|
|
7996
|
+
async function abortAndSettleGitRoot(gitRoot, reason) {
|
|
7997
|
+
const matching = [...active.values()].filter((flush) => flush.gitRoot === gitRoot);
|
|
7998
|
+
for (const flush of matching) flush.controller.abort(reason);
|
|
7999
|
+
await Promise.allSettled(matching.map((flush) => flush.promise));
|
|
8000
|
+
}
|
|
8001
|
+
function clearActiveFlush(projectRoot, activeFlush, tail) {
|
|
8002
|
+
if (active.get(projectRoot) === activeFlush) active.delete(projectRoot);
|
|
8003
|
+
if (serializers.get(activeFlush.gitRoot) === tail) serializers.delete(activeFlush.gitRoot);
|
|
8004
|
+
}
|
|
8005
|
+
function doBoundedCommit(projectRoot, batch) {
|
|
8006
|
+
return boundStateFlush(doCommit(projectRoot, batch));
|
|
8007
|
+
}
|
|
8008
|
+
function boundStateFlush(operation, timeoutMs = parsePositiveInteger(process.env.OVERDECK_STATE_FLUSH_TIMEOUT_MS, DEFAULT_STATE_FLUSH_TIMEOUT_MS)) {
|
|
8009
|
+
return operation.pipe(Effect.timeout(Duration.millis(timeoutMs)), Effect.catchCause((cause) => {
|
|
8010
|
+
const reason = `state writer timed out after ${timeoutMs / 1e3}s: ${String(Cause.squash(cause))}`;
|
|
8011
|
+
console.warn(`[pan-dir/auto-commit] ${reason}`);
|
|
8012
|
+
return Effect.succeed({
|
|
8013
|
+
committed: false,
|
|
8014
|
+
errored: true,
|
|
8015
|
+
reason
|
|
8016
|
+
});
|
|
8017
|
+
}));
|
|
7924
8018
|
}
|
|
7925
8019
|
function doCommit(projectRoot, batch) {
|
|
7926
8020
|
const gitRoot = batch.repoRoot ?? projectRoot;
|
|
@@ -8174,7 +8268,7 @@ function relativizeToRoot(absOrRel, projectRoot) {
|
|
|
8174
8268
|
if (absOrRel.startsWith(rootPrefix)) return absOrRel.slice(rootPrefix.length);
|
|
8175
8269
|
return absOrRel;
|
|
8176
8270
|
}
|
|
8177
|
-
var spawnerLayer, DEFAULT_STATE_PUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending,
|
|
8271
|
+
var spawnerLayer, DEFAULT_STATE_GIT_TIMEOUT_MS, DEFAULT_STATE_PUSH_TIMEOUT_MS, DEFAULT_STATE_FLUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, active, serializers;
|
|
8178
8272
|
var init_auto_commit = __esmMin((() => {
|
|
8179
8273
|
init_errors();
|
|
8180
8274
|
init_projects();
|
|
@@ -8182,7 +8276,9 @@ var init_auto_commit = __esmMin((() => {
|
|
|
8182
8276
|
init_state_migration_lock();
|
|
8183
8277
|
init_state_plane();
|
|
8184
8278
|
spawnerLayer = NodeChildProcessSpawner.layer.pipe(Layer.provide(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
|
|
8279
|
+
DEFAULT_STATE_GIT_TIMEOUT_MS = 3e4;
|
|
8185
8280
|
DEFAULT_STATE_PUSH_TIMEOUT_MS = 3e4;
|
|
8281
|
+
DEFAULT_STATE_FLUSH_TIMEOUT_MS = 6e4;
|
|
8186
8282
|
AUTO_COMMIT_EXCLUDED_PATHS = [
|
|
8187
8283
|
".pan/kickoff.md",
|
|
8188
8284
|
".pan/continue.json",
|
|
@@ -8192,7 +8288,8 @@ var init_auto_commit = __esmMin((() => {
|
|
|
8192
8288
|
".claude/skills/"
|
|
8193
8289
|
];
|
|
8194
8290
|
pending = /* @__PURE__ */ new Map();
|
|
8195
|
-
|
|
8291
|
+
active = /* @__PURE__ */ new Map();
|
|
8292
|
+
serializers = /* @__PURE__ */ new Map();
|
|
8196
8293
|
}));
|
|
8197
8294
|
//#endregion
|
|
8198
8295
|
//#region ../../lib/pan-dir/record.ts
|
|
@@ -8311,7 +8408,7 @@ function preserveCorruptRecordSync(path) {
|
|
|
8311
8408
|
* renamed file parses as JSON. A mid-write crash can no longer truncate the
|
|
8312
8409
|
* record in place (rename is atomic); a write that somehow produces unparseable
|
|
8313
8410
|
* bytes throws instead of leaving a corrupt record for readers to silently
|
|
8314
|
-
* fabricate over. Modeled on writePlanFileAtomic (src/lib/
|
|
8411
|
+
* fabricate over. Modeled on writePlanFileAtomic (src/lib/xbrief/dag-cli.ts:101).
|
|
8315
8412
|
*/
|
|
8316
8413
|
function writeRecordFileAtomicSync(path, record) {
|
|
8317
8414
|
preserveCorruptRecordSync(path);
|
|
@@ -8346,27 +8443,6 @@ function writeIssueRecordSync(project, issueId, record) {
|
|
|
8346
8443
|
});
|
|
8347
8444
|
return path;
|
|
8348
8445
|
}
|
|
8349
|
-
/**
|
|
8350
|
-
* Workspace-scoped synchronous whole-record writer. Keep this call atomic: async
|
|
8351
|
-
* read-modify-write flows must take `withIssueRecordLock` before reading and
|
|
8352
|
-
* must not split this write behind an await.
|
|
8353
|
-
*/
|
|
8354
|
-
function writeIssueRecordForWorkspaceSync(workspacePath, issueId, record) {
|
|
8355
|
-
const resolvedProject = resolveProjectForIssue(issueId);
|
|
8356
|
-
const path = getIssueRecordPathForWorkspace(workspacePath, issueId);
|
|
8357
|
-
const dir = dirname(path);
|
|
8358
|
-
if (!existsSync$1(dir)) mkdirSync$1(dir, { recursive: true });
|
|
8359
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
8360
|
-
writeRecordFileAtomicSync(path, {
|
|
8361
|
-
...preserveCloseOutSync(path, record),
|
|
8362
|
-
issueId: issueId.toUpperCase(),
|
|
8363
|
-
schemaVersion: 2,
|
|
8364
|
-
created: record.created || now,
|
|
8365
|
-
updated: now
|
|
8366
|
-
});
|
|
8367
|
-
if (resolvedProject) queueIssueRecordCommit(resolvedProject, issueId, path);
|
|
8368
|
-
return path;
|
|
8369
|
-
}
|
|
8370
8446
|
async function readIssueRecord(project, issueId) {
|
|
8371
8447
|
const path = getIssueRecordPath(project, issueId);
|
|
8372
8448
|
try {
|
|
@@ -8404,48 +8480,6 @@ function queueIssueRecordCommit(project, issueId, recordPath) {
|
|
|
8404
8480
|
});
|
|
8405
8481
|
return basePath;
|
|
8406
8482
|
}
|
|
8407
|
-
/** Build this node's owner URI: pan://host[:port]. */
|
|
8408
|
-
function buildOwnUri() {
|
|
8409
|
-
const port = process.env.OVERDECK_PORT ? `:${process.env.OVERDECK_PORT}` : "";
|
|
8410
|
-
return `pan://${hostname()}${port}`;
|
|
8411
|
-
}
|
|
8412
|
-
async function claimIssueOwner(project, issueId, ownUri = buildOwnUri()) {
|
|
8413
|
-
const record = await readIssueRecord(project, issueId) ?? {
|
|
8414
|
-
issueId,
|
|
8415
|
-
schemaVersion: 2,
|
|
8416
|
-
pipeline: {
|
|
8417
|
-
issueId,
|
|
8418
|
-
reviewStatus: "pending",
|
|
8419
|
-
testStatus: "pending",
|
|
8420
|
-
readyForMerge: false,
|
|
8421
|
-
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
8422
|
-
},
|
|
8423
|
-
closeOut: {
|
|
8424
|
-
usage: {
|
|
8425
|
-
byStage: {},
|
|
8426
|
-
totals: {}
|
|
8427
|
-
},
|
|
8428
|
-
merges: [],
|
|
8429
|
-
ranOn: hostname()
|
|
8430
|
-
}
|
|
8431
|
-
};
|
|
8432
|
-
if (record.owner && record.owner !== ownUri) return {
|
|
8433
|
-
ok: false,
|
|
8434
|
-
owner: record.owner
|
|
8435
|
-
};
|
|
8436
|
-
record.owner = ownUri;
|
|
8437
|
-
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8438
|
-
return {
|
|
8439
|
-
ok: true,
|
|
8440
|
-
owner: ownUri
|
|
8441
|
-
};
|
|
8442
|
-
}
|
|
8443
|
-
async function clearIssueOwner(project, issueId) {
|
|
8444
|
-
const record = await readIssueRecord(project, issueId);
|
|
8445
|
-
if (!record) return;
|
|
8446
|
-
delete record.owner;
|
|
8447
|
-
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8448
|
-
}
|
|
8449
8483
|
/** Ensure a base record exists for an issue. */
|
|
8450
8484
|
async function ensureIssueRecord(project, issueId) {
|
|
8451
8485
|
const existing = await readIssueRecord(project, issueId);
|
|
@@ -8473,43 +8507,6 @@ async function ensureIssueRecord(project, issueId) {
|
|
|
8473
8507
|
}
|
|
8474
8508
|
};
|
|
8475
8509
|
}
|
|
8476
|
-
/** Write a single status override into the per-issue record. */
|
|
8477
|
-
async function writeStatusOverride(project, issueId, key, status, opts = {}) {
|
|
8478
|
-
const existing = await readIssueRecord(project, issueId);
|
|
8479
|
-
if (existing?.statusOverrides?.[key] === status) return;
|
|
8480
|
-
const record = existing ?? await ensureIssueRecord(project, issueId);
|
|
8481
|
-
record.statusOverrides = {
|
|
8482
|
-
...record.statusOverrides ?? {},
|
|
8483
|
-
[key]: status
|
|
8484
|
-
};
|
|
8485
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8486
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8487
|
-
}
|
|
8488
|
-
/** Synchronous variant for legacy CLI call sites. */
|
|
8489
|
-
function writeStatusOverrideSync(project, issueId, key, status, opts = {}) {
|
|
8490
|
-
const existing = readIssueRecordSync(project, issueId);
|
|
8491
|
-
if (existing?.statusOverrides?.[key] === status) return;
|
|
8492
|
-
const record = existing ?? ensureIssueRecordSync(project, issueId);
|
|
8493
|
-
record.statusOverrides = {
|
|
8494
|
-
...record.statusOverrides ?? {},
|
|
8495
|
-
[key]: status
|
|
8496
|
-
};
|
|
8497
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8498
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8499
|
-
}
|
|
8500
|
-
/** Synchronous variant that writes many overrides at once. */
|
|
8501
|
-
function writeStatusOverridesSync(project, issueId, overrides, opts = {}) {
|
|
8502
|
-
const existing = readIssueRecordSync(project, issueId);
|
|
8503
|
-
const nextOverrides = {
|
|
8504
|
-
...existing?.statusOverrides ?? {},
|
|
8505
|
-
...overrides
|
|
8506
|
-
};
|
|
8507
|
-
if (existing && JSON.stringify(existing.statusOverrides) === JSON.stringify(nextOverrides)) return;
|
|
8508
|
-
const record = existing ?? ensureIssueRecordSync(project, issueId);
|
|
8509
|
-
record.statusOverrides = nextOverrides;
|
|
8510
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8511
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8512
|
-
}
|
|
8513
8510
|
/** Synchronous variant of ensureIssueRecord. */
|
|
8514
8511
|
function ensureIssueRecordSync(project, issueId) {
|
|
8515
8512
|
const path = getIssueRecordPath(project, issueId);
|
|
@@ -8548,23 +8545,6 @@ async function appendSessionEntry(project, issueId, entry, opts = {}) {
|
|
|
8548
8545
|
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8549
8546
|
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8550
8547
|
}
|
|
8551
|
-
/** Append a feedback entry to the per-issue record. */
|
|
8552
|
-
async function appendFeedbackEntry(project, issueId, entry, opts = {}) {
|
|
8553
|
-
const record = await ensureIssueRecord(project, issueId);
|
|
8554
|
-
record.feedback = [...record.feedback ?? [], entry];
|
|
8555
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8556
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8557
|
-
}
|
|
8558
|
-
/** Store harness + model in the per-issue record. */
|
|
8559
|
-
async function writeAgentHarnessModel(project, issueId, harness, model, opts = {}) {
|
|
8560
|
-
const existing = await readIssueRecord(project, issueId);
|
|
8561
|
-
if (existing?.harness === harness && existing?.model === model) return;
|
|
8562
|
-
const record = existing ?? await ensureIssueRecord(project, issueId);
|
|
8563
|
-
record.harness = harness;
|
|
8564
|
-
record.model = model;
|
|
8565
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8566
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8567
|
-
}
|
|
8568
8548
|
/** Synchronous variant for legacy CLI spawn paths. */
|
|
8569
8549
|
function writeAgentHarnessModelSync(project, issueId, harness, model, opts = {}) {
|
|
8570
8550
|
const existing = readIssueRecordSync(project, issueId);
|
|
@@ -8605,19 +8585,6 @@ function clearRecordFeedbackSync(project, issueId) {
|
|
|
8605
8585
|
record.feedback = [];
|
|
8606
8586
|
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8607
8587
|
}
|
|
8608
|
-
/** Record advisory scope prediction drift in the per-issue record (sync). */
|
|
8609
|
-
function writeRecordScopeDriftSync(project, issueId, scopeDrift) {
|
|
8610
|
-
const record = ensureIssueRecordSync(project, issueId);
|
|
8611
|
-
record.scopeDrift = scopeDrift;
|
|
8612
|
-
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8613
|
-
}
|
|
8614
|
-
/** Write tiered execution override into the per-issue record (sync). Passing null clears the override. */
|
|
8615
|
-
function writeRecordTieredExecutionOverrideSync(project, issueId, override) {
|
|
8616
|
-
const record = ensureIssueRecordSync(project, issueId);
|
|
8617
|
-
if (override === null) delete record.tieredExecutionOverride;
|
|
8618
|
-
else record.tieredExecutionOverride = override;
|
|
8619
|
-
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8620
|
-
}
|
|
8621
8588
|
/** Write tiered execution override into the per-issue record (async). Passing null clears the override. */
|
|
8622
8589
|
async function writeRecordTieredExecutionOverride(project, issueId, override) {
|
|
8623
8590
|
const record = await ensureIssueRecord(project, issueId);
|
|
@@ -8637,12 +8604,6 @@ function markRecordPipelineClosedOutSync(project, issueId) {
|
|
|
8637
8604
|
record.pipeline.updatedAt = now;
|
|
8638
8605
|
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8639
8606
|
}
|
|
8640
|
-
/** Persist the completed Definition-of-Done gate through the issue record write door. */
|
|
8641
|
-
function writeCloseOutDodGateSync(project, issueId, dodGate) {
|
|
8642
|
-
const record = ensureIssueRecordSync(project, issueId);
|
|
8643
|
-
record.closeOut.dodGate = dodGate;
|
|
8644
|
-
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
8645
|
-
}
|
|
8646
8607
|
async function writeCloseOutDodGate(project, issueId, dodGate) {
|
|
8647
8608
|
const recordPath = getIssueRecordPath(project, issueId);
|
|
8648
8609
|
const record = await readIssueRecord(project, issueId);
|
|
@@ -8668,48 +8629,6 @@ async function writeCloseOutDodGate(project, issueId, dodGate) {
|
|
|
8668
8629
|
JSON.parse(await promises$1.readFile(recordPath, "utf-8"));
|
|
8669
8630
|
queueIssueRecordCommit(project, issueId, recordPath);
|
|
8670
8631
|
}
|
|
8671
|
-
/** Write decisions into the per-issue record (sync). */
|
|
8672
|
-
function writeRecordDecisionsSync(project, issueId, decisions, opts = {}) {
|
|
8673
|
-
const record = ensureIssueRecordSync(project, issueId);
|
|
8674
|
-
record.decisions = decisions;
|
|
8675
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8676
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8677
|
-
}
|
|
8678
|
-
/** Write decisions into the per-issue record (async). */
|
|
8679
|
-
async function writeRecordDecisions(project, issueId, decisions, opts = {}) {
|
|
8680
|
-
const record = await ensureIssueRecord(project, issueId);
|
|
8681
|
-
record.decisions = decisions;
|
|
8682
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8683
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8684
|
-
}
|
|
8685
|
-
/** Write hazards into the per-issue record (sync). */
|
|
8686
|
-
function writeRecordHazardsSync(project, issueId, hazards, opts = {}) {
|
|
8687
|
-
const record = ensureIssueRecordSync(project, issueId);
|
|
8688
|
-
record.hazards = hazards;
|
|
8689
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8690
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8691
|
-
}
|
|
8692
|
-
/** Write hazards into the per-issue record (async). */
|
|
8693
|
-
async function writeRecordHazards(project, issueId, hazards, opts = {}) {
|
|
8694
|
-
const record = await ensureIssueRecord(project, issueId);
|
|
8695
|
-
record.hazards = hazards;
|
|
8696
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8697
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8698
|
-
}
|
|
8699
|
-
/** Write resumePoint into the per-issue record (sync). */
|
|
8700
|
-
function writeRecordResumePointSync(project, issueId, resumePoint, opts = {}) {
|
|
8701
|
-
const record = ensureIssueRecordSync(project, issueId);
|
|
8702
|
-
record.resumePoint = resumePoint;
|
|
8703
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8704
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8705
|
-
}
|
|
8706
|
-
/** Write resumePoint into the per-issue record (async). */
|
|
8707
|
-
async function writeRecordResumePoint(project, issueId, resumePoint, opts = {}) {
|
|
8708
|
-
const record = await ensureIssueRecord(project, issueId);
|
|
8709
|
-
record.resumePoint = resumePoint;
|
|
8710
|
-
const recordPath = writeIssueRecordSync(project, issueId, record);
|
|
8711
|
-
if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
|
|
8712
|
-
}
|
|
8713
8632
|
/** Infer a minimal ProjectConfig from a workspace path (tests / fallback).
|
|
8714
8633
|
*
|
|
8715
8634
|
* Returns a config whose `path` is the workspace directory itself so that
|
|
@@ -8727,12 +8646,11 @@ function resolveProjectForIssue(issueId) {
|
|
|
8727
8646
|
if (!resolved) return null;
|
|
8728
8647
|
return getProjectSync(resolved.projectKey);
|
|
8729
8648
|
}
|
|
8730
|
-
var
|
|
8649
|
+
var RECORD_DIRNAME;
|
|
8731
8650
|
var init_record = __esmMin((() => {
|
|
8732
8651
|
init_auto_commit();
|
|
8733
8652
|
init_state_read_home();
|
|
8734
8653
|
init_projects();
|
|
8735
|
-
RECORD_SCHEMA_VERSION = 2;
|
|
8736
8654
|
RECORD_DIRNAME = "records";
|
|
8737
8655
|
}));
|
|
8738
8656
|
//#endregion
|
|
@@ -9593,6 +9511,48 @@ var init_model_capabilities = __esmMin((() => {
|
|
|
9593
9511
|
"context-length": 100
|
|
9594
9512
|
}
|
|
9595
9513
|
},
|
|
9514
|
+
"k3": {
|
|
9515
|
+
model: "k3",
|
|
9516
|
+
provider: "kimi",
|
|
9517
|
+
displayName: "Kimi K3",
|
|
9518
|
+
costPer1MTokens: 9,
|
|
9519
|
+
contextWindow: 262144,
|
|
9520
|
+
skills: {
|
|
9521
|
+
"code-generation": 95,
|
|
9522
|
+
"code-review": 93,
|
|
9523
|
+
debugging: 93,
|
|
9524
|
+
planning: 90,
|
|
9525
|
+
documentation: 90,
|
|
9526
|
+
testing: 90,
|
|
9527
|
+
security: 85,
|
|
9528
|
+
performance: 88,
|
|
9529
|
+
synthesis: 94,
|
|
9530
|
+
speed: 70,
|
|
9531
|
+
"context-length": 98
|
|
9532
|
+
},
|
|
9533
|
+
notes: "Kimi K3 coding endpoint alias. 2.8T MoE, always-thinking, 256K context. Source: https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html"
|
|
9534
|
+
},
|
|
9535
|
+
"k3[1m]": {
|
|
9536
|
+
model: "k3[1m]",
|
|
9537
|
+
provider: "kimi",
|
|
9538
|
+
displayName: "Kimi K3 (1M)",
|
|
9539
|
+
costPer1MTokens: 9,
|
|
9540
|
+
contextWindow: 1048576,
|
|
9541
|
+
skills: {
|
|
9542
|
+
"code-generation": 95,
|
|
9543
|
+
"code-review": 93,
|
|
9544
|
+
debugging: 93,
|
|
9545
|
+
planning: 90,
|
|
9546
|
+
documentation: 90,
|
|
9547
|
+
testing: 90,
|
|
9548
|
+
security: 85,
|
|
9549
|
+
performance: 88,
|
|
9550
|
+
synthesis: 94,
|
|
9551
|
+
speed: 70,
|
|
9552
|
+
"context-length": 100
|
|
9553
|
+
},
|
|
9554
|
+
notes: "Kimi K3 coding endpoint 1M alias. 2.8T MoE, always-thinking, 1,048,576-token context. Source: https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html"
|
|
9555
|
+
},
|
|
9596
9556
|
"kimi-k2.7-code": {
|
|
9597
9557
|
model: "kimi-k2.7-code",
|
|
9598
9558
|
provider: "kimi",
|
|
@@ -10127,6 +10087,7 @@ function validateRoleFields(role, roleConfig) {
|
|
|
10127
10087
|
if (!Number.isInteger(entry.weight) || entry.weight <= 0) throw new Error(`config.yaml: roles.${role}.model[${i}].weight must be a positive integer`);
|
|
10128
10088
|
}
|
|
10129
10089
|
}
|
|
10090
|
+
if (roleConfig.autonomousModel !== void 0 && typeof roleConfig.autonomousModel !== "string") throw new Error(`config.yaml: roles.${role}.autonomousModel must be a scalar model reference`);
|
|
10130
10091
|
if (roleConfig.harness !== void 0 && roleConfig.harness !== "claude-code" && roleConfig.harness !== "ohmypi" && roleConfig.harness !== "codex") throw new Error(`config.yaml: roles.${role}.harness must be claude-code, ohmypi, or codex`);
|
|
10131
10092
|
if (roleConfig.effort !== void 0 && !ROLE_EFFORTS.includes(roleConfig.effort)) throw new Error(`config.yaml: roles.${role}.effort must be one of ${ROLE_EFFORTS.join(", ")}`);
|
|
10132
10093
|
if (roleConfig.mode !== void 0 && roleConfig.mode !== "quick" && roleConfig.mode !== "full" && roleConfig.mode !== "none") throw new Error(`config.yaml: roles.${role}.mode must be quick, full, or none`);
|
|
@@ -10144,6 +10105,7 @@ function validateRoleModelRefs(config) {
|
|
|
10144
10105
|
}
|
|
10145
10106
|
for (const [role, roleConfig] of Object.entries(config.roles ?? {})) {
|
|
10146
10107
|
validateRoleFields(role, roleConfig);
|
|
10108
|
+
if (typeof roleConfig.autonomousModel === "string") derefWorkhorse(roleConfig.autonomousModel, config, `roles.${role}.autonomousModel`);
|
|
10147
10109
|
if (Array.isArray(roleConfig.model)) for (let i = 0; i < roleConfig.model.length; i++) derefWorkhorse(roleConfig.model[i].model, config, `roles.${role}.model[${i}].model`);
|
|
10148
10110
|
else if (roleConfig.model) {
|
|
10149
10111
|
const resolvedModel = derefWorkhorse(roleConfig.model, config, `roles.${role}.model`);
|
|
@@ -10706,6 +10668,8 @@ function getProviderForModelSync(modelId) {
|
|
|
10706
10668
|
"MiniMax-M3"
|
|
10707
10669
|
].includes(modelId)) return PROVIDERS.minimax;
|
|
10708
10670
|
if ([
|
|
10671
|
+
"k3",
|
|
10672
|
+
"k3[1m]",
|
|
10709
10673
|
"kimi-k2.7-code",
|
|
10710
10674
|
"kimi-k2.6",
|
|
10711
10675
|
"kimi-k2.5",
|
|
@@ -10876,6 +10840,8 @@ var init_providers = __esmMin((() => {
|
|
|
10876
10840
|
compatibility: "direct",
|
|
10877
10841
|
defaultHarness: "claude-code",
|
|
10878
10842
|
models: [
|
|
10843
|
+
"k3",
|
|
10844
|
+
"k3[1m]",
|
|
10879
10845
|
"kimi-k2.7-code",
|
|
10880
10846
|
"kimi-k2.6",
|
|
10881
10847
|
"kimi-k2.5",
|
|
@@ -11193,7 +11159,7 @@ function resolveTieredExecutionBlock(config, planMetadata, recordOverride) {
|
|
|
11193
11159
|
* Per-issue tiered_execution opt-in/out (PAN-1791 FR-9, PAN-2383 FR-1). Resolves with precedence:
|
|
11194
11160
|
* record override > plan.metadata.tiered_execution > config.enabled.
|
|
11195
11161
|
*
|
|
11196
|
-
* An issue's
|
|
11162
|
+
* An issue's xBRIEF may set `tiered_execution: 'on' | 'off'` in plan.metadata; a record
|
|
11197
11163
|
* override takes precedence; an explicit value wins over the global `tiered_execution.enabled`
|
|
11198
11164
|
* flag, and an unset value inherits it — zero behavior change when no overrides exist.
|
|
11199
11165
|
* Any invalid value is a config error (fail-loud, no silent inherit on typos).
|
|
@@ -14733,6 +14699,6 @@ var init_config_yaml = __esmMin((() => {
|
|
|
14733
14699
|
init_load();
|
|
14734
14700
|
}));
|
|
14735
14701
|
//#endregion
|
|
14736
|
-
export {
|
|
14702
|
+
export { derefWorkhorse as $, resolveIssueIdSync as $n, acquireStateMigrationLock as $t, canUseHarnessSync as A, loadProjectsConfig as An, SKILLS_DIR as Ar, queueIssueRecordCommit as At, getProviderEnvSync as B, resolveProjectPath as Bn, getOverdeckHome as Br, deriveProjectRoot as Bt, TIERED_EXECUTION_DIFFICULTIES as C, hasProjects as Cn, LOGS_DIR as Cr, getIssueRecordBasePath as Ct, resolveTieredExecutionEnabled as D, initializeProjectsConfigSync as Dn, PROJECT_PRDS_COMPLETED_SUBDIR as Dr, getProjectConfigFromWorkspacePath as Dt, resolveTieredExecutionBlock as E, initializeProjectsConfig as En, PROJECT_PRDS_ACTIVE_SUBDIR as Er, getIssueWorkspacePath as Et, PROVIDERS as F, renameProject as Fn, getDocsDisableStatePath as Fr, resolveProjectForIssue as Ft, setupCredentialFileAuthSync as G, unregisterProject as Gn, sessionFilePath as Gr, reconcileStatePlaneDrift as Gt, init_providers as H, saveProjectsConfigSync as Hn, isDevMode as Hr, flushAutoCommits as Ht, UnknownModelError as I, renameProjectSync as In, getDocsIndexPath as Ir, writeAgentHarnessModelSync as It, defaultBackgroundAiFeatures as J, extractPrefixSync as Jn, getMainDivergence as Jt, ensureOpenAICompatibleProxyRunning as K, unregisterProjectSync as Kn, STATE_BRANCH_PATHS as Kt, clearCredentialFileAuthSync as L, resolveInfraRepo as Ln, getDocsTelemetryPath as Lr, writeCloseOutDodGate as Lt, init_harness_policy as M, projects_exports as Mn, TRAEFIK_DIR as Mr, readIssueRecordForWorkspaceSync as Mt, KIMI_CODING_BASE_URL as N, registerProject as Nn, encodeClaudeProjectDir as Nr, readIssueRecordSync as Nt, resolveTieredExecutionEnabledForIssue as O, listProjects as On, PROJECT_PRDS_PLANNED_SUBDIR as Or, init_record as Ot, KIMI_PLATFORM_BASE_URL as P, registerProjectSync as Pn, getDocsBudgetStatePath as Pr, readRecordContinueViewSync as Pt, computeModelOrigin as Q, resolveBareNumericIdSync as Qn, parsePorcelainStatusPaths as Qt, getBuiltInDefaultHarness as R, resolveProjectFromIssue as Rn, getHandoffsDir as Rr, writeIssueRecordSync as Rt, DEFAULT_TIERED_EXECUTION_CONFIG as S, getSpecialistRetention as Sn, COSTS_DIR as Sr, ensureIssueRecordSync as St, init_tier_table as T, init_projects as Tn, PROJECT_DOCS_SUBDIR as Tr, getIssueRecordPathForWorkspace as Tt, piProviderForModel as U, setProjectAutoMergeDefaultSync as Un, packageRoot as Ur, init_auto_commit as Ut, getProviderForModelSync as V, saveProjectsConfig as Vn, init_paths as Vr, flushAllPendingAutoCommits as Vt, qualifyPiModel as W, setProjectSwarmPolicySync as Wn, resolveOhmypiExtensionPath as Wr, queueAutoCommit as Wt, DEFAULT_ROLES as X, normalizeIssueIdSync as Xn, isStatePlaneOnlyStatus as Xt, init_registry as Y, init_issue_id as Yn, init_state_plane as Yt, DEFAULT_WORKHORSES as Z, parseIssueIdSync as Zn, isStatePlanePath as Zt, getDefaultDocsConfig as _, getProject as _n, BIN_DIR as _r, appendFeedbackEntrySync as _t, getConversationsConfigSync as a, init_project_key as an, GitError as ar, getModelEffortLevelsSync as at, DEFAULT_CONFIG as b, getSpecialistConfig as bn, CLAUDE_DIR as br, clearRecordFeedbackSync as bt, isClaudeCodeChannelsEnabled as c, ProjectRenameError as cn, LinearApiError as cr, modelSupportsImagesSync as ct, loadConfigNoMigration as d, findProjectByPath as dn, TmuxError as dr, fnv1a32 as dt, init_state_migration_lock as en, require_dist as er, init_roles as et, loadConfigSync as f, findProjectByPathSync as fn, TrackerError as fr, init_percent as ft, mergeConfigs as g, getIssuePrefix as gn, ARCHIVES_DIR as gr, RECORD_DIRNAME as gt, jsYaml as h, findProjectsByRallyProject as hn, AGENTS_DIR as hr, ROLE_EFFORTS as ht, getConversationsConfig as i, shouldCommitLegacyWorkspaceArtifacts as in, FsError as ir, getModelCapabilitySync as it, canUseModelWithAuthSync as j, loadProjectsConfigSync as jn, SYNC_SOURCES as jr, readIssueRecord as jt, validateTieredExecutionConfig as k, listProjectsSync as kn, PROJECT_PRDS_SUBDIR as kr, markRecordPipelineClosedOutSync as kt, isClaudeCodeChannelsMcpEnabled as l, createDefaultProjectsConfig as ln, MergeConflictError as lr, resolveModelIdSync as lt, init_js_yaml as m, findProjectByTeamSync as mn, init_errors as mr, PARENT_MODEL_REF as mt, clearConfigCache as n, init_state_read_home as nn, ClaudeCredentialParseError as nr, MODEL_CAPABILITIES as nt, getGlobalConfigPath as o, projectKey as on, GitHubApiError as or, hasModelCapabilitySync as ot, updateConversationsConfig as p, findProjectByTeam as pn, VcsError as pr, COMPLIANCE_MODES as pt, init_openai_compatible_proxy as q, extractNumberSync as qn, STATE_PLANE_PATHS as qt, getConversationSearchConfigSync as r, resolveStateReadHomeSync as rn, ConfigError as rr, MODEL_DEPRECATIONS as rt, init_load as s, PROJECTS_CONFIG_FILE as sn, InvalidAgentIdError as sr, init_model_capabilities as st, init_config_yaml as t, STATE_BRANCH as tn, CheckpointError as tr, resolveModel as tt, isTldrEnabledSync as u, extractTeamPrefix as un, ProcessSpawnError as ur, fmix32 as ut, getDefaultTtsDaemonConfig as v, getProjectSwarmHotspots as vn, CACHE_AGENTS_DIR as vr, appendSessionEntry as vt, TieredExecutionConfigError as w, hasProjectsSync as wn, OVERDECK_HOME as wr, getIssueRecordPath as wt, init_defaults as x, getSpecialistPromptOverride as xn, CONFIG_FILE as xr, ensureIssueRecord as xt, mergeTtsDaemonConfigs as y, getProjectSync as yn, CACHE_RULES_DIR as yr, appendSessionEntrySync as yt, getKimiAnthropicBaseUrl as z, resolveProjectFromIssueSync as zn, getLegacyHome as zr, writeRecordTieredExecutionOverride as zt };
|
|
14737
14703
|
|
|
14738
|
-
//# sourceMappingURL=config-yaml-
|
|
14704
|
+
//# sourceMappingURL=config-yaml-DvyMuOle.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-
|
|
1
|
+
import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-CmrYpa47.js";
|
|
2
2
|
init_conflict_gate();
|
|
3
3
|
export { buildRealConflictGateDeps, resolveConflictGate };
|