@overdeck/desktop 0.45.11 → 0.45.12
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/drizzle/overdeck/0000_overdeck_init.sql +6 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-l0DSvFFS.js → acceptance-criteria-1LHgD9vg.js} +2 -2
- package/server/{advancing-selfheal-BezNfM3P.js → advancing-selfheal-BqsLWqEM.js} +4 -4
- package/server/{agent-gc-BtAzj8QN.js → agent-gc-CUb52n7s.js} +3 -3
- package/server/{agent-state-BUANcaA7.js → agent-state-D-moNwhA.js} +1 -1
- package/server/{agent-state-service-DmFpIMbP.js → agent-state-service-BaZH7sXJ.js} +1 -1
- package/server/{agent-state-service-tXUdp6UF.js → agent-state-service-BzESvLOf.js} +4 -4
- package/server/{agents-C7V4odQ6.js → agents-B5LfpLPv.js} +256 -185
- package/server/{agents-C-vqmKDi.js → agents-C4kZ8a2r.js} +1 -1
- package/server/{archive-planning-B4Qi02bk.js → archive-planning-BbZe-8IK.js} +1 -1
- package/server/{archive-planning-zTvWWHG_.js → archive-planning-oX1pj6nY.js} +3 -3
- package/server/{artifact-index-jobs-BrByqVkB.js → artifact-index-jobs-DGr6bxev.js} +3 -3
- package/server/{auto-commit-DoIPFoEs.js → auto-commit-CGQlb4rV.js} +1 -1
- package/server/{backlog-auto-trigger-Cb8PR-5w.js → backlog-auto-trigger-BlJHikOm.js} +2 -2
- package/server/{bd-process-lock-CJkoG7hW.js → bd-process-lock-i3CYMS-B.js} +3 -3
- package/server/{beads-AmCXEv_E.js → beads-BNU-fb48.js} +1 -1
- package/server/{beads-DlZm-vrG.js → beads-DD7fYCl5.js} +4 -4
- package/server/{beads-query-BrVNWoSL.js → beads-query-e6oku4P5.js} +2 -2
- package/server/{behavior-By-2Wipv.js → behavior-CPf0pbOt.js} +2 -2
- package/server/{briefing-freshness-CXhZdnB8.js → briefing-freshness-B2FdLwIv.js} +27 -15
- package/server/{checkpoint-manager-CfNpHOp4.js → checkpoint-manager-JryW6MpM.js} +2 -2
- package/server/{checkpoint-manager-CPw51H2n.js → checkpoint-manager-eFgaMMu4.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BjlBWOA8.js → checkpoints-BK17oicz.js} +1 -1
- package/server/{checkpoints-BbfH1EIy.js → checkpoints-qvOqvMuC.js} +2 -2
- package/server/{claude-permissions-DrRAs_0F.js → claude-permissions-B6bWGh9d.js} +3 -3
- package/server/{claude-settings-overlay-CEWlIFL-.js → claude-settings-overlay-BPdhTPjo.js} +1 -1
- package/server/{claude-settings-overlay-BSeS7Ki3.js → claude-settings-overlay-CRyyKKXQ.js} +2 -2
- package/server/{cli-BgzbB6h3.js → cli-B75AieAM.js} +9 -9
- package/server/cli-Ch_BWJB2.js +3 -0
- package/server/{cliproxy-J-_1iIXe.js → cliproxy-CCzwuSNe.js} +2 -2
- package/server/{cliproxy-BOcmOK6l.js → cliproxy-DOQf66G9.js} +1 -1
- package/server/{close-issue-BWf3pxn4.js → close-issue-_X3MXJyG.js} +4 -4
- package/server/{closed-issue-reaper-D7XPq5pY.js → closed-issue-reaper-BsUfBSjM.js} +13 -13
- package/server/{closed-issue-reaper-VSTSTROK.js → closed-issue-reaper-CLR7ClsO.js} +1 -1
- package/server/{codex-DcInrhok.js → codex-B4KEpX5V.js} +5 -5
- package/server/{codex-BUZjrnqH.js → codex-CY-QRuU9.js} +1 -1
- package/server/{compact-beads-omhUgj5b.js → compact-beads-cZds2MTr.js} +1 -1
- package/server/{compact-beads-RFwdZFPA.js → compact-beads-uEDccC76.js} +3 -3
- package/server/{config-oWoKf5jO.js → config-8sjaU6jZ.js} +2 -2
- package/server/{config-CzcWQ24p.js → config-DARrpYWA.js} +1 -1
- package/server/{config-yaml-DPAieL_G.js → config-yaml-ClpGgrf6.js} +100 -99
- package/server/{conflict-gate-FFEvTDVA.js → conflict-gate-BtB_o-Vi.js} +3 -3
- package/server/{conflict-gate-DwOslTij.js → conflict-gate-Ds9_2yjd.js} +1 -1
- package/server/{context-layers-DxKsseHI.js → context-layers-CRCk1QG7.js} +2 -2
- package/server/{context-layers-CTjQwcEQ.js → context-layers-r2ywnQYA.js} +3 -3
- package/server/{control-settings-BMqUkXmR.js → control-settings-D1B3u6HP.js} +4 -4
- package/server/{conversation-compaction-CL5Ti4j4.js → conversation-compaction-CZRVk4hg.js} +1 -1
- package/server/{conversation-compaction-CCqN4hWk.js → conversation-compaction-D86Zo2Ci.js} +9 -9
- package/server/{conversation-service-WKl-sw58.js → conversation-service-CkL-6MuG.js} +1 -1
- package/server/{conversation-service-DvG8vZSV.js → conversation-service-CuTVU8dV.js} +5 -5
- package/server/{conversations-Dcx6LeIh.js → conversations-BmWEluPL.js} +1 -1
- package/server/{conversations-DL_BAWVk.js → conversations-DfJKBDwB.js} +5 -5
- package/server/{cost-C2CuA66z.js → cost-CCnqa5xK.js} +2 -2
- package/server/{cost-DaOG8sUB.js → cost-DAPYN6iA.js} +3 -3
- package/server/{cost-sync-8lkDeL9g.js → cost-sync-BDL10Nwu.js} +3 -3
- package/server/{dag-jH8ZkewR.js → dag-Dv2r5bVD.js} +3 -3
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-CGHl90eC.js → deacon-CM0MxbS8.js} +179 -179
- package/server/{deacon-DMPh40Im.js → deacon-DYnZH7kC.js} +3 -3
- package/server/{deacon-nudge-log-CJGA6aSQ.js → deacon-nudge-log-B-naf89q.js} +2 -2
- package/server/{deacon-swarm-aMMJTq6t.js → deacon-swarm-BstYoz8Q.js} +17 -17
- package/server/deacon-swarm-CSWGRfzr.js +2 -0
- package/server/deacon.js +7 -7
- package/server/{devcontainer-renderer-DUJYYRQB.js → devcontainer-renderer-CaYOG9JN.js} +2 -2
- package/server/{docker-Q4bphryk.js → docker-DDI1shu3.js} +2 -2
- package/server/{ensure-devcontainer-BCB6fHp9.js → ensure-devcontainer-CbSXvN9W.js} +1 -1
- package/server/{ensure-devcontainer-XLL0vtgV.js → ensure-devcontainer-DCAg3ksz.js} +3 -3
- package/server/{event-store-DTJXZjCl.js → event-store-DCMqyI07.js} +3 -3
- package/server/{event-store-DIk9wvnS.js → event-store-DU3HkZlN.js} +1 -1
- package/server/{events-DGWZzye2.js → events-BfiosVAn.js} +3 -3
- package/server/{events-BlzVUyTx.js → events-DLRxpSuV.js} +1 -1
- package/server/{factory-rG4T40su.js → factory-BMtWV9iv.js} +4 -4
- package/server/{feature-registry-population-Dwyj9gEM.js → feature-registry-population-DA7bO6Zn.js} +5 -5
- package/server/{feature-registry-storage-CnGyNgAq.js → feature-registry-storage-nAY1fbBt.js} +3 -3
- package/server/{features-CYY2_Eeh.js → features-DMu7eGmU.js} +2 -2
- package/server/{feedback-target-nQSM6ygL.js → feedback-target-B2SEai8-.js} +1 -1
- package/server/{feedback-target-dJjFfITP.js → feedback-target-DHqcw3cN.js} +6 -6
- package/server/{feedback-writer-thrdxYpK.js → feedback-writer-DMBdS_jL.js} +1 -1
- package/server/{feedback-writer-DMaO0XXa.js → feedback-writer-qvm7UON7.js} +4 -4
- package/server/{flywheel-Cqf8vu7N.js → flywheel-D2LdPSic.js} +13 -13
- package/server/{flywheel-BLoVNtJV.js → flywheel-Dfpx4bIV.js} +11 -11
- package/server/{flywheel-PJsbrXNY.js → flywheel-k4FPtCQ_.js} +1 -1
- package/server/{flywheel-merge-order-B7BH8mZ3.js → flywheel-merge-order-CB4lbXeJ.js} +6 -6
- package/server/{flywheel-merge-order-CCwF60b-.js → flywheel-merge-order-CttTazRY.js} +1 -1
- package/server/{forge-BixzckB0.js → forge-CoPFXFyl.js} +3 -3
- package/server/forge-IgLR0Ist.js +2 -0
- package/server/{from-D4xmArTA.js → from-B0YoJl9-.js} +2 -2
- package/server/{fts-db-DPtxOAjp.js → fts-db-DAHW1yA_.js} +2 -2
- package/server/{fts-operations-VrGjsT0w.js → fts-operations-DDXDBi0d.js} +3 -3
- package/server/{git-utils-D_cax3fD.js → git-utils-B90Zjzfl.js} +2 -2
- package/server/{git-utils-RAmTwjFB.js → git-utils-DbfC0zls.js} +1 -1
- package/server/{github-app-FMXgo3vK.js → github-app-BecAnXRX.js} +2 -2
- package/server/{github-app-B5PDHMyn.js → github-app-C7lftMNj.js} +1 -1
- package/server/{github-client-VRiB6N-4.js → github-client-BwtKZtM0.js} +1 -1
- package/server/{github-client-yjbXaqpR.js → github-client-D21rCIXk.js} +2 -2
- package/server/{github-pr-lookup-t8X8R0c0.js → github-pr-lookup-CzVWuysl.js} +2 -2
- package/server/{harness-resolve-B3f9G1Kp.js → harness-resolve-SkRJm4a7.js} +3 -3
- package/server/{health-events-DaLX4-0a.js → health-events-BT0aAfeA.js} +2 -2
- package/server/{health-events-CD6q47ub.js → health-events-DA_JLpgZ.js} +1 -1
- package/server/{hooks-D-cbMUzQ.js → hooks-BQxRXtRb.js} +1 -1
- package/server/{hooks-CmHFSj_Z.js → hooks-DxEn2BoY.js} +2 -2
- package/server/{idle-stack-reaper-DdnERp3G.js → idle-stack-reaper-C7fJL8jH.js} +1 -1
- package/server/{idle-stack-reaper-DBKQ9SKu.js → idle-stack-reaper-DGy7tvC9.js} +2 -2
- package/server/{infra-CpKlYZA9.js → infra-DE3C4PMr.js} +22 -4
- package/server/{injection-CszhePD2.js → injection-Cc4Qt8LZ.js} +7 -7
- package/server/{injection-DKzL2Axk.js → injection-Dt22tGvS.js} +1 -1
- package/server/inspect-agent-CYoWAeeB.js +2 -0
- package/server/{inspect-agent-CKF5-SJr.js → inspect-agent-DOaCDkCF.js} +9 -9
- package/server/{internal-token-CQUx9YLc.js → internal-token-B_1YLWLI.js} +3 -3
- package/server/{internal-token-DrGdpLFo.js → internal-token-nobT6FhA.js} +1 -1
- package/server/{io-Wy8YpFeP.js → io-A7ZuOBkz.js} +2 -2
- package/server/{issue-closed-BO84g03t.js → issue-closed-Da3DeomA.js} +4 -4
- package/server/{issue-lifecycle-5LbOcATP.js → issue-lifecycle-543pQX9D.js} +28 -28
- package/server/{issue-lifecycle-CjYqQ669.js → issue-lifecycle-Bd9XBJAQ.js} +1 -1
- package/server/{issue-service-singleton-B8iu_TKV.js → issue-service-singleton-BC2JLZi7.js} +1 -1
- package/server/{issue-service-singleton-CDGt__oQ.js → issue-service-singleton-Brc3t0SV.js} +8 -8
- package/server/{issues-ChNcfHta.js → issues-D3kt9UWE.js} +2 -2
- package/server/{label-cleanup-bVXCGWBM.js → label-cleanup-w9X_T3AQ.js} +2 -2
- package/server/{layers-vdvlpFki.js → layers-Cwe1J-9o.js} +2 -2
- package/server/{lifecycle-CEg4sHZH.js → lifecycle-f1GbDK33.js} +6 -6
- package/server/{lifecycle-io-DSrv9xGh.js → lifecycle-io-Bqvj0m3i.js} +4 -4
- package/server/{lifecycle-io-CdqPkCyk.js → lifecycle-io-D56q8zlO.js} +1 -1
- package/server/{linear-client-BxKvL6U8.js → linear-client-Bh4T4S-c.js} +1 -1
- package/server/{linear-client-E0HdXtWs.js → linear-client-CfJMTAYd.js} +2 -2
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-D3wEbmUJ.js → merge-DRMPa8CQ.js} +1 -1
- package/server/{merge-UlAwCk80.js → merge-ZrXFM3jv.js} +3 -3
- package/server/{merge-agent-C81xPIGd.js → merge-agent-CHHs5S_0.js} +25 -25
- package/server/{merge-agent-7nBiCytp.js → merge-agent-CfohxFWM.js} +1 -1
- package/server/{merge-blockers-DwdQNsYD.js → merge-blockers-BMhDpMl_.js} +2 -2
- package/server/merge-ops-Czke6UAp.js +2 -0
- package/server/{merge-rebase-CH12_ufi.js → merge-rebase-R7MfqpiE.js} +2 -2
- package/server/{merge-set-TRxJwR-w.js → merge-set-B3Breacq.js} +3 -3
- package/server/{merge-set-rXK3ehnB.js → merge-set-D-iXNP0I.js} +1 -1
- package/server/{merge-sync-CaLRt2cB.js → merge-sync-DHWbGtjR.js} +2 -2
- package/server/{merge-sync-BKLKu9kz.js → merge-sync-bOOtfeXR.js} +1 -1
- package/server/{merge-train-D3qzRccL.js → merge-train-98ptZrPT.js} +3 -3
- package/server/{merge-train-deps-Be5ElC_P.js → merge-train-deps-B5FWJTE2.js} +4 -4
- package/server/{merge-verification-DA9rvqsE.js → merge-verification-BGiuiXAK.js} +4 -4
- package/server/{multipart-parser-DtIEUW2B.js → multipart-parser-D7mzNNDm.js} +2 -2
- package/server/node_modules/.package-lock.json +1 -0
- package/server/{orphan-proposed-reconciler-Boq_XaRe.js → orphan-proposed-reconciler-BSGCNJ6X.js} +9 -9
- package/server/{orphan-proposed-reconciler-C0sPnDq_.js → orphan-proposed-reconciler-CSuxivr9.js} +1 -1
- package/server/package-lock.json +2 -0
- package/server/package.json +1 -0
- package/server/{pan-dir-BgBeeZDX.js → pan-dir-DoPtdHrp.js} +3 -3
- package/server/{paths-TE1GOZDr.js → paths-CVDLPxXp.js} +2 -2
- package/server/{pipeline-notifier-lwMa--Gz.js → pipeline-notifier-BtYHbBPl.js} +1 -1
- package/server/{pipeline-notifier-aX_5EqQO.js → pipeline-notifier-WD2dnOsR.js} +2 -2
- package/server/{projects-BNmVxnNt.js → projects-Bqfwuqet.js} +1 -1
- package/server/{prompts-CelsUdrx.js → prompts-Cg7e9FPb.js} +2 -2
- package/server/{providers-BOnRq5XK.js → providers-JjK6izqX.js} +1 -1
- package/server/{providers-4-xOzHQu.js → providers-fLduChnX.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BjULspib.js → chunk-BO2N2NFS-aNlsGDCu.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-4ER5ovy_.js → diagram-OG6HWLK6-CnjkrvT8.js} +1 -1
- package/server/public/assets/{dist-CBUe_1pC.js → dist-Bg3Sbsx4.js} +3 -3
- package/server/public/assets/{dist-DVM-OI65.js → dist-CGKBCieA.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-DQ3nocJU.js → ganttDiagram-6RSMTGT7-C8LLKj23.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-BcLOHe75.js → highlighted-body-OFNGDK62-BSDEUvhW.js} +1 -1
- package/server/public/assets/{index-B-m-cSFg.css → index-CZiADHcL.css} +1 -1
- package/server/public/assets/index-LQIfhmgI.js +796 -0
- package/server/public/assets/{linear-Acq5WFAt.js → linear-DEbYZoxg.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-CZOsRYoT.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BEmjmqLh.js → pieDiagram-4H26LBE5-BtZL5pXE.js} +1 -1
- package/server/public/assets/{prod-D-3YYika.js → prod-DYVvIyuh.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-DyeZ0jBC.js → quadrantDiagram-W4KKPZXB-a7vS8Jc8.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-DSD--Pbl.js → sankeyDiagram-5OEKKPKP-Ckbq2SWH.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-idS7x7Bb.js → xychartDiagram-2RQKCTM6-DJyeNa99.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-CH4iBFLl.js → pull-requests-1WXmTBlo.js} +3 -3
- package/server/{pull-requests-DL_4klIb.js → pull-requests-D2SjJIwY.js} +1 -1
- package/server/{rally-D0mKv2t8.js → rally-8aQlLLVj.js} +3 -3
- package/server/rally-Ba9QoNYc.js +3 -0
- package/server/{rally-api-CcCdecF-.js → rally-api-BtvwdX6d.js} +1 -1
- package/server/{rally-api-DgAt6FbN.js → rally-api-H5I2CBO0.js} +2 -2
- package/server/{rally-client-DYjtgTOu.js → rally-client-33CYZYYu.js} +4 -4
- package/server/{rally-client-X0bEEN2B.js → rally-client-Bt-qHiOh.js} +1 -1
- package/server/{rebuild-stack-ByFCMqTK.js → rebuild-stack-CXSgAGPR.js} +1 -1
- package/server/{rebuild-stack-BLG3rlWa.js → rebuild-stack-KHkkrGjx.js} +6 -6
- package/server/{reconstruct-cache-C2pCltOq.js → reconstruct-cache-D_Ml65_6.js} +7 -7
- package/server/{record-DjPikotp.js → record-De2syxNB.js} +1 -1
- package/server/{remote-TN0cV8k-.js → remote-CGuognN3.js} +3 -3
- package/server/{remote-B1Trmr0N.js → remote-D0Old0Cv.js} +3 -3
- package/server/{remote-agents-CmbIKw7E.js → remote-agents-DfhMq6kQ.js} +5 -5
- package/server/{remote-agents-DNuaAgU6.js → remote-agents-UHoi4oGr.js} +1 -1
- package/server/{remote-completion-BmxD5UMQ.js → remote-completion-RZYePR_0.js} +12 -12
- package/server/resume-CmxF3Kjz.js +3 -0
- package/server/{review-agent-D6P6d3pz.js → review-agent-sZBCpEVv.js} +22 -22
- package/server/{review-agent-DTINEffB.js → review-agent-uwVftH98.js} +1 -1
- package/server/{review-artifacts-BGc69epg.js → review-artifacts-C7a45b1_.js} +7 -7
- package/server/{review-context-Dyo0tsBa.js → review-context-CErbQpKL.js} +7 -7
- package/server/{review-monitor-BKG2ubt5.js → review-monitor-DHD9m_kh.js} +2 -2
- package/server/{review-status-h7BXIA4z.js → review-status-JhQ3qlDS.js} +1 -1
- package/server/{review-status-enrichment-CGlcApSn.js → review-status-enrichment-qWvWckYN.js} +3 -3
- package/server/{review-status-B5ZASOo4.js → review-status-gPndPUBc.js} +53 -30
- package/server/{review-status-sync-BxHBVH8s.js → review-status-sync-B_GrEke8.js} +1 -1
- package/server/{review-status-sync-BWHnrq-k.js → review-status-sync-D3A9KX95.js} +2 -2
- package/server/{review-verdict-feedback-B70VbfRL.js → review-verdict-feedback-4WZ5ZdbC.js} +7 -7
- package/server/{review-verdict-feedback-CorgH49f.js → review-verdict-feedback-Zo0r_z4m.js} +1 -1
- package/server/{rollup-DBNy1yFB.js → rollup-Bmhn80tB.js} +1 -1
- package/server/{rollup-BJE-Vc7H.js → rollup-BrUIKMv_.js} +7 -7
- package/server/{scanner-CUGpdp4i.js → scanner-BIGumel_.js} +7 -7
- package/server/{sequence-io-6YP8fVpH.js → sequence-io-DA0akEQN.js} +5 -5
- package/server/{sequencer-agent-ja-nkEc1.js → sequencer-agent-DeflKafB.js} +6 -6
- package/server/server.js +561 -548
- package/server/{service-HKDrIy0h.js → service-V0sUK-OR.js} +64 -64
- package/server/{session-fork-DDSDVoIK.js → session-fork-Yx3UcAQf.js} +2 -2
- package/server/{settings-CBrei_kx.js → settings-CFEeQRj2.js} +2 -2
- package/server/{settings-D2wt4nku.js → settings-CxVate0h.js} +3 -3
- package/server/settings-DEhYpW0k.js +2 -0
- package/server/{shadow-engineering-Ba1D0QUN.js → shadow-engineering-BRxnVSDk.js} +2 -2
- package/server/{shadow-state-BOaq8BrD.js → shadow-state-1aS8FijU.js} +1 -1
- package/server/{shadow-state-DTC7AMHc.js → shadow-state-BiMwdyl1.js} +2 -2
- package/server/{smart-compaction-uke1npUz.js → smart-compaction-Bw1K_Sbl.js} +7 -7
- package/server/{smart-compaction-L0LSnF0_.js → smart-compaction-xblMyVpT.js} +1 -1
- package/server/{spawn-planning-session-CSMWco8B.js → spawn-planning-session-CzDFSKAQ.js} +1 -1
- package/server/{spawn-planning-session-CXc0NkwV.js → spawn-planning-session-DxLxcM7m.js} +15 -15
- package/server/{specialist-context-BGCJ24LH.js → specialist-context-BfkTA81h.js} +5 -5
- package/server/{specialist-handoff-logger-B_2VsWli.js → specialist-handoff-logger-BiKuLtNm.js} +2 -2
- package/server/{specialist-logs--Uz-r8ia.js → specialist-logs-CFJjGsLC.js} +3 -3
- package/server/{specialists-DEfrAbWs.js → specialists-B4byf18k.js} +156 -156
- package/server/{specialists-Ca9XSBCS.js → specialists-BLIreoE7.js} +1 -1
- package/server/{specialists-DeZx9xom.js → specialists-DdvpFNt1.js} +1 -1
- package/server/{specialists-nZ0mRwpZ.js → specialists-DjHbwQ_p.js} +18 -18
- package/server/specs-CVH1kvz3.js +3 -0
- package/server/{src-Dp0WHgDZ.js → src-CALBEUMX.js} +3 -3
- package/server/{src-BswtmojL.js → src-mK_M_ZIj.js} +3 -3
- package/server/{stack-health-Deel1mSW.js → stack-health-BFM8YlHw.js} +1 -1
- package/server/{stack-health-BJVh1TCg.js → stack-health-Qd7rPiVe.js} +3 -3
- package/server/{state-home-Bgj7i-C7.js → state-home-C2Bicw9N.js} +6 -6
- package/server/{summary-fork-Xn0QUNmb.js → summary-fork-DezPkJSm.js} +16 -16
- package/server/{summary-fork-2a1L2DIU.js → summary-fork-EWWBvzgE.js} +2 -2
- package/server/supervisor/chunk-ruWRV7i3.js +30 -0
- package/server/supervisor/paths-3R6b989k.js +224 -0
- package/server/supervisor/pty-supervisor.js +391 -0
- package/server/supervisor/pty-token-CScQ32Rj.js +43 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/LICENSE +69 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/README.md +67 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/binding.gyp +123 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/.editorconfig +2 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/.drone.yml +17 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/.gitattributes +19 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/LICENSE +21 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/Makefile +166 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/README.md +151 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/RELEASES.md +280 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/VERSION.txt +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/configure +167 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/BufferResizeTests.cc +90 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ClearConsole.cc +72 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ConinMode.cc +117 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ConinMode.ps1 +116 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ConoutMode.cc +113 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/DebugClient.py +42 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/DebugServer.py +63 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/DumpLines.py +5 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/FontSurvey.cc +100 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/FormatChar.h +21 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/FreezePerfTest.cc +62 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/GetCh.cc +20 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/GetConsolePos.cc +41 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/GetFont.cc +261 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/IsNewConsole.cc +87 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/MouseInputNotes.txt +90 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Notes.txt +219 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/OSVersion.cc +27 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ScreenBufferTest.cc +671 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SelectAllTest.cc +45 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetBufferSize.cc +32 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetCursorPos.cc +10 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetFont.cc +145 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetWindowRect.cc +36 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ShowArgv.cc +12 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ShowConsoleInput.cc +40 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Spew.py +5 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/TestUtil.cc +172 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnixEcho.cc +89 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Utf16Echo.cc +46 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/VeryLargeRead.cc +122 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/VkEscapeTest.cc +56 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win10WrapTest1.cc +57 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win10WrapTest2.cc +30 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Echo1.cc +26 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Echo2.cc +19 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Test1.cc +46 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Test2.cc +70 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Test3.cc +78 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Write1.cc +44 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/WriteConsole.cc +106 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/build32.sh +9 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/build64.sh +9 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/color-test.sh +212 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/font-notes.txt +300 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/winbug-15048.cc +201 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/common_ship.py +53 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/make_msvc_package.py +165 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/ship.py +108 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Agent.cc +613 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Agent.h +103 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleFont.cc +632 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleFont.h +28 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInput.cc +852 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInput.h +109 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleLine.cc +152 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleLine.h +41 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Coord.h +87 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DebugShowInput.cc +239 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DebugShowInput.h +32 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DefaultInputMap.h +28 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DsrSender.h +30 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/EventLoop.cc +99 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/EventLoop.h +47 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/InputMap.cc +246 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/InputMap.h +114 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/NamedPipe.cc +378 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/NamedPipe.h +125 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Scraper.cc +699 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Scraper.h +103 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/SimplePool.h +75 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/SmallRect.h +143 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Terminal.cc +535 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Terminal.h +69 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32Console.cc +107 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32Console.h +67 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/main.cc +114 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/subdir.mk +61 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/configurations.gypi +60 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/debugserver/DebugServer.cc +117 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/debugserver/subdir.mk +41 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/include/winpty.h +242 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/include/winpty_constants.h +131 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/subdir.mk +46 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/winpty.cc +970 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/AgentMsg.h +38 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/Buffer.cc +103 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/Buffer.h +102 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/DebugClient.cc +187 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/DebugClient.h +38 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/GenRandom.cc +138 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/GenRandom.h +55 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/GetCommitHash.bat +13 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/Mutex.h +54 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/OsModule.h +63 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/OwnedHandle.cc +36 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/OwnedHandle.h +45 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringBuilder.h +227 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringUtil.cc +55 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringUtil.h +80 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/TimeMeasurement.h +63 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsSecurity.h +104 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsVersion.cc +252 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsVersion.h +29 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyAssert.cc +55 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyAssert.h +64 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyException.cc +57 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyException.h +43 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyVersion.cc +42 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyVersion.h +27 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/winpty_snprintf.h +99 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/subdir.mk +5 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/tests/subdir.mk +28 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/tests/trivial_test.cc +158 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/Util.cc +86 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/Util.h +31 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/main.cc +729 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/subdir.mk +41 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/winpty.gyp +235 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/vcbuild.bat +83 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/conpty_console_list_agent.js +20 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/conpty_console_list_agent.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.js +47 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.test.js +30 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.test.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/index.js +52 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/index.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/interfaces.js +7 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/interfaces.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-file-path.js +18 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-file-path.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-loader.js +19 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-loader.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/shared/conout.js +11 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/shared/conout.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.js +190 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.test.js +139 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.test.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/testUtils.test.js +28 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/testUtils.test.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/types.js +7 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/types.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.js +290 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.test.js +352 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.test.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/utils.js +17 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/utils.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsConoutConnection.js +125 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsConoutConnection.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.js +345 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.test.js +90 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.test.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.js +201 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.test.js +217 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.test.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/worker/conoutSocketWorker.js +22 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/worker/conoutSocketWorker.js.map +1 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/package.json +79 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi102.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi102.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi108.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi108.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi111.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi111.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi115.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi115.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi120.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi120.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi127.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi127.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi131.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi131.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi137.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi137.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi102.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi108.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi108.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi111.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi111.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi115.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi115.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi120.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi120.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi127.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi127.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi131.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi131.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi137.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi137.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi108.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi111.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi115.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi120.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi127.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi131.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi137.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi102.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi108.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi108.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi111.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi111.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi115.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi115.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi120.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi120.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi127.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi127.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi131.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi131.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi137.musl.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi137.node +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/check-prebuild.js +15 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/increment-version.js +54 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/install.js +18 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/post-install.js +83 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/conpty_console_list_agent.ts +19 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/eventEmitter2.test.ts +30 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/eventEmitter2.ts +48 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/index.ts +53 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/interfaces.ts +130 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/native.d.ts +54 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/prebuild-file-path.ts +21 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/prebuild-loader.ts +17 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/shared/conout.ts +15 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/terminal.test.ts +119 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/terminal.ts +211 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/testUtils.test.ts +23 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/tsconfig.json +22 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/types.ts +15 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unix/pty.cc +796 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unix/spawn-helper.cc +23 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unixTerminal.test.ts +368 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unixTerminal.ts +318 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/utils.ts +9 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/conpty.cc +583 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/conpty.h +41 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/conpty_console_list.cc +44 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/path_util.cc +95 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/path_util.h +26 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/winpty.cc +333 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsConoutConnection.ts +82 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsPtyAgent.test.ts +94 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsPtyAgent.ts +342 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsTerminal.test.ts +227 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsTerminal.ts +208 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/worker/conoutSocketWorker.ts +22 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-arm64/OpenConsole.exe +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-arm64/conpty.dll +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-x64/OpenConsole.exe +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-x64/conpty.dll +0 -0
- package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/typings/node-pty.d.ts +230 -0
- package/server/{supervisor-0oXvLwyC.js → supervisor-D5GC5jUM.js} +8 -8
- package/server/supervisor-DQMK2e3I.js +2 -0
- package/server/{swarm-readiness-OBgamRql.js → swarm-readiness-Cf9mommA.js} +3 -3
- package/server/system-prerequisites-BsI9hxh9.js +166 -0
- package/server/{teardown-workspace-DhA6oAIK.js → teardown-workspace-CWz1pbEK.js} +12 -12
- package/server/{test-agent-queue-B_ukPyIK.js → test-agent-queue-TiVXe3ZT.js} +6 -6
- package/server/{test-verdict-D3Il7cBK.js → test-verdict-Bm4uv_AA.js} +2 -2
- package/server/{test-verdict-BkubHtti.js → test-verdict-CCDd25uN.js} +1 -1
- package/server/{tldr-daemon-CJqGsDFh.js → tldr-daemon-Big5IZ_M.js} +1 -1
- package/server/{tldr-daemon-CJW_P4On.js → tldr-daemon-C_1frSDj.js} +2 -2
- package/server/{tmux-ePNhMIMU.js → tmux-D57f-XNv.js} +2 -2
- package/server/{tmux-CeDD14p1.js → tmux-DClqWwb8.js} +1 -1
- package/server/{tracker-config-Drt_tx4D.js → tracker-config-B_Ubts1Z.js} +1 -1
- package/server/{tracker-config-C3hiPVAM.js → tracker-config-BmdJU_w6.js} +2 -2
- package/server/{tracker-utils-D6B8scEw.js → tracker-utils-Bg-Sevcv.js} +1 -1
- package/server/{tracker-utils-bpWs7Xyx.js → tracker-utils-CWFt6jjV.js} +2 -2
- package/server/{tunnel-3Ve8BS4H.js → tunnel-UBf2vyAL.js} +2 -2
- package/server/{tunnel-AporWhoi.js → tunnel-hOBNQbmF.js} +1 -1
- package/server/{uat-train-DPfGR9_I.js → uat-train-DGkIkLxu.js} +1 -1
- package/server/{uat-train-BLBAbJ8Y.js → uat-train-qNanv5hN.js} +54 -54
- package/server/{validation-CbqP_dze.js → validation-B0QaLIHP.js} +1 -1
- package/server/{validation-BmUB-26g.js → validation-C4wegCvH.js} +3 -3
- package/server/{verification-runner-R2-4XgMO.js → verification-runner-CntudBes.js} +11 -11
- package/server/{verification-runner-KTGTNugM.js → verification-runner-DdleMNLq.js} +1 -1
- package/server/{work-agent-prompt-DCdHsm-V.js → work-agent-prompt-CG5jFV9A.js} +11 -11
- package/server/{workflows-CSKX5MhC.js → workflows-BK2xs_a8.js} +13 -13
- package/server/workflows-pKw9yRSV.js +2 -0
- package/server/{workspace-DYv9kBg6.js → workspace-C9lC5o3E.js} +1 -1
- package/server/{workspace-4ZufqeMe.js → workspace-CLrSIRCx.js} +3 -3
- package/server/{workspace-manager-CEWK-OXd.js → workspace-manager-BJhW2sky.js} +10 -10
- package/server/{workspace-manager-B3PqQQSM.js → workspace-manager-Cb2a7bg9.js} +1 -1
- package/server/{workspace-metadata-C0I-nIDL.js → workspace-metadata-CTRnr323.js} +1 -1
- package/server/{workspace-metadata-1eu1RvAT.js → workspace-metadata-QQmo_Z0l.js} +2 -2
- package/server/{workspaces-DXLDgXo2.js → workspaces-Ca4zZs12.js} +223 -223
- package/server/cli-DCqy_wFa.js +0 -3
- package/server/deacon-swarm-CVTiNL0N.js +0 -2
- package/server/forge-BfP7OJwK.js +0 -2
- package/server/inspect-agent-CqpEWGWy.js +0 -2
- package/server/merge-ops-DE_6CnmZ.js +0 -2
- package/server/public/assets/index-DdqPXf3T.js +0 -796
- package/server/public/assets/mermaid-GHXKKRXX-BTHbMU88.js +0 -1
- package/server/rally-DffLLIdl.js +0 -3
- package/server/resume-C-nxu9Y4.js +0 -3
- package/server/settings-vLoKyghx.js +0 -2
- package/server/specs-DeS98l_p.js +0 -3
- package/server/supervisor-D1-XwmZ7.js +0 -2
- package/server/workflows-DVwXauef.js +0 -2
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { $n as extractPrefixSync, Br as getOverdeckHome, Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, Nn as init_projects, Qn as extractNumberSync, Sn as findProjectByTeamSync, Vr as init_paths, cr as FsError, er as init_issue_id, ln as init_state_plane, lr as GitError, nr as parseIssueIdSync, un as isStatePlaneOnlyStatus, vn as extractTeamPrefix, vr as init_errors } from "./config-yaml-
|
|
2
|
-
import { D as jsonResponse, E as httpHandler, S as normalizeOrigin, b as getTrustedOrigins, f as getWorkAgentLifecycleStateSync, n as _serverManagedMerges, y as getHeaderFromMap } from "./specialists-
|
|
1
|
+
import { $n as extractPrefixSync, Br as getOverdeckHome, Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, Nn as init_projects, Qn as extractNumberSync, Sn as findProjectByTeamSync, Vr as init_paths, cr as FsError, er as init_issue_id, ln as init_state_plane, lr as GitError, nr as parseIssueIdSync, un as isStatePlaneOnlyStatus, vn as extractTeamPrefix, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
|
|
2
|
+
import { D as jsonResponse, E as httpHandler, S as normalizeOrigin, b as getTrustedOrigins, f as getWorkAgentLifecycleStateSync, n as _serverManagedMerges, y as getHeaderFromMap } from "./specialists-B4byf18k.js";
|
|
3
3
|
import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
|
|
4
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
5
|
-
import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, O as listSessionNames, i as capturePane, q as init_child_env, x as init_tmux } from "./tmux-
|
|
6
|
-
import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-
|
|
7
|
-
import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-
|
|
8
|
-
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-
|
|
9
|
-
import { Mn as getAgentState, Rt as transitionIssueToInReview, U as spawnAgent, Z as listRunningAgents, gr as
|
|
10
|
-
import { f as CostWriter, l as CostDoorLive } from "./service-
|
|
11
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
12
|
-
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-
|
|
13
|
-
import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-
|
|
4
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DE3C4PMr.js";
|
|
5
|
+
import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, O as listSessionNames, i as capturePane, q as init_child_env, x as init_tmux } from "./tmux-D57f-XNv.js";
|
|
6
|
+
import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-gPndPUBc.js";
|
|
7
|
+
import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-543pQX9D.js";
|
|
8
|
+
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-CCnqa5xK.js";
|
|
9
|
+
import { Mn as getAgentState, Rt as transitionIssueToInReview, U as spawnAgent, Z as listRunningAgents, gr as getAgentRuntimeStateSync, j as messageAgent, t as init_agents, vr as saveAgentRuntimeState } from "./agents-B5LfpLPv.js";
|
|
10
|
+
import { f as CostWriter, l as CostDoorLive } from "./service-V0sUK-OR.js";
|
|
11
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-BmdJU_w6.js";
|
|
12
|
+
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CWFt6jjV.js";
|
|
13
|
+
import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-B_1YLWLI.js";
|
|
14
14
|
import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-CE1m_daD.js";
|
|
15
|
-
import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-
|
|
16
|
-
import { A as findVBriefByIssue, N as readVBriefDocument, b as init_types$1, c as mergeRecordStatusOverrides, j as init_vbrief_index, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, y as VBRIEF_INSPECTION_POLICIES } from "./io-
|
|
17
|
-
import { f as init_config, m as loadConfigSync$1 } from "./config-
|
|
18
|
-
import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-
|
|
19
|
-
import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-
|
|
20
|
-
import { o as criticalPath, t as actionableDoc, u as init_dag } from "./dag-
|
|
21
|
-
import { a as queryBeadsForIssue, r as init_beads_query } from "./beads-query-
|
|
22
|
-
import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-
|
|
23
|
-
import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-
|
|
24
|
-
import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-
|
|
25
|
-
import { at as init_jsonl_parser, nt as getActiveSessionModelSync } from "./specialists-
|
|
15
|
+
import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-DHWbGtjR.js";
|
|
16
|
+
import { A as findVBriefByIssue, N as readVBriefDocument, b as init_types$1, c as mergeRecordStatusOverrides, j as init_vbrief_index, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, y as VBRIEF_INSPECTION_POLICIES } from "./io-A7ZuOBkz.js";
|
|
17
|
+
import { f as init_config, m as loadConfigSync$1 } from "./config-8sjaU6jZ.js";
|
|
18
|
+
import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-DfJKBDwB.js";
|
|
19
|
+
import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-Qd7rPiVe.js";
|
|
20
|
+
import { o as criticalPath, t as actionableDoc, u as init_dag } from "./dag-Dv2r5bVD.js";
|
|
21
|
+
import { a as queryBeadsForIssue, r as init_beads_query } from "./beads-query-e6oku4P5.js";
|
|
22
|
+
import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-BfiosVAn.js";
|
|
23
|
+
import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-BJhW2sky.js";
|
|
24
|
+
import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CaYOG9JN.js";
|
|
25
|
+
import { at as init_jsonl_parser, nt as getActiveSessionModelSync } from "./specialists-DjHbwQ_p.js";
|
|
26
26
|
import { n as restoreTrackedBeadsExport, t as init_beads_restore } from "./beads-restore-CMbDSB5R.js";
|
|
27
|
-
import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-
|
|
28
|
-
import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-
|
|
29
|
-
import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-
|
|
30
|
-
import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-
|
|
31
|
-
import { n as generateDailySummary, r as init_cli } from "./cli-
|
|
32
|
-
import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-
|
|
33
|
-
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-
|
|
34
|
-
import { C as init_git_activity, S as init_operations, a as init_merge_agent, b as MainDivergedError, w as listGitOperationsSync, x as gitPush, y as syncMainIntoWorkspace } from "./merge-agent-
|
|
35
|
-
import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-
|
|
36
|
-
import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-
|
|
37
|
-
import { n as runVerificationForIssue } from "./verification-runner-
|
|
38
|
-
import { t as teardownWorkspace } from "./teardown-workspace-
|
|
39
|
-
import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-
|
|
27
|
+
import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-oX1pj6nY.js";
|
|
28
|
+
import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-BecAnXRX.js";
|
|
29
|
+
import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-QQmo_Z0l.js";
|
|
30
|
+
import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-qWvWckYN.js";
|
|
31
|
+
import { n as generateDailySummary, r as init_cli } from "./cli-B75AieAM.js";
|
|
32
|
+
import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-CErbQpKL.js";
|
|
33
|
+
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-C_1frSDj.js";
|
|
34
|
+
import { C as init_git_activity, S as init_operations, a as init_merge_agent, b as MainDivergedError, w as listGitOperationsSync, x as gitPush, y as syncMainIntoWorkspace } from "./merge-agent-CHHs5S_0.js";
|
|
35
|
+
import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-ZrXFM3jv.js";
|
|
36
|
+
import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BtB_o-Vi.js";
|
|
37
|
+
import { n as runVerificationForIssue } from "./verification-runner-CntudBes.js";
|
|
38
|
+
import { t as teardownWorkspace } from "./teardown-workspace-CWz1pbEK.js";
|
|
39
|
+
import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-KHkkrGjx.js";
|
|
40
|
+
import { basename, dirname, join, resolve, sep } from "node:path";
|
|
40
41
|
import { Effect, Layer, Option } from "effect";
|
|
41
42
|
import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
|
|
42
|
-
import { basename, join } from "path";
|
|
43
|
+
import { basename as basename$1, join as join$1 } from "path";
|
|
43
44
|
import { homedir } from "os";
|
|
44
45
|
import { homedir as homedir$1, networkInterfaces } from "node:os";
|
|
45
46
|
import { existsSync as existsSync$1, mkdirSync as mkdirSync$1, readFileSync as readFileSync$1, statSync as statSync$1, writeFileSync as writeFileSync$1 } from "node:fs";
|
|
46
|
-
import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1, sep as sep$1 } from "node:path";
|
|
47
47
|
import { HttpRouter, HttpServerRequest } from "effect/unstable/http";
|
|
48
48
|
import { access, chmod, mkdir, readFile, readdir, stat as stat$1, symlink, unlink, writeFile } from "node:fs/promises";
|
|
49
49
|
import { readFile as readFile$1, readdir as readdir$1 } from "fs/promises";
|
|
@@ -57,9 +57,9 @@ init_issue_id();
|
|
|
57
57
|
function getWorkspacePathForIssue(projectPath, rawIssueId) {
|
|
58
58
|
const parsed = parseIssueIdSync(rawIssueId);
|
|
59
59
|
if (!parsed) throw new Error("Invalid issue ID");
|
|
60
|
-
const workspaceRoot = resolve
|
|
61
|
-
const workspacePath = resolve
|
|
62
|
-
if (workspacePath !== workspaceRoot && !workspacePath.startsWith(`${workspaceRoot}${sep
|
|
60
|
+
const workspaceRoot = resolve(join(projectPath, "workspaces"));
|
|
61
|
+
const workspacePath = resolve(join(workspaceRoot, `feature-${parsed.normalized}`));
|
|
62
|
+
if (workspacePath !== workspaceRoot && !workspacePath.startsWith(`${workspaceRoot}${sep}`)) throw new Error("Invalid workspace path");
|
|
63
63
|
return {
|
|
64
64
|
parsedIssueId: parsed.raw,
|
|
65
65
|
workspacePath
|
|
@@ -334,7 +334,7 @@ init_agents();
|
|
|
334
334
|
init_review_status();
|
|
335
335
|
init_paths();
|
|
336
336
|
init_activity_logger();
|
|
337
|
-
const PENDING_FEEDBACK_FILE = join
|
|
337
|
+
const PENDING_FEEDBACK_FILE = join(getOverdeckHome(), "pending-feedback-deliveries.json");
|
|
338
338
|
const STALE_THRESHOLD_MS = 10080 * 60 * 1e3;
|
|
339
339
|
async function readStore(filePath) {
|
|
340
340
|
if (!existsSync$1(filePath)) return { deliveries: [] };
|
|
@@ -348,7 +348,7 @@ async function readStore(filePath) {
|
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
350
|
async function writeStore(filePath, store) {
|
|
351
|
-
await mkdir(dirname
|
|
351
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
352
352
|
await writeFile(filePath, JSON.stringify(store, null, 2), "utf-8");
|
|
353
353
|
}
|
|
354
354
|
function isDeliveryStillRelevant(delivery, status) {
|
|
@@ -468,7 +468,7 @@ function requireLogger(logger, prefix) {
|
|
|
468
468
|
return logger ?? defaultLogger(prefix);
|
|
469
469
|
}
|
|
470
470
|
function getFlywayBaselineFile(seedFile) {
|
|
471
|
-
return join
|
|
471
|
+
return join(dirname(seedFile), "zzz-flyway-workspace-baseline.sql");
|
|
472
472
|
}
|
|
473
473
|
function getSnapshotCommand(dbConfig) {
|
|
474
474
|
if (dbConfig.snapshot_command) return dbConfig.snapshot_command;
|
|
@@ -535,7 +535,7 @@ async function repairFlywayIfNeeded$1(issueId, pgContainer, dbName, projectConfi
|
|
|
535
535
|
repaired: false,
|
|
536
536
|
message: "No seed_file configured, cannot locate Flyway baseline"
|
|
537
537
|
};
|
|
538
|
-
const flywayFile = getFlywayBaselineFile(join
|
|
538
|
+
const flywayFile = getFlywayBaselineFile(join(projectConfig.path, seedRelPath));
|
|
539
539
|
if (!existsSync$1(flywayFile)) return {
|
|
540
540
|
repaired: false,
|
|
541
541
|
message: `Flyway baseline not found: ${flywayFile}`
|
|
@@ -547,7 +547,7 @@ async function repairFlywayIfNeeded$1(issueId, pgContainer, dbName, projectConfi
|
|
|
547
547
|
});
|
|
548
548
|
const migrationsRelPath = projectConfig.workspace?.database?.migrations?.path;
|
|
549
549
|
if (migrationsRelPath) {
|
|
550
|
-
const migrationsDir = join
|
|
550
|
+
const migrationsDir = join(workspacePath, migrationsRelPath);
|
|
551
551
|
if (existsSync$1(migrationsDir)) {
|
|
552
552
|
emit(`Syncing Flyway checksums from workspace migrations`);
|
|
553
553
|
const migrationFiles = (await readdir(migrationsDir)).filter((f) => /^V\d+__.*\.sql$/.test(f));
|
|
@@ -555,7 +555,7 @@ async function repairFlywayIfNeeded$1(issueId, pgContainer, dbName, projectConfi
|
|
|
555
555
|
for (const file of migrationFiles) {
|
|
556
556
|
const version = file.match(/^V(\d+)__/)?.[1];
|
|
557
557
|
if (!version) continue;
|
|
558
|
-
let content = await readFile(join
|
|
558
|
+
let content = await readFile(join(migrationsDir, file));
|
|
559
559
|
if (content[0] === 239 && content[1] === 187 && content[2] === 191) content = content.slice(3);
|
|
560
560
|
const lines = content.toString("utf-8").split(/\r?\n/);
|
|
561
561
|
const checksum = crc32(Buffer.from(lines.join(""), "utf-8")) | 0;
|
|
@@ -709,8 +709,8 @@ const flywayPostgresProvisioner = {
|
|
|
709
709
|
async snapshot(ctx) {
|
|
710
710
|
const logger = requireLogger(ctx.logger, "[db-snapshot]");
|
|
711
711
|
if (!ctx.dbConfig.snapshot_command && !ctx.dbConfig.external_db) throw new DatabaseProvisionerError(`No snapshot configuration for project ${"key" in ctx.projectConfig ? String(ctx.projectConfig.key) : ctx.projectConfig.name}`);
|
|
712
|
-
const outputPath = ctx.output || ctx.dbConfig.seed_file || join
|
|
713
|
-
const outputDir = dirname
|
|
712
|
+
const outputPath = ctx.output || ctx.dbConfig.seed_file || join(ctx.projectConfig.path, "infra", "seed", "seed.sql");
|
|
713
|
+
const outputDir = dirname(outputPath);
|
|
714
714
|
if (!existsSync$1(outputDir)) mkdirSync$1(outputDir, { recursive: true });
|
|
715
715
|
logger.setText("Running snapshot command...");
|
|
716
716
|
const snapshotCmd = getSnapshotCommand(ctx.dbConfig);
|
|
@@ -852,9 +852,9 @@ const postWorkspaceContainerizeRoute = HttpRouter.add("POST", "/api/workspaces/:
|
|
|
852
852
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
853
853
|
const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
854
854
|
const issueLower = issueId.toLowerCase();
|
|
855
|
-
if (!existsSync$1(join
|
|
856
|
-
const workspacePath = join
|
|
857
|
-
if (existsSync$1(join
|
|
855
|
+
if (!existsSync$1(join(projectPath, "infra", "new-feature"))) return jsonResponse({ error: "Project does not support containerization (no infra/new-feature script)" }, { status: 400 });
|
|
856
|
+
const workspacePath = join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
857
|
+
if (existsSync$1(join(workspacePath, ".devcontainer"))) return jsonResponse({ error: "Workspace is already containerized" }, { status: 400 });
|
|
858
858
|
try {
|
|
859
859
|
yield* Effect.promise(() => execAsync$7("docker info >/dev/null 2>&1", { encoding: "utf-8" }));
|
|
860
860
|
} catch {
|
|
@@ -871,7 +871,7 @@ const postWorkspaceContainerizeRoute = HttpRouter.add("POST", "/api/workspaces/:
|
|
|
871
871
|
output: []
|
|
872
872
|
});
|
|
873
873
|
const child = spawn("./new-feature", [featureName], {
|
|
874
|
-
cwd: join
|
|
874
|
+
cwd: join(projectPath, "infra"),
|
|
875
875
|
detached: true,
|
|
876
876
|
stdio: [
|
|
877
877
|
"ignore",
|
|
@@ -894,7 +894,7 @@ const postWorkspaceContainerizeRoute = HttpRouter.add("POST", "/api/workspaces/:
|
|
|
894
894
|
if (code === 0) {
|
|
895
895
|
appendActivityOutput(activityId, "");
|
|
896
896
|
appendActivityOutput(activityId, "=== Starting containers ===");
|
|
897
|
-
const workspaceDir = join
|
|
897
|
+
const workspaceDir = join(projectPath, "workspaces", `feature-${featureName}`);
|
|
898
898
|
const uid = process.getuid?.() ?? 1e3;
|
|
899
899
|
const gid = process.getgid?.() ?? 1e3;
|
|
900
900
|
const devUp = spawn("./dev", ["all"], {
|
|
@@ -955,15 +955,15 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
|
|
|
955
955
|
].includes(action)) return jsonResponse({ error: "Invalid action. Must be start, stop, or restart." }, { status: 400 });
|
|
956
956
|
const teamPrefix = extractTeamPrefix(issueId);
|
|
957
957
|
const containerProjectConfig = teamPrefix ? findProjectByTeamSync(teamPrefix) : null;
|
|
958
|
-
const projectPaths = containerProjectConfig ? [join
|
|
958
|
+
const projectPaths = containerProjectConfig ? [join(containerProjectConfig.path, "workspaces", `feature-${issueId.toLowerCase()}`)] : listProjectsSync().map((p) => join(p.config.path, "workspaces", `feature-${issueId.toLowerCase()}`));
|
|
959
959
|
let workspacePath = null;
|
|
960
960
|
let composeFile = null;
|
|
961
961
|
for (const path of projectPaths) if (existsSync$1(path)) {
|
|
962
962
|
workspacePath = path;
|
|
963
963
|
const composePaths = [
|
|
964
|
-
join
|
|
965
|
-
join
|
|
966
|
-
join
|
|
964
|
+
join(path, ".devcontainer/docker-compose.devcontainer.yml"),
|
|
965
|
+
join(path, "docker-compose.yml"),
|
|
966
|
+
join(path, "docker-compose.yaml")
|
|
967
967
|
];
|
|
968
968
|
for (const cp of composePaths) if (existsSync$1(cp)) {
|
|
969
969
|
composeFile = cp;
|
|
@@ -973,15 +973,15 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
|
|
|
973
973
|
}
|
|
974
974
|
if (!workspacePath) return jsonResponse({ error: `Workspace not found for ${issueId}` }, { status: 404 });
|
|
975
975
|
if (!composeFile && ["start", "restart"].includes(action)) {
|
|
976
|
-
const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-
|
|
976
|
+
const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-CbSXvN9W.js"));
|
|
977
977
|
if (ensureDevcontainerSync({
|
|
978
978
|
workspacePath,
|
|
979
979
|
issueId
|
|
980
980
|
}).rendered) console.log(`[container-control] Re-rendered ${DEVCONTAINER_DIRNAME}/ from project template`);
|
|
981
981
|
const composePaths = [
|
|
982
|
-
join
|
|
983
|
-
join
|
|
984
|
-
join
|
|
982
|
+
join(workspacePath, ".devcontainer/docker-compose.devcontainer.yml"),
|
|
983
|
+
join(workspacePath, "docker-compose.yml"),
|
|
984
|
+
join(workspacePath, "docker-compose.yaml")
|
|
985
985
|
];
|
|
986
986
|
for (const cp of composePaths) if (existsSync$1(cp)) {
|
|
987
987
|
composeFile = cp;
|
|
@@ -1056,7 +1056,7 @@ const postWorkspaceMemorySummaryRoute = HttpRouter.add("POST", "/api/workspaces/
|
|
|
1056
1056
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
1057
1057
|
const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
1058
1058
|
return jsonResponse(yield* Effect.promise(() => generateDailySummary({
|
|
1059
|
-
projectId: basename
|
|
1059
|
+
projectId: basename(projectPath),
|
|
1060
1060
|
issueId
|
|
1061
1061
|
})));
|
|
1062
1062
|
})));
|
|
@@ -1071,7 +1071,7 @@ const postWorkspaceRefreshDbRoute = HttpRouter.add("POST", "/api/workspaces/:iss
|
|
|
1071
1071
|
if (!provisioner) return jsonResponse({ error: "No database configuration found in projects.yaml" }, { status: 400 });
|
|
1072
1072
|
if (!dbConfig?.seed_file) return jsonResponse({ error: "No seed_file configured in projects.yaml database config" }, { status: 400 });
|
|
1073
1073
|
const databaseName = requireDatabaseName(dbConfig);
|
|
1074
|
-
const seedFile = join
|
|
1074
|
+
const seedFile = join(projectConfig.path, dbConfig.seed_file);
|
|
1075
1075
|
if (!existsSync$1(seedFile)) return jsonResponse({ error: `Seed file not found: ${seedFile}` }, { status: 400 });
|
|
1076
1076
|
try {
|
|
1077
1077
|
provisioner.validateRefreshDatabase({ seedFile });
|
|
@@ -1081,12 +1081,12 @@ const postWorkspaceRefreshDbRoute = HttpRouter.add("POST", "/api/workspaces/:iss
|
|
|
1081
1081
|
}
|
|
1082
1082
|
const featureFolder = `feature-${issueId.toLowerCase()}`;
|
|
1083
1083
|
const workspacesDir = projectConfig.workspace?.workspaces_dir || "workspaces";
|
|
1084
|
-
const workspacePath = join
|
|
1084
|
+
const workspacePath = join(projectConfig.path, workspacesDir, featureFolder);
|
|
1085
1085
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: `Workspace not found: ${featureFolder}` }, { status: 404 });
|
|
1086
1086
|
const composePaths = [
|
|
1087
|
-
join
|
|
1088
|
-
join
|
|
1089
|
-
join
|
|
1087
|
+
join(workspacePath, ".devcontainer/docker-compose.devcontainer.yml"),
|
|
1088
|
+
join(workspacePath, "docker-compose.yml"),
|
|
1089
|
+
join(workspacePath, "docker-compose.yaml")
|
|
1090
1090
|
];
|
|
1091
1091
|
let composeFile = null;
|
|
1092
1092
|
for (const cp of composePaths) if (existsSync$1(cp)) {
|
|
@@ -1285,10 +1285,10 @@ init_errors();
|
|
|
1285
1285
|
const CACHE_VERSION = 3;
|
|
1286
1286
|
const DEFAULT_RETENTION_DAYS = 90;
|
|
1287
1287
|
function getCostsDir() {
|
|
1288
|
-
return join(process.env.HOME || homedir(), ".overdeck", "costs");
|
|
1288
|
+
return join$1(process.env.HOME || homedir(), ".overdeck", "costs");
|
|
1289
1289
|
}
|
|
1290
1290
|
function getCacheFile() {
|
|
1291
|
-
return join(getCostsDir(), "by-issue.json");
|
|
1291
|
+
return join$1(getCostsDir(), "by-issue.json");
|
|
1292
1292
|
}
|
|
1293
1293
|
/**
|
|
1294
1294
|
* Load the cache from disk
|
|
@@ -1463,13 +1463,13 @@ init_events();
|
|
|
1463
1463
|
init_cost();
|
|
1464
1464
|
init_errors();
|
|
1465
1465
|
function getAgentsDir$1() {
|
|
1466
|
-
return join(process.env.HOME || homedir(), ".overdeck", "agents");
|
|
1466
|
+
return join$1(process.env.HOME || homedir(), ".overdeck", "agents");
|
|
1467
1467
|
}
|
|
1468
1468
|
function getClaudeProjectsDir$1() {
|
|
1469
|
-
return join(process.env.HOME || homedir(), ".claude", "projects");
|
|
1469
|
+
return join$1(process.env.HOME || homedir(), ".claude", "projects");
|
|
1470
1470
|
}
|
|
1471
1471
|
function getProjectsYamlPath() {
|
|
1472
|
-
return join(process.env.HOME || homedir(), ".overdeck", "projects.yaml");
|
|
1472
|
+
return join$1(process.env.HOME || homedir(), ".overdeck", "projects.yaml");
|
|
1473
1473
|
}
|
|
1474
1474
|
/**
|
|
1475
1475
|
* Infer issueId from agent directory name
|
|
@@ -1505,7 +1505,7 @@ function resolveWorkspace(issueId) {
|
|
|
1505
1505
|
const issueLower = issueId.toLowerCase();
|
|
1506
1506
|
const projectPaths = getProjectPaths();
|
|
1507
1507
|
for (const projectPath of projectPaths) {
|
|
1508
|
-
const wsPath = join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
1508
|
+
const wsPath = join$1(projectPath, "workspaces", `feature-${issueLower}`);
|
|
1509
1509
|
if (existsSync(wsPath)) return wsPath;
|
|
1510
1510
|
}
|
|
1511
1511
|
return null;
|
|
@@ -1521,7 +1521,7 @@ function findSessionDirsByIssue(issueId) {
|
|
|
1521
1521
|
try {
|
|
1522
1522
|
const entries = readdirSync(claudeDir);
|
|
1523
1523
|
for (const entry of entries) if (entry.includes(`feature-${issueLower}`)) {
|
|
1524
|
-
const fullPath = join(claudeDir, entry);
|
|
1524
|
+
const fullPath = join$1(claudeDir, entry);
|
|
1525
1525
|
dirs.push(fullPath);
|
|
1526
1526
|
}
|
|
1527
1527
|
} catch {}
|
|
@@ -1594,7 +1594,7 @@ function usageToCostEvents(usages, context) {
|
|
|
1594
1594
|
*/
|
|
1595
1595
|
function getSessionDir(workspacePath) {
|
|
1596
1596
|
const sessionDirName = encodeClaudeProjectDir(workspacePath);
|
|
1597
|
-
const sessionDir = join(getClaudeProjectsDir$1(), sessionDirName);
|
|
1597
|
+
const sessionDir = join$1(getClaudeProjectsDir$1(), sessionDirName);
|
|
1598
1598
|
if (existsSync(sessionDir)) return sessionDir;
|
|
1599
1599
|
return null;
|
|
1600
1600
|
}
|
|
@@ -1602,7 +1602,7 @@ function getSessionDir(workspacePath) {
|
|
|
1602
1602
|
* Migrate a single agent's session data
|
|
1603
1603
|
*/
|
|
1604
1604
|
function migrateAgent(agentDir, stats) {
|
|
1605
|
-
const stateFile = join(getAgentsDir$1(), agentDir, "state.json");
|
|
1605
|
+
const stateFile = join$1(getAgentsDir$1(), agentDir, "state.json");
|
|
1606
1606
|
if (!existsSync(stateFile)) {
|
|
1607
1607
|
stats.warnings.push({
|
|
1608
1608
|
file: stateFile,
|
|
@@ -1648,7 +1648,7 @@ function migrateAgent(agentDir, stats) {
|
|
|
1648
1648
|
try {
|
|
1649
1649
|
const files = readdirSync(sessionDir).filter((f) => f.endsWith(".jsonl"));
|
|
1650
1650
|
for (const file of files) {
|
|
1651
|
-
const filePath = join(sessionDir, file);
|
|
1651
|
+
const filePath = join$1(sessionDir, file);
|
|
1652
1652
|
try {
|
|
1653
1653
|
const events = usageToCostEvents(parseSessionFile(filePath), context);
|
|
1654
1654
|
for (const event of events) {
|
|
@@ -1671,11 +1671,11 @@ function migrateAgent(agentDir, stats) {
|
|
|
1671
1671
|
error: `Failed to read session directory: ${err}`
|
|
1672
1672
|
});
|
|
1673
1673
|
}
|
|
1674
|
-
const subagentsDir = join(sessionDir, "subagents");
|
|
1674
|
+
const subagentsDir = join$1(sessionDir, "subagents");
|
|
1675
1675
|
if (existsSync(subagentsDir)) try {
|
|
1676
1676
|
const subagentFiles = readdirSync(subagentsDir).filter((f) => f.endsWith(".jsonl"));
|
|
1677
1677
|
for (const file of subagentFiles) {
|
|
1678
|
-
const filePath = join(subagentsDir, file);
|
|
1678
|
+
const filePath = join$1(subagentsDir, file);
|
|
1679
1679
|
try {
|
|
1680
1680
|
const events = usageToCostEvents(parseSessionFile(filePath), {
|
|
1681
1681
|
...context,
|
|
@@ -1815,17 +1815,17 @@ function piProviderToAiProvider(provider) {
|
|
|
1815
1815
|
return "custom";
|
|
1816
1816
|
}
|
|
1817
1817
|
function getAgentsDir() {
|
|
1818
|
-
return join(process.env.HOME || homedir(), ".overdeck", "agents");
|
|
1818
|
+
return join$1(process.env.HOME || homedir(), ".overdeck", "agents");
|
|
1819
1819
|
}
|
|
1820
1820
|
function getClaudeProjectsDir() {
|
|
1821
|
-
return join(process.env.HOME || homedir(), ".claude", "projects");
|
|
1821
|
+
return join$1(process.env.HOME || homedir(), ".claude", "projects");
|
|
1822
1822
|
}
|
|
1823
1823
|
/**
|
|
1824
1824
|
* Extract session UUID from a transcript filename.
|
|
1825
1825
|
* e.g., "678c8d8d-cefe-45ca-bebc-bafe602aff93.jsonl" → "678c8d8d-cefe-45ca-bebc-bafe602aff93"
|
|
1826
1826
|
*/
|
|
1827
1827
|
function extractSessionId(filename) {
|
|
1828
|
-
return basename(filename, ".jsonl");
|
|
1828
|
+
return basename$1(filename, ".jsonl");
|
|
1829
1829
|
}
|
|
1830
1830
|
function resolveUnmappedSessionIssueId(input, lookup = findConversationForCostSessionSync) {
|
|
1831
1831
|
return classifySessionBucket(input, lookup);
|
|
@@ -1854,13 +1854,13 @@ function buildSessionIndex() {
|
|
|
1854
1854
|
return index;
|
|
1855
1855
|
}
|
|
1856
1856
|
for (const agentDir of entries) {
|
|
1857
|
-
const agentPath = join(agentsDir, agentDir);
|
|
1858
|
-
const sessionsFile = join(agentPath, "sessions.json");
|
|
1857
|
+
const agentPath = join$1(agentsDir, agentDir);
|
|
1858
|
+
const sessionsFile = join$1(agentPath, "sessions.json");
|
|
1859
1859
|
let sessionIds = [];
|
|
1860
1860
|
if (existsSync(sessionsFile)) try {
|
|
1861
1861
|
sessionIds = JSON.parse(readFileSync(sessionsFile, "utf-8"));
|
|
1862
1862
|
} catch {}
|
|
1863
|
-
const stateFile = join(agentPath, "state.json");
|
|
1863
|
+
const stateFile = join$1(agentPath, "state.json");
|
|
1864
1864
|
let issueId = inferIssueId(agentDir);
|
|
1865
1865
|
let stateRole;
|
|
1866
1866
|
if (existsSync(stateFile)) try {
|
|
@@ -2065,7 +2065,7 @@ function findPiTranscriptFiles(agentDir) {
|
|
|
2065
2065
|
const transcripts = [];
|
|
2066
2066
|
for (const f of files) {
|
|
2067
2067
|
if (f === "activity.jsonl" || f === "cost-events.jsonl" || f === "pending-events.jsonl") continue;
|
|
2068
|
-
const full = join(agentDir, f);
|
|
2068
|
+
const full = join$1(agentDir, f);
|
|
2069
2069
|
try {
|
|
2070
2070
|
const fd = openSync(full, "r");
|
|
2071
2071
|
const buf = Buffer.alloc(128);
|
|
@@ -2103,10 +2103,10 @@ async function reconcilePiTranscripts() {
|
|
|
2103
2103
|
return result;
|
|
2104
2104
|
}
|
|
2105
2105
|
for (const agentDirName of agentDirs) {
|
|
2106
|
-
const agentPath = join(agentsDir, agentDirName);
|
|
2106
|
+
const agentPath = join$1(agentsDir, agentDirName);
|
|
2107
2107
|
let issueId = inferIssueId(agentDirName);
|
|
2108
2108
|
let sessionType = "work";
|
|
2109
|
-
const stateFile = join(agentPath, "state.json");
|
|
2109
|
+
const stateFile = join$1(agentPath, "state.json");
|
|
2110
2110
|
if (existsSync(stateFile)) try {
|
|
2111
2111
|
const st = JSON.parse(readFileSync(stateFile, "utf-8"));
|
|
2112
2112
|
if (st.issueId) issueId = st.issueId;
|
|
@@ -2115,7 +2115,7 @@ async function reconcilePiTranscripts() {
|
|
|
2115
2115
|
if (agentDirName.startsWith("planning-")) sessionType = "planning";
|
|
2116
2116
|
const transcripts = findPiTranscriptFiles(agentPath);
|
|
2117
2117
|
for (const transcriptPath of transcripts) {
|
|
2118
|
-
const sessionId = basename(transcriptPath, ".jsonl");
|
|
2118
|
+
const sessionId = basename$1(transcriptPath, ".jsonl");
|
|
2119
2119
|
const resolvedIssueId = issueId ?? resolveUnmappedSessionIssueId({
|
|
2120
2120
|
sessionId,
|
|
2121
2121
|
agentId: agentDirName
|
|
@@ -2202,7 +2202,7 @@ async function reconcilePromise(opts = {}) {
|
|
|
2202
2202
|
return result;
|
|
2203
2203
|
}
|
|
2204
2204
|
for (const dirName of projectDirs) {
|
|
2205
|
-
const projectDir = join(claudeProjectsDir, dirName);
|
|
2205
|
+
const projectDir = join$1(claudeProjectsDir, dirName);
|
|
2206
2206
|
try {
|
|
2207
2207
|
fstatSync(openSync(projectDir, "r"));
|
|
2208
2208
|
} catch {}
|
|
@@ -2215,7 +2215,7 @@ async function reconcilePromise(opts = {}) {
|
|
|
2215
2215
|
}
|
|
2216
2216
|
for (const file of files) {
|
|
2217
2217
|
const sessionId = extractSessionId(file);
|
|
2218
|
-
const transcriptPath = join(projectDir, file);
|
|
2218
|
+
const transcriptPath = join$1(projectDir, file);
|
|
2219
2219
|
result.sessionsScanned++;
|
|
2220
2220
|
try {
|
|
2221
2221
|
const mapping = sessionIndex.get(sessionId);
|
|
@@ -2252,12 +2252,12 @@ async function reconcilePromise(opts = {}) {
|
|
|
2252
2252
|
});
|
|
2253
2253
|
}
|
|
2254
2254
|
}
|
|
2255
|
-
const subagentsDir = join(projectDir, "subagents");
|
|
2255
|
+
const subagentsDir = join$1(projectDir, "subagents");
|
|
2256
2256
|
if (existsSync(subagentsDir)) try {
|
|
2257
2257
|
const subFiles = readdirSync(subagentsDir).filter((f) => f.endsWith(".jsonl"));
|
|
2258
2258
|
for (const file of subFiles) {
|
|
2259
2259
|
const sessionId = `sub-${extractSessionId(file)}`;
|
|
2260
|
-
const transcriptPath = join(subagentsDir, file);
|
|
2260
|
+
const transcriptPath = join$1(subagentsDir, file);
|
|
2261
2261
|
result.sessionsScanned++;
|
|
2262
2262
|
try {
|
|
2263
2263
|
const mapping = sessionIndex.get(sessionId);
|
|
@@ -2342,7 +2342,7 @@ async function syncWalFromAllProjectsPromise() {
|
|
|
2342
2342
|
};
|
|
2343
2343
|
const projects = listProjectsSync();
|
|
2344
2344
|
for (const { key, config } of projects) {
|
|
2345
|
-
const eventsDir = join(config.events_repo ?? config.path, config.events_path ?? DEFAULT_EVENTS_SUBDIR);
|
|
2345
|
+
const eventsDir = join$1(config.events_repo ?? config.path, config.events_path ?? DEFAULT_EVENTS_SUBDIR);
|
|
2346
2346
|
if (!existsSync(eventsDir)) continue;
|
|
2347
2347
|
const projectStats = {
|
|
2348
2348
|
imported: 0,
|
|
@@ -2357,7 +2357,7 @@ async function syncWalFromAllProjectsPromise() {
|
|
|
2357
2357
|
continue;
|
|
2358
2358
|
}
|
|
2359
2359
|
for (const file of files) {
|
|
2360
|
-
const filePath = join(eventsDir, file);
|
|
2360
|
+
const filePath = join$1(eventsDir, file);
|
|
2361
2361
|
const events = await parseWalFile(filePath, result.errors);
|
|
2362
2362
|
if (events.length === 0) continue;
|
|
2363
2363
|
try {
|
|
@@ -2593,7 +2593,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
|
|
|
2593
2593
|
const prRef = parseGitHubPullRequestUrl(status.prUrl);
|
|
2594
2594
|
if (!prRef) return false;
|
|
2595
2595
|
try {
|
|
2596
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
2596
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
2597
2597
|
if (!isGitHubAppConfigured()) return false;
|
|
2598
2598
|
const prState = await Effect.runPromise(getPullRequestState(prRef.owner, prRef.repo, prRef.number));
|
|
2599
2599
|
console.log(`[merge] reconcileGitHubMergeStatus: ${issueId} PR #${prRef.number} merged=${prState.merged} state=${prState.state}`);
|
|
@@ -2612,7 +2612,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
|
|
|
2612
2612
|
}
|
|
2613
2613
|
async function readBeadsFromJsonl(workspacePath, issueId) {
|
|
2614
2614
|
try {
|
|
2615
|
-
const jsonlPath = join
|
|
2615
|
+
const jsonlPath = join(workspacePath, ".beads", "issues.jsonl");
|
|
2616
2616
|
if (!existsSync$1(jsonlPath)) return [];
|
|
2617
2617
|
const raw = await readFile(jsonlPath, "utf-8");
|
|
2618
2618
|
const issueLower = issueId.toLowerCase();
|
|
@@ -2766,7 +2766,7 @@ const postWorkspaceSyncMainRoute = HttpRouter.add("POST", "/api/issues/:issueId/
|
|
|
2766
2766
|
success: false,
|
|
2767
2767
|
error: "Sync with Main is not supported for remote workspaces"
|
|
2768
2768
|
}, { status: 400 });
|
|
2769
|
-
const workspacePath = workspaceInfo.localPath || join
|
|
2769
|
+
const workspacePath = workspaceInfo.localPath || join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
2770
2770
|
if (!existsSync$1(workspacePath)) return jsonResponse({
|
|
2771
2771
|
success: false,
|
|
2772
2772
|
error: "Workspace does not exist"
|
|
@@ -2851,8 +2851,8 @@ async function triggerMerge(issueId) {
|
|
|
2851
2851
|
enqueueMerge(projectKey, normalizedId);
|
|
2852
2852
|
markMergeProcessing(projectKey, normalizedId);
|
|
2853
2853
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
2854
|
-
const workspacePath = !workspaceInfo.isRemote && workspaceInfo.localPath ? workspaceInfo.localPath : join
|
|
2855
|
-
const workspaceDirName = basename
|
|
2854
|
+
const workspacePath = !workspaceInfo.isRemote && workspaceInfo.localPath ? workspaceInfo.localPath : join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
2855
|
+
const workspaceDirName = basename(workspacePath);
|
|
2856
2856
|
const branchName = workspaceDirName.startsWith("feature-") ? `feature/${workspaceDirName.slice(8)}` : `feature/${issueLower}`;
|
|
2857
2857
|
setReviewStatus(issueId, {
|
|
2858
2858
|
mergeStatus: "merging",
|
|
@@ -2871,8 +2871,8 @@ async function triggerMerge(issueId) {
|
|
|
2871
2871
|
try {
|
|
2872
2872
|
if (workspaceInfo.isRemote && workspaceInfo.vmName) {
|
|
2873
2873
|
console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
|
|
2874
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-
|
|
2875
|
-
const { getForgeAdapter } = await import("./forge-
|
|
2874
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-D-iXNP0I.js");
|
|
2875
|
+
const { getForgeAdapter } = await import("./forge-IgLR0Ist.js");
|
|
2876
2876
|
const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
|
|
2877
2877
|
const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
|
|
2878
2878
|
const remoteForge = remotePrimaryRepo?.forge || "github";
|
|
@@ -2907,7 +2907,7 @@ async function triggerMerge(issueId) {
|
|
|
2907
2907
|
readyForMerge: false
|
|
2908
2908
|
});
|
|
2909
2909
|
completePendingOperation(issueId, null);
|
|
2910
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
2910
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
2911
2911
|
await postMergeLifecycle(issueId, projectPath);
|
|
2912
2912
|
return {
|
|
2913
2913
|
success: true,
|
|
@@ -2944,10 +2944,10 @@ async function triggerMerge(issueId) {
|
|
|
2944
2944
|
const projectConfig = findProjectByTeamSync(issuePrefix);
|
|
2945
2945
|
if (projectConfig?.workspace?.type === "polyrepo" && projectConfig?.workspace?.repos) {
|
|
2946
2946
|
console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
|
|
2947
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-
|
|
2948
|
-
const { runQualityGates } = await import("./validation-
|
|
2949
|
-
const { getForgeAdapter } = await import("./forge-
|
|
2950
|
-
const { messageAgent } = await import("./agents-
|
|
2947
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-D-iXNP0I.js");
|
|
2948
|
+
const { runQualityGates } = await import("./validation-B0QaLIHP.js");
|
|
2949
|
+
const { getForgeAdapter } = await import("./forge-IgLR0Ist.js");
|
|
2950
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
2951
2951
|
let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
|
|
2952
2952
|
if (!mergeSet) {
|
|
2953
2953
|
const error = `No merge set found for ${issueId}`;
|
|
@@ -2989,8 +2989,8 @@ async function triggerMerge(issueId) {
|
|
|
2989
2989
|
const repoHeadsBefore = /* @__PURE__ */ new Map();
|
|
2990
2990
|
const alreadyRebased = /* @__PURE__ */ new Set();
|
|
2991
2991
|
for (const repo of activeRepos) {
|
|
2992
|
-
const repoWorkspacePath = join
|
|
2993
|
-
if (!existsSync$1(repoWorkspacePath) || !existsSync$1(join
|
|
2992
|
+
const repoWorkspacePath = join(workspacePath, repo.repoKey);
|
|
2993
|
+
if (!existsSync$1(repoWorkspacePath) || !existsSync$1(join(repoWorkspacePath, ".git"))) {
|
|
2994
2994
|
const error = `Workspace repo ${repo.repoKey} is missing`;
|
|
2995
2995
|
mergeResults.push({
|
|
2996
2996
|
repo: repo.repoKey,
|
|
@@ -3063,7 +3063,7 @@ async function triggerMerge(issueId) {
|
|
|
3063
3063
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
3064
3064
|
for (const repo of activeRepos) {
|
|
3065
3065
|
if (pushedRepos.has(repo.repoKey)) continue;
|
|
3066
|
-
const repoWorkspacePath = join
|
|
3066
|
+
const repoWorkspacePath = join(workspacePath, repo.repoKey);
|
|
3067
3067
|
try {
|
|
3068
3068
|
await execAsync$5("git fetch origin", {
|
|
3069
3069
|
cwd: repoWorkspacePath,
|
|
@@ -3105,16 +3105,16 @@ async function triggerMerge(issueId) {
|
|
|
3105
3105
|
mergeStatus: "verifying",
|
|
3106
3106
|
mergeNotes: void 0
|
|
3107
3107
|
});
|
|
3108
|
-
const featureFolder = basename
|
|
3108
|
+
const featureFolder = basename(workspacePath);
|
|
3109
3109
|
const gatePlaceholders = {
|
|
3110
3110
|
FEATURE_NAME: featureFolder.replace(/^feature-/, ""),
|
|
3111
3111
|
FEATURE_FOLDER: featureFolder,
|
|
3112
3112
|
BRANCH_NAME: `feature/${featureFolder.replace(/^feature-/, "")}`,
|
|
3113
|
-
COMPOSE_PROJECT: `${basename
|
|
3113
|
+
COMPOSE_PROJECT: `${basename(projectPath)}-${featureFolder}`,
|
|
3114
3114
|
DOMAIN: projectConfig?.workspace?.dns?.domain || "localhost",
|
|
3115
|
-
PROJECT_NAME: basename
|
|
3115
|
+
PROJECT_NAME: basename(projectPath),
|
|
3116
3116
|
PROJECT_PATH: projectPath,
|
|
3117
|
-
PROJECTS_DIR: dirname
|
|
3117
|
+
PROJECTS_DIR: dirname(projectPath),
|
|
3118
3118
|
WORKSPACE_PATH: workspacePath
|
|
3119
3119
|
};
|
|
3120
3120
|
for (const repo of activeRepos) {
|
|
@@ -3153,7 +3153,7 @@ async function triggerMerge(issueId) {
|
|
|
3153
3153
|
}
|
|
3154
3154
|
setReviewStatus(issueId, { mergeStatus: "merging" });
|
|
3155
3155
|
for (const repo of activeRepos) {
|
|
3156
|
-
const repoWorkspacePath = join
|
|
3156
|
+
const repoWorkspacePath = join(workspacePath, repo.repoKey);
|
|
3157
3157
|
try {
|
|
3158
3158
|
mergeSet = withRepoStateSync(mergeSet, repo.repoKey, { mergeStatus: "merging" });
|
|
3159
3159
|
upsertMergeSetSync(mergeSet);
|
|
@@ -3217,7 +3217,7 @@ async function triggerMerge(issueId) {
|
|
|
3217
3217
|
readyForMerge: false
|
|
3218
3218
|
});
|
|
3219
3219
|
completePendingOperation(issueId, null);
|
|
3220
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3220
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
3221
3221
|
advanceQueue();
|
|
3222
3222
|
await postMergeLifecycle(issueId, projectPath);
|
|
3223
3223
|
return {
|
|
@@ -3228,8 +3228,8 @@ async function triggerMerge(issueId) {
|
|
|
3228
3228
|
repos: mergeResults
|
|
3229
3229
|
};
|
|
3230
3230
|
}
|
|
3231
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-
|
|
3232
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3231
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-D-iXNP0I.js");
|
|
3232
|
+
const { getForgeAdapter } = await import("./forge-IgLR0Ist.js");
|
|
3233
3233
|
const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
|
|
3234
3234
|
const targetBranch = primaryRepo?.targetBranch || "main";
|
|
3235
3235
|
const primaryForge = primaryRepo?.forge || "github";
|
|
@@ -3271,7 +3271,7 @@ async function triggerMerge(issueId) {
|
|
|
3271
3271
|
};
|
|
3272
3272
|
}
|
|
3273
3273
|
if (githubPrRef) try {
|
|
3274
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
3274
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
3275
3275
|
if (isGitHubAppConfigured()) {
|
|
3276
3276
|
const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
|
|
3277
3277
|
if (prState.state !== "OPEN" && !prState.merged) {
|
|
@@ -3332,7 +3332,7 @@ async function triggerMerge(issueId) {
|
|
|
3332
3332
|
readyForMerge: false
|
|
3333
3333
|
});
|
|
3334
3334
|
completePendingOperation(issueId, null);
|
|
3335
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3335
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
3336
3336
|
await postMergeLifecycle(issueId, projectPath, branchName);
|
|
3337
3337
|
return {
|
|
3338
3338
|
success: true,
|
|
@@ -3346,7 +3346,7 @@ async function triggerMerge(issueId) {
|
|
|
3346
3346
|
} catch (prStateErr) {
|
|
3347
3347
|
console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
|
|
3348
3348
|
}
|
|
3349
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3349
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
3350
3350
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
3351
3351
|
const rebaseMsg = `MERGE REQUESTED: The human has clicked MERGE for ${issueId}. Please rebase onto ${targetBranch} and push:\n\n1. git fetch origin ${targetBranch}\n2. git rebase origin/${targetBranch}\n3. If conflicts: resolve them, git add, git rebase --continue\n4. git push --force-with-lease\n\nAfter pushing, the server will handle verification and merge automatically. Do NOT run gh pr merge yourself.`;
|
|
3352
3352
|
setReviewStatus(issueId, { mergeStep: "rebasing" });
|
|
@@ -3480,7 +3480,7 @@ async function triggerMerge(issueId) {
|
|
|
3480
3480
|
});
|
|
3481
3481
|
let skipLocalVerification = false;
|
|
3482
3482
|
if (primaryForge === "github" && artifactUrl) try {
|
|
3483
|
-
const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-
|
|
3483
|
+
const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
3484
3484
|
if (isGitHubAppConfigured()) {
|
|
3485
3485
|
const ref = parsePullRequestRef({ url: artifactUrl });
|
|
3486
3486
|
if (ref) {
|
|
@@ -3506,7 +3506,7 @@ async function triggerMerge(issueId) {
|
|
|
3506
3506
|
const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
|
|
3507
3507
|
console.log(`[merge] Running post-rebase verification for ${issueId}...`);
|
|
3508
3508
|
appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
|
|
3509
|
-
const { runVerificationForIssue } = await import("./verification-runner-
|
|
3509
|
+
const { runVerificationForIssue } = await import("./verification-runner-DdleMNLq.js");
|
|
3510
3510
|
return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
|
|
3511
3511
|
syncTargetBranch: false,
|
|
3512
3512
|
onGateLog: (line) => appendShipLog(issueId, line, "verifying")
|
|
@@ -3539,7 +3539,7 @@ async function triggerMerge(issueId) {
|
|
|
3539
3539
|
console.log(`[merge] Post-rebase verification ${verifyResult.outcome} for ${issueId}`);
|
|
3540
3540
|
setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
|
|
3541
3541
|
try {
|
|
3542
|
-
const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-
|
|
3542
|
+
const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-C7lftMNj.js");
|
|
3543
3543
|
if (githubPrRef && isGitHubAppConfigured()) {
|
|
3544
3544
|
const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
|
|
3545
3545
|
if (sha) {
|
|
@@ -3567,7 +3567,7 @@ async function triggerMerge(issueId) {
|
|
|
3567
3567
|
} catch (prMergeErr) {
|
|
3568
3568
|
console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
|
|
3569
3569
|
try {
|
|
3570
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
3570
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
3571
3571
|
if (githubPrRef && isGitHubAppConfigured()) {
|
|
3572
3572
|
artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
|
|
3573
3573
|
if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
|
|
@@ -3684,8 +3684,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
|
|
|
3684
3684
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
3685
3685
|
if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
|
|
3686
3686
|
return yield* Effect.promise(async () => {
|
|
3687
|
-
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-
|
|
3688
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3687
|
+
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-D-iXNP0I.js");
|
|
3688
|
+
const { getForgeAdapter } = await import("./forge-IgLR0Ist.js");
|
|
3689
3689
|
let mergeSet = getMergeSetSync(issueId);
|
|
3690
3690
|
if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
|
|
3691
3691
|
const results = [];
|
|
@@ -3698,7 +3698,7 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
|
|
|
3698
3698
|
continue;
|
|
3699
3699
|
}
|
|
3700
3700
|
const adapter = getForgeAdapter(repo.forge);
|
|
3701
|
-
const workspacePath = mergeSet.workspaceType === "polyrepo" ? join
|
|
3701
|
+
const workspacePath = mergeSet.workspaceType === "polyrepo" ? join(mergeSet.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`, repo.repoKey) : join(mergeSet.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
3702
3702
|
let artifactUrl = repo.artifactUrl;
|
|
3703
3703
|
let artifactId = repo.artifactId;
|
|
3704
3704
|
if (!artifactUrl && !artifactId) try {
|
|
@@ -3773,8 +3773,8 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
|
|
|
3773
3773
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
3774
3774
|
if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
|
|
3775
3775
|
return yield* Effect.promise(async () => {
|
|
3776
|
-
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-
|
|
3777
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3776
|
+
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-D-iXNP0I.js");
|
|
3777
|
+
const { getForgeAdapter } = await import("./forge-IgLR0Ist.js");
|
|
3778
3778
|
let mergeSet = getMergeSetSync(issueId);
|
|
3779
3779
|
if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
|
|
3780
3780
|
const results = [];
|
|
@@ -3787,7 +3787,7 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
|
|
|
3787
3787
|
continue;
|
|
3788
3788
|
}
|
|
3789
3789
|
const adapter = getForgeAdapter(repo.forge);
|
|
3790
|
-
const workspacePath = mergeSet.workspaceType === "polyrepo" ? join
|
|
3790
|
+
const workspacePath = mergeSet.workspaceType === "polyrepo" ? join(mergeSet.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`, repo.repoKey) : join(mergeSet.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
3791
3791
|
let artifactUrl = repo.artifactUrl;
|
|
3792
3792
|
let artifactId = repo.artifactId;
|
|
3793
3793
|
if (!artifactUrl && !artifactId) try {
|
|
@@ -3884,7 +3884,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
3884
3884
|
return yield* Effect.promise(async () => {
|
|
3885
3885
|
const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
3886
3886
|
const issueLower = issueId.toLowerCase();
|
|
3887
|
-
const workspacePath = join
|
|
3887
|
+
const workspacePath = join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
3888
3888
|
const branchName = `feature/${issueLower}`;
|
|
3889
3889
|
setPendingOperation(issueId, "approve");
|
|
3890
3890
|
if (!existsSync$1(workspacePath)) {
|
|
@@ -3967,7 +3967,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
3967
3967
|
console.log(`[approve] Starting role pipeline for ${issueId}...`);
|
|
3968
3968
|
let reviewResult;
|
|
3969
3969
|
try {
|
|
3970
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
3970
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
3971
3971
|
reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
3972
3972
|
issueId,
|
|
3973
3973
|
workspace: workspacePath,
|
|
@@ -4014,8 +4014,8 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
4014
4014
|
}
|
|
4015
4015
|
console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
|
|
4016
4016
|
try {
|
|
4017
|
-
const { rebaseFeatureBranch } = await import("./merge-rebase-
|
|
4018
|
-
const workspacePathForRebase = join
|
|
4017
|
+
const { rebaseFeatureBranch } = await import("./merge-rebase-R7MfqpiE.js");
|
|
4018
|
+
const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
4019
4019
|
const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
|
|
4020
4020
|
if (!rebaseResult.success) {
|
|
4021
4021
|
const conflictDetail = rebaseResult.conflictFiles?.length ? `\nConflict files: ${rebaseResult.conflictFiles.join(", ")}` : "";
|
|
@@ -4034,7 +4034,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
4034
4034
|
completePendingOperation(issueId, pushResult.error);
|
|
4035
4035
|
return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
|
|
4036
4036
|
}
|
|
4037
|
-
const { approve: lifecycleApprove } = await import("./lifecycle-
|
|
4037
|
+
const { approve: lifecycleApprove } = await import("./lifecycle-f1GbDK33.js");
|
|
4038
4038
|
const ghResolved = resolveGitHubIssueSync(issueId);
|
|
4039
4039
|
const isGitHubIssueFlag = ghResolved.isGitHub;
|
|
4040
4040
|
const lifecycleCtx = {
|
|
@@ -4068,7 +4068,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
|
|
|
4068
4068
|
})));
|
|
4069
4069
|
const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
|
|
4070
4070
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
4071
|
-
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-
|
|
4071
|
+
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-nobT6FhA.js"));
|
|
4072
4072
|
const expected = getInternalTokenSync();
|
|
4073
4073
|
if (!expected) return jsonResponse({
|
|
4074
4074
|
ok: false,
|
|
@@ -4082,7 +4082,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
|
|
|
4082
4082
|
}, 403);
|
|
4083
4083
|
const event = yield* readJsonBody;
|
|
4084
4084
|
const type = event.type;
|
|
4085
|
-
const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-
|
|
4085
|
+
const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-BtYHbBPl.js"));
|
|
4086
4086
|
switch (type) {
|
|
4087
4087
|
case "status_changed": {
|
|
4088
4088
|
const issueId = event.issueId;
|
|
@@ -4327,11 +4327,11 @@ async function getMrUrlAsync(issueId, workspacePath) {
|
|
|
4327
4327
|
}
|
|
4328
4328
|
}
|
|
4329
4329
|
async function getIndexStats(workspacePath) {
|
|
4330
|
-
const tldrPath = join
|
|
4330
|
+
const tldrPath = join(workspacePath, ".tldr");
|
|
4331
4331
|
if (!await access(tldrPath).then(() => true, () => false)) return {};
|
|
4332
4332
|
try {
|
|
4333
4333
|
let indexAge;
|
|
4334
|
-
const langContent = await readFile(join
|
|
4334
|
+
const langContent = await readFile(join(tldrPath, "languages.json"), "utf-8").catch(() => null);
|
|
4335
4335
|
if (langContent) {
|
|
4336
4336
|
const langData = JSON.parse(langContent);
|
|
4337
4337
|
if (langData.timestamp) {
|
|
@@ -4348,7 +4348,7 @@ async function getIndexStats(workspacePath) {
|
|
|
4348
4348
|
}
|
|
4349
4349
|
let fileCount;
|
|
4350
4350
|
let edgeCount;
|
|
4351
|
-
const cgContent = await readFile(join
|
|
4351
|
+
const cgContent = await readFile(join(tldrPath, "cache", "call_graph.json"), "utf-8").catch(() => null);
|
|
4352
4352
|
if (cgContent) {
|
|
4353
4353
|
const cg = JSON.parse(cgContent);
|
|
4354
4354
|
edgeCount = Array.isArray(cg.edges) ? cg.edges.length : void 0;
|
|
@@ -4373,7 +4373,7 @@ async function getIndexStats(workspacePath) {
|
|
|
4373
4373
|
}
|
|
4374
4374
|
function resolvePlanLocation(projectPath, issueId) {
|
|
4375
4375
|
return Effect.gen(function* () {
|
|
4376
|
-
const workspacePath = join
|
|
4376
|
+
const workspacePath = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
4377
4377
|
const found = yield* findVBriefByIssue(projectPath, issueId);
|
|
4378
4378
|
if (found) {
|
|
4379
4379
|
const doc = yield* readVBriefDocument(found.path);
|
|
@@ -4512,7 +4512,7 @@ const getWorkspaceStackHealthBatchRoute = HttpRouter.add("GET", "/api/workspace-
|
|
|
4512
4512
|
issueId: normalizedIssueId
|
|
4513
4513
|
}
|
|
4514
4514
|
};
|
|
4515
|
-
const workspacePath = join
|
|
4515
|
+
const workspacePath = join(resolved.projectPath, projectConfig.workspace?.workspaces_dir ?? "workspaces", `feature-${parsed.normalized}`);
|
|
4516
4516
|
if (!existsSync$1(workspacePath)) return {
|
|
4517
4517
|
kind: "response",
|
|
4518
4518
|
normalizedIssueId,
|
|
@@ -4571,17 +4571,17 @@ const getWorkspaceRoute = HttpRouter.add("GET", "/api/workspaces/:issueId", http
|
|
|
4571
4571
|
location: "remote",
|
|
4572
4572
|
message: `Workspace is on remote Fly machine: ${workspaceInfo.vmName}`
|
|
4573
4573
|
});
|
|
4574
|
-
const workspacePath = join
|
|
4574
|
+
const workspacePath = join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
4575
4575
|
if (!existsSync$1(workspacePath)) return jsonResponse({
|
|
4576
4576
|
exists: false,
|
|
4577
4577
|
issueId
|
|
4578
4578
|
});
|
|
4579
|
-
const gitFile = join
|
|
4580
|
-
const apiGit = join
|
|
4581
|
-
const feGit = join
|
|
4582
|
-
const srcGit = join
|
|
4583
|
-
const devcontainer = join
|
|
4584
|
-
const claudeMd = join
|
|
4579
|
+
const gitFile = join(workspacePath, ".git");
|
|
4580
|
+
const apiGit = join(workspacePath, "api", ".git");
|
|
4581
|
+
const feGit = join(workspacePath, "fe", ".git");
|
|
4582
|
+
const srcGit = join(workspacePath, "src", ".git");
|
|
4583
|
+
const devcontainer = join(workspacePath, ".devcontainer");
|
|
4584
|
+
const claudeMd = join(workspacePath, "CLAUDE.md");
|
|
4585
4585
|
if (!(existsSync$1(gitFile) || existsSync$1(apiGit) || existsSync$1(feGit) || existsSync$1(srcGit) || existsSync$1(devcontainer) || existsSync$1(claudeMd))) return jsonResponse({
|
|
4586
4586
|
exists: true,
|
|
4587
4587
|
corrupted: true,
|
|
@@ -4601,9 +4601,9 @@ const getWorkspaceRoute = HttpRouter.add("GET", "/api/workspaces/:issueId", http
|
|
|
4601
4601
|
if (entries[1]) apiUrl = `https://${entries[1].replace("{{FEATURE_FOLDER}}", featureFolder).replace("{{DOMAIN}}", dnsDomain)}`;
|
|
4602
4602
|
}
|
|
4603
4603
|
let services = [];
|
|
4604
|
-
const panContinueFile = join
|
|
4605
|
-
const workspaceMd = join
|
|
4606
|
-
const dockerCompose = join
|
|
4604
|
+
const panContinueFile = join(workspacePath, PAN_DIRNAME, PAN_CONTINUE_FILENAME);
|
|
4605
|
+
const workspaceMd = join(workspacePath, "WORKSPACE.md");
|
|
4606
|
+
const dockerCompose = join(workspacePath, "docker-compose.yml");
|
|
4607
4607
|
const urlSourceFile = existsSync$1(panContinueFile) ? panContinueFile : existsSync$1(workspaceMd) ? workspaceMd : null;
|
|
4608
4608
|
if (urlSourceFile) try {
|
|
4609
4609
|
const urlMatches = (yield* Effect.promise(() => readFile(urlSourceFile, "utf-8"))).matchAll(/(\w+):\s*(https?:\/\/[^\s\n]+)/gi);
|
|
@@ -4619,11 +4619,11 @@ const getWorkspaceRoute = HttpRouter.add("GET", "/api/workspaces/:issueId", http
|
|
|
4619
4619
|
name: "API",
|
|
4620
4620
|
url: apiUrl
|
|
4621
4621
|
}];
|
|
4622
|
-
const devcontainerPath = join
|
|
4623
|
-
let hasDocker = existsSync$1(dockerCompose) || existsSync$1(join
|
|
4622
|
+
const devcontainerPath = join(workspacePath, ".devcontainer");
|
|
4623
|
+
let hasDocker = existsSync$1(dockerCompose) || existsSync$1(join(workspacePath, "compose.yaml")) || existsSync$1(join(devcontainerPath, "docker-compose.yml")) || existsSync$1(join(devcontainerPath, "docker-compose.devcontainer.yml")) || existsSync$1(join(devcontainerPath, "compose.yaml")) || existsSync$1(join(devcontainerPath, "compose.infra.yml")) || existsSync$1(devcontainerPath);
|
|
4624
4624
|
if (!hasDocker && projectConfig?.workspace?.repos) for (const repo of projectConfig.workspace.repos) {
|
|
4625
|
-
const repoPath = join
|
|
4626
|
-
if (existsSync$1(join
|
|
4625
|
+
const repoPath = join(workspacePath, repo.path);
|
|
4626
|
+
if (existsSync$1(join(repoPath, "docker-compose.yml")) || existsSync$1(join(repoPath, "docker-compose.yaml")) || existsSync$1(join(repoPath, "compose.yaml"))) {
|
|
4627
4627
|
hasDocker = true;
|
|
4628
4628
|
break;
|
|
4629
4629
|
}
|
|
@@ -4827,8 +4827,8 @@ const getWorkspaceTldrRoute = HttpRouter.add("GET", "/api/workspaces/:issueId/tl
|
|
|
4827
4827
|
const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
|
|
4828
4828
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
4829
4829
|
return yield* Effect.promise(async () => {
|
|
4830
|
-
const workspacePath = join
|
|
4831
|
-
const venvPath = join
|
|
4830
|
+
const workspacePath = join(process.cwd(), "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
4831
|
+
const venvPath = join(workspacePath, ".venv");
|
|
4832
4832
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
|
|
4833
4833
|
if (!existsSync$1(venvPath)) return jsonResponse({
|
|
4834
4834
|
available: false,
|
|
@@ -4857,7 +4857,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
|
|
|
4857
4857
|
if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
|
|
4858
4858
|
const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
4859
4859
|
if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
|
|
4860
|
-
yield* Effect.promise(() => import("./record-
|
|
4860
|
+
yield* Effect.promise(() => import("./record-De2syxNB.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
|
|
4861
4861
|
const projectPath = project.path;
|
|
4862
4862
|
const location = yield* resolvePlanLocation(projectPath, issueId);
|
|
4863
4863
|
if (!location) return jsonResponse({ error: "No vBRIEF plan found for this workspace" }, { status: 404 });
|
|
@@ -4964,7 +4964,7 @@ const getWorkspaceCleanPreviewRoute = HttpRouter.add("GET", "/api/workspaces/:is
|
|
|
4964
4964
|
const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
4965
4965
|
const issueLower = issueId.toLowerCase();
|
|
4966
4966
|
const workspaceName = `feature-${issueLower}`;
|
|
4967
|
-
const workspacePath = join
|
|
4967
|
+
const workspacePath = join(projectPath, "workspaces", workspaceName);
|
|
4968
4968
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace does not exist" }, { status: 404 });
|
|
4969
4969
|
return yield* Effect.promise(async () => {
|
|
4970
4970
|
const { stdout: filesOutput } = await execAsync$3(`find "${workspacePath}" \\( ${[
|
|
@@ -5011,8 +5011,8 @@ const getWorkspaceCleanPreviewRoute = HttpRouter.add("GET", "/api/workspaces/:is
|
|
|
5011
5011
|
"web",
|
|
5012
5012
|
"server"
|
|
5013
5013
|
]) {
|
|
5014
|
-
const subdirPath = join
|
|
5015
|
-
if (existsSync$1(join
|
|
5014
|
+
const subdirPath = join(workspacePath, subdir);
|
|
5015
|
+
if (existsSync$1(join(subdirPath, ".git"))) subrepos.push({
|
|
5016
5016
|
prefix: subdir + "/",
|
|
5017
5017
|
gitRoot: subdirPath
|
|
5018
5018
|
});
|
|
@@ -5020,17 +5020,17 @@ const getWorkspaceCleanPreviewRoute = HttpRouter.add("GET", "/api/workspaces/:is
|
|
|
5020
5020
|
let mainGitRoot = null;
|
|
5021
5021
|
const possibleRoots = [
|
|
5022
5022
|
projectPath,
|
|
5023
|
-
join
|
|
5023
|
+
join(projectPath, ".."),
|
|
5024
5024
|
workspacePath
|
|
5025
5025
|
];
|
|
5026
|
-
for (const root of possibleRoots) if (existsSync$1(join
|
|
5026
|
+
for (const root of possibleRoots) if (existsSync$1(join(root, ".git"))) {
|
|
5027
5027
|
mainGitRoot = root;
|
|
5028
5028
|
break;
|
|
5029
5029
|
}
|
|
5030
5030
|
const filesToCheck = codeFiles.slice(0, 100);
|
|
5031
5031
|
const reposUsed = [];
|
|
5032
5032
|
for (const file of filesToCheck) {
|
|
5033
|
-
const workspaceFilePath = join
|
|
5033
|
+
const workspaceFilePath = join(workspacePath, file);
|
|
5034
5034
|
let gitRoot = null;
|
|
5035
5035
|
let relativePath = file;
|
|
5036
5036
|
for (const { prefix, gitRoot: subGitRoot } of subrepos) if (file.startsWith(prefix)) {
|
|
@@ -5092,7 +5092,7 @@ const getWorkspaceCleanPreviewRoute = HttpRouter.add("GET", "/api/workspaces/:is
|
|
|
5092
5092
|
configFiles: configFiles.slice(0, 30),
|
|
5093
5093
|
otherFiles: otherFiles.slice(0, 20),
|
|
5094
5094
|
hasMore: files.length > 100,
|
|
5095
|
-
backupPath: join
|
|
5095
|
+
backupPath: join(projectPath, "workspaces", `.backup-${workspaceName}-${Date.now()}`),
|
|
5096
5096
|
diffAnalysis
|
|
5097
5097
|
});
|
|
5098
5098
|
});
|
|
@@ -5103,11 +5103,11 @@ const postWorkspaceCleanRoute = HttpRouter.add("POST", "/api/workspaces/:issueId
|
|
|
5103
5103
|
const { createBackup } = yield* readJsonBody;
|
|
5104
5104
|
const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
5105
5105
|
const workspaceName = `feature-${issueId.toLowerCase()}`;
|
|
5106
|
-
const workspacePath = join
|
|
5106
|
+
const workspacePath = join(projectPath, "workspaces", workspaceName);
|
|
5107
5107
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace does not exist" }, { status: 404 });
|
|
5108
5108
|
let backupPath = null;
|
|
5109
5109
|
if (createBackup) {
|
|
5110
|
-
backupPath = join
|
|
5110
|
+
backupPath = join(projectPath, "workspaces", `.backup-${workspaceName}-${Date.now()}`);
|
|
5111
5111
|
console.log(`Creating backup: ${workspacePath} -> ${backupPath}`);
|
|
5112
5112
|
yield* Effect.promise(() => execAsync$3(`rsync -a --quiet --exclude=node_modules --exclude=target --exclude=dist --exclude=.git --exclude=__pycache__ --exclude=.cache --exclude=.next --exclude=coverage "${workspacePath}/" "${backupPath}/"`, {
|
|
5113
5113
|
encoding: "utf-8",
|
|
@@ -5206,7 +5206,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5206
5206
|
const branchName = `feature/${numericSuffix}`;
|
|
5207
5207
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
5208
5208
|
if (workspaceInfo.isRemote) return jsonResponse({ error: `${issueId} is executing remotely on ${workspaceInfo.vmName ?? "a fly machine"} — run 'pan admin remote reap --issue ${issueId}' after the agent finishes, then review.` }, { status: 409 });
|
|
5209
|
-
const workspacePath = workspaceInfo.localPath || join
|
|
5209
|
+
const workspacePath = workspaceInfo.localPath || join(projectPath, "workspaces", `feature-${numericSuffix}`);
|
|
5210
5210
|
const existingStatus = getReviewStatusSync(issueId);
|
|
5211
5211
|
if (existingStatus?.reviewNotes && ["blocked", "failed"].includes(existingStatus.reviewStatus || "")) {
|
|
5212
5212
|
const isInfraFailure = [
|
|
@@ -5290,7 +5290,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5290
5290
|
console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
|
|
5291
5291
|
}
|
|
5292
5292
|
try {
|
|
5293
|
-
const { createReviewArtifactsForIssue } = await import("./review-artifacts-
|
|
5293
|
+
const { createReviewArtifactsForIssue } = await import("./review-artifacts-C7a45b1_.js");
|
|
5294
5294
|
const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
|
|
5295
5295
|
const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
|
|
5296
5296
|
artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
|
|
@@ -5345,7 +5345,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5345
5345
|
} catch {}
|
|
5346
5346
|
return;
|
|
5347
5347
|
}
|
|
5348
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5348
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
5349
5349
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5350
5350
|
const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5351
5351
|
issueId,
|
|
@@ -5445,7 +5445,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5445
5445
|
success: false,
|
|
5446
5446
|
message: `${canonicalIssueId} is executing remotely on ${wsInfoRerun.vmName ?? "a fly machine"} — run 'pan admin remote reap --issue ${canonicalIssueId}' after the agent finishes, then review.`
|
|
5447
5447
|
}, { status: 409 });
|
|
5448
|
-
const workspacePathRerun = wsInfoRerun.localPath || join
|
|
5448
|
+
const workspacePathRerun = wsInfoRerun.localPath || join(projectPathRerun, "workspaces", `feature-${issueLowerRerun}`);
|
|
5449
5449
|
if (!wsInfoRerun.isRemote) yield* restoreTrackedBeadsExport(workspacePathRerun);
|
|
5450
5450
|
const dirtyError = yield* Effect.promise(() => getDirtyWorkspaceErrorForReviewRequest(workspacePathRerun, wsInfoRerun));
|
|
5451
5451
|
if (dirtyError) {
|
|
@@ -5485,7 +5485,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5485
5485
|
console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
|
|
5486
5486
|
}
|
|
5487
5487
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5488
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5488
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
5489
5489
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5490
5490
|
issueId,
|
|
5491
5491
|
workspace: workspacePathRerun,
|
|
@@ -5534,8 +5534,8 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5534
5534
|
testNotes: "No project configured"
|
|
5535
5535
|
});
|
|
5536
5536
|
} else {
|
|
5537
|
-
const workspacePath = join
|
|
5538
|
-
const { spawnRun } = yield* Effect.promise(() => import("./agents-
|
|
5537
|
+
const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
5538
|
+
const { spawnRun } = yield* Effect.promise(() => import("./agents-C4kZ8a2r.js"));
|
|
5539
5539
|
try {
|
|
5540
5540
|
const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
|
|
5541
5541
|
setReviewStatus(issueId, { testStatus: "testing" });
|
|
@@ -5580,7 +5580,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5580
5580
|
const issueLower = issueId.toLowerCase();
|
|
5581
5581
|
const branchName = `feature/${issueLower}`;
|
|
5582
5582
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
5583
|
-
const workspacePath = workspaceInfo.isRemote ? workspaceInfo.remotePath : workspaceInfo.localPath || join
|
|
5583
|
+
const workspacePath = workspaceInfo.isRemote ? workspaceInfo.remotePath : workspaceInfo.localPath || join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
5584
5584
|
if (!workspaceInfo.exists) return jsonResponse({
|
|
5585
5585
|
success: false,
|
|
5586
5586
|
error: "Workspace does not exist"
|
|
@@ -5624,7 +5624,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5624
5624
|
autoRequeueCount: newCount
|
|
5625
5625
|
}, { status: 500 });
|
|
5626
5626
|
const result = yield* Effect.promise(async () => {
|
|
5627
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5627
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
5628
5628
|
return await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5629
5629
|
issueId,
|
|
5630
5630
|
workspace: workspacePath,
|
|
@@ -5803,7 +5803,7 @@ function buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resol
|
|
|
5803
5803
|
if (!resolved) return null;
|
|
5804
5804
|
const issueLower = issueId.toLowerCase();
|
|
5805
5805
|
const numericSuffix = issueLower.replace(/^[a-z]+-/, "");
|
|
5806
|
-
const wsPath = resetWorkspace.localPath || workspaceInfo.localPath || findWorkspacePath(resolved.projectPath, issueLower) || join
|
|
5806
|
+
const wsPath = resetWorkspace.localPath || workspaceInfo.localPath || findWorkspacePath(resolved.projectPath, issueLower) || join(resolved.projectPath, "workspaces", `feature-${numericSuffix}`);
|
|
5807
5807
|
return {
|
|
5808
5808
|
workspace: wsPath,
|
|
5809
5809
|
branch: wsPath.endsWith("-strike") ? `strike/${issueLower}` : `feature/${numericSuffix}`
|
|
@@ -5921,7 +5921,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5921
5921
|
const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
|
|
5922
5922
|
if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
|
|
5923
5923
|
try {
|
|
5924
|
-
const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-
|
|
5924
|
+
const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-CfohxFWM.js"));
|
|
5925
5925
|
resetPostMergeState(issueId);
|
|
5926
5926
|
} catch (err) {
|
|
5927
5927
|
console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
|
|
@@ -5930,7 +5930,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5930
5930
|
const rerun = body?.rerun === true;
|
|
5931
5931
|
if (rerun) try {
|
|
5932
5932
|
yield* Effect.promise(async () => {
|
|
5933
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5933
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
5934
5934
|
const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
|
|
5935
5935
|
if (dispatchArgs) {
|
|
5936
5936
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
@@ -5959,7 +5959,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5959
5959
|
const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
|
|
5960
5960
|
const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
|
|
5961
5961
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
5962
|
-
const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-
|
|
5962
|
+
const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-uwVftH98.js"));
|
|
5963
5963
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
5964
5964
|
const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
|
|
5965
5965
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
@@ -5989,8 +5989,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5989
5989
|
success: false,
|
|
5990
5990
|
error: "Workspace does not exist"
|
|
5991
5991
|
}, { status: 400 });
|
|
5992
|
-
const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-
|
|
5993
|
-
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-
|
|
5992
|
+
const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-Bqfwuqet.js"));
|
|
5993
|
+
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-uwVftH98.js"));
|
|
5994
5994
|
const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
|
|
5995
5995
|
setReviewStatus(issueId, {
|
|
5996
5996
|
reviewStatus: "pending",
|
|
@@ -6062,8 +6062,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
|
|
|
6062
6062
|
const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
|
|
6063
6063
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
6064
6064
|
return jsonResponse(yield* Effect.promise(async () => {
|
|
6065
|
-
const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-
|
|
6066
|
-
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-
|
|
6065
|
+
const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-De2syxNB.js");
|
|
6066
|
+
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-uwVftH98.js");
|
|
6067
6067
|
const project = resolveProjectForIssue(issueId);
|
|
6068
6068
|
const record = project ? readIssueRecordSync(project, issueId) : null;
|
|
6069
6069
|
return {
|
|
@@ -6089,8 +6089,8 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
|
|
|
6089
6089
|
if (hasMode && body.reviewMode !== null && body.reviewMode !== "quick" && body.reviewMode !== "full" && body.reviewMode !== "none") return jsonResponse({ error: "reviewMode must be quick, full, none, or null" }, { status: 400 });
|
|
6090
6090
|
if (hasScope && body.reReviewScope !== null && body.reReviewScope !== "all" && body.reReviewScope !== "changed" && body.reReviewScope !== "blockers") return jsonResponse({ error: "reReviewScope must be all, changed, blockers, or null" }, { status: 400 });
|
|
6091
6091
|
return jsonResponse(yield* Effect.promise(async () => {
|
|
6092
|
-
const { ensureIssueRecordSync, readIssueRecordSync, resolveProjectForIssue, writeIssueRecordSync } = await import("./record-
|
|
6093
|
-
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-
|
|
6092
|
+
const { ensureIssueRecordSync, readIssueRecordSync, resolveProjectForIssue, writeIssueRecordSync } = await import("./record-De2syxNB.js");
|
|
6093
|
+
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-uwVftH98.js");
|
|
6094
6094
|
const project = resolveProjectForIssue(issueId);
|
|
6095
6095
|
const record = readIssueRecordSync(project, issueId) ?? ensureIssueRecordSync(project, issueId);
|
|
6096
6096
|
if (hasMode) if (body.reviewMode === null) delete record.reviewMode;
|
|
@@ -6129,9 +6129,9 @@ const WORKSPACE_COMPOSE_FILES = [
|
|
|
6129
6129
|
"compose.yaml"
|
|
6130
6130
|
];
|
|
6131
6131
|
function findWorkspaceComposeFile(workspacePath) {
|
|
6132
|
-
const devcontainerDir = join
|
|
6132
|
+
const devcontainerDir = join(workspacePath, DEVCONTAINER_DIRNAME);
|
|
6133
6133
|
for (const file of WORKSPACE_COMPOSE_FILES) {
|
|
6134
|
-
const fullPath = join
|
|
6134
|
+
const fullPath = join(devcontainerDir, file);
|
|
6135
6135
|
if (existsSync$1(fullPath)) return fullPath;
|
|
6136
6136
|
}
|
|
6137
6137
|
return null;
|
|
@@ -6148,7 +6148,7 @@ function resolveWorkspaceStackContext(issueId) {
|
|
|
6148
6148
|
const projectConfig = resolvedProject ? getProjectSync(resolvedProject.projectKey) : null;
|
|
6149
6149
|
const issuePrefix = extractPrefixSync(normalizedIssueId) ?? normalizedIssueId.split("-")[0];
|
|
6150
6150
|
const projectPath = resolvedProject?.projectPath ?? getProjectPath(void 0, issuePrefix);
|
|
6151
|
-
const workspacePath = join
|
|
6151
|
+
const workspacePath = join(projectPath, projectConfig?.workspace?.workspaces_dir ?? "workspaces", `feature-${issueLower}`);
|
|
6152
6152
|
if (!existsSync$1(workspacePath)) return {
|
|
6153
6153
|
error: `Workspace not found for ${normalizedIssueId}`,
|
|
6154
6154
|
status: 404
|
|
@@ -6279,7 +6279,7 @@ const postWorkspaceStackActionRoute = HttpRouter.add("POST", "/api/workspaces/:i
|
|
|
6279
6279
|
"-p",
|
|
6280
6280
|
context.composeProjectName,
|
|
6281
6281
|
action
|
|
6282
|
-
], description, dirname
|
|
6282
|
+
], description, dirname(context.composeFile), {
|
|
6283
6283
|
issueId: context.issueId,
|
|
6284
6284
|
pendingOperation
|
|
6285
6285
|
});
|
|
@@ -6475,7 +6475,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
|
|
|
6475
6475
|
const { parsedIssueId, workspacePath } = getWorkspacePathForIssue(getProjectPath(void 0, parseIssueIdSync(issueId)?.prefix ?? extractPrefixSync(issueId) ?? issueId.split("-")[0]), issueId);
|
|
6476
6476
|
return {
|
|
6477
6477
|
issueId: parsedIssueId,
|
|
6478
|
-
body: await readFile(join
|
|
6478
|
+
body: await readFile(join(workspacePath, PAN_DIRNAME, fileName), "utf-8")
|
|
6479
6479
|
};
|
|
6480
6480
|
}
|
|
6481
6481
|
/**
|
|
@@ -6484,7 +6484,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
|
|
|
6484
6484
|
*/
|
|
6485
6485
|
async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
|
|
6486
6486
|
try {
|
|
6487
|
-
const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-
|
|
6487
|
+
const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-De2syxNB.js");
|
|
6488
6488
|
const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
|
|
6489
6489
|
return recordView ? JSON.stringify(recordView, null, 2) : null;
|
|
6490
6490
|
} catch {
|
|
@@ -6547,15 +6547,15 @@ function getProjectPath(linearProjectId, issuePrefix) {
|
|
|
6547
6547
|
if (config) {
|
|
6548
6548
|
for (const { owner, repo, prefix } of config.repos) if ((prefix || repo.toUpperCase().replace(/-CLI$/, "").replace(/-/g, "")).toUpperCase() === issuePrefix.toUpperCase()) {
|
|
6549
6549
|
const possiblePaths = [
|
|
6550
|
-
join
|
|
6551
|
-
join
|
|
6552
|
-
join
|
|
6550
|
+
join(homedir$1(), "Projects", repo),
|
|
6551
|
+
join(homedir$1(), "Projects", repo.replace(/-cli$/, "")),
|
|
6552
|
+
join(homedir$1(), "Projects", owner, repo)
|
|
6553
6553
|
];
|
|
6554
6554
|
for (const path of possiblePaths) if (existsSync$1(path)) return path;
|
|
6555
6555
|
}
|
|
6556
6556
|
}
|
|
6557
6557
|
}
|
|
6558
|
-
return join
|
|
6558
|
+
return join(homedir$1(), "Projects");
|
|
6559
6559
|
}
|
|
6560
6560
|
function requireTrustedMutationOrigin(request) {
|
|
6561
6561
|
const origin = (() => {
|
|
@@ -6610,7 +6610,7 @@ function getWorkspaceInfoForIssue(issueId) {
|
|
|
6610
6610
|
for (const { config } of listProjectsSync()) {
|
|
6611
6611
|
if (!config.path) continue;
|
|
6612
6612
|
for (const candidate of [`feature-${issueLower}`, `feature-${numericSuffix}`]) {
|
|
6613
|
-
const p = join
|
|
6613
|
+
const p = join(config.path, "workspaces", candidate);
|
|
6614
6614
|
if (existsSync$1(p)) return {
|
|
6615
6615
|
exists: true,
|
|
6616
6616
|
isRemote: false,
|
|
@@ -6618,7 +6618,7 @@ function getWorkspaceInfoForIssue(issueId) {
|
|
|
6618
6618
|
};
|
|
6619
6619
|
}
|
|
6620
6620
|
}
|
|
6621
|
-
const workspacePath = join
|
|
6621
|
+
const workspacePath = join(getProjectPath(void 0, issuePrefix), "workspaces", `feature-${issueLower}`);
|
|
6622
6622
|
if (existsSync$1(workspacePath)) return {
|
|
6623
6623
|
exists: true,
|
|
6624
6624
|
isRemote: false,
|
|
@@ -6907,7 +6907,7 @@ async function repairFlywayIfNeeded(issueId, pgContainer, dbName, projectConfig,
|
|
|
6907
6907
|
repaired: false,
|
|
6908
6908
|
message: "No seed_file configured, cannot locate Flyway baseline"
|
|
6909
6909
|
};
|
|
6910
|
-
const flywayFile = join
|
|
6910
|
+
const flywayFile = join(dirname(join(projectConfig.path, seedRelPath)), "zzz-flyway-workspace-baseline.sql");
|
|
6911
6911
|
if (!existsSync$1(flywayFile)) return {
|
|
6912
6912
|
repaired: false,
|
|
6913
6913
|
message: `Flyway baseline not found: ${flywayFile}`
|
|
@@ -6919,7 +6919,7 @@ async function repairFlywayIfNeeded(issueId, pgContainer, dbName, projectConfig,
|
|
|
6919
6919
|
});
|
|
6920
6920
|
const migrationsRelPath = projectConfig.workspace?.database?.migrations?.path;
|
|
6921
6921
|
if (migrationsRelPath) {
|
|
6922
|
-
const migrationsDir = join
|
|
6922
|
+
const migrationsDir = join(workspacePath, migrationsRelPath);
|
|
6923
6923
|
if (existsSync$1(migrationsDir)) {
|
|
6924
6924
|
emit(`Syncing Flyway checksums from workspace migrations`);
|
|
6925
6925
|
const migrationFiles = (await readdir(migrationsDir)).filter((f) => /^V\d+__.*\.sql$/.test(f));
|
|
@@ -6927,7 +6927,7 @@ async function repairFlywayIfNeeded(issueId, pgContainer, dbName, projectConfig,
|
|
|
6927
6927
|
for (const file of migrationFiles) {
|
|
6928
6928
|
const version = file.match(/^V(\d+)__/)?.[1];
|
|
6929
6929
|
if (!version) continue;
|
|
6930
|
-
let content = await readFile(join
|
|
6930
|
+
let content = await readFile(join(migrationsDir, file));
|
|
6931
6931
|
if (content[0] === 239 && content[1] === 187 && content[2] === 191) content = content.slice(3);
|
|
6932
6932
|
const lines = content.toString("utf-8").split(/\r?\n/);
|
|
6933
6933
|
const checksum = crc32(Buffer.from(lines.join(""), "utf-8")) | 0;
|
|
@@ -7046,11 +7046,11 @@ const postWorkspaceStartRoute = HttpRouter.add("POST", "/api/issues/:issueId/sta
|
|
|
7046
7046
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
7047
7047
|
const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
7048
7048
|
const issueLower = issueId.toLowerCase();
|
|
7049
|
-
const workspacePath = join
|
|
7049
|
+
const workspacePath = join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
7050
7050
|
if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace does not exist" }, { status: 400 });
|
|
7051
|
-
const workspaceBeadsDir = join
|
|
7051
|
+
const workspaceBeadsDir = join(workspacePath, ".beads");
|
|
7052
7052
|
if (!existsSync$1(workspaceBeadsDir)) {
|
|
7053
|
-
const projectRootBeadsDir = join
|
|
7053
|
+
const projectRootBeadsDir = join(projectPath, ".beads");
|
|
7054
7054
|
if (existsSync$1(projectRootBeadsDir)) try {
|
|
7055
7055
|
yield* Effect.promise(() => execAsync(`cp -r "${projectRootBeadsDir}" "${workspaceBeadsDir}"`, { encoding: "utf-8" }));
|
|
7056
7056
|
console.log(`[workspace/start] Copied beads from project root to workspace for ${issueId}`);
|
|
@@ -7058,8 +7058,8 @@ const postWorkspaceStartRoute = HttpRouter.add("POST", "/api/issues/:issueId/sta
|
|
|
7058
7058
|
console.warn(`[workspace/start] Could not copy beads: ${e}`);
|
|
7059
7059
|
}
|
|
7060
7060
|
}
|
|
7061
|
-
const devScript = join
|
|
7062
|
-
const devScriptInContainer = join
|
|
7061
|
+
const devScript = join(workspacePath, "dev");
|
|
7062
|
+
const devScriptInContainer = join(workspacePath, ".devcontainer", "dev");
|
|
7063
7063
|
if (!existsSync$1(devScript)) if (existsSync$1(devScriptInContainer)) try {
|
|
7064
7064
|
yield* Effect.promise(() => symlink(".devcontainer/dev", devScript));
|
|
7065
7065
|
yield* Effect.promise(() => chmod(devScriptInContainer, 493));
|
|
@@ -7068,7 +7068,7 @@ const postWorkspaceStartRoute = HttpRouter.add("POST", "/api/issues/:issueId/sta
|
|
|
7068
7068
|
return jsonResponse({ error: `Workspace has no ./dev script and repair failed: ${repairErr}` }, { status: 400 });
|
|
7069
7069
|
}
|
|
7070
7070
|
else return jsonResponse({ error: "Workspace has no ./dev script (checked root and .devcontainer/)" }, { status: 400 });
|
|
7071
|
-
const envFilePath = join
|
|
7071
|
+
const envFilePath = join(workspacePath, ".env");
|
|
7072
7072
|
const teamPrefix = extractTeamPrefix(issueId);
|
|
7073
7073
|
const projectConfig = teamPrefix ? findProjectByTeamSync(teamPrefix) : null;
|
|
7074
7074
|
if (projectConfig?.workspace?.ports && projectConfig?.workspace?.env?.template) {
|
|
@@ -7087,7 +7087,7 @@ const postWorkspaceStartRoute = HttpRouter.add("POST", "/api/issues/:issueId/sta
|
|
|
7087
7087
|
if (needsRepair) try {
|
|
7088
7088
|
const placeholders = { FEATURE_FOLDER: featureFolder };
|
|
7089
7089
|
for (const [portName, portConfig] of Object.entries(projectConfig.workspace.ports)) {
|
|
7090
|
-
const portFile = join
|
|
7090
|
+
const portFile = join(projectPath, `.${portName}-ports`);
|
|
7091
7091
|
const range = portConfig.range;
|
|
7092
7092
|
let content = "";
|
|
7093
7093
|
if (existsSync$1(portFile)) content = yield* Effect.promise(() => readFile(portFile, "utf-8"));
|
|
@@ -7124,7 +7124,7 @@ const postWorkspaceStartRoute = HttpRouter.add("POST", "/api/issues/:issueId/sta
|
|
|
7124
7124
|
return jsonResponse({ error: "Docker is not running. Start Docker Desktop first." }, { status: 400 });
|
|
7125
7125
|
}
|
|
7126
7126
|
if (projectConfig?.workspace?.database?.migrations?.type === "flyway") try {
|
|
7127
|
-
const composePaths = [join
|
|
7127
|
+
const composePaths = [join(workspacePath, ".devcontainer/docker-compose.devcontainer.yml"), join(workspacePath, "docker-compose.yml")];
|
|
7128
7128
|
let compFile;
|
|
7129
7129
|
for (const cp of composePaths) if (existsSync$1(cp)) {
|
|
7130
7130
|
compFile = cp;
|
|
@@ -7180,7 +7180,7 @@ const postWorkspaceStartRoute = HttpRouter.add("POST", "/api/issues/:issueId/sta
|
|
|
7180
7180
|
appendActivityOutput(activityId, `[${(/* @__PURE__ */ new Date()).toISOString()}] ./dev all exited with code ${code}`);
|
|
7181
7181
|
if (code !== 0 && projectConfig?.workspace?.database?.migrations?.type === "flyway") (async () => {
|
|
7182
7182
|
try {
|
|
7183
|
-
const composePaths = [join
|
|
7183
|
+
const composePaths = [join(workspacePath, ".devcontainer/docker-compose.devcontainer.yml"), join(workspacePath, "docker-compose.yml")];
|
|
7184
7184
|
let composeFile;
|
|
7185
7185
|
for (const cp of composePaths) if (existsSync$1(cp)) {
|
|
7186
7186
|
composeFile = cp;
|
|
@@ -7253,7 +7253,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
|
|
|
7253
7253
|
if (queuePosition === null) try {
|
|
7254
7254
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
7255
7255
|
if (resolved) {
|
|
7256
|
-
const { getQueueForProject } = yield* Effect.promise(() => import("./merge-
|
|
7256
|
+
const { getQueueForProject } = yield* Effect.promise(() => import("./merge-DRMPa8CQ.js"));
|
|
7257
7257
|
const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
|
|
7258
7258
|
id: String(e.id),
|
|
7259
7259
|
type: "task",
|
|
@@ -7291,7 +7291,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7291
7291
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
7292
7292
|
if (workspaceInfo.exists && workspaceInfo.localPath) {
|
|
7293
7293
|
const localPath = workspaceInfo.localPath;
|
|
7294
|
-
const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-
|
|
7294
|
+
const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-DbfC0zls.js"));
|
|
7295
7295
|
try {
|
|
7296
7296
|
const gitInfo = yield* getWorkspaceGitInfo(localPath);
|
|
7297
7297
|
if (gitInfo.HEAD) update.reviewedAtCommit = gitInfo.HEAD;
|
|
@@ -7306,7 +7306,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7306
7306
|
if (verificationStatus) update.verificationStatus = verificationStatus;
|
|
7307
7307
|
if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
|
|
7308
7308
|
const status = setReviewStatus(issueId, update);
|
|
7309
|
-
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
7309
|
+
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-DdvpFNt1.js"));
|
|
7310
7310
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
7311
7311
|
if (reviewStatus && [
|
|
7312
7312
|
"passed",
|
|
@@ -7324,7 +7324,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7324
7324
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
7325
7325
|
const feedbackBody = `CODE REVIEW ${reviewStatus.toUpperCase()} for ${issueId}:\n\n${reviewNotes}\n\n## REQUIRED: Fix ALL issues above, then invoke the /rebase-and-submit skill\n\n1. Read each blocking issue carefully\n2. Fix the code for EVERY issue listed\n3. Run tests locally to verify your fixes\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
|
|
7326
7326
|
try {
|
|
7327
|
-
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-
|
|
7327
|
+
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-DMBdS_jL.js"));
|
|
7328
7328
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7329
7329
|
const fileResult = yield* Effect.promise(() => writeFeedbackFile({
|
|
7330
7330
|
issueId,
|
|
@@ -7388,7 +7388,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7388
7388
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
7389
7389
|
const feedbackBody = `TESTS FAILED for ${issueId}:\n\n${testNotes}\n\n## REQUIRED: Fix ALL test failures, then invoke the /rebase-and-submit skill\n\n1. Read each test failure carefully\n2. Fix the code causing EVERY failure\n3. Run the test suite locally to verify your fixes pass\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
|
|
7390
7390
|
try {
|
|
7391
|
-
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-
|
|
7391
|
+
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-DMBdS_jL.js"));
|
|
7392
7392
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7393
7393
|
const fileResult = yield* Effect.promise(() => writeFeedbackFile({
|
|
7394
7394
|
issueId,
|
|
@@ -7413,14 +7413,14 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7413
7413
|
console.log(`[review-status] ${issueId} marked ready for merge after test=passed`);
|
|
7414
7414
|
yield* Effect.promise(async () => {
|
|
7415
7415
|
try {
|
|
7416
|
-
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-
|
|
7416
|
+
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-Bqfwuqet.js");
|
|
7417
7417
|
const project = resolveProjectFromIssueSync(issueId);
|
|
7418
7418
|
const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
|
|
7419
7419
|
if (!repo || !repo.includes("/")) return;
|
|
7420
7420
|
const [owner, name] = repo.split("/");
|
|
7421
7421
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7422
7422
|
if (!wsInfo?.localPath) return;
|
|
7423
|
-
const { postOverdeckTestsStatus } = await import("./github-app-
|
|
7423
|
+
const { postOverdeckTestsStatus } = await import("./github-app-C7lftMNj.js");
|
|
7424
7424
|
await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
|
|
7425
7425
|
} catch (err) {
|
|
7426
7426
|
console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
|
|
@@ -7461,8 +7461,8 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
|
|
|
7461
7461
|
const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
|
|
7462
7462
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
7463
7463
|
const issueLower = issueId.toLowerCase();
|
|
7464
|
-
const workspacePath = join
|
|
7465
|
-
const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-
|
|
7464
|
+
const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
|
|
7465
|
+
const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-C7lftMNj.js"));
|
|
7466
7466
|
if (!isGitHubAppConfigured()) return jsonResponse({
|
|
7467
7467
|
success: false,
|
|
7468
7468
|
error: "GitHub App not configured"
|
|
@@ -7477,4 +7477,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
|
|
|
7477
7477
|
//#endregion
|
|
7478
7478
|
export { hasDashboardInternalToken as C, getWorkspacePathForIssue as D, rejectUnsafeDashboardMutationRequest as E, dashboardSessionCookieHeader as S, rejectUnauthorizedDashboardSessionMintRequest as T, syncCacheSync as _, pushApproveMain as a, resolveIssueHeadlineCost as b, triggerMerge as c, reconcile as d, reconcilePiTranscripts as f, rebuildCacheSync as g, getCostsForIssueSync as h, mergeOpsRouteLayer as i, resumeQueuedMerges as l, migrateAllSessionsSync as m, buildRichPRBody as n, reconcileGitHubMergeStatus as o, reclassifyUnknownCostEventsSync as p, isBranchAlreadyRebased as r, shouldBlockApproveForDirtyStatus as s, workspacesRouteLayer as t, syncWalFromAllProjects as u, processPendingFeedbackDeliveries as v, rejectUnauthorizedDashboardRequest as w, dashboardCsrfToken as x, getCachedRunningAgents as y };
|
|
7479
7479
|
|
|
7480
|
-
//# sourceMappingURL=workspaces-
|
|
7480
|
+
//# sourceMappingURL=workspaces-Ca4zZs12.js.map
|