@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,8 +1,8 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { cr as LinearApiError, f as loadConfigSync, mr as init_errors, or as GitHubApiError, t as init_config_yaml } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
import { n as init_dist_src, t as Octokit } from "./dist-src-BSoS7mkd.js";
|
|
4
|
-
import { a as TrackerAuthError, i as NotImplementedError, o as init_interface, r as IssueNotFoundError } from "./rally-api-
|
|
5
|
-
import { n as init_rally, t as RallyTracker } from "./rally-
|
|
4
|
+
import { a as TrackerAuthError, i as NotImplementedError, o as init_interface, r as IssueNotFoundError } from "./rally-api-nY0ZANw3.js";
|
|
5
|
+
import { n as init_rally, t as RallyTracker } from "./rally-B708-nZn.js";
|
|
6
6
|
import { Effect } from "effect";
|
|
7
7
|
import { LinearClient } from "@linear/sdk";
|
|
8
8
|
//#region ../../lib/tracker/linear.ts
|
|
@@ -54,19 +54,38 @@ var init_linear = __esmMin((() => {
|
|
|
54
54
|
listIssues(filters) {
|
|
55
55
|
const team = filters?.team ?? this.defaultTeam;
|
|
56
56
|
const self = this;
|
|
57
|
-
return linearCall("listIssues", () =>
|
|
58
|
-
|
|
59
|
-
filter
|
|
57
|
+
return linearCall("listIssues", async () => {
|
|
58
|
+
const limit = filters?.limit;
|
|
59
|
+
const filter = {
|
|
60
60
|
team: team ? { key: { eq: team } } : void 0,
|
|
61
61
|
state: filters?.state ? { type: { eq: self.reverseMapState(filters.state) } } : filters?.includeClosed ? void 0 : { type: { neq: "completed" } },
|
|
62
62
|
labels: filters?.labels?.length ? { name: { in: filters.labels } } : void 0,
|
|
63
63
|
assignee: filters?.assignee ? { name: { containsIgnoreCase: filters.assignee } } : void 0
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
};
|
|
65
|
+
const query = `query ListIssues($filter: IssueFilter, $first: Int!, $after: String) {
|
|
66
|
+
issues(filter: $filter, first: $first, after: $after) {
|
|
67
|
+
nodes {
|
|
68
|
+
id identifier title description url priority dueDate createdAt updatedAt
|
|
69
|
+
state { type } assignee { name } labels { nodes { name } }
|
|
70
|
+
}
|
|
71
|
+
pageInfo { hasNextPage endCursor }
|
|
72
|
+
}
|
|
73
|
+
}`;
|
|
74
|
+
const nodes = [];
|
|
75
|
+
let after = null;
|
|
76
|
+
do {
|
|
77
|
+
const first = Math.min(limit === void 0 ? 50 : limit - nodes.length, 50);
|
|
78
|
+
const page = (await self.client.client.rawRequest(query, {
|
|
79
|
+
filter,
|
|
80
|
+
first,
|
|
81
|
+
after
|
|
82
|
+
})).data?.issues;
|
|
83
|
+
if (!page?.nodes || !Array.isArray(page.nodes)) throw new Error("Incomplete Linear issues response");
|
|
84
|
+
nodes.push(...page.nodes);
|
|
85
|
+
after = page.pageInfo?.hasNextPage && page.pageInfo.endCursor ? page.pageInfo.endCursor : null;
|
|
86
|
+
} while (after !== null && (limit === void 0 || nodes.length < limit));
|
|
87
|
+
return (limit === void 0 ? nodes : nodes.slice(0, limit)).map((node) => self.normalizeListedIssue(node));
|
|
88
|
+
});
|
|
70
89
|
}
|
|
71
90
|
getIssue(id) {
|
|
72
91
|
const self = this;
|
|
@@ -206,6 +225,24 @@ var init_linear = __esmMin((() => {
|
|
|
206
225
|
getChildIssues(_parentId) {
|
|
207
226
|
return Effect.succeed([]);
|
|
208
227
|
}
|
|
228
|
+
/** Map a raw-GraphQL listed node (relations already inlined) — no lazy SDK loads. */
|
|
229
|
+
normalizeListedIssue(node) {
|
|
230
|
+
return {
|
|
231
|
+
id: node.id,
|
|
232
|
+
ref: node.identifier,
|
|
233
|
+
title: node.title,
|
|
234
|
+
description: node.description ?? "",
|
|
235
|
+
state: this.mapState(node.state?.type ?? "backlog"),
|
|
236
|
+
labels: node.labels?.nodes?.flatMap((label) => label.name ? [label.name] : []) ?? [],
|
|
237
|
+
assignee: node.assignee?.name ?? void 0,
|
|
238
|
+
url: node.url,
|
|
239
|
+
tracker: "linear",
|
|
240
|
+
priority: node.priority ?? void 0,
|
|
241
|
+
dueDate: node.dueDate ?? void 0,
|
|
242
|
+
createdAt: node.createdAt,
|
|
243
|
+
updatedAt: node.updatedAt
|
|
244
|
+
};
|
|
245
|
+
}
|
|
209
246
|
async normalizeIssue(linearIssue) {
|
|
210
247
|
const state = await linearIssue.state;
|
|
211
248
|
const assignee = await linearIssue.assignee;
|
|
@@ -682,4 +719,4 @@ var init_factory = __esmMin((() => {
|
|
|
682
719
|
//#endregion
|
|
683
720
|
export { init_linear as a, LinearTracker as i, createTrackerFromConfig as n, init_factory as r, createTracker as t };
|
|
684
721
|
|
|
685
|
-
//# sourceMappingURL=factory-
|
|
722
|
+
//# sourceMappingURL=factory-CynerjXO.js.map
|
package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B0pmAz0a.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { t as init_config_yaml } from "./config-yaml-
|
|
3
|
-
import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-
|
|
4
|
-
import { t as init_providers } from "./providers-
|
|
2
|
+
import { t as init_config_yaml } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-_wUBRD3J.js";
|
|
4
|
+
import { t as init_providers } from "./providers-DV7ec8l7.js";
|
|
5
5
|
import { basename } from "node:path";
|
|
6
6
|
import { Schema } from "effect";
|
|
7
7
|
//#region ../../lib/registry/feature-registry-population.ts
|
|
@@ -40,4 +40,4 @@ var init_feature_registry_population = __esmMin((() => {
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { recordFeatureRegistryLifecycle as n, init_feature_registry_population as t };
|
|
42
42
|
|
|
43
|
-
//# sourceMappingURL=feature-registry-population-
|
|
43
|
+
//# sourceMappingURL=feature-registry-population-B0pmAz0a.js.map
|
package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-_wUBRD3J.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
import { n as openDatabase, t as init_driver } from "./driver-CKVGi51s.js";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { mkdirSync } from "node:fs";
|
|
@@ -263,4 +263,4 @@ var init_feature_registry_storage = __esmMin((() => {
|
|
|
263
263
|
//#endregion
|
|
264
264
|
export { listFeatureRegistryEntries as n, updateFeatureRegistryOwnership as r, init_feature_registry_storage as t };
|
|
265
265
|
|
|
266
|
-
//# sourceMappingURL=feature-registry-storage-
|
|
266
|
+
//# sourceMappingURL=feature-registry-storage-_wUBRD3J.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-
|
|
2
|
+
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
//#region ../../lib/background-ai/features.ts
|
|
4
4
|
/**
|
|
5
5
|
* The single gate every background AI caller must consult before invoking a
|
|
@@ -18,4 +18,4 @@ var init_features = __esmMin((() => {
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { isBackgroundFeatureEnabled as n, init_features as t };
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=features
|
|
21
|
+
//# sourceMappingURL=features-Dhxz-wLc.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as updateIssueRecord, t as init_record_update } from "./record-update-
|
|
4
|
-
import {
|
|
2
|
+
import { Nt as readIssueRecordSync, Ot as init_record, Tn as init_projects, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { n as updateIssueRecord, t as init_record_update } from "./record-update-Dq0t2uBG.js";
|
|
4
|
+
import { H as sessionExists, M as listSessionNames, w as init_tmux } from "./tmux-ftABRAmc.js";
|
|
5
5
|
import { Effect } from "effect";
|
|
6
6
|
//#region ../../lib/cloister/feedback-target.ts
|
|
7
7
|
async function isLiveSession(agentId) {
|
|
@@ -108,7 +108,7 @@ async function resolveIssueFeedbackTarget(issueId, opts = {}) {
|
|
|
108
108
|
*/
|
|
109
109
|
async function resurrectAgentForFeedback(agentId, issueId) {
|
|
110
110
|
try {
|
|
111
|
-
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-
|
|
111
|
+
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-Bg0lhqwj.js");
|
|
112
112
|
const state = getAgentStateSync(agentId);
|
|
113
113
|
if (!state) return false;
|
|
114
114
|
if (state.paused === true) {
|
|
@@ -124,7 +124,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
|
|
|
124
124
|
console.warn(`[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`);
|
|
125
125
|
clearAgentTroubledSync(agentId);
|
|
126
126
|
}
|
|
127
|
-
const { resumeAgent } = await import("./resume-
|
|
127
|
+
const { resumeAgent } = await import("./resume-CcKqnTvE.js");
|
|
128
128
|
const result = await resumeAgent(agentId);
|
|
129
129
|
if (!result.success) {
|
|
130
130
|
console.warn(`[feedback-target] Failed to resurrect ${agentId} for ${issueId} feedback: ${result.error}`);
|
|
@@ -138,7 +138,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
|
|
|
138
138
|
}
|
|
139
139
|
async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
|
|
140
140
|
try {
|
|
141
|
-
const { markWorkspaceStuck } = await import("./review-status-
|
|
141
|
+
const { markWorkspaceStuck } = await import("./review-status-C6n6-9f_.js");
|
|
142
142
|
markWorkspaceStuck(issueId, "feedback_delivery_needs_you", {
|
|
143
143
|
reason,
|
|
144
144
|
...details
|
|
@@ -157,4 +157,4 @@ var init_feedback_target = __esmMin((() => {
|
|
|
157
157
|
//#endregion
|
|
158
158
|
export { resolveIssueFeedbackTarget as n, surfaceIssueFeedbackNeedsYou as r, init_feedback_target as t };
|
|
159
159
|
|
|
160
|
-
//# sourceMappingURL=feedback-target-
|
|
160
|
+
//# sourceMappingURL=feedback-target-CPS15Vte.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-
|
|
1
|
+
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-CPS15Vte.js";
|
|
2
2
|
init_feedback_target();
|
|
3
3
|
export { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou };
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { I as getWorkspacePanPaths } from "./io-B3_AHDfr.js";
|
|
4
|
+
import { c as clearFeedback, l as readFeedback, t as init_pan_dir, u as writeFeedback } from "./pan-dir-DeVUgwA7.js";
|
|
5
|
+
import { a as init_lifecycle_io, n as appendFeedbackEntryForIssue, o as readContinueStateForIssue, r as clearFeedbackForIssue, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-D8iNBcux.js";
|
|
5
6
|
import { Data, Effect } from "effect";
|
|
6
7
|
import { existsSync } from "fs";
|
|
7
8
|
import { join } from "path";
|
|
8
9
|
import { readdir } from "fs/promises";
|
|
9
10
|
//#region ../../lib/cloister/feedback-writer.ts
|
|
10
11
|
/**
|
|
11
|
-
* Feedback Writer — writes specialist feedback to the scope
|
|
12
|
+
* Feedback Writer — writes specialist feedback to the scope xBRIEF continue
|
|
12
13
|
* file and mirrors it into workspace `.pan/feedback/` for agent consumption.
|
|
13
14
|
*
|
|
14
15
|
* All I/O is async (fs/promises) — never execSync.
|
|
@@ -148,4 +149,4 @@ var init_feedback_writer = __esmMin((() => {
|
|
|
148
149
|
//#endregion
|
|
149
150
|
export { writeFeedbackFile as a, init_feedback_writer as i, archiveFeedbackFiles as n, clearFeedbackFiles as r, FeedbackWriteError as t };
|
|
150
151
|
|
|
151
|
-
//# sourceMappingURL=feedback-writer-
|
|
152
|
+
//# sourceMappingURL=feedback-writer-C9b6ccN1.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as writeFeedbackFile, i as init_feedback_writer, n as archiveFeedbackFiles, r as clearFeedbackFiles, t as FeedbackWriteError } from "./feedback-writer-
|
|
1
|
+
import { a as writeFeedbackFile, i as init_feedback_writer, n as archiveFeedbackFiles, r as clearFeedbackFiles, t as FeedbackWriteError } from "./feedback-writer-C9b6ccN1.js";
|
|
2
2
|
init_feedback_writer();
|
|
3
3
|
export { FeedbackWriteError, archiveFeedbackFiles, clearFeedbackFiles, writeFeedbackFile };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { o as pauseFlywheel, s as resumeFlywheel } from "./flywheel-
|
|
1
|
+
import { o as pauseFlywheel, s as resumeFlywheel } from "./flywheel-DSSpWmqF.js";
|
|
2
2
|
export { pauseFlywheel, resumeFlywheel };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { c as
|
|
5
|
-
import { a as countAgentsByStatusRole, o as init_agents } from "./agents-
|
|
6
|
-
import {
|
|
7
|
-
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-
|
|
8
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
9
|
-
import { d as isFlywheelAutoPickupBacklog, f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, p as isFlywheelRequireUatBeforeMerge, s as init_control_settings, x as setFlywheelGloballyPaused, y as setFlywheelActiveRunId } from "./control-settings-
|
|
10
|
-
import { n as parseSequenceMd, t as init_sequence_io } from "./sequence-io-
|
|
11
|
-
import { a as declaredIssueFootprint, i as computePredictedConflictSignals, s as pickFromSequence } from "./flywheel-merge-order-
|
|
12
|
-
import {
|
|
2
|
+
import { Tn as init_projects, fn as findProjectByPathSync, vn as getProjectSwarmHotspots } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { t as init_src, v as FlywheelRunId, y as FlywheelStatus } from "./src-U7_kTPEE.js";
|
|
4
|
+
import { c as getReviewStatusSync, l as init_review_status } from "./review-status-A7quS5KJ.js";
|
|
5
|
+
import { a as countAgentsByStatusRole, o as init_agents } from "./agents-B4Bjbkfv.js";
|
|
6
|
+
import { Bn as getAgentDir, b as init_agents$1, ft as stopAgent, ut as spawnRun } from "./queries-6d7Cdtm7.js";
|
|
7
|
+
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-B5ushCvE.js";
|
|
8
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-Bb4XeV2x.js";
|
|
9
|
+
import { d as isFlywheelAutoPickupBacklog, f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, p as isFlywheelRequireUatBeforeMerge, s as init_control_settings, x as setFlywheelGloballyPaused, y as setFlywheelActiveRunId } from "./control-settings-aP1ANIlI.js";
|
|
10
|
+
import { n as parseSequenceMd, t as init_sequence_io } from "./sequence-io-Cg0zYj_E.js";
|
|
11
|
+
import { a as declaredIssueFootprint, i as computePredictedConflictSignals, s as pickFromSequence } from "./flywheel-merge-order-DxbQKE1d.js";
|
|
12
|
+
import { i as gatherProjectLensSignals, n as init_pipeline_membership, o as init_pipeline_membership_gather, r as resolvePipelineMembership } from "./pipeline-membership-0HaEGDlH.js";
|
|
13
13
|
import { dirname, join } from "node:path";
|
|
14
14
|
import { Effect, Schema } from "effect";
|
|
15
15
|
import { homedir } from "node:os";
|
|
@@ -264,7 +264,7 @@ async function abortFlywheelRun(runId, options = {}) {
|
|
|
264
264
|
init_sequence_io();
|
|
265
265
|
/**
|
|
266
266
|
* Build the {@link ClassifyLookups} the shared pickup module needs from live project
|
|
267
|
-
* state: labels (in-memory issue service), planned (readable
|
|
267
|
+
* state: labels (in-memory issue service), planned (readable xBRIEF spec), and
|
|
268
268
|
* in-pipeline (review status / live workspace). Shared by the dashboard forecast
|
|
269
269
|
* route and the Flywheel run-cohort snapshot so both classify issues identically
|
|
270
270
|
* (PAN-2006 single source of truth). The issue service is lazy-required to avoid a
|
|
@@ -519,4 +519,4 @@ async function resumeFlywheel(options = {}) {
|
|
|
519
519
|
//#endregion
|
|
520
520
|
export { writeLatestFlywheelStatus as C, writeFlywheelLaunchMetadata as S, nextFlywheelRunId as _, loadResumeSessionId as a, resolveLiveFlywheelRunId as b, saveResumeSessionId as c, abortFlywheelRun as d, clearFlywheelGate as f, listFlywheelRuns as g, isFlywheelRunId as h, isIssueInResolvedPipeline as i, spawnFlywheelAgent as l, getFlywheelRunDir as m, buildFlywheelResumePrompt as n, pauseFlywheel as o, getFlywheelRunDetail as p, isFlywheelDevcontainerRuntime as r, resumeFlywheel as s, FLYWHEEL_ORCHESTRATOR_AGENT_ID as t, buildClassifyLookups as u, readCurrentLatestFlywheelStatus as v, subscribeLatestFlywheelStatus as x, readFlywheelLaunchMetadata as y };
|
|
521
521
|
|
|
522
|
-
//# sourceMappingURL=flywheel-
|
|
522
|
+
//# sourceMappingURL=flywheel-DSSpWmqF.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { t as init_config_yaml } from "./config-yaml-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { s as init_internal_token } from "./internal-token-
|
|
6
|
-
import { i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-
|
|
7
|
-
import { t as init_harness_resolve } from "./harness-resolve-
|
|
8
|
-
import "./
|
|
9
|
-
import
|
|
10
|
-
import { f as
|
|
11
|
-
import { t as init_sequence_io } from "./sequence-io-
|
|
12
|
-
import { r as computeMergeQueue } from "./flywheel-merge-order-
|
|
13
|
-
import "./merge-blockers-
|
|
1
|
+
import { t as init_config_yaml } from "./config-yaml-DvyMuOle.js";
|
|
2
|
+
import { H as sessionExists, w as init_tmux } from "./tmux-ftABRAmc.js";
|
|
3
|
+
import { l as FlywheelStats, t as init_src, y as FlywheelStatus } from "./src-U7_kTPEE.js";
|
|
4
|
+
import { b as init_agents } from "./queries-6d7Cdtm7.js";
|
|
5
|
+
import { s as init_internal_token } from "./internal-token-Bb4XeV2x.js";
|
|
6
|
+
import { i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-aP1ANIlI.js";
|
|
7
|
+
import { t as init_harness_resolve } from "./harness-resolve-qHJBhy3Z.js";
|
|
8
|
+
import { f as init_github_app } from "./github-app-CMBdIFBQ.js";
|
|
9
|
+
import "./substrate-bug-weights-service-BH66lhm7.js";
|
|
10
|
+
import { f as clearFlywheelGate, g as listFlywheelRuns, m as getFlywheelRunDir, p as getFlywheelRunDetail } from "./flywheel-DSSpWmqF.js";
|
|
11
|
+
import { t as init_sequence_io } from "./sequence-io-Cg0zYj_E.js";
|
|
12
|
+
import { r as computeMergeQueue } from "./flywheel-merge-order-DxbQKE1d.js";
|
|
13
|
+
import "./merge-blockers-BsFjGrQ8.js";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { Effect, Schema } from "effect";
|
|
16
16
|
import "node:os";
|
|
@@ -204,4 +204,4 @@ async function flywheelReportCommand(options = {}) {
|
|
|
204
204
|
//#endregion
|
|
205
205
|
export { flywheelReportCommand };
|
|
206
206
|
|
|
207
|
-
//# sourceMappingURL=flywheel-
|
|
207
|
+
//# sourceMappingURL=flywheel-DcBkQvgE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { c as resolveMergeQueuePrUrl, l as reviewRecordEligibility, r as computeMergeQueue } from "./flywheel-merge-order-
|
|
1
|
+
import { c as resolveMergeQueuePrUrl, l as reviewRecordEligibility, r as computeMergeQueue } from "./flywheel-merge-order-DxbQKE1d.js";
|
|
2
2
|
export { computeMergeQueue, resolveMergeQueuePrUrl, reviewRecordEligibility };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as
|
|
3
|
-
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-
|
|
4
|
-
import { l as init_dag, r as compileGlob } from "./dag-
|
|
5
|
-
import { n as computeIssueFootprint, r as init_swarm_readiness } from "./swarm-readiness-
|
|
6
|
-
import {
|
|
1
|
+
import { Tn as init_projects, fn as findProjectByPathSync, vn as getProjectSwarmHotspots } from "./config-yaml-DvyMuOle.js";
|
|
2
|
+
import { c as getReviewStatusSync, l as init_review_status, m as mergeGateEligibility } from "./review-status-A7quS5KJ.js";
|
|
3
|
+
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-tnxxqROg.js";
|
|
4
|
+
import { l as init_dag, r as compileGlob } from "./dag-CdOjJVDT.js";
|
|
5
|
+
import { n as computeIssueFootprint, r as init_swarm_readiness } from "./swarm-readiness-CQ_fwUWF.js";
|
|
6
|
+
import { c as classifyIssue, h as isAutoPickable, m as init_pickup } from "./pickup-Dd0Znxxy.js";
|
|
7
7
|
import { Effect } from "effect";
|
|
8
8
|
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
|
|
9
9
|
//#region ../../lib/flywheel-merge-order.ts
|
|
@@ -192,7 +192,7 @@ const computeMergeQueue = (items, projectRoot, options = {}) => Effect.gen(funct
|
|
|
192
192
|
* - not in-pipeline (active review/work/test)
|
|
193
193
|
* - no parked labels (`parked`; legacy `needs-design`/`needs-discussion`)
|
|
194
194
|
* - not in the optional exclusion set (e.g. already running agents)
|
|
195
|
-
* - FR-14: must have
|
|
195
|
+
* - FR-14: must have an xBRIEF spec (ready) or a PRD draft (hasPrd)
|
|
196
196
|
*
|
|
197
197
|
* Returns null when no eligible issue is found.
|
|
198
198
|
*/
|
|
@@ -241,4 +241,4 @@ function pickFromSequence(nodes, opts) {
|
|
|
241
241
|
//#endregion
|
|
242
242
|
export { declaredIssueFootprint as a, resolveMergeQueuePrUrl as c, computePredictedConflictSignals as i, reviewRecordEligibility as l, changedFilesVsMain as n, orderMergeCandidates as o, computeMergeQueue as r, pickFromSequence as s, MERGE_GATE_VERBS as t };
|
|
243
243
|
|
|
244
|
-
//# sourceMappingURL=flywheel-merge-order-
|
|
244
|
+
//# sourceMappingURL=flywheel-merge-order-DxbQKE1d.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as parsePullRequestRef, d as getPullRequestState, f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead, x as mergePullRequestWithApp } from "./github-app-
|
|
1
|
+
import { S as parsePullRequestRef, d as getPullRequestState, f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead, x as mergePullRequestWithApp } from "./github-app-CMBdIFBQ.js";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
@@ -267,4 +267,4 @@ function getForgeAdapter(forge) {
|
|
|
267
267
|
//#endregion
|
|
268
268
|
export { getForgeAdapter as n, parseArtifactRef as r, GITHUB_MERGE_TIMEOUT_MS as t };
|
|
269
269
|
|
|
270
|
-
//# sourceMappingURL=forge-
|
|
270
|
+
//# sourceMappingURL=forge-Ch9gCFod.js.map
|
|
@@ -3841,4 +3841,4 @@ var init_from = __esmMin((() => {
|
|
|
3841
3841
|
//#endregion
|
|
3842
3842
|
export { File as a, init_esm_min as i, FormData as n, Blob as o, formDataToBlob as r, init_fetch_blob as s, init_from as t };
|
|
3843
3843
|
|
|
3844
|
-
//# sourceMappingURL=from-
|
|
3844
|
+
//# sourceMappingURL=from-CJ_aH5jD.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-
|
|
2
|
+
import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-BrL_VTRr.js";
|
|
3
3
|
import { Worker } from "node:worker_threads";
|
|
4
4
|
//#region ../../lib/memory/fts-db.ts
|
|
5
5
|
async function getMemoryFtsDatabase(projectId) {
|
|
@@ -143,4 +143,4 @@ var init_fts_db = __esmMin((() => {
|
|
|
143
143
|
//#endregion
|
|
144
144
|
export { withMemoryFtsDatabase as a, runMemoryFtsTransaction as i, init_fts_db as n, runMemoryFtsStatement as r, closeMemoryFtsDatabases as t };
|
|
145
145
|
|
|
146
|
-
//# sourceMappingURL=fts-db-
|
|
146
|
+
//# sourceMappingURL=fts-db-CKgg0VKg.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
2
|
import { n as openDatabase, t as init_driver } from "./driver-CKVGi51s.js";
|
|
3
|
-
import { i as init_paths, o as resolveFtsDbPath } from "./paths-
|
|
3
|
+
import { i as init_paths, o as resolveFtsDbPath } from "./paths-_zEts6wc.js";
|
|
4
4
|
import { dirname } from "node:path";
|
|
5
5
|
import { mkdirSync } from "node:fs";
|
|
6
6
|
//#region ../../lib/memory/fts-operations.ts
|
|
@@ -131,4 +131,4 @@ var init_fts_operations = __esmMin((() => {
|
|
|
131
131
|
//#endregion
|
|
132
132
|
export { runMemoryFtsTransactionSync as a, runMemoryFtsStatementSync as i, getMemoryFtsDatabaseSync as n, init_fts_operations as r, closeMemoryFtsDatabasesInProcess as t };
|
|
133
133
|
|
|
134
|
-
//# sourceMappingURL=fts-operations-
|
|
134
|
+
//# sourceMappingURL=fts-operations-BrL_VTRr.js.map
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
import { ar as GitError, ir as FsError, mr as init_errors } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { Effect } from "effect";
|
|
4
|
+
import { existsSync, readdirSync, unlinkSync } from "fs";
|
|
5
|
+
import { join } from "path";
|
|
6
|
+
import { exec, execFile } from "child_process";
|
|
7
|
+
import { promisify } from "util";
|
|
8
|
+
//#region ../../lib/git-utils.ts
|
|
9
|
+
/**
|
|
10
|
+
* Git utilities for handling common git operations and recovery
|
|
11
|
+
*/
|
|
12
|
+
function killProcessTree(child) {
|
|
13
|
+
if (!child?.pid) return;
|
|
14
|
+
try {
|
|
15
|
+
if (process.platform === "win32") child.kill("SIGKILL");
|
|
16
|
+
else process.kill(-child.pid, "SIGKILL");
|
|
17
|
+
} catch {
|
|
18
|
+
try {
|
|
19
|
+
child.kill("SIGKILL");
|
|
20
|
+
} catch {}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function runProcessProbe(file, args, repoPath, options) {
|
|
24
|
+
const command = `${file} ${args.join(" ")}`;
|
|
25
|
+
if (options.signal?.aborted) return Promise.reject(new ProcessProbeTerminationError(command, "abort", options.processProbeTimeoutMs));
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
let child;
|
|
28
|
+
let termination;
|
|
29
|
+
const terminate = (kind) => {
|
|
30
|
+
if (termination) return;
|
|
31
|
+
termination = kind;
|
|
32
|
+
killProcessTree(child);
|
|
33
|
+
};
|
|
34
|
+
const timeout = setTimeout(() => terminate("timeout"), options.processProbeTimeoutMs);
|
|
35
|
+
const onAbort = () => terminate("abort");
|
|
36
|
+
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
37
|
+
child = execFileDetached(file, args, {
|
|
38
|
+
cwd: repoPath,
|
|
39
|
+
encoding: "utf-8",
|
|
40
|
+
detached: process.platform !== "win32"
|
|
41
|
+
}, (error, stdout, stderr) => {
|
|
42
|
+
clearTimeout(timeout);
|
|
43
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
44
|
+
if (termination) reject(Object.assign(new ProcessProbeTerminationError(command, termination, options.processProbeTimeoutMs), {
|
|
45
|
+
stdout,
|
|
46
|
+
stderr
|
|
47
|
+
}));
|
|
48
|
+
else if (error) reject(Object.assign(error, {
|
|
49
|
+
stdout,
|
|
50
|
+
stderr
|
|
51
|
+
}));
|
|
52
|
+
else resolve(stdout);
|
|
53
|
+
});
|
|
54
|
+
if (options.signal?.aborted) terminate("abort");
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function probeErrorReason(command, error) {
|
|
58
|
+
if (error instanceof ProcessProbeTerminationError) return error.message;
|
|
59
|
+
return `${command} failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
60
|
+
}
|
|
61
|
+
/** Check whether a repository has active Git processes without guessing on probe failure. */
|
|
62
|
+
async function hasRunningGitProcesses(repoPath, options) {
|
|
63
|
+
const probeOptions = {
|
|
64
|
+
signal: options.signal,
|
|
65
|
+
processProbeTimeoutMs: options.processProbeTimeoutMs ?? DEFAULT_PROCESS_PROBE_TIMEOUT_MS
|
|
66
|
+
};
|
|
67
|
+
try {
|
|
68
|
+
return { status: (await runProcessProbe("fuser", [join(repoPath, ".git")], repoPath, probeOptions)).trim() ? "running" : "idle" };
|
|
69
|
+
} catch (error) {
|
|
70
|
+
const code = error?.code;
|
|
71
|
+
if (code === 1) return { status: "idle" };
|
|
72
|
+
if (code !== 127 && code !== "ENOENT") return {
|
|
73
|
+
status: "inconclusive",
|
|
74
|
+
reason: probeErrorReason("fuser", error)
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
return { status: (await runProcessProbe("ps", ["-eo", "args="], repoPath, probeOptions)).split("\n").some((line) => line.includes("git") && line.includes(repoPath)) ? "running" : "idle" };
|
|
79
|
+
} catch (error) {
|
|
80
|
+
return {
|
|
81
|
+
status: "inconclusive",
|
|
82
|
+
reason: probeErrorReason("ps", error)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Find all git lock files in a repository
|
|
88
|
+
*/
|
|
89
|
+
function findGitLockFiles(repoPath) {
|
|
90
|
+
const lockFiles = [];
|
|
91
|
+
const indexLock = join(repoPath, ".git", "index.lock");
|
|
92
|
+
if (existsSync(indexLock)) lockFiles.push(indexLock);
|
|
93
|
+
const refsDir = join(repoPath, ".git", "refs");
|
|
94
|
+
if (existsSync(refsDir)) {
|
|
95
|
+
const findLocksRecursive = (dir) => {
|
|
96
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
97
|
+
for (const entry of entries) {
|
|
98
|
+
const fullPath = join(dir, entry.name);
|
|
99
|
+
if (entry.isDirectory()) findLocksRecursive(fullPath);
|
|
100
|
+
else if (entry.name.endsWith(".lock")) lockFiles.push(fullPath);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
try {
|
|
104
|
+
findLocksRecursive(refsDir);
|
|
105
|
+
} catch {}
|
|
106
|
+
}
|
|
107
|
+
return lockFiles;
|
|
108
|
+
}
|
|
109
|
+
async function cleanupStaleLocksPromise(repoPath, options) {
|
|
110
|
+
const result = {
|
|
111
|
+
found: [],
|
|
112
|
+
removed: [],
|
|
113
|
+
errors: []
|
|
114
|
+
};
|
|
115
|
+
const lockFiles = findGitLockFiles(repoPath);
|
|
116
|
+
result.found = lockFiles;
|
|
117
|
+
if (lockFiles.length === 0) return result;
|
|
118
|
+
const processProbe = await hasRunningGitProcesses(repoPath, options);
|
|
119
|
+
if (processProbe.status === "running") {
|
|
120
|
+
result.errors.push({
|
|
121
|
+
file: "N/A",
|
|
122
|
+
error: "Git processes are running - not safe to remove locks"
|
|
123
|
+
});
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
if (processProbe.status === "inconclusive") {
|
|
127
|
+
result.errors.push({
|
|
128
|
+
file: "N/A",
|
|
129
|
+
error: `Could not verify Git process state: ${processProbe.reason}`
|
|
130
|
+
});
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
for (const lockFile of lockFiles) try {
|
|
134
|
+
unlinkSync(lockFile);
|
|
135
|
+
result.removed.push(lockFile);
|
|
136
|
+
} catch (error) {
|
|
137
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
138
|
+
result.errors.push({
|
|
139
|
+
file: lockFile,
|
|
140
|
+
error: msg
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
async function getWorkspaceGitInfoPromise(workspacePath) {
|
|
146
|
+
try {
|
|
147
|
+
const [headResult, branchResult] = await Promise.all([execAsync("git rev-parse HEAD", { cwd: workspacePath }), execAsync("git rev-parse --abbrev-ref HEAD", { cwd: workspacePath })]);
|
|
148
|
+
return {
|
|
149
|
+
HEAD: headResult.stdout.trim(),
|
|
150
|
+
branch: branchResult.stdout.trim()
|
|
151
|
+
};
|
|
152
|
+
} catch (err) {
|
|
153
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
154
|
+
throw new Error(`getWorkspaceGitInfo failed for ${workspacePath}: ${msg}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function hasStaleLocksPromise(repoPath) {
|
|
158
|
+
if (findGitLockFiles(repoPath).length === 0) return false;
|
|
159
|
+
return (await hasRunningGitProcesses(repoPath, {})).status === "idle";
|
|
160
|
+
}
|
|
161
|
+
var execAsync, DEFAULT_PROCESS_PROBE_TIMEOUT_MS, ProcessProbeTerminationError, execFileDetached, cleanupStaleLocks, getWorkspaceGitInfo, hasStaleLocks;
|
|
162
|
+
var init_git_utils = __esmMin((() => {
|
|
163
|
+
init_errors();
|
|
164
|
+
execAsync = promisify(exec);
|
|
165
|
+
DEFAULT_PROCESS_PROBE_TIMEOUT_MS = 3e4;
|
|
166
|
+
ProcessProbeTerminationError = class extends Error {
|
|
167
|
+
constructor(command, kind, budgetMs) {
|
|
168
|
+
super(kind === "abort" ? `${command} was cancelled` : `${command} timed out after ${budgetMs / 1e3}s`);
|
|
169
|
+
this.command = command;
|
|
170
|
+
this.kind = kind;
|
|
171
|
+
this.budgetMs = budgetMs;
|
|
172
|
+
this.name = "ProcessProbeTerminationError";
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
execFileDetached = execFile;
|
|
176
|
+
cleanupStaleLocks = (repoPath, options = {}) => Effect.tryPromise({
|
|
177
|
+
try: () => cleanupStaleLocksPromise(repoPath, options),
|
|
178
|
+
catch: (cause) => new FsError({
|
|
179
|
+
path: repoPath,
|
|
180
|
+
operation: "cleanupStaleLocks",
|
|
181
|
+
cause
|
|
182
|
+
})
|
|
183
|
+
});
|
|
184
|
+
getWorkspaceGitInfo = (workspacePath) => Effect.tryPromise({
|
|
185
|
+
try: () => getWorkspaceGitInfoPromise(workspacePath),
|
|
186
|
+
catch: (cause) => new GitError({
|
|
187
|
+
command: ["rev-parse", "HEAD"],
|
|
188
|
+
stderr: cause instanceof Error ? cause.message : String(cause),
|
|
189
|
+
exitCode: -1,
|
|
190
|
+
cause
|
|
191
|
+
})
|
|
192
|
+
});
|
|
193
|
+
hasStaleLocks = (repoPath) => Effect.promise(() => hasStaleLocksPromise(repoPath));
|
|
194
|
+
}));
|
|
195
|
+
//#endregion
|
|
196
|
+
export { init_git_utils as i, getWorkspaceGitInfo as n, hasStaleLocks as r, cleanupStaleLocks as t };
|
|
197
|
+
|
|
198
|
+
//# sourceMappingURL=git-utils-BVa07a4a.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as init_git_utils, n as getWorkspaceGitInfo, r as hasStaleLocks, t as cleanupStaleLocks } from "./git-utils-
|
|
1
|
+
import { i as init_git_utils, n as getWorkspaceGitInfo, r as hasStaleLocks, t as cleanupStaleLocks } from "./git-utils-BVa07a4a.js";
|
|
2
2
|
init_git_utils();
|
|
3
3
|
export { cleanupStaleLocks, getWorkspaceGitInfo, hasStaleLocks };
|