@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,64 +1,11 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { C as init_specs, S as getProjectPanPaths } from "./io-
|
|
2
|
+
import { Ht as flushAutoCommits, Ut as init_auto_commit, Wt as queueAutoCommit, ir as FsError, mr as init_errors } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { p as init_types } from "./types-hraoaQIp.js";
|
|
4
|
+
import { C as init_specs, F as getReadableWorkspacePanPaths, I as getWorkspacePanPaths, L as init_continue, N as ensureWorkspacePanDir, P as getLegacyWorkspacePanPaths, S as getProjectPanPaths, b as ensurePanDirs } from "./io-B3_AHDfr.js";
|
|
5
5
|
import { Effect, FileSystem } from "effect";
|
|
6
6
|
import { join } from "path";
|
|
7
7
|
import { existsSync, readFileSync } from "node:fs";
|
|
8
8
|
import * as NodeFileSystem from "@effect/platform-node/NodeFileSystem";
|
|
9
|
-
//#region ../../lib/pan-dir/continue.ts
|
|
10
|
-
function workspacePanPaths(workspacePath) {
|
|
11
|
-
const panDir = join(workspacePath, WORKSPACE_RUNTIME_DIRNAME);
|
|
12
|
-
return {
|
|
13
|
-
panDir,
|
|
14
|
-
specPath: join(panDir, PAN_SPEC_FILENAME),
|
|
15
|
-
continuePath: join(panDir, PAN_CONTINUE_FILENAME),
|
|
16
|
-
sessionsPath: join(panDir, PAN_SESSIONS_FILENAME),
|
|
17
|
-
feedbackDir: join(panDir, PAN_FEEDBACK_DIRNAME),
|
|
18
|
-
contextPath: join(panDir, PAN_CONTEXT_FILENAME)
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function getWorkspacePanPaths(workspacePath) {
|
|
22
|
-
return workspacePanPaths(workspacePath);
|
|
23
|
-
}
|
|
24
|
-
function getLegacyWorkspacePanPaths(workspacePath) {
|
|
25
|
-
const panDir = join(workspacePath, LEGACY_WORKSPACE_RUNTIME_DIRNAME);
|
|
26
|
-
return {
|
|
27
|
-
panDir,
|
|
28
|
-
specPath: join(panDir, PAN_SPEC_FILENAME),
|
|
29
|
-
continuePath: join(panDir, PAN_CONTINUE_FILENAME),
|
|
30
|
-
sessionsPath: join(panDir, PAN_SESSIONS_FILENAME),
|
|
31
|
-
feedbackDir: join(panDir, PAN_FEEDBACK_DIRNAME),
|
|
32
|
-
contextPath: join(panDir, PAN_CONTEXT_FILENAME)
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/** Resolve workspace runtime reads to `.overdeck/`, then legacy `.pan/`. */
|
|
36
|
-
function getReadableWorkspacePanPaths(workspacePath) {
|
|
37
|
-
const canonical = getWorkspacePanPaths(workspacePath);
|
|
38
|
-
return existsSync(canonical.panDir) ? canonical : getLegacyWorkspacePanPaths(workspacePath);
|
|
39
|
-
}
|
|
40
|
-
function ensureWorkspacePanDir(workspacePath) {
|
|
41
|
-
return Effect.gen(function* () {
|
|
42
|
-
const fs = yield* FileSystem.FileSystem;
|
|
43
|
-
const paths = workspacePanPaths(workspacePath);
|
|
44
|
-
yield* fs.makeDirectory(paths.panDir, { recursive: true }).pipe(Effect.mapError((cause) => new FsError({
|
|
45
|
-
path: paths.panDir,
|
|
46
|
-
operation: "makeDirectory",
|
|
47
|
-
cause
|
|
48
|
-
})));
|
|
49
|
-
yield* fs.makeDirectory(paths.feedbackDir, { recursive: true }).pipe(Effect.mapError((cause) => new FsError({
|
|
50
|
-
path: paths.feedbackDir,
|
|
51
|
-
operation: "makeDirectory",
|
|
52
|
-
cause
|
|
53
|
-
})));
|
|
54
|
-
return paths;
|
|
55
|
-
}).pipe(Effect.provide(NodeFileSystem.layer));
|
|
56
|
-
}
|
|
57
|
-
var init_continue = __esmMin((() => {
|
|
58
|
-
init_errors();
|
|
59
|
-
init_types();
|
|
60
|
-
}));
|
|
61
|
-
//#endregion
|
|
62
9
|
//#region ../../lib/pan-dir/sessions.ts
|
|
63
10
|
var init_sessions = __esmMin((() => {
|
|
64
11
|
init_errors();
|
|
@@ -144,6 +91,33 @@ function getDraftsDir(projectRoot) {
|
|
|
144
91
|
function getDraftPath(projectRoot, filename) {
|
|
145
92
|
return join(getDraftsDir(projectRoot), filename);
|
|
146
93
|
}
|
|
94
|
+
function getIssueDraftPath(projectRoot, issueId) {
|
|
95
|
+
return getDraftPath(projectRoot, `${issueId.toUpperCase()}.md`);
|
|
96
|
+
}
|
|
97
|
+
function writeIssueDraft(projectRoot, issueId, content) {
|
|
98
|
+
return Effect.gen(function* () {
|
|
99
|
+
const fs = yield* FileSystem.FileSystem;
|
|
100
|
+
yield* ensurePanDirs(projectRoot);
|
|
101
|
+
const path = getIssueDraftPath(projectRoot, issueId);
|
|
102
|
+
yield* fs.writeFileString(path, content).pipe(Effect.mapError((cause) => new FsError({
|
|
103
|
+
path,
|
|
104
|
+
operation: "writeFileString",
|
|
105
|
+
cause
|
|
106
|
+
})));
|
|
107
|
+
queueAutoCommit({
|
|
108
|
+
projectRoot,
|
|
109
|
+
paths: [path],
|
|
110
|
+
subject: `chore(state): update PRD draft for ${issueId.toUpperCase()}`
|
|
111
|
+
});
|
|
112
|
+
const flushed = yield* flushAutoCommits(projectRoot);
|
|
113
|
+
if (flushed.errored || flushed.pushed === false) return yield* Effect.fail(new FsError({
|
|
114
|
+
path,
|
|
115
|
+
operation: "pushDraft",
|
|
116
|
+
cause: new Error(flushed.reason ?? "PRD draft commit was not pushed")
|
|
117
|
+
}));
|
|
118
|
+
return path;
|
|
119
|
+
}).pipe(Effect.provide(NodeFileSystem.layer));
|
|
120
|
+
}
|
|
147
121
|
/**
|
|
148
122
|
* Sync PRD-first gate predicate (PAN-2234). The surrounding module uses the
|
|
149
123
|
* Effect FileSystem for read/write/list paths; this predicate is deliberately a
|
|
@@ -200,6 +174,52 @@ function checkPrdGateSync(args) {
|
|
|
200
174
|
searched
|
|
201
175
|
};
|
|
202
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Promote a workspace-authored PRD draft to the canonical drafts/ location on
|
|
179
|
+
* the state plane. Planning agents author the PRD at
|
|
180
|
+
* `<workspace>/.pan/drafts/<ISSUE>.md`; the PRD-first gate accepts it there,
|
|
181
|
+
* but the workspace is disposable — without this promotion the PRD is lost on
|
|
182
|
+
* workspace teardown and invisible at the canonical location (the PAN-2858
|
|
183
|
+
* defect). Runs at complete-planning, after the PRD gate.
|
|
184
|
+
*
|
|
185
|
+
* No-loss rule: an existing canonical draft is never overwritten — the
|
|
186
|
+
* canonical copy may carry operator edits the workspace copy predates.
|
|
187
|
+
*/
|
|
188
|
+
function promoteWorkspacePrdDraft(args) {
|
|
189
|
+
return Effect.suspend(() => {
|
|
190
|
+
const { projectRoot, workspacePath, issueId } = args;
|
|
191
|
+
const upperFile = `${issueId.toUpperCase()}.md`;
|
|
192
|
+
const lowerFile = `${issueId.toLowerCase()}.md`;
|
|
193
|
+
const draftsDir = getDraftsDir(projectRoot);
|
|
194
|
+
for (const canonical of [join(draftsDir, upperFile), join(draftsDir, lowerFile)]) if (existsSync(canonical)) return Effect.succeed({
|
|
195
|
+
promoted: false,
|
|
196
|
+
reason: "canonical-exists",
|
|
197
|
+
path: canonical
|
|
198
|
+
});
|
|
199
|
+
const wsDrafts = join(workspacePath, ".pan", "drafts");
|
|
200
|
+
const source = [join(wsDrafts, upperFile), join(wsDrafts, lowerFile)].find((p) => existsSync(p));
|
|
201
|
+
if (!source) return Effect.succeed({
|
|
202
|
+
promoted: false,
|
|
203
|
+
reason: "no-workspace-draft"
|
|
204
|
+
});
|
|
205
|
+
let content;
|
|
206
|
+
try {
|
|
207
|
+
content = readFileSync(source, "utf-8");
|
|
208
|
+
} catch (cause) {
|
|
209
|
+
return Effect.fail(new FsError({
|
|
210
|
+
path: source,
|
|
211
|
+
operation: "readFileString",
|
|
212
|
+
cause
|
|
213
|
+
}));
|
|
214
|
+
}
|
|
215
|
+
return writeIssueDraft(projectRoot, issueId, content).pipe(Effect.map((path) => ({
|
|
216
|
+
promoted: true,
|
|
217
|
+
reason: "promoted",
|
|
218
|
+
path,
|
|
219
|
+
source
|
|
220
|
+
})));
|
|
221
|
+
});
|
|
222
|
+
}
|
|
203
223
|
var init_drafts = __esmMin((() => {
|
|
204
224
|
init_errors();
|
|
205
225
|
init_auto_commit();
|
|
@@ -255,6 +275,6 @@ var init_pan_dir = __esmMin((() => {
|
|
|
255
275
|
init_context();
|
|
256
276
|
}));
|
|
257
277
|
//#endregion
|
|
258
|
-
export {
|
|
278
|
+
export { getDraftPath as a, clearFeedback as c, checkPrdGateSync as i, readFeedback as l, readWorkspaceContext as n, getIssueDraftPath as o, writeWorkspaceContext as r, promoteWorkspacePrdDraft as s, init_pan_dir as t, writeFeedback as u };
|
|
259
279
|
|
|
260
|
-
//# sourceMappingURL=pan-dir-
|
|
280
|
+
//# sourceMappingURL=pan-dir-DeVUgwA7.js.map
|
|
@@ -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$1 } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
import { dirname, isAbsolute, join, relative, resolve } from "path";
|
|
4
4
|
import { mkdir } from "fs/promises";
|
|
5
5
|
//#region ../../lib/memory/paths.ts
|
|
@@ -62,4 +62,4 @@ var init_paths = __esmMin((() => {
|
|
|
62
62
|
//#endregion
|
|
63
63
|
export { resolveArchiveDir as a, resolveMemoryRoot as c, resolveRagRunsFile as d, resolveStatusFile as f, init_paths as i, resolveObservationsFile as l, ensureDir as n, resolveFtsDbPath as o, resolveSummariesDir as p, ensureParentDir as r, resolveIssueMemoryRoot as s, assertMemorySafeSegment as t, resolvePendingDir as u };
|
|
64
64
|
|
|
65
|
-
//# sourceMappingURL=paths-
|
|
65
|
+
//# sourceMappingURL=paths-_zEts6wc.js.map
|
|
@@ -183,6 +183,6 @@ var init_pickup = __esmMin((() => {
|
|
|
183
183
|
};
|
|
184
184
|
}));
|
|
185
185
|
//#endregion
|
|
186
|
-
export {
|
|
186
|
+
export { selectNeedsPlanning as _, READY_LABEL as a, classifyIssue as c, computeLanes as d, computeStats as f, normalizeGate as g, isAutoPickable as h, PARKED_LABEL as i, computeCohort as l, init_pickup as m, LEGACY_PARKED_LABELS as n, RELEASED_LABEL as o, computeWaves as p, OBJECTION_LABEL as r, VETOED_LABEL as s, BLOCKS_MAIN_LABEL as t, computeEpicGroups as u };
|
|
187
187
|
|
|
188
|
-
//# sourceMappingURL=pickup-
|
|
188
|
+
//# sourceMappingURL=pickup-Dd0Znxxy.js.map
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { C as init_specs, w as listSpecs } from "./io-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { Tn as init_projects, gn as getIssuePrefix } from "./config-yaml-DvyMuOle.js";
|
|
3
|
+
import { C as init_specs, w as listSpecs } from "./io-B3_AHDfr.js";
|
|
4
|
+
import { f as init_config, m as loadConfigSync } from "./config-CCvjQf27.js";
|
|
5
|
+
import { r as init_factory, t as createTracker } from "./factory-CynerjXO.js";
|
|
6
|
+
import { O as createSettledTtlPromiseCache, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as withConcurrencyLimitPromise, k as init_concurrency } from "./github-app-CMBdIFBQ.js";
|
|
7
|
+
import { n as init_label_reconciler, t as STALE_PIPELINE_LABELS } from "./label-reconciler-DdWbHEBu.js";
|
|
8
|
+
import { join } from "node:path";
|
|
6
9
|
import { Effect } from "effect";
|
|
7
10
|
import { execFile } from "node:child_process";
|
|
8
11
|
import { promisify } from "node:util";
|
|
@@ -42,17 +45,26 @@ function listOpenPullRequestsSnapshot(owner, repo) {
|
|
|
42
45
|
}))));
|
|
43
46
|
}
|
|
44
47
|
async function runGitHubGraphql(query) {
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
try {
|
|
49
|
+
const { stdout } = await execFileAsync("gh", [
|
|
50
|
+
"api",
|
|
51
|
+
"graphql",
|
|
52
|
+
"-f",
|
|
53
|
+
`query=${query}`
|
|
54
|
+
], {
|
|
55
|
+
encoding: "utf-8",
|
|
56
|
+
timeout: 3e4,
|
|
57
|
+
maxBuffer: 4 * 1024 * 1024
|
|
58
|
+
});
|
|
59
|
+
return stdout;
|
|
60
|
+
} catch (error) {
|
|
61
|
+
const stdout = error.stdout;
|
|
62
|
+
if (typeof stdout === "string" && stdout.length > 0) try {
|
|
63
|
+
const parsed = JSON.parse(stdout);
|
|
64
|
+
if (parsed.data !== void 0 && parsed.data !== null) return stdout;
|
|
65
|
+
} catch {}
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
56
68
|
}
|
|
57
69
|
async function listMergedPullRequestHeadsBatched(owner, repo, heads, runGraphql = runGitHubGraphql) {
|
|
58
70
|
if (heads.length === 0) return [];
|
|
@@ -76,9 +88,8 @@ async function listIssueStatesBatched(owner, repo, numbers, runGraphql = runGitH
|
|
|
76
88
|
for (const numberChunk of chunksOf(numbers)) {
|
|
77
89
|
const fields = numberChunk.map((number, index) => `i${index}: issue(number: ${number}) { state }`);
|
|
78
90
|
const query = `query { repository(owner: ${JSON.stringify(owner)}, name: ${JSON.stringify(repo)}) { ${fields.join(" ")} } }`;
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
if (response.errors?.length || !repository) throw new Error("Incomplete issue-state GraphQL response");
|
|
91
|
+
const repository = JSON.parse(await runGraphql(query)).data?.repository;
|
|
92
|
+
if (!repository) throw new Error("Incomplete issue-state GraphQL response");
|
|
82
93
|
for (let index = 0; index < numberChunk.length; index++) {
|
|
83
94
|
const alias = `i${index}`;
|
|
84
95
|
if (!Object.prototype.hasOwnProperty.call(repository, alias)) throw new Error(`Missing issue-state alias ${alias}`);
|
|
@@ -95,44 +106,111 @@ async function listIssueStatesBatched(owner, repo, numbers, runGraphql = runGitH
|
|
|
95
106
|
}
|
|
96
107
|
return states;
|
|
97
108
|
}
|
|
109
|
+
function resolveProjectTrackerType(project) {
|
|
110
|
+
if (project.tracker) return project.tracker;
|
|
111
|
+
if (project.rally_project) return "rally";
|
|
112
|
+
if (project.github_repo) return "github";
|
|
113
|
+
if (getIssuePrefix(project)) return "linear";
|
|
114
|
+
if (project.gitlab_repo) return "gitlab";
|
|
115
|
+
throw new Error(`Cannot resolve tracker for ${project.name}`);
|
|
116
|
+
}
|
|
117
|
+
async function listProjectTrackerIssues(project) {
|
|
118
|
+
const issuePrefix = getIssuePrefix(project)?.toUpperCase();
|
|
119
|
+
if (!issuePrefix) throw new Error(`Missing issue_prefix for project ${project.name}`);
|
|
120
|
+
const trackerType = resolveProjectTrackerType(project);
|
|
121
|
+
const trackerConfig = loadConfigSync().trackers[trackerType];
|
|
122
|
+
const tracker = createTracker({
|
|
123
|
+
type: trackerType,
|
|
124
|
+
apiKeyEnv: trackerConfig && "api_key_env" in trackerConfig ? trackerConfig.api_key_env : void 0,
|
|
125
|
+
tokenEnv: trackerConfig && "token_env" in trackerConfig ? trackerConfig.token_env : void 0,
|
|
126
|
+
team: issuePrefix,
|
|
127
|
+
owner: project.github_repo?.split("/")[0],
|
|
128
|
+
repo: project.github_repo?.split("/")[1],
|
|
129
|
+
projectId: project.gitlab_repo,
|
|
130
|
+
server: trackerType === "rally" && trackerConfig && "server" in trackerConfig ? trackerConfig.server : void 0,
|
|
131
|
+
workspace: trackerType === "rally" && trackerConfig && "workspace" in trackerConfig ? trackerConfig.workspace : void 0,
|
|
132
|
+
project: project.rally_project
|
|
133
|
+
});
|
|
134
|
+
return (await Effect.runPromise(tracker.listIssues({
|
|
135
|
+
team: issuePrefix,
|
|
136
|
+
includeClosed: true
|
|
137
|
+
}))).flatMap((issue) => {
|
|
138
|
+
const issueId = issue.ref.toUpperCase();
|
|
139
|
+
if (!issueId.startsWith(`${issuePrefix}-`)) return [];
|
|
140
|
+
return [{
|
|
141
|
+
issueId,
|
|
142
|
+
state: issue.state === "closed" ? "closed" : "open",
|
|
143
|
+
labels: issue.labels
|
|
144
|
+
}];
|
|
145
|
+
});
|
|
146
|
+
}
|
|
98
147
|
function issueNumber(issueId) {
|
|
99
148
|
const match = issueId.match(/-(\d+)$/);
|
|
100
149
|
if (!match) throw new Error(`Cannot derive GitHub issue number from ${issueId}`);
|
|
101
150
|
return Number(match[1]);
|
|
102
151
|
}
|
|
103
152
|
function issueIdFromRef(ref, issuePrefix) {
|
|
104
|
-
if (!/(?:^|\/)feature\//.test(ref)) return null;
|
|
153
|
+
if (!/(?:^|\/)(?:feature|strike)\//.test(ref)) return null;
|
|
105
154
|
const issueId = parseIssueIdFromTextSync(ref);
|
|
106
155
|
return issueId?.startsWith(`${issuePrefix}-`) ? issueId : null;
|
|
107
156
|
}
|
|
108
|
-
|
|
157
|
+
function projectRepositories(project) {
|
|
158
|
+
if (!project.workspace?.repos?.length) return [{
|
|
159
|
+
path: project.path,
|
|
160
|
+
defaultBranch: project.workspace?.default_branch ?? "main"
|
|
161
|
+
}];
|
|
162
|
+
return project.workspace.repos.map((repo) => ({
|
|
163
|
+
path: join(project.path, repo.path),
|
|
164
|
+
defaultBranch: repo.default_branch ?? project.workspace?.default_branch ?? "main"
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
/** Gather all durable pipeline lenses for one project in batches. */
|
|
109
168
|
async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
110
|
-
if (!project.github_repo) return [];
|
|
111
|
-
const [owner, repo] = project.github_repo.split("/");
|
|
112
|
-
if (!owner || !repo) throw new Error(`Invalid github_repo for ${project.name}: ${project.github_repo}`);
|
|
113
169
|
const issuePrefix = getIssuePrefix(project)?.toUpperCase();
|
|
114
|
-
if (!issuePrefix) throw new Error(`Missing issue_prefix for
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
|
|
131
|
-
|
|
170
|
+
if (!issuePrefix) throw new Error(`Missing issue_prefix for project ${project.name}`);
|
|
171
|
+
const githubRepository = project.github_repo?.split("/");
|
|
172
|
+
const owner = githubRepository?.[0];
|
|
173
|
+
const repo = githubRepository?.[1];
|
|
174
|
+
if (project.github_repo && (!owner || !repo)) throw new Error(`Invalid github_repo for ${project.name}: ${project.github_repo}`);
|
|
175
|
+
const branchSnapshots = projectRepositories(project).map(async (repository) => {
|
|
176
|
+
const [refs, unmergedRefs, firstParentShas] = await Promise.all([
|
|
177
|
+
deps.run("git", [
|
|
178
|
+
"for-each-ref",
|
|
179
|
+
"--format=%(objectname) %(refname:short)",
|
|
180
|
+
"refs/heads/feature/*",
|
|
181
|
+
"refs/remotes/origin/feature/*",
|
|
182
|
+
"refs/heads/strike/*",
|
|
183
|
+
"refs/remotes/origin/strike/*"
|
|
184
|
+
], repository.path),
|
|
185
|
+
deps.run("git", [
|
|
186
|
+
"for-each-ref",
|
|
187
|
+
`--no-merged=${repository.defaultBranch}`,
|
|
188
|
+
"--format=%(refname:short)",
|
|
189
|
+
"refs/heads/feature/*",
|
|
190
|
+
"refs/remotes/origin/feature/*",
|
|
191
|
+
"refs/heads/strike/*",
|
|
192
|
+
"refs/remotes/origin/strike/*"
|
|
193
|
+
], repository.path),
|
|
194
|
+
deps.run("git", [
|
|
195
|
+
"rev-list",
|
|
196
|
+
"--first-parent",
|
|
197
|
+
repository.defaultBranch
|
|
198
|
+
], repository.path)
|
|
199
|
+
]);
|
|
200
|
+
return {
|
|
201
|
+
refs,
|
|
202
|
+
unmergedRefs,
|
|
203
|
+
firstParentShas
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
const [trackerIssues, openIssues, phaseLabeledIssues, openPrs, branches, specIssueIds] = await Promise.all([
|
|
207
|
+
project.github_repo ? Promise.resolve([]) : deps.listTrackerIssues(project),
|
|
208
|
+
owner && repo ? deps.listOpenIssues(owner, repo) : Promise.resolve([]),
|
|
209
|
+
owner && repo ? deps.listPhaseLabeledIssues(owner, repo) : Promise.resolve([]),
|
|
210
|
+
owner && repo ? deps.listOpenPullRequests(owner, repo) : Promise.resolve([]),
|
|
211
|
+
Promise.all(branchSnapshots),
|
|
132
212
|
deps.listSpecIssueIds(project.path)
|
|
133
213
|
]);
|
|
134
|
-
const refs = branchRefs.split("\n").map((ref) => ref.trim()).filter(Boolean);
|
|
135
|
-
const unmerged = new Set(unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
|
|
136
214
|
const candidates = /* @__PURE__ */ new Set();
|
|
137
215
|
const labelsByIssue = /* @__PURE__ */ new Map();
|
|
138
216
|
const knownStateByIssue = /* @__PURE__ */ new Map();
|
|
@@ -141,7 +219,15 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
141
219
|
const headRefsByIssue = /* @__PURE__ */ new Map();
|
|
142
220
|
const branchIssues = /* @__PURE__ */ new Set();
|
|
143
221
|
const unmergedBranchIssues = /* @__PURE__ */ new Set();
|
|
222
|
+
const mergedBranchWorkIssues = /* @__PURE__ */ new Set();
|
|
144
223
|
const specIssues = new Set(specIssueIds.map((id) => id.toUpperCase()).filter((id) => id.startsWith(`${issuePrefix}-`)));
|
|
224
|
+
for (const issue of trackerIssues) {
|
|
225
|
+
const id = issue.issueId.toUpperCase();
|
|
226
|
+
if (!id.startsWith(`${issuePrefix}-`)) continue;
|
|
227
|
+
labelsByIssue.set(id, issue.labels);
|
|
228
|
+
knownStateByIssue.set(id, issue.state);
|
|
229
|
+
if (issue.state === "open" || STALE_PIPELINE_LABELS.some((label) => issue.labels.includes(label))) candidates.add(id);
|
|
230
|
+
}
|
|
145
231
|
for (const issue of openIssues) {
|
|
146
232
|
const id = `${issuePrefix}-${issue.number}`;
|
|
147
233
|
candidates.add(id);
|
|
@@ -155,7 +241,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
155
241
|
knownStateByIssue.set(id, issue.state);
|
|
156
242
|
}
|
|
157
243
|
for (const pr of openPrs) {
|
|
158
|
-
if (pr.headRepoFullName.toLowerCase() !== `${owner}/${repo}`.toLowerCase()) continue;
|
|
244
|
+
if (!owner || !repo || pr.headRepoFullName.toLowerCase() !== `${owner}/${repo}`.toLowerCase()) continue;
|
|
159
245
|
const id = issueIdFromRef(pr.headRefName, issuePrefix);
|
|
160
246
|
if (id) {
|
|
161
247
|
candidates.add(id);
|
|
@@ -163,34 +249,61 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
163
249
|
headRefsByIssue.set(id, new Set([...headRefsByIssue.get(id) ?? [], pr.headRefName]));
|
|
164
250
|
}
|
|
165
251
|
}
|
|
166
|
-
for (const
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
252
|
+
for (const snapshot of branches) {
|
|
253
|
+
const refLines = snapshot.refs.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
254
|
+
const unmerged = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
|
|
255
|
+
const firstParentShas = new Set(snapshot.firstParentShas.split("\n").map((sha) => sha.trim()).filter(Boolean));
|
|
256
|
+
for (const line of refLines) {
|
|
257
|
+
const spaceIdx = line.indexOf(" ");
|
|
258
|
+
const tipSha = spaceIdx === -1 ? null : line.slice(0, spaceIdx);
|
|
259
|
+
const ref = spaceIdx === -1 ? line : line.slice(spaceIdx + 1);
|
|
260
|
+
const id = issueIdFromRef(ref, issuePrefix);
|
|
261
|
+
if (id) {
|
|
262
|
+
candidates.add(id);
|
|
263
|
+
branchIssues.add(id);
|
|
264
|
+
const headRef = ref.replace(/^origin\//, "");
|
|
265
|
+
headRefsByIssue.set(id, new Set([...headRefsByIssue.get(id) ?? [], headRef]));
|
|
266
|
+
if (unmerged.has(ref)) unmergedBranchIssues.add(id);
|
|
267
|
+
else if (tipSha && !firstParentShas.has(tipSha)) mergedBranchWorkIssues.add(id);
|
|
268
|
+
}
|
|
174
269
|
}
|
|
175
270
|
}
|
|
176
271
|
for (const id of specIssues) candidates.add(id);
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
272
|
+
if (owner && repo) {
|
|
273
|
+
const unknownIssueIds = [...candidates].filter((id) => !knownStateByIssue.has(id));
|
|
274
|
+
const issueStateCandidates = unknownIssueIds.filter((id) => openPrIssues.has(id) || branchIssues.has(id));
|
|
275
|
+
const issueStateCandidateSet = new Set(issueStateCandidates);
|
|
276
|
+
for (const id of unknownIssueIds) if (!issueStateCandidateSet.has(id)) candidates.delete(id);
|
|
277
|
+
const issueStates = issueStateCandidates.length > 0 ? await deps.listIssueStates(owner, repo, issueStateCandidates.map(issueNumber)) : [];
|
|
278
|
+
const stateByNumber = new Map(issueStates.map((entry) => [entry.number, entry.state]));
|
|
279
|
+
for (const id of issueStateCandidates) {
|
|
280
|
+
const state = stateByNumber.get(issueNumber(id));
|
|
281
|
+
if (state) knownStateByIssue.set(id, state);
|
|
282
|
+
else candidates.delete(id);
|
|
283
|
+
}
|
|
284
|
+
const openCandidates = [...candidates].filter((id) => knownStateByIssue.get(id) === "open");
|
|
285
|
+
const candidateHeads = [...new Set(openCandidates.flatMap((id) => [
|
|
286
|
+
...headRefsByIssue.get(id) ?? [],
|
|
287
|
+
`feature/${id.toLowerCase()}`,
|
|
288
|
+
`strike/${id.toLowerCase()}`
|
|
289
|
+
]))];
|
|
290
|
+
const mergedHeads = new Set(await deps.listMergedPullRequestHeads(owner, repo, candidateHeads));
|
|
291
|
+
for (const id of openCandidates) if ([
|
|
292
|
+
...headRefsByIssue.get(id) ?? [],
|
|
293
|
+
`feature/${id.toLowerCase()}`,
|
|
294
|
+
`strike/${id.toLowerCase()}`
|
|
295
|
+
].some((head) => mergedHeads.has(head))) mergedPrIssues.add(id);
|
|
296
|
+
}
|
|
185
297
|
return [...candidates].sort().map((id) => ({
|
|
186
298
|
issueId: id,
|
|
187
|
-
issueOpen:
|
|
299
|
+
issueOpen: knownStateByIssue.get(id) === "open",
|
|
188
300
|
hasOpenPr: openPrIssues.has(id),
|
|
189
301
|
hasMergedPr: mergedPrIssues.has(id),
|
|
190
302
|
hasConventionBranch: branchIssues.has(id),
|
|
191
303
|
branchUnmerged: unmergedBranchIssues.has(id),
|
|
304
|
+
hasMergedBranchWork: mergedBranchWorkIssues.has(id),
|
|
192
305
|
phaseLabel: STALE_PIPELINE_LABELS.find((label) => labelsByIssue.get(id)?.includes(label)) ?? null,
|
|
193
|
-
|
|
306
|
+
hasXbriefSpec: specIssues.has(id),
|
|
194
307
|
explicitlyReady: labelsByIssue.get(id)?.includes("ready") ?? false
|
|
195
308
|
}));
|
|
196
309
|
}
|
|
@@ -221,9 +334,11 @@ var init_pipeline_membership_gather = __esmMin((() => {
|
|
|
221
334
|
init_github_app();
|
|
222
335
|
init_concurrency();
|
|
223
336
|
init_label_reconciler();
|
|
337
|
+
init_config();
|
|
224
338
|
init_specs();
|
|
225
339
|
init_projects();
|
|
226
340
|
init_resource_utils();
|
|
341
|
+
init_factory();
|
|
227
342
|
execFileAsync = promisify(execFile);
|
|
228
343
|
GRAPHQL_ALIAS_CHUNK_SIZE = 50;
|
|
229
344
|
cachedOpenPullRequests = createSettledTtlPromiseCache(3e4);
|
|
@@ -233,6 +348,7 @@ var init_pipeline_membership_gather = __esmMin((() => {
|
|
|
233
348
|
listOpenPullRequests: listOpenPullRequestsSnapshot,
|
|
234
349
|
listMergedPullRequestHeads: listMergedPullRequestHeadsBatched,
|
|
235
350
|
listIssueStates: listIssueStatesBatched,
|
|
351
|
+
listTrackerIssues: listProjectTrackerIssues,
|
|
236
352
|
listSpecIssueIds: async (projectPath) => (await Effect.runPromise(listSpecs(projectPath))).map((entry) => entry.issueId),
|
|
237
353
|
run: async (command, args, cwd) => {
|
|
238
354
|
const { stdout } = await execFileAsync(command, args, {
|
|
@@ -285,14 +401,20 @@ function resolvePipelineMembership(s) {
|
|
|
285
401
|
}
|
|
286
402
|
if (s.hasOpenPr) return result("in_flight", "open issue with an open PR — active work");
|
|
287
403
|
if (s.hasMergedPr) return result("post_merge_limbo", "open issue with a merged PR — merged but never closed out; run close-out");
|
|
288
|
-
if (branchLive) return result("planned_backlog", "open issue with an unmerged
|
|
289
|
-
if (s.hasConventionBranch)
|
|
290
|
-
|
|
404
|
+
if (branchLive) return result("planned_backlog", "open issue with an unmerged convention branch (feature/ or strike/) but no PR — needs a PR or disposition");
|
|
405
|
+
if (s.hasConventionBranch) {
|
|
406
|
+
if (s.hasMergedBranchWork) return result("post_merge_limbo", "open issue whose branch work is contained in main but with no merged PR — landed via a non-PR path; run close-out");
|
|
407
|
+
return result("planned_backlog", "open issue with a convention branch but no unique commits — created, work not yet landed; needs work or disposition");
|
|
408
|
+
}
|
|
409
|
+
if (s.hasXbriefSpec) return result("planned_backlog", PLANNED_BACKLOG_SPEC_ONLY_REASON);
|
|
291
410
|
if (s.explicitlyReady) return result("planned_backlog", "open issue carries the explicit ready label — ready to start");
|
|
292
411
|
return result("clean_terminal", "open issue with no branch and no PR — backlog, never started");
|
|
293
412
|
}
|
|
294
|
-
var
|
|
413
|
+
var PLANNED_BACKLOG_SPEC_ONLY_REASON;
|
|
414
|
+
var init_pipeline_membership = __esmMin((() => {
|
|
415
|
+
PLANNED_BACKLOG_SPEC_ONLY_REASON = "open issue with an xBRIEF spec but no branch/PR — planned work whose plan encodes code paths that age; needs starting or re-planning";
|
|
416
|
+
}));
|
|
295
417
|
//#endregion
|
|
296
|
-
export {
|
|
418
|
+
export { gatherProjectLensSignalsForProjects as a, init_resource_utils as c, gatherProjectLensSignals as i, parseIssueIdFromTextSync as l, init_pipeline_membership as n, init_pipeline_membership_gather as o, resolvePipelineMembership as r, listOpenPullRequestsSnapshot as s, PLANNED_BACKLOG_SPEC_ONLY_REASON as t };
|
|
297
419
|
|
|
298
|
-
//# sourceMappingURL=pipeline-membership-
|
|
420
|
+
//# sourceMappingURL=pipeline-membership-0HaEGDlH.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-
|
|
1
|
+
import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-D0ykk59O.js";
|
|
2
2
|
init_pipeline_notifier();
|
|
3
3
|
export { notifyPipeline, notifyPipelineSync, setPipelineHandler, setPipelineHandlerSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
2
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-Bb4XeV2x.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
//#region ../../lib/pipeline-notifier.ts
|
|
5
5
|
/**
|
|
@@ -60,4 +60,4 @@ var init_pipeline_notifier = __esmMin((() => {
|
|
|
60
60
|
//#endregion
|
|
61
61
|
export { setPipelineHandlerSync as a, setPipelineHandler as i, notifyPipeline as n, notifyPipelineSync as r, init_pipeline_notifier as t };
|
|
62
62
|
|
|
63
|
-
//# sourceMappingURL=pipeline-notifier-
|
|
63
|
+
//# sourceMappingURL=pipeline-notifier-D0ykk59O.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Tn as init_projects, kn as listProjectsSync } from "./config-yaml-DvyMuOle.js";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
4
|
import { execFile } from "node:child_process";
|
|
@@ -159,4 +159,4 @@ async function fetchProjectReleaseStatus(projectKey, deps = {}) {
|
|
|
159
159
|
//#endregion
|
|
160
160
|
export { fetchProjectReleaseStatus };
|
|
161
161
|
|
|
162
|
-
//# sourceMappingURL=project-pipelines-
|
|
162
|
+
//# sourceMappingURL=project-pipelines-2sK1apsO.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { An as loadProjectsConfig, Bn as resolveProjectPath, Cn as hasProjects, Dn as initializeProjectsConfigSync, En as initializeProjectsConfig, Fn as renameProject, Gn as unregisterProject, Hn as saveProjectsConfigSync, In as renameProjectSync, Kn as unregisterProjectSync, Ln as resolveInfraRepo, Nn as registerProject, On as listProjects, Pn as registerProjectSync, Rn as resolveProjectFromIssue, Sn as getSpecialistRetention, Tn as init_projects, Un as setProjectAutoMergeDefaultSync, Vn as saveProjectsConfig, Wn as setProjectSwarmPolicySync, _n as getProject, bn as getSpecialistConfig, cn as ProjectRenameError, dn as findProjectByPath, fn as findProjectByPathSync, gn as getIssuePrefix, hn as findProjectsByRallyProject, jn as loadProjectsConfigSync, kn as listProjectsSync, ln as createDefaultProjectsConfig, mn as findProjectByTeamSync, pn as findProjectByTeam, sn as PROJECTS_CONFIG_FILE, un as extractTeamPrefix, vn as getProjectSwarmHotspots, wn as hasProjectsSync, xn as getSpecialistPromptOverride, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
|
|
2
|
+
init_projects();
|
|
3
|
+
export { PROJECTS_CONFIG_FILE, ProjectRenameError, createDefaultProjectsConfig, extractTeamPrefix, findProjectByPath, findProjectByPathSync, findProjectByTeam, findProjectByTeamSync, findProjectsByRallyProject, getIssuePrefix, getProject, getProjectSwarmHotspots, getProjectSync, getSpecialistConfig, getSpecialistPromptOverride, getSpecialistRetention, hasProjects, hasProjectsSync, initializeProjectsConfig, initializeProjectsConfigSync, listProjects, listProjectsSync, loadProjectsConfig, loadProjectsConfigSync, registerProject, registerProjectSync, renameProject, renameProjectSync, resolveInfraRepo, resolveProjectFromIssue, resolveProjectFromIssueSync, resolveProjectPath, saveProjectsConfig, saveProjectsConfigSync, setProjectAutoMergeDefaultSync, setProjectSwarmPolicySync, unregisterProject, unregisterProjectSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { h as jsYaml, m as init_js_yaml } from "./config-yaml-
|
|
2
|
+
import { h as jsYaml, m as init_js_yaml } from "./config-yaml-DvyMuOle.js";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
import { existsSync, readFileSync } from "fs";
|
|
5
5
|
import { dirname, join } from "path";
|
|
@@ -669,4 +669,4 @@ var init_prompts = __esmMin((() => {
|
|
|
669
669
|
//#endregion
|
|
670
670
|
export { renderPrompt as n, init_prompts as t };
|
|
671
671
|
|
|
672
|
-
//# sourceMappingURL=prompts-
|
|
672
|
+
//# sourceMappingURL=prompts-Dp4Tpk39.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { i as init_paths, r as ensureParentDir, s as resolveIssueMemoryRoot } from "./paths-
|
|
3
|
-
import { o as getPricingSync, s as init_cost } from "./cost-
|
|
4
|
-
import { d as init_cost_sync, f as insertCostEventSync, m as queryMemoryExtractionCostUsdSync } from "./cost-sync-
|
|
5
|
-
import { n as CLIPROXY_BASE_URL, t as CLIPROXY_AUTH_TOKEN, v as init_cliproxy$1 } from "./cliproxy-
|
|
6
|
-
import { i as init_settings, s as loadMemorySettings } from "./settings-
|
|
2
|
+
import { i as init_paths, r as ensureParentDir, s as resolveIssueMemoryRoot } from "./paths-_zEts6wc.js";
|
|
3
|
+
import { o as getPricingSync, s as init_cost } from "./cost-Ca0YTWDw.js";
|
|
4
|
+
import { d as init_cost_sync, f as insertCostEventSync, m as queryMemoryExtractionCostUsdSync } from "./cost-sync-C0VdGme1.js";
|
|
5
|
+
import { n as CLIPROXY_BASE_URL, t as CLIPROXY_AUTH_TOKEN, v as init_cliproxy$1 } from "./cliproxy-Bgb2XCqi.js";
|
|
6
|
+
import { i as init_settings, s as loadMemorySettings } from "./settings-BZ5m1UCl.js";
|
|
7
7
|
import { join } from "path";
|
|
8
8
|
import { randomUUID } from "crypto";
|
|
9
9
|
import { readFile, writeFile } from "fs/promises";
|
|
@@ -8125,7 +8125,7 @@ async function readMemoryHealth(path) {
|
|
|
8125
8125
|
};
|
|
8126
8126
|
}
|
|
8127
8127
|
async function emitMemoryHealthChanged(payload, timestamp) {
|
|
8128
|
-
const { initEventStore } = await import("./event-store-
|
|
8128
|
+
const { initEventStore } = await import("./event-store-Cr5PQwFC.js");
|
|
8129
8129
|
await (await initEventStore()).appendAsync({
|
|
8130
8130
|
type: "memory.health_changed",
|
|
8131
8131
|
timestamp,
|
|
@@ -8232,4 +8232,4 @@ var init_providers = __esmMin((() => {
|
|
|
8232
8232
|
//#endregion
|
|
8233
8233
|
export { updateMemoryHealth as i, extractWithProviderPolicy as n, init_health as r, init_providers as t };
|
|
8234
8234
|
|
|
8235
|
-
//# sourceMappingURL=providers-
|
|
8235
|
+
//# sourceMappingURL=providers-DV7ec8l7.js.map
|