@overdeck/desktop 0.45.21 → 0.45.22
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-BH7ac_1G.js} +2 -2
- package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-cSvXNZLZ.js} +6 -6
- package/server/{agent-gc-D6PUckBB.js → agent-gc-Dj2gncak.js} +4 -4
- package/server/{agent-state-BV_6RHnO.js → agent-state-Co5Sy2Fw.js} +1 -1
- package/server/{agent-state-service-DHwemt96.js → agent-state-service-CsQ07Pxe.js} +1 -1
- package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-DistflNn.js} +5 -5
- package/server/{agents-DbrHWunF.js → agents-DXdHmRTC.js} +4 -4
- package/server/{agents-Czz6R57Z.js → agents-DyHKlq1I.js} +1 -1
- package/server/{archive-planning-BOnwJq8M.js → archive-planning-BvDuWNMo.js} +5 -5
- package/server/{archive-planning-MPpvQJL4.js → archive-planning-Cp_DC1j-.js} +1 -1
- package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-CDBFL4OU.js} +2 -2
- package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-DmA1IbYf.js} +3 -3
- package/server/{behavior-Dg-D8eBG.js → behavior-CGj16clS.js} +2 -2
- package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-C12WgkaB.js} +2 -2
- package/server/{build-info-Cv6CI7Gu.js → build-info-BRpqQvNd.js} +1 -1
- package/server/{build-info-27NlbKhV.js → build-info-NU3KbXYw.js} +3 -3
- package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-CTPjAmtH.js} +2 -2
- package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-rOgT98WY.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-DwZqT2qQ.js → checkpoints-B5jFNi2G.js} +1 -1
- package/server/{checkpoints-Vh-J15ge.js → checkpoints-BJum14fs.js} +2 -2
- package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-BhwWK-TQ.js} +1 -1
- package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-D7p5WcKZ.js} +2 -2
- package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-nSFKH78M.js} +2 -2
- package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-BI_UIke0.js} +2 -2
- package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-DHBwjS1X.js} +1 -1
- package/server/cli-BRORS9qY.js +3 -0
- package/server/{cli-mvpEOb3w.js → cli-CbKNkFE5.js} +9 -9
- package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Brf_5MuG.js} +2 -2
- package/server/{cliproxy-7g1nObvB.js → cliproxy-bONZDBbC.js} +1 -1
- package/server/{close-issue-8F6uawYj.js → close-issue-CxReRxIc.js} +5 -5
- package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-CQ3kqha7.js} +9 -9
- package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-DXP2Xyv3.js} +1 -1
- package/server/{codex-D_UBEOwL.js → codex-CbmztVcc.js} +9 -6
- package/server/{codex-BBeZ8c3s.js → codex-DNyiQDKW.js} +1 -1
- package/server/{codex-parser-BTzlOZiV.js → codex-parser-jl8AeAmB.js} +2 -2
- package/server/{config-nAB_F-Gp.js → config-BJKocXKd.js} +1 -1
- package/server/{config-G1TOMJZA.js → config-DeTsoZdR.js} +2 -2
- package/server/{config-CrduXs4a.js → config-q4Gvd8dq.js} +2 -2
- package/server/{config-yaml-Ciyp2mYe.js → config-yaml-ig8Nwtiw.js} +124 -27
- package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CFqPVxEg.js} +3 -3
- package/server/{conflict-gate-BKalpcjL.js → conflict-gate-CHU9K1vU.js} +1 -1
- package/server/{context-layers-Cg9ZgVfx.js → context-layers-15gDOk20.js} +3 -3
- package/server/{context-layers-YNpf6Q_I.js → context-layers-DlQKkHH2.js} +2 -2
- package/server/{control-settings-D_79A6gp.js → control-settings-D_odMIaC.js} +4 -4
- package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-B6YSRLda.js} +8 -8
- package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-CN4-5YYt.js} +1 -1
- package/server/{conversation-service-DQybSPUK.js → conversation-service-C3avRVEr.js} +6 -6
- package/server/{conversation-service-CWk8mEym.js → conversation-service-Dq33SYEj.js} +1 -1
- package/server/{conversations-BJ-t3BRm.js → conversations-H9if0bCQ.js} +1 -1
- package/server/{conversations-BUgGvqVL.js → conversations-bYpM9-kZ.js} +4 -4
- package/server/{cost-Drm7qeD5.js → cost-Codk1pc2.js} +2 -2
- package/server/{cost-sync-DzHP6zaR.js → cost-sync-D_cre6WM.js} +3 -3
- package/server/{cost-jJ2cgDcG.js → cost-wH46-WsJ.js} +3 -3
- package/server/{dag-DIji6O2b.js → dag-CJpgf9A3.js} +2 -2
- package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-D6AF-Hg_.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-pleYrvIm.js → deacon-B8HbQdqU.js} +3 -3
- package/server/{deacon-1s7bM5zn.js → deacon-CkT_kznS.js} +1377 -407
- package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-D6K9K-rE.js} +3 -3
- package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-BryRr6AO.js} +13 -13
- package/server/deacon-swarm-CV54eNmU.js +2 -0
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-1IrZxicY.js} +6 -6
- package/server/{deploy-window-ClLq1RYf.js → deploy-window-7ZYHh7Zp.js} +1 -1
- package/server/{deploy-window-jw4S_Y-c.js → deploy-window-wDf4UgHt.js} +6 -6
- package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-C7p9kEpc.js} +2 -2
- package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CNmQy0pL.js} +3 -3
- package/server/{dist-yfR7G1BL.js → dist-D-Ed5yVw.js} +1 -1
- package/server/dist-j64RzSrQ.js +3 -0
- package/server/{docker-ClwPQaba.js → docker-BCZ89M9X.js} +2 -2
- package/server/{dod-BLphkhjs.js → dod-DbJLYcHv.js} +1 -1
- package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-Cs6W9Yzj.js} +1 -1
- package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-V5JWaAva.js} +4 -4
- package/server/{esm-shims-BZw-fTQ6.js → esm-shims-dTeNdq7X.js} +1 -1
- package/server/{event-store-DABarGNz.js → event-store-CpBGsO6_.js} +1 -1
- package/server/{event-store-BVnON3vf.js → event-store-TnWdydfB.js} +3 -3
- package/server/{events-CmERlnwn.js → events-DSUdR-04.js} +3 -3
- package/server/{events-LGeUehYW.js → events-Dsuv6qyB.js} +1 -1
- package/server/{factory-CQNprtHe.js → factory-BMrK4TrE.js} +4 -4
- package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B-CI9hgE.js} +4 -4
- package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-B972ph_A.js} +2 -2
- package/server/{features--fOza5g5.js → features-Bc-Bmiye.js} +2 -2
- package/server/{feedback-target-Dn9vfPpz.js → feedback-target-DS6NUuSs.js} +1 -1
- package/server/{feedback-target-Dqik2WTe.js → feedback-target-DZ-iAnAa.js} +7 -7
- package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-BXP6g75N.js} +4 -4
- package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-Bx5z11mF.js} +1 -1
- package/server/{flywheel-DPUc8r3V.js → flywheel-6WHU4O7A.js} +14 -14
- package/server/{flywheel-1Wd8WDlh.js → flywheel-COR0mbRI.js} +12 -12
- package/server/{flywheel-Q-38YhZG.js → flywheel-Ctr5uuvo.js} +1 -1
- package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-CNKAY489.js} +1 -1
- package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-CTgHeg-W.js} +7 -7
- package/server/forge-B0_opi-V.js +2 -0
- package/server/{forge-DBbDpiYc.js → forge-B1S_KZv4.js} +2 -2
- package/server/{from-hh6vTBGl.js → from-DpwQ-sc3.js} +1 -1
- package/server/{fts-db-6ponMie2.js → fts-db-DmAcuCkV.js} +2 -2
- package/server/{fts-operations-KIRK165y.js → fts-operations-7d_RkmWp.js} +2 -2
- package/server/git-utils-Cc3FHDKd.js +198 -0
- package/server/{git-utils-DmF5xkj8.js → git-utils-CsKGnzFA.js} +1 -1
- package/server/{github-app-B3yfECo8.js → github-app-CDPtGF7J.js} +2 -2
- package/server/{github-app-CeSVFL6C.js → github-app-CU14oYzP.js} +1 -1
- package/server/{github-client-4A6FgA8O.js → github-client-CwBZZ3t7.js} +1 -1
- package/server/{github-client-Dslipypz.js → github-client-XjTJbBm7.js} +2 -2
- package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-CFGeVhqv.js} +2 -2
- package/server/harness-binary-B2CTcD84.js +106 -0
- package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-D5FVQTmy.js} +9 -15
- package/server/{health-events-CnwV_SSz.js → health-events-C1whmd58.js} +1 -1
- package/server/{health-events-CZGZ5I-A.js → health-events-DREeevle.js} +2 -2
- package/server/{hooks-DvX33gY_.js → hooks-B-HItBiS.js} +1 -1
- package/server/{hooks-CoNscX84.js → hooks-yxRsjk-z.js} +2 -2
- package/server/hume-BmhvfVbV.js +3 -0
- package/server/{hume-DSJt5eA_.js → hume-Dz_OymXE.js} +2 -2
- package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-DrCv0OAG.js} +1 -1
- package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-Yf34xXxY.js} +2 -2
- package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-BoWm66Kh.js} +2 -2
- package/server/{infra-DN2wSxle.js → infra-D4iNWMA5.js} +4 -4
- package/server/{injection-DK9zh_HL.js → injection-BVNa4MQW.js} +1 -1
- package/server/{injection-DtlT8Akv.js → injection-D7T75Pye.js} +7 -7
- package/server/{inspect-agent-DKByUS_F.js → inspect-agent-BXCgNeZ4.js} +13 -9
- package/server/inspect-agent-Dq0z1k3H.js +2 -0
- package/server/{internal-token-7bYL5v6K.js → internal-token-C9DdEOKY.js} +1 -1
- package/server/{internal-token-DhfFiwW7.js → internal-token-CXsfxslp.js} +2 -2
- package/server/{io-BiM-7Zsx.js → io-DQR9PMgS.js} +3 -3
- package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-DtmJM0D0.js} +7 -7
- package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-8PSS9Anq.js} +1 -1
- package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CeyW_HoD.js} +21 -21
- package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DBZabEl7.js} +1 -1
- package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-D_RVYBuL.js} +8 -8
- package/server/{issues-XYtFMxrH.js → issues-pDW9VUNz.js} +2 -2
- package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-C3HVNR5d.js} +3 -3
- package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-DPwiZlWo.js} +3 -3
- package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-Df1ZduPH.js} +4 -4
- package/server/{launcher-generator-5DJRiovn.js → launcher-generator-COgR2By1.js} +6 -6
- package/server/{layers-cZx7ibtV.js → layers-Cp1To4L8.js} +2 -2
- package/server/{lifecycle-CE7619Xw.js → lifecycle-CtPDcZ9u.js} +6 -6
- package/server/{lifecycle-io-CUpsxG0p.js → lifecycle-io-DmY2qwCn.js} +1 -1
- package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-taIb0PoH.js} +4 -4
- package/server/{linear-client-BLyN-NiP.js → linear-client-DsFkIxee.js} +2 -2
- package/server/{linear-client-Bj1l4FOA.js → linear-client-YwZMDIwQ.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-CwX2_AWm.js → merge-BwsyNRJV.js} +1 -1
- package/server/{merge-hSC2BENe.js → merge-C1t-bspg.js} +3 -3
- package/server/{merge-agent-CnORPiri.js → merge-agent-B-SnXOoc.js} +1 -1
- package/server/{merge-agent-DnBsms_V.js → merge-agent-DDiIjzk-.js} +369 -213
- package/server/{merge-batch-C2w2U2eK.js → merge-batch-Byt-QnEl.js} +1 -1
- package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BYjeXrVN.js} +2 -2
- package/server/merge-ops-DwWCkSgo.js +2 -0
- package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-Cm6fXaZN.js} +2 -2
- package/server/{merge-set-DHkzPCJU.js → merge-set-6LEglm6o.js} +1 -1
- package/server/{merge-set-D7YNU1ZB.js → merge-set-DiISXcC-.js} +3 -3
- package/server/{merge-sync-CpGA9Kg7.js → merge-sync-B95_4in_.js} +1 -1
- package/server/{merge-sync-De1FYva5.js → merge-sync-Do8_q32h.js} +2 -2
- package/server/{merge-train-SvkRJZ-k.js → merge-train-CKana8EH.js} +3 -3
- package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-BgmqwIfA.js} +4 -4
- package/server/{merge-verification-B3meGcXF.js → merge-verification-CqnUzGEK.js} +4 -4
- package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-tdOQDJ3o.js} +2 -2
- package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-BWOSZjWd.js} +1 -1
- 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-DSvsJ5M7.js} +1 -1
- package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-xklgvNA7.js} +19 -12
- package/server/package-lock.json +6 -6
- package/server/package.json +1 -1
- package/server/{pan-dir-Rw17YjT1.js → pan-dir-DOcf6ug3.js} +4 -4
- package/server/{paths-FP8v3lTz.js → paths-DooHpt9p.js} +2 -2
- package/server/{pickup-xi3KTLaJ.js → pickup-CaskQ7j6.js} +2 -2
- package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-1LGRjo-k.js} +11 -8
- package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-B6FVsYF9.js} +2 -2
- package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-CZsrU_nj.js} +1 -1
- package/server/{project-pipelines-B59NfN44.js → project-pipelines-CtNG_rvs.js} +2 -2
- package/server/projects-BKkwpH6q.js +3 -0
- package/server/{prompts-CbqaVjbe.js → prompts-EvhMeeHG.js} +2 -2
- package/server/{providers-d3pwXGVE.js → providers-BDDPULlp.js} +7 -7
- package/server/providers-DNSQqy2V.js +3 -0
- package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-sym_ufXe.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-CQJPBNBu.js} +1 -1
- package/server/public/assets/{dist-DQNg4CiF.js → dist-Bio7THQU.js} +1 -1
- package/server/public/assets/{dist-CLSlc6cV.js → dist-DukGS2YZ.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-D4lWwte3.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-CaLboCt5.js} +1 -1
- package/server/public/assets/{index-C6NLz_1S.css → index-Bdc4V9ba.css} +1 -1
- package/server/public/assets/{index-SLYGA8AQ.js → index-Bwejq-5s.js} +147 -145
- package/server/public/assets/{linear-6Fi3qnGg.js → linear-qUWmMZ-c.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-C4zYulEm.js} +1 -1
- package/server/public/assets/{prod-ojHllFvN.js → prod-C8VtLuWC.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-qP04zyZC.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eMPTX_cG.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-Dme1PIt6.js} +1 -1
- package/server/public/index.html +54 -10
- package/server/{pull-requests-CjjPj7v6.js → pull-requests-8z2N1UOV.js} +3 -3
- package/server/{pull-requests-D3N6HQzI.js → pull-requests-By_BteaL.js} +1 -1
- package/server/{queries-B5hl7lMQ.js → queries-ZABd5aXP.js} +95 -71
- package/server/rally-OSJXdiHK.js +3 -0
- package/server/{rally-api-DGaFz5L5.js → rally-api-DqKqIMNR.js} +2 -2
- package/server/{rally-api-CKr0O4DJ.js → rally-api-xHazRk0d.js} +1 -1
- package/server/{rally-client-Cqf6EX_r.js → rally-client-CGWEHaPd.js} +1 -1
- package/server/{rally-client-SVbjGvqj.js → rally-client-COYz1vYR.js} +4 -4
- package/server/{rally-Dp0Gb1DN.js → rally-i_goYmiA.js} +3 -3
- package/server/reap-terminal-sessions-CaMkFOIH.js +4 -0
- package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-DG9eiMVz.js} +11 -28
- package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-CKjJAI8L.js} +1 -1
- package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-JUm0jqYP.js} +6 -6
- package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-wU79aCee.js} +6 -6
- package/server/record-rwK-nKv_.js +3 -0
- package/server/{record-update-RviRDSNs.js → record-update-Crz74r-6.js} +2 -2
- package/server/{record-update-BlB8mpKO.js → record-update-D3N6WMFR.js} +1 -1
- package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-DkzJSej9.js} +2 -2
- package/server/{release-engine-CSI4K6Oj.js → release-engine-DMINVN8S.js} +5 -5
- package/server/{release-set-BywwggrE.js → release-set-DeUSOEHy.js} +3 -3
- package/server/{remote-DYziAkiZ.js → remote-Dr5kGYSZ.js} +3 -3
- package/server/{remote-agents-CZ2rc8I0.js → remote-agents-Ct_WOyke.js} +6 -6
- package/server/{remote-agents-BNORDWAX.js → remote-agents-D6O_zETW.js} +1 -1
- package/server/{remote-cnoeuDWn.js → remote-b-c5bOce.js} +3 -3
- package/server/{remote-completion-W67FNQ-A.js → remote-completion-Dca3hAaa.js} +13 -13
- package/server/resume-wZZsWtzz.js +3 -0
- package/server/{review-agent-CSswH985.js → review-agent-CCum8sGe.js} +1 -1
- package/server/{review-agent-CqSqSHkU.js → review-agent-CThvgK2r.js} +23 -23
- package/server/{review-artifacts-BBgnd5df.js → review-artifacts-CXywD0F2.js} +5 -5
- package/server/{review-context-Ctp9BdNJ.js → review-context-OYfKUprb.js} +8 -8
- package/server/{review-status-DXeqFpk5.js → review-status-Bnh-rdkY.js} +1 -1
- package/server/{review-status-CCgPVK1h.js → review-status-DFRjDFef.js} +21 -37
- package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-crNAtIpL.js} +3 -3
- package/server/review-status-source-CxuEjLGg.js +39 -0
- package/server/{review-status-sync-C792ksoJ.js → review-status-sync-D60PJWNL.js} +1 -1
- package/server/{review-status-sync-jnLgd04F.js → review-status-sync-DpAMD_WO.js} +2 -2
- package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CpUZl5aE.js} +7 -7
- package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-JImjut0z.js} +1 -1
- package/server/{rollup-B3kQmNpl.js → rollup-CZ02qgxk.js} +1 -1
- package/server/{rollup-CLj_AK9f.js → rollup-SyuF09e4.js} +8 -8
- package/server/{scanner-C4NeC4FE.js → scanner-Br0Z5S6R.js} +7 -7
- package/server/{sequence-io-Ce-6grIY.js → sequence-io-fxU0DlwW.js} +4 -4
- package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-B5YC5XVP.js} +5 -5
- package/server/server.js +583 -387
- package/server/{service-CqAY8Kmk.js → service-Bagb90KZ.js} +150 -47
- package/server/{session-fork-uNo4rMRA.js → session-fork-BqQxd-V6.js} +2 -2
- package/server/{session-history-DUehL3KN.js → session-history-XdS0JKp3.js} +4 -4
- package/server/{settings-DP2OYLXL.js → settings-BNbocWOg.js} +3 -3
- package/server/settings-BlUsVaUc.js +2 -0
- package/server/{settings-D9grjmaP.js → settings-uLc6DEYI.js} +2 -2
- package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-D4X_s3fA.js} +3 -3
- package/server/{shadow-state-a_ztFBJe.js → shadow-state-C_NkP-sa.js} +2 -2
- package/server/{shadow-state-CDxEuPlE.js → shadow-state-CbvsN3qG.js} +1 -1
- package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-CYMRPeRT.js} +2 -2
- package/server/{ship-log-DDcueaIR.js → ship-log-__QtAFXG.js} +1 -1
- package/server/{smart-compaction--Oj65Uov.js → smart-compaction-CLZOWin1.js} +7 -7
- package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-jdMkG1vo.js} +1 -1
- package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-8D6mE033.js} +1 -1
- package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-D5OXo8pT.js} +19 -15
- package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-CqmduO92.js} +1 -1
- package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-CJ-QjFR-.js} +5 -5
- package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-Dnjlwt7g.js} +2 -2
- package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-CQnKzuZs.js} +3 -3
- package/server/{specialists-DAegTvRt.js → specialists-Bg9v4z3F.js} +122 -94
- package/server/{specialists-CYRwELzc.js → specialists-CwZHb5cb.js} +18 -18
- package/server/{specialists-D0VBf8g_.js → specialists-D0gGXMZx.js} +1 -1
- package/server/{specialists-C6WkeKFK.js → specialists-Dqe6_HE5.js} +1 -1
- package/server/specs-BhOKBzqk.js +3 -0
- package/server/{src-OLoJhUiJ.js → src-BMMoA_ba.js} +6 -6
- package/server/{src-BqTcrfO_.js → src-Bqdtd6po.js} +3 -3
- package/server/{src-Dpq1yFIl.js → src-k039WVYY.js} +337 -4
- package/server/{stack-health-I713ELld.js → stack-health-Bd06frFn.js} +1 -1
- package/server/{stack-health-DV_f-lK0.js → stack-health-C-ifC7b0.js} +2 -2
- package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-L7pJkQFL.js} +4 -4
- package/server/{staleness-BbsGxmF2.js → staleness-BID1BKdr.js} +1 -1
- package/server/{staleness-zGp4P1hd.js → staleness-_Tr-GwdA.js} +1 -1
- package/server/{state-home-DixkE-up.js → state-home-CONQvZR0.js} +36 -23
- package/server/state-migrate-BeBW0KXA.js +478 -0
- package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CKnIryGT.js} +20 -18
- package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-CsGD5Ksb.js} +1 -1
- package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-CpIZILj9.js} +3 -3
- package/server/{summary-fork-CdLn8Chr.js → summary-fork-agEMsPSo.js} +2 -2
- package/server/{summary-fork-f3DpgjXh.js → summary-fork-bX6ax6X7.js} +8 -8
- package/server/supervisor-COVHrBTg.js +2 -0
- package/server/{supervisor-Ch8CDuoF.js → supervisor-Ctt4eRYz.js} +3 -3
- package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-DdmJVX7y.js} +3 -3
- package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-DSXBvffY.js} +24 -44
- package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-DDCf5n-a.js} +15 -15
- package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-BJZ9Nfcc.js} +6 -6
- package/server/{test-verdict-BRiSu7eW.js → test-verdict-Cp5tljlJ.js} +1 -1
- package/server/{test-verdict-BQ1yx7d4.js → test-verdict-D_-sXIz_.js} +1 -1
- package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-B8_oT5gx.js} +1 -1
- package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BQFmmFp0.js} +2 -2
- package/server/{tmux-HQLgwo_C.js → tmux-BAvtac_u.js} +1 -1
- package/server/{tmux-y1blSxks.js → tmux-L5LgvGLp.js} +2 -2
- package/server/{token-LUrbM9sU.js → token-BkQLy4yS.js} +2 -2
- package/server/token-util-BArZLN6w.js +3 -0
- package/server/{token-util-BZaDAQ8S.js → token-util-DI8sGlmF.js} +1 -1
- package/server/{tracker-config-DSFZBdXP.js → tracker-config-DdT-nUAM.js} +2 -2
- package/server/{tracker-utils-DiceZN3a.js → tracker-utils-CawsPSS2.js} +2 -2
- package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-DV3h1FYG.js} +1 -1
- package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-C6mJckNs.js} +1 -1
- package/server/{tunnel-WcJImbAC.js → tunnel-BIFl98rc.js} +1 -1
- package/server/{tunnel-DTng1rfQ.js → tunnel-IdK1iTHx.js} +3 -3
- package/server/{types-BjaZ1oqH.js → types-7-GnJn0t.js} +1 -1
- package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
- package/server/{uat-train-Wismge7h.js → uat-train-0Ujk8GCv.js} +1 -1
- package/server/{uat-train-BpLnp7Cx.js → uat-train-j0cPeMSj.js} +25 -25
- package/server/{validation-BA4e5EGm.js → validation-CabEISJT.js} +4 -4
- package/server/{validation-CUWamZ4X.js → validation-DcAgXTQp.js} +1 -1
- package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BuTA1QbL.js} +1 -1
- package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-Ck1tefmz.js} +1 -1
- package/server/{verification-runner-Dcksl_P-.js → verification-runner-DlJezzef.js} +1 -1
- package/server/{verification-runner-gAzh3cVD.js → verification-runner-FiuAZ-H2.js} +15 -14
- package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-BnRsYzcz.js} +1 -1
- package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-DLthEPAq.js} +12 -11
- package/server/{workflows-B8ROFlfw.js → workflows-BZNNYkGC.js} +18 -18
- package/server/workflows-C4mR0Reb.js +2 -0
- package/server/{workspace-DSjUJaJN.js → workspace-3IC-UkAi.js} +1 -1
- package/server/{workspace-DhTDA8nB.js → workspace-D9ppycdg.js} +3 -3
- package/server/{workspace-config-BAAsAv-o.js → workspace-config-Bigl_-Lk.js} +1 -1
- package/server/{workspace-manager-CcujONCR.js → workspace-manager-B1WOfKvB.js} +1 -1
- package/server/{workspace-manager-DsN52IMG.js → workspace-manager-ClkCIWTe.js} +13 -13
- package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-BE0efUv_.js} +1 -1
- package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-tiSRIWJP.js} +2 -2
- package/server/{workspaces-Dmlh1YXm.js → workspaces-CFPcL0vl.js} +96 -96
- package/sync-sources/skills/pan-start/SKILL.md +23 -0
- package/server/cli-ChErG518.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/merge-ops-BpTtuO8x.js +0 -2
- package/server/projects-IRHJIPYC.js +0 -3
- package/server/providers-BqCdTryq.js +0 -3
- 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-us0YECMO.js +0 -3
- package/server/resume-OyN3dEXE.js +0 -3
- package/server/settings-BaPXXJsT.js +0 -2
- package/server/specs-BsNcum0h.js +0 -3
- package/server/state-migrate-_zJJ6XKE.js +0 -362
- package/server/supervisor-Qy1QecAs.js +0 -2
- package/server/token-util-Cg-QnowA.js +0 -3
- package/server/workflows-C5c-RPsY.js +0 -2
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { Or as init_errors, vr as FsError, yr as GitError } from "./config-yaml-Ciyp2mYe.js";
|
|
3
|
-
import { Effect } from "effect";
|
|
4
|
-
import { existsSync, readdirSync, unlinkSync } from "fs";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
import { exec } 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
|
-
/**
|
|
13
|
-
* Check if any git processes are currently running in a specific repository
|
|
14
|
-
*
|
|
15
|
-
* This checks if there are git processes with the repository path in their command line.
|
|
16
|
-
* If we can't determine repository-specific processes, we conservatively return false
|
|
17
|
-
* (no processes detected) to allow cleanup to proceed.
|
|
18
|
-
*/
|
|
19
|
-
async function hasRunningGitProcesses(repoPath) {
|
|
20
|
-
try {
|
|
21
|
-
try {
|
|
22
|
-
const { stdout } = await execAsync(`fuser "${join(repoPath, ".git")}" 2>/dev/null`, { encoding: "utf-8" });
|
|
23
|
-
return stdout.trim().length > 0;
|
|
24
|
-
} catch {
|
|
25
|
-
try {
|
|
26
|
-
const { stdout } = await execAsync(`ps aux | grep -E "git.*${repoPath.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}" | grep -v grep`, { encoding: "utf-8" });
|
|
27
|
-
return stdout.trim().length > 0;
|
|
28
|
-
} catch {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
} catch {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Find all git lock files in a repository
|
|
38
|
-
*/
|
|
39
|
-
function findGitLockFiles(repoPath) {
|
|
40
|
-
const lockFiles = [];
|
|
41
|
-
const indexLock = join(repoPath, ".git", "index.lock");
|
|
42
|
-
if (existsSync(indexLock)) lockFiles.push(indexLock);
|
|
43
|
-
const refsDir = join(repoPath, ".git", "refs");
|
|
44
|
-
if (existsSync(refsDir)) {
|
|
45
|
-
const findLocksRecursive = (dir) => {
|
|
46
|
-
const entries = readdirSync(dir, { withFileTypes: true });
|
|
47
|
-
for (const entry of entries) {
|
|
48
|
-
const fullPath = join(dir, entry.name);
|
|
49
|
-
if (entry.isDirectory()) findLocksRecursive(fullPath);
|
|
50
|
-
else if (entry.name.endsWith(".lock")) lockFiles.push(fullPath);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
try {
|
|
54
|
-
findLocksRecursive(refsDir);
|
|
55
|
-
} catch {}
|
|
56
|
-
}
|
|
57
|
-
return lockFiles;
|
|
58
|
-
}
|
|
59
|
-
async function cleanupStaleLocksPromise(repoPath) {
|
|
60
|
-
const result = {
|
|
61
|
-
found: [],
|
|
62
|
-
removed: [],
|
|
63
|
-
errors: []
|
|
64
|
-
};
|
|
65
|
-
const lockFiles = findGitLockFiles(repoPath);
|
|
66
|
-
result.found = lockFiles;
|
|
67
|
-
if (lockFiles.length === 0) return result;
|
|
68
|
-
if (await hasRunningGitProcesses(repoPath)) {
|
|
69
|
-
result.errors.push({
|
|
70
|
-
file: "N/A",
|
|
71
|
-
error: "Git processes are running - not safe to remove locks"
|
|
72
|
-
});
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
for (const lockFile of lockFiles) try {
|
|
76
|
-
unlinkSync(lockFile);
|
|
77
|
-
result.removed.push(lockFile);
|
|
78
|
-
} catch (error) {
|
|
79
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
80
|
-
result.errors.push({
|
|
81
|
-
file: lockFile,
|
|
82
|
-
error: msg
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
87
|
-
async function getWorkspaceGitInfoPromise(workspacePath) {
|
|
88
|
-
try {
|
|
89
|
-
const [headResult, branchResult] = await Promise.all([execAsync("git rev-parse HEAD", { cwd: workspacePath }), execAsync("git rev-parse --abbrev-ref HEAD", { cwd: workspacePath })]);
|
|
90
|
-
return {
|
|
91
|
-
HEAD: headResult.stdout.trim(),
|
|
92
|
-
branch: branchResult.stdout.trim()
|
|
93
|
-
};
|
|
94
|
-
} catch (err) {
|
|
95
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
96
|
-
throw new Error(`getWorkspaceGitInfo failed for ${workspacePath}: ${msg}`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
async function hasStaleLocksPromise(repoPath) {
|
|
100
|
-
if (findGitLockFiles(repoPath).length === 0) return false;
|
|
101
|
-
return !await hasRunningGitProcesses(repoPath);
|
|
102
|
-
}
|
|
103
|
-
var execAsync, cleanupStaleLocks, getWorkspaceGitInfo, hasStaleLocks;
|
|
104
|
-
var init_git_utils = __esmMin((() => {
|
|
105
|
-
init_errors();
|
|
106
|
-
execAsync = promisify(exec);
|
|
107
|
-
cleanupStaleLocks = (repoPath) => Effect.tryPromise({
|
|
108
|
-
try: () => cleanupStaleLocksPromise(repoPath),
|
|
109
|
-
catch: (cause) => new FsError({
|
|
110
|
-
path: repoPath,
|
|
111
|
-
operation: "cleanupStaleLocks",
|
|
112
|
-
cause
|
|
113
|
-
})
|
|
114
|
-
});
|
|
115
|
-
getWorkspaceGitInfo = (workspacePath) => Effect.tryPromise({
|
|
116
|
-
try: () => getWorkspaceGitInfoPromise(workspacePath),
|
|
117
|
-
catch: (cause) => new GitError({
|
|
118
|
-
command: ["rev-parse", "HEAD"],
|
|
119
|
-
stderr: cause instanceof Error ? cause.message : String(cause),
|
|
120
|
-
exitCode: -1,
|
|
121
|
-
cause
|
|
122
|
-
})
|
|
123
|
-
});
|
|
124
|
-
hasStaleLocks = (repoPath) => Effect.promise(() => hasStaleLocksPromise(repoPath));
|
|
125
|
-
}));
|
|
126
|
-
//#endregion
|
|
127
|
-
export { init_git_utils as i, getWorkspaceGitInfo as n, hasStaleLocks as r, cleanupStaleLocks as t };
|
|
128
|
-
|
|
129
|
-
//# sourceMappingURL=git-utils-Bkxzr1Xf.js.map
|
package/server/hume-BrA1tUuk.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { $n as resolveProjectFromIssueSync, An as getIssuePrefix, Bn as initializeProjectsConfig, Cn as createDefaultProjectsConfig, Dn as findProjectByTeam, En as findProjectByPathSync, Fn as getSpecialistPromptOverride, Gn as loadProjectsConfigSync, Hn as listProjects, In as getSpecialistRetention, Jn as registerProjectSync, Ln as hasProjects, Mn as getProjectSwarmHotspots, Nn as getProjectSync, On as findProjectByTeamSync, Pn as getSpecialistConfig, Qn as resolveProjectFromIssue, Rn as hasProjectsSync, Sn as ProjectRenameError, Tn as findProjectByPath, Un as listProjectsSync, Vn as initializeProjectsConfigSync, Wn as loadProjectsConfig, Xn as renameProjectSync, Yn as renameProject, Zn as resolveInfraRepo, ar as unregisterProject, er as resolveProjectPath, ir as setProjectSwarmPolicySync, jn as getProject, kn as findProjectsByRallyProject, nr as saveProjectsConfigSync, or as unregisterProjectSync, qn as registerProject, rr as setProjectAutoMergeDefaultSync, tr as saveProjectsConfig, wn as extractTeamPrefix, xn as PROJECTS_CONFIG_FILE, zn as init_projects } from "./config-yaml-Ciyp2mYe.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 +0,0 @@
|
|
|
1
|
-
import{C as e}from"./chunk-BO2N2NFS-BxYSL7J-.js";export{e as Mermaid};
|
package/server/rally-DGimSRBQ.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { a as selectAwaitingTestWorkSessions, c as selectNonMergedTerminalAdvancingSessions, r as isRoleTerminal, s as selectMergedWorkSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CjqRAGw7.js";
|
|
2
|
-
init_reap_terminal_sessions();
|
|
3
|
-
export { isRoleTerminal, selectAwaitingTestWorkSessions, selectMergedWorkSessions, selectNonMergedTerminalAdvancingSessions };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { $t as writeStatusOverride, At as init_record, Bt as writeCloseOutDodGate, Ct as ensureIssueRecord, Dt as getIssueRecordPathForWorkspace, Et as getIssueRecordPath, Ft as readIssueRecordSync, Gt as writeRecordDecisionsSync, Ht as writeIssueRecordForWorkspaceSync, It as readRecordContinueViewSync, Jt as writeRecordResumePoint, Kt as writeRecordHazards, Lt as resolveProjectForIssue, Mt as queueIssueRecordCommit, Nt as readIssueRecord, Ot as getIssueWorkspacePath, Pt as readIssueRecordForWorkspaceSync, Qt as writeRecordTieredExecutionOverrideSync, Rt as writeAgentHarnessModel, St as clearRecordFeedbackSync, Tt as getIssueRecordBasePath, Ut as writeIssueRecordSync, Vt as writeCloseOutDodGateSync, Wt as writeRecordDecisions, Xt as writeRecordScopeDriftSync, Yt as writeRecordResumePointSync, Zt as writeRecordTieredExecutionOverride, _t as appendSessionEntry, bt as claimIssueOwner, en as writeStatusOverrideSync, gt as appendFeedbackEntrySync, ht as appendFeedbackEntry, jt as markRecordPipelineClosedOutSync, kt as getProjectConfigFromWorkspacePath, mt as RECORD_SCHEMA_VERSION, pt as RECORD_DIRNAME, qt as writeRecordHazardsSync, tn as writeStatusOverridesSync, vt as appendSessionEntrySync, wt as ensureIssueRecordSync, xt as clearIssueOwner, yt as buildOwnUri, zt as writeAgentHarnessModelSync } from "./config-yaml-Ciyp2mYe.js";
|
|
2
|
-
init_record();
|
|
3
|
-
export { RECORD_DIRNAME, RECORD_SCHEMA_VERSION, appendFeedbackEntry, appendFeedbackEntrySync, appendSessionEntry, appendSessionEntrySync, buildOwnUri, claimIssueOwner, clearIssueOwner, clearRecordFeedbackSync, ensureIssueRecord, ensureIssueRecordSync, getIssueRecordBasePath, getIssueRecordPath, getIssueRecordPathForWorkspace, getIssueWorkspacePath, getProjectConfigFromWorkspacePath, markRecordPipelineClosedOutSync, queueIssueRecordCommit, readIssueRecord, readIssueRecordForWorkspaceSync, readIssueRecordSync, readRecordContinueViewSync, resolveProjectForIssue, writeAgentHarnessModel, writeAgentHarnessModelSync, writeCloseOutDodGate, writeCloseOutDodGateSync, writeIssueRecordForWorkspaceSync, writeIssueRecordSync, writeRecordDecisions, writeRecordDecisionsSync, writeRecordHazards, writeRecordHazardsSync, writeRecordResumePoint, writeRecordResumePointSync, writeRecordScopeDriftSync, writeRecordTieredExecutionOverride, writeRecordTieredExecutionOverrideSync, writeStatusOverride, writeStatusOverrideSync, writeStatusOverridesSync };
|
package/server/specs-BsNcum0h.js
DELETED
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
import { Nn as getProjectSync, Zn as resolveInfraRepo, an as init_auto_commit, cn as STATE_BRANCH_PATHS, dn as init_state_plane, hn as init_state_migration_lock, in as flushAutoCommits, mn as acquireStateMigrationLock, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
|
|
2
|
-
import { l as stateWorktreePath, n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER } from "./state-home-DixkE-up.js";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
-
import { tmpdir } from "node:os";
|
|
6
|
-
import { copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
7
|
-
import { execFile } from "node:child_process";
|
|
8
|
-
import { promisify } from "node:util";
|
|
9
|
-
import { createHash } from "node:crypto";
|
|
10
|
-
//#region ../../lib/state-migration-manifest.ts
|
|
11
|
-
init_projects();
|
|
12
|
-
init_state_migration_lock();
|
|
13
|
-
init_state_plane();
|
|
14
|
-
init_auto_commit();
|
|
15
|
-
init_state_home();
|
|
16
|
-
function manifestEntry(source, destination) {
|
|
17
|
-
const stat = lstatSync(source);
|
|
18
|
-
const bytes = readFileSync(source);
|
|
19
|
-
return {
|
|
20
|
-
source,
|
|
21
|
-
destination,
|
|
22
|
-
mode: stat.mode & 511,
|
|
23
|
-
size: stat.size,
|
|
24
|
-
sha256: createHash("sha256").update(bytes).digest("hex")
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function verifyStateMigrationManifest(entries) {
|
|
28
|
-
for (const expected of entries) {
|
|
29
|
-
const actual = manifestEntry(expected.destination, expected.destination);
|
|
30
|
-
if ((actual.mode & 64) !== (expected.mode & 64) || actual.size !== expected.size || actual.sha256 !== expected.sha256) throw new Error(`State migration no-loss mismatch: ${expected.source} -> ${expected.destination}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//#endregion
|
|
34
|
-
//#region ../../cli/commands/admin/state-migrate.ts
|
|
35
|
-
const execFileAsync = promisify(execFile);
|
|
36
|
-
async function git(cwd, args, env) {
|
|
37
|
-
const { stdout } = await execFileAsync("git", args, {
|
|
38
|
-
cwd,
|
|
39
|
-
env: {
|
|
40
|
-
...process.env,
|
|
41
|
-
...env
|
|
42
|
-
},
|
|
43
|
-
encoding: "utf8",
|
|
44
|
-
maxBuffer: 32 * 1024 * 1024
|
|
45
|
-
});
|
|
46
|
-
return stdout.trim();
|
|
47
|
-
}
|
|
48
|
-
function destinationForTracked(path) {
|
|
49
|
-
if (!path.startsWith(".pan/")) return null;
|
|
50
|
-
const flat = path.slice(5);
|
|
51
|
-
return STATE_BRANCH_PATHS.some((prefix) => flat.startsWith(prefix)) ? flat : null;
|
|
52
|
-
}
|
|
53
|
-
async function trackedManifest(repo, sourceSha, stateRoot) {
|
|
54
|
-
return (await git(repo, [
|
|
55
|
-
"ls-tree",
|
|
56
|
-
"-r",
|
|
57
|
-
"--name-only",
|
|
58
|
-
sourceSha,
|
|
59
|
-
"--",
|
|
60
|
-
".pan"
|
|
61
|
-
])).split("\n").filter(Boolean).flatMap((path) => {
|
|
62
|
-
const destination = destinationForTracked(path);
|
|
63
|
-
if (!destination) return [];
|
|
64
|
-
const source = join(repo, path);
|
|
65
|
-
const target = join(stateRoot, destination);
|
|
66
|
-
if (!existsSync(target)) {
|
|
67
|
-
mkdirSync(dirname(target), { recursive: true });
|
|
68
|
-
copyFileSync(source, target);
|
|
69
|
-
}
|
|
70
|
-
return [manifestEntry(source, target)];
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
async function createOrphanStateCommit(repo, sourceSha) {
|
|
74
|
-
const index = join(tmpdir(), `overdeck-state-index-${process.pid}-${Date.now()}`);
|
|
75
|
-
const env = { GIT_INDEX_FILE: index };
|
|
76
|
-
try {
|
|
77
|
-
await git(repo, ["read-tree", "--empty"], env);
|
|
78
|
-
const rows = (await git(repo, [
|
|
79
|
-
"ls-tree",
|
|
80
|
-
"-r",
|
|
81
|
-
sourceSha,
|
|
82
|
-
"--",
|
|
83
|
-
".pan"
|
|
84
|
-
])).split("\n").filter(Boolean);
|
|
85
|
-
for (const row of rows) {
|
|
86
|
-
const match = row.match(/^(\d+)\s+\w+\s+([0-9a-f]+)\t(.+)$/);
|
|
87
|
-
if (!match) continue;
|
|
88
|
-
const destination = destinationForTracked(match[3]);
|
|
89
|
-
if (destination) await git(repo, [
|
|
90
|
-
"update-index",
|
|
91
|
-
"--add",
|
|
92
|
-
"--cacheinfo",
|
|
93
|
-
`${match[1]},${match[2]},${destination}`
|
|
94
|
-
], env);
|
|
95
|
-
}
|
|
96
|
-
return await git(repo, [
|
|
97
|
-
"commit-tree",
|
|
98
|
-
await git(repo, ["write-tree"], env),
|
|
99
|
-
"-m",
|
|
100
|
-
"chore(state): seed overdeck-state"
|
|
101
|
-
]);
|
|
102
|
-
} finally {
|
|
103
|
-
rmSync(index, { force: true });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
function copyLegacyState(sourceRoot, stateRoot) {
|
|
107
|
-
const manifest = [];
|
|
108
|
-
for (const sourcePath of STATE_BRANCH_PATHS) {
|
|
109
|
-
const source = join(sourceRoot, ".pan", sourcePath);
|
|
110
|
-
if (!existsSync(source)) continue;
|
|
111
|
-
const destination = join(stateRoot, sourcePath);
|
|
112
|
-
cpSync(source, destination, {
|
|
113
|
-
recursive: true,
|
|
114
|
-
preserveTimestamps: true
|
|
115
|
-
});
|
|
116
|
-
const visit = (sourceDir, destinationDir) => {
|
|
117
|
-
for (const entry of readdirSync(sourceDir, { withFileTypes: true })) {
|
|
118
|
-
const sourceEntry = join(sourceDir, entry.name);
|
|
119
|
-
const destinationEntry = join(destinationDir, entry.name);
|
|
120
|
-
if (entry.isDirectory()) visit(sourceEntry, destinationEntry);
|
|
121
|
-
else if (entry.isFile()) manifest.push(manifestEntry(sourceEntry, destinationEntry));
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
visit(source, destination);
|
|
125
|
-
}
|
|
126
|
-
return manifest;
|
|
127
|
-
}
|
|
128
|
-
function hasNonStateDirtyState(porcelain) {
|
|
129
|
-
return porcelain.split("\n").filter(Boolean).some((line) => {
|
|
130
|
-
const path = line.slice(3).split(" -> ").at(-1) ?? "";
|
|
131
|
-
if (path === ".pan" || path.startsWith(".pan/")) return false;
|
|
132
|
-
return true;
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
function dedupeManifest(entries) {
|
|
136
|
-
return [...new Map(entries.map((entry) => [entry.destination, entry])).values()];
|
|
137
|
-
}
|
|
138
|
-
const GITIGNORE_MANAGED_LINES = [
|
|
139
|
-
"# PAN-2541: permanent state is on overdeck-state; workspace runtime stays local.",
|
|
140
|
-
".pan/",
|
|
141
|
-
".overdeck/continue.json",
|
|
142
|
-
".overdeck/spec.vbrief.json",
|
|
143
|
-
".overdeck/sessions.jsonl",
|
|
144
|
-
".overdeck/feedback/",
|
|
145
|
-
".overdeck/review/",
|
|
146
|
-
".overdeck/test/",
|
|
147
|
-
".overdeck/kickoff.md",
|
|
148
|
-
".overdeck/agent-mcp.json"
|
|
149
|
-
];
|
|
150
|
-
function rewriteGitignore(repo) {
|
|
151
|
-
const path = join(repo, ".gitignore");
|
|
152
|
-
const prior = existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
153
|
-
const managed = new Set([...GITIGNORE_MANAGED_LINES, ".overdeck/"]);
|
|
154
|
-
const kept = prior.split("\n").filter((line) => !managed.has(line.trim()));
|
|
155
|
-
while (kept.length > 0 && kept[kept.length - 1]?.trim() === "") kept.pop();
|
|
156
|
-
writeFileSync(path, [
|
|
157
|
-
...kept,
|
|
158
|
-
"",
|
|
159
|
-
...GITIGNORE_MANAGED_LINES,
|
|
160
|
-
""
|
|
161
|
-
].join("\n"));
|
|
162
|
-
}
|
|
163
|
-
async function migrateProjectState(projectKey, options = {}, projectOverride) {
|
|
164
|
-
const project = projectOverride ?? getProjectSync(projectKey);
|
|
165
|
-
if (!project) throw new Error(`Unknown project: ${projectKey}`);
|
|
166
|
-
const { repoPath: repo } = resolveInfraRepo(project);
|
|
167
|
-
const legacyStateSource = project.path;
|
|
168
|
-
const sourceIsHostRepo = legacyStateSource === repo;
|
|
169
|
-
const stateRoot = stateWorktreePath(project, { projectKey });
|
|
170
|
-
console.log(`PAN-2541 state migration plan for ${projectKey}:`);
|
|
171
|
-
console.log(` ${legacyStateSource}/.pan/{${STATE_BRANCH_PATHS.map((p) => p.slice(0, -1)).join(",")}} -> ${stateRoot}/`);
|
|
172
|
-
console.log(` ${legacyStateSource}/.pan/context -> ${legacyStateSource}/.overdeck/context`);
|
|
173
|
-
if (options.dryRun) return;
|
|
174
|
-
const release = acquireStateMigrationLock(projectKey);
|
|
175
|
-
try {
|
|
176
|
-
await Effect.runPromise(flushAutoCommits(repo));
|
|
177
|
-
if (hasNonStateDirtyState(await git(repo, ["status", "--porcelain"]))) throw new Error("Primary checkout is dirty outside legacy state paths; migration refused before mutation");
|
|
178
|
-
await git(repo, [
|
|
179
|
-
"fetch",
|
|
180
|
-
"--prune",
|
|
181
|
-
"origin"
|
|
182
|
-
]);
|
|
183
|
-
const sourceMainSha = await git(repo, ["rev-parse", "main"]);
|
|
184
|
-
if (sourceMainSha !== await git(repo, ["rev-parse", "origin/main"])) throw new Error("main is not exactly at origin/main; migration refused");
|
|
185
|
-
if (await git(repo, ["show", `origin/overdeck-state:migration-complete.json`]).catch(() => "")) {
|
|
186
|
-
console.log("State migration already complete on origin; nothing to do.");
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
let stateSha = await git(repo, ["rev-parse", STATE_BRANCH]).catch(() => "");
|
|
190
|
-
const remoteStateSha = await git(repo, ["rev-parse", `origin/${STATE_BRANCH}`]).catch(() => "");
|
|
191
|
-
if (stateSha && remoteStateSha && stateSha !== remoteStateSha) throw new Error("Local and remote overdeck-state diverged; refusing non-fast-forward migration");
|
|
192
|
-
if (!stateSha) {
|
|
193
|
-
stateSha = remoteStateSha || await createOrphanStateCommit(repo, sourceMainSha);
|
|
194
|
-
await git(repo, [
|
|
195
|
-
"update-ref",
|
|
196
|
-
`refs/heads/${STATE_BRANCH}`,
|
|
197
|
-
stateSha
|
|
198
|
-
]);
|
|
199
|
-
}
|
|
200
|
-
if (!remoteStateSha) await git(repo, [
|
|
201
|
-
"push",
|
|
202
|
-
"origin",
|
|
203
|
-
STATE_BRANCH
|
|
204
|
-
]);
|
|
205
|
-
if (!existsSync(stateRoot)) {
|
|
206
|
-
mkdirSync(dirname(stateRoot), { recursive: true });
|
|
207
|
-
await git(repo, [
|
|
208
|
-
"worktree",
|
|
209
|
-
"add",
|
|
210
|
-
stateRoot,
|
|
211
|
-
STATE_BRANCH
|
|
212
|
-
]);
|
|
213
|
-
}
|
|
214
|
-
const manifest = sourceIsHostRepo ? dedupeManifest([...await trackedManifest(repo, sourceMainSha, stateRoot), ...copyLegacyState(legacyStateSource, stateRoot)]) : copyLegacyState(legacyStateSource, stateRoot);
|
|
215
|
-
if (manifest.length > 0) {
|
|
216
|
-
await git(stateRoot, ["add", "--all"]);
|
|
217
|
-
if (await git(stateRoot, [
|
|
218
|
-
"diff",
|
|
219
|
-
"--cached",
|
|
220
|
-
"--name-only"
|
|
221
|
-
])) await git(stateRoot, [
|
|
222
|
-
"commit",
|
|
223
|
-
"-m",
|
|
224
|
-
"chore(state): seed legacy project state"
|
|
225
|
-
]);
|
|
226
|
-
await git(stateRoot, [
|
|
227
|
-
"push",
|
|
228
|
-
"origin",
|
|
229
|
-
STATE_BRANCH
|
|
230
|
-
]);
|
|
231
|
-
}
|
|
232
|
-
const untracked = sourceIsHostRepo ? (await git(repo, [
|
|
233
|
-
"ls-files",
|
|
234
|
-
"--others",
|
|
235
|
-
"--",
|
|
236
|
-
".pan"
|
|
237
|
-
])).split("\n").filter((path) => path.split("/").length === 2 && existsSync(join(repo, path)) && lstatSync(join(repo, path)).isFile()) : existsSync(join(legacyStateSource, ".pan")) ? readdirSync(join(legacyStateSource, ".pan"), { withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => `.pan/${entry.name}`) : [];
|
|
238
|
-
for (const path of untracked) {
|
|
239
|
-
if (!existsSync(join(legacyStateSource, path))) continue;
|
|
240
|
-
const destination = join(stateRoot, "notes", path.slice(5));
|
|
241
|
-
if (existsSync(destination)) {
|
|
242
|
-
if (!readFileSync(join(legacyStateSource, path)).equals(readFileSync(destination))) throw new Error(`Untracked-note destination collision: ${destination}`);
|
|
243
|
-
manifest.push(manifestEntry(join(legacyStateSource, path), destination));
|
|
244
|
-
continue;
|
|
245
|
-
}
|
|
246
|
-
mkdirSync(dirname(destination), { recursive: true });
|
|
247
|
-
copyFileSync(join(legacyStateSource, path), destination);
|
|
248
|
-
manifest.push(manifestEntry(join(legacyStateSource, path), destination));
|
|
249
|
-
}
|
|
250
|
-
if (untracked.length > 0) {
|
|
251
|
-
await git(stateRoot, ["add", "notes"]);
|
|
252
|
-
if (await git(stateRoot, [
|
|
253
|
-
"diff",
|
|
254
|
-
"--cached",
|
|
255
|
-
"--name-only"
|
|
256
|
-
])) await git(stateRoot, [
|
|
257
|
-
"commit",
|
|
258
|
-
"-m",
|
|
259
|
-
"chore(state): preserve untracked operator notes"
|
|
260
|
-
]);
|
|
261
|
-
await git(stateRoot, [
|
|
262
|
-
"push",
|
|
263
|
-
"origin",
|
|
264
|
-
STATE_BRANCH
|
|
265
|
-
]);
|
|
266
|
-
}
|
|
267
|
-
if (await git(repo, ["rev-parse", "main"]) !== sourceMainSha) throw new Error("main advanced during migration; refusing cleanup");
|
|
268
|
-
if (sourceIsHostRepo) await git(repo, [
|
|
269
|
-
"rm",
|
|
270
|
-
"-r",
|
|
271
|
-
"--cached",
|
|
272
|
-
"--ignore-unmatch",
|
|
273
|
-
".pan/records",
|
|
274
|
-
".pan/continues",
|
|
275
|
-
".pan/specs",
|
|
276
|
-
".pan/drafts",
|
|
277
|
-
".pan/review",
|
|
278
|
-
".pan/test",
|
|
279
|
-
".pan/feedback",
|
|
280
|
-
".pan/backlog",
|
|
281
|
-
".pan/notes"
|
|
282
|
-
]);
|
|
283
|
-
const oldContext = join(legacyStateSource, ".pan", "context");
|
|
284
|
-
const newContext = join(legacyStateSource, ".overdeck", "context");
|
|
285
|
-
let movedContext = false;
|
|
286
|
-
if (existsSync(oldContext) && !existsSync(newContext)) {
|
|
287
|
-
mkdirSync(dirname(newContext), { recursive: true });
|
|
288
|
-
renameSync(oldContext, newContext);
|
|
289
|
-
movedContext = true;
|
|
290
|
-
}
|
|
291
|
-
rewriteGitignore(legacyStateSource);
|
|
292
|
-
if (sourceIsHostRepo) {
|
|
293
|
-
if (await git(repo, [
|
|
294
|
-
"ls-files",
|
|
295
|
-
"--",
|
|
296
|
-
".pan/context"
|
|
297
|
-
])) await git(repo, [
|
|
298
|
-
"add",
|
|
299
|
-
"-u",
|
|
300
|
-
"--",
|
|
301
|
-
".pan/context"
|
|
302
|
-
]);
|
|
303
|
-
const addPaths = [".gitignore"];
|
|
304
|
-
if (movedContext || existsSync(newContext)) addPaths.push(".overdeck/context");
|
|
305
|
-
await git(repo, [
|
|
306
|
-
"add",
|
|
307
|
-
"--",
|
|
308
|
-
...addPaths
|
|
309
|
-
]);
|
|
310
|
-
if (await git(repo, [
|
|
311
|
-
"diff",
|
|
312
|
-
"--cached",
|
|
313
|
-
"--name-only"
|
|
314
|
-
])) await git(repo, [
|
|
315
|
-
"commit",
|
|
316
|
-
"-m",
|
|
317
|
-
"chore(state): move permanent state to overdeck-state"
|
|
318
|
-
]);
|
|
319
|
-
}
|
|
320
|
-
verifyStateMigrationManifest(manifest);
|
|
321
|
-
for (const entry of manifest) rmSync(entry.source, { force: true });
|
|
322
|
-
if (!sourceIsHostRepo) rmSync(join(legacyStateSource, ".pan"), {
|
|
323
|
-
recursive: true,
|
|
324
|
-
force: true
|
|
325
|
-
});
|
|
326
|
-
stateSha = await git(stateRoot, ["rev-parse", "HEAD"]);
|
|
327
|
-
writeFileSync(join(stateRoot, MIGRATION_COMPLETE_MARKER), `${JSON.stringify({
|
|
328
|
-
sourceMainSha,
|
|
329
|
-
stateBranchSha: stateSha,
|
|
330
|
-
completedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
331
|
-
version: 1
|
|
332
|
-
}, null, 2)}\n`);
|
|
333
|
-
await git(stateRoot, ["add", MIGRATION_COMPLETE_MARKER]);
|
|
334
|
-
await git(stateRoot, [
|
|
335
|
-
"commit",
|
|
336
|
-
"-m",
|
|
337
|
-
"chore(state): complete state migration"
|
|
338
|
-
]);
|
|
339
|
-
await git(repo, [
|
|
340
|
-
"push",
|
|
341
|
-
"--atomic",
|
|
342
|
-
"--dry-run",
|
|
343
|
-
"origin",
|
|
344
|
-
"main",
|
|
345
|
-
STATE_BRANCH
|
|
346
|
-
]);
|
|
347
|
-
await git(repo, [
|
|
348
|
-
"push",
|
|
349
|
-
"--atomic",
|
|
350
|
-
"origin",
|
|
351
|
-
"main",
|
|
352
|
-
STATE_BRANCH
|
|
353
|
-
]);
|
|
354
|
-
clearStateMigrationCache();
|
|
355
|
-
} finally {
|
|
356
|
-
release();
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
//#endregion
|
|
360
|
-
export { migrateProjectState };
|
|
361
|
-
|
|
362
|
-
//# sourceMappingURL=state-migrate-_zJJ6XKE.js.map
|