@overdeck/desktop 0.45.10 → 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-CMlGznKv.js → advancing-selfheal-BqsLWqEM.js} +4 -4
- package/server/{agent-gc-BtAzj8QN.js → agent-gc-CUb52n7s.js} +3 -3
- package/server/{agent-state-xk_G8t90.js → agent-state-D-moNwhA.js} +1 -1
- package/server/{agent-state-service-C1iUF9Ft.js → agent-state-service-BaZH7sXJ.js} +1 -1
- package/server/{agent-state-service-5ge9xxhx.js → agent-state-service-BzESvLOf.js} +4 -4
- package/server/{agents-DHvsjsuP.js → agents-B5LfpLPv.js} +256 -185
- package/server/{agents-BIggLvi_.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-COm_R96V.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-CvK9xuSS.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-BnpErnD1.js → close-issue-_X3MXJyG.js} +4 -4
- package/server/{closed-issue-reaper-DRqK5k39.js → closed-issue-reaper-BsUfBSjM.js} +13 -13
- package/server/{closed-issue-reaper-BLCQwTpF.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-BhKvrPxn.js → conflict-gate-BtB_o-Vi.js} +3 -3
- package/server/{conflict-gate-JdFuhKuF.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-Ba5aZdrb.js → conversation-compaction-CZRVk4hg.js} +1 -1
- package/server/{conversation-compaction-C5o_eKEm.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-j3qSZ7--.js → deacon-CM0MxbS8.js} +235 -178
- package/server/{deacon-Cv2RMfHs.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-DadWNi5J.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-C4DaDSZ8.js → feedback-target-B2SEai8-.js} +1 -1
- package/server/{feedback-target-oE4-Esxl.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-DefHRzY4.js → flywheel-D2LdPSic.js} +13 -13
- package/server/{flywheel-ClMjGW_u.js → flywheel-Dfpx4bIV.js} +11 -11
- package/server/{flywheel-BqDdGvrQ.js → flywheel-k4FPtCQ_.js} +1 -1
- package/server/{flywheel-merge-order-CuDcqTRJ.js → flywheel-merge-order-CB4lbXeJ.js} +6 -6
- package/server/{flywheel-merge-order-B6YDSElh.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-DKeSVsJL.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-BKKc0XnB.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-DnhQgddB.js → issue-lifecycle-543pQX9D.js} +28 -28
- package/server/{issue-lifecycle-nY4esZn8.js → issue-lifecycle-Bd9XBJAQ.js} +1 -1
- package/server/{issue-service-singleton-Bnqv1uaa.js → issue-service-singleton-BC2JLZi7.js} +1 -1
- package/server/{issue-service-singleton-_AquSBTl.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-CGKm7doE.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-BcgAYStl.js → merge-agent-CHHs5S_0.js} +25 -25
- package/server/{merge-agent-Dh8Y9PDO.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-DmxlYbEo.js → merge-train-98ptZrPT.js} +3 -3
- package/server/{merge-train-deps-DBHsOWt9.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-Db8tUhce.js → orphan-proposed-reconciler-BSGCNJ6X.js} +9 -9
- package/server/{orphan-proposed-reconciler-mXV--tcB.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-_tDZ2D72.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-Bklh6loJ.js → remote-completion-RZYePR_0.js} +12 -12
- package/server/resume-CmxF3Kjz.js +3 -0
- package/server/{review-agent-phzqNqIs.js → review-agent-sZBCpEVv.js} +35 -26
- package/server/review-agent-uwVftH98.js +3 -0
- package/server/{review-artifacts-BGc69epg.js → review-artifacts-C7a45b1_.js} +7 -7
- package/server/{review-context-CCq56O_Y.js → review-context-CErbQpKL.js} +7 -7
- package/server/{review-monitor-BKG2ubt5.js → review-monitor-DHD9m_kh.js} +2 -2
- package/server/{review-status-bBkqUj5i.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-BQjqQXZG.js → review-status-gPndPUBc.js} +66 -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-wqnikhMK.js → review-verdict-feedback-4WZ5ZdbC.js} +7 -7
- package/server/{review-verdict-feedback-cZh9Wi9G.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-B2GmilSI.js → sequence-io-DA0akEQN.js} +5 -5
- package/server/{sequencer-agent-D8pW2aU_.js → sequencer-agent-DeflKafB.js} +6 -6
- package/server/server.js +576 -552
- package/server/{service-CILd-uOt.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-CrP90OFE.js → smart-compaction-Bw1K_Sbl.js} +7 -7
- package/server/{smart-compaction-Bgp_gwcA.js → smart-compaction-xblMyVpT.js} +1 -1
- package/server/{spawn-planning-session-D15KbPOy.js → spawn-planning-session-CzDFSKAQ.js} +1 -1
- package/server/{spawn-planning-session-BmJWHSCu.js → spawn-planning-session-DxLxcM7m.js} +15 -15
- package/server/{specialist-context-CwKkcXL9.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-CvDxquV_.js → specialist-logs-CFJjGsLC.js} +3 -3
- package/server/{specialists-D07ybnam.js → specialists-B4byf18k.js} +156 -156
- package/server/{specialists-BCjcG4uE.js → specialists-BLIreoE7.js} +1 -1
- package/server/{specialists-F2uMO4QS.js → specialists-DdvpFNt1.js} +1 -1
- package/server/{specialists-BYi0k8CZ.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-EjvOkEPl.js → summary-fork-DezPkJSm.js} +16 -16
- package/server/{summary-fork-DedqguZb.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-5LCVbjfq.js → teardown-workspace-CWz1pbEK.js} +12 -12
- package/server/{test-agent-queue-qfsq6uaC.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-C3hWXtip.js → uat-train-DGkIkLxu.js} +1 -1
- package/server/{uat-train-CtNGgXxj.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-BPAhPWR7.js → verification-runner-CntudBes.js} +11 -11
- package/server/{verification-runner-DuZRHjPU.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-H-COJ84X.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-CRU9_vRn.js → workspaces-Ca4zZs12.js} +223 -223
- package/server/cli-CJDWXE_Y.js +0 -3
- package/server/deacon-swarm-D1iAUX-P.js +0 -2
- package/server/forge-BfP7OJwK.js +0 -2
- package/server/inspect-agent-vm88mLYr.js +0 -2
- package/server/merge-ops-QdBiQ8XB.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-DnIsmIgC.js +0 -3
- package/server/review-agent-DgySDb-G.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-Cz8OtiB4.js +0 -2
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
import { i as __require, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { $n as extractPrefixSync, Br as getOverdeckHome, Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, Mt as readIssueRecordForWorkspaceSync, Nn as init_projects, Nt as readIssueRecordSync, Or as OVERDECK_HOME, Ot as init_record, St as ensureIssueRecordSync, Vr as init_paths, an as queueBeadsAutoCommit, cn as getMainDivergence, cr as FsError, dn as isStatePlanePath, er as init_issue_id, f as loadConfigSync, hr as TmuxError, ln as init_state_plane, rn as init_auto_commit, s as init_load, sn as STATE_PLANE_PATHS, vr as init_errors, wn as getIssuePrefix, yr as AGENTS_DIR, zt as writeIssueRecordSync } from "./config-yaml-
|
|
2
|
+
import { $n as extractPrefixSync, Br as getOverdeckHome, Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, Mt as readIssueRecordForWorkspaceSync, Nn as init_projects, Nt as readIssueRecordSync, Or as OVERDECK_HOME, Ot as init_record, St as ensureIssueRecordSync, Vr as init_paths, an as queueBeadsAutoCommit, cn as getMainDivergence, cr as FsError, dn as isStatePlanePath, er as init_issue_id, f as loadConfigSync, hr as TmuxError, ln as init_state_plane, rn as init_auto_commit, s as init_load, sn as STATE_PLANE_PATHS, vr as init_errors, wn as getIssuePrefix, yr as AGENTS_DIR, zt as writeIssueRecordSync } from "./config-yaml-ClpGgrf6.js";
|
|
3
3
|
import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
|
|
4
|
-
import { C as isPaneDead, D as listPaneValuesSync, E as listPaneValues, F as sendKeysAsync, L as sessionExists, O as listSessionNames, P as sendKeys, R as sessionExistsSync, T as killSessionSync, i as capturePane, k as listSessions, w as killSession, x as init_tmux } from "./tmux-
|
|
5
|
-
import { a as init_event_store, i as initEventStore } from "./event-store-
|
|
4
|
+
import { C as isPaneDead, D as listPaneValuesSync, E as listPaneValues, F as sendKeysAsync, L as sessionExists, O as listSessionNames, P as sendKeys, R as sessionExistsSync, T as killSessionSync, i as capturePane, k as listSessions, w as killSession, x as init_tmux } from "./tmux-D57f-XNv.js";
|
|
5
|
+
import { a as init_event_store, i as initEventStore } from "./event-store-DCMqyI07.js";
|
|
6
6
|
import { n as CLAUDE_CODE_BEHAVIOR } from "./src-fgbU-jJ-.js";
|
|
7
|
-
import { C as init_record_lock, S as needsReviewDispatch, c as init_review_status, h as reviewGatesPassedSync, s as getReviewStatusSync, u as loadReviewStatuses, w as withIssueRecordLock, x as init_review_dispatch_decision, y as setReviewStatusSync } from "./review-status-
|
|
8
|
-
import { d as init_agents, g as isTerminalIssueStage, h as getIssueStageSync, p as listAllAgentsSync } from "./briefing-freshness-
|
|
9
|
-
import { An as getAgentDir, B as createOhmypiRuntimeSync, Bn as markAgentRunningState, D as init_context_overflow, Dn as clearAgentTroubledSync, Dt as captureTranscriptUserRecordSnapshot, E as resumeAgent, Fn as init_agent_state, G as init_termination, Hn as markAgentTroubled, Jn as saveAgentStateSync, K as stopAgent, Kn as resetAgentFailureCount, Mn as getAgentState, On as clearYieldForResumeSync, Ot as init_transcript_landing, Pn as getAgentStateSync, Q as listRunningAgentsSync, U as spawnAgent, Un as recordAgentFailure, V as init_ohmypi, X as listAgentStates, Xn as setAgentPausedSync, Y as init_queries, Z as listRunningAgents, Zn as setAgentYieldedSync, _t as init_config, at as init_concurrency, cn as determineModel, ct as resetPatrolDispatchBudget, dt as workResumeSlotsAvailable, en as init_pi_fifo, er as init_persistent_logger, et as countRunningAgents, gn as buildDefaultResumeContinueMessage, gr as
|
|
10
|
-
import { t as init_behavior } from "./behavior-
|
|
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-
|
|
7
|
+
import { C as init_record_lock, S as needsReviewDispatch, c as init_review_status, h as reviewGatesPassedSync, s as getReviewStatusSync, u as loadReviewStatuses, w as withIssueRecordLock, x as init_review_dispatch_decision, y as setReviewStatusSync } from "./review-status-gPndPUBc.js";
|
|
8
|
+
import { d as init_agents, g as isTerminalIssueStage, h as getIssueStageSync, p as listAllAgentsSync } from "./briefing-freshness-B2FdLwIv.js";
|
|
9
|
+
import { An as getAgentDir, B as createOhmypiRuntimeSync, Bn as markAgentRunningState, D as init_context_overflow, Dn as clearAgentTroubledSync, Dt as captureTranscriptUserRecordSnapshot, E as resumeAgent, Fn as init_agent_state, G as init_termination, Hn as markAgentTroubled, Jn as saveAgentStateSync, K as stopAgent, Kn as resetAgentFailureCount, Mn as getAgentState, On as clearYieldForResumeSync, Ot as init_transcript_landing, Pn as getAgentStateSync, Q as listRunningAgentsSync, U as spawnAgent, Un as recordAgentFailure, V as init_ohmypi, X as listAgentStates, Xn as setAgentPausedSync, Y as init_queries, Z as listRunningAgents, Zn as setAgentYieldedSync, _r as init_runtime_state, _t as init_config, at as init_concurrency, cn as determineModel, ct as resetPatrolDispatchBudget, dt as workResumeSlotsAvailable, en as init_pi_fifo, er as init_persistent_logger, et as countRunningAgents, gn as buildDefaultResumeContinueMessage, gr as getAgentRuntimeStateSync, hr as getAgentRuntimeState, ht as DEFAULT_CLOISTER_CONFIG, it as getConcurrencyLimits, j as messageAgent, k as isContextOverflowTail, lt as tryReserveAdvancingSlot, mt as setCachedMemoryVerdict, nr as logDeaconEventSync, nt as describeRunningAgents, ot as releaseAdvancingSlot, pt as init_memory_verdict_cache, qn as saveAgentState, t as init_agents$1, tr as logAgentLifecycleSync, vr as saveAgentRuntimeState, vt as loadCloisterConfig, wt as deliverInitialPromptWithRetry, yt as loadCloisterConfigSync } from "./agents-B5LfpLPv.js";
|
|
10
|
+
import { t as init_behavior } from "./behavior-CPf0pbOt.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
13
|
import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-BvAgFK8n.js";
|
|
14
|
-
import { c as init_review_status_sync, l as markWorkspaceStuck } from "./review-status-sync-
|
|
15
|
-
import { f as init_config$1, m as loadConfigSync$1, p as loadConfig$1 } from "./config-
|
|
16
|
-
import { a as init_launcher_generator, n as init_state_home, t as findRecreatedLegacyStatePaths } from "./state-home-
|
|
17
|
-
import { i as createCodexRuntimeSync, l as init_codex } from "./codex-
|
|
18
|
-
import { T as stampBootReconciliation, f as isFlywheelGloballyPaused, h as setBootReconciliationDecision, i as getFlywheelActiveRunId, l as isDeaconGloballyPaused, r as getBootReconciliationState, s as init_control_settings } from "./control-settings-
|
|
19
|
-
import { c as init_docker_stats, s as DockerStatsCollector } from "./stack-health-
|
|
20
|
-
import { a as queryBeadsForIssue, o as queryReadyBeadsByIssueLabels, r as init_beads_query, s as resolveBeadsQueryRoot } from "./beads-query-
|
|
14
|
+
import { c as init_review_status_sync, l as markWorkspaceStuck } from "./review-status-sync-D3A9KX95.js";
|
|
15
|
+
import { f as init_config$1, m as loadConfigSync$1, p as loadConfig$1 } from "./config-8sjaU6jZ.js";
|
|
16
|
+
import { a as init_launcher_generator, n as init_state_home, t as findRecreatedLegacyStatePaths } from "./state-home-C2Bicw9N.js";
|
|
17
|
+
import { i as createCodexRuntimeSync, l as init_codex } from "./codex-B4KEpX5V.js";
|
|
18
|
+
import { T as stampBootReconciliation, f as isFlywheelGloballyPaused, h as setBootReconciliationDecision, i as getFlywheelActiveRunId, l as isDeaconGloballyPaused, r as getBootReconciliationState, s as init_control_settings } from "./control-settings-D1B3u6HP.js";
|
|
19
|
+
import { c as init_docker_stats, s as DockerStatsCollector } from "./stack-health-Qd7rPiVe.js";
|
|
20
|
+
import { a as queryBeadsForIssue, o as queryReadyBeadsByIssueLabels, r as init_beads_query, s as resolveBeadsQueryRoot } from "./beads-query-e6oku4P5.js";
|
|
21
21
|
import { n as __filename, r as init_esm_shims } from "./esm-shims-DiV9jHa_.js";
|
|
22
|
-
import { O as init_specialists, R as parseReviewerSessionName, T as getTmuxSessionName, at as init_jsonl_parser, d as getAllProjectSpecialistStatuses, it as getSessionFilesSync, rt as getProjectDirsSync, st as parseClaudeSessionSync } from "./specialists-
|
|
23
|
-
import { t as recordDeaconNudge } from "./deacon-nudge-log-
|
|
24
|
-
import { n as init_review_monitor, t as REVIEW_SUB_ROLES } from "./review-monitor-
|
|
25
|
-
import { a as inferBranchFromWorkspace, i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-
|
|
26
|
-
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-
|
|
27
|
-
import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-
|
|
28
|
-
import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-
|
|
22
|
+
import { O as init_specialists, R as parseReviewerSessionName, T as getTmuxSessionName, at as init_jsonl_parser, d as getAllProjectSpecialistStatuses, it as getSessionFilesSync, rt as getProjectDirsSync, st as parseClaudeSessionSync } from "./specialists-DjHbwQ_p.js";
|
|
23
|
+
import { t as recordDeaconNudge } from "./deacon-nudge-log-B-naf89q.js";
|
|
24
|
+
import { n as init_review_monitor, t as REVIEW_SUB_ROLES } from "./review-monitor-DHD9m_kh.js";
|
|
25
|
+
import { a as inferBranchFromWorkspace, i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-oX1pj6nY.js";
|
|
26
|
+
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-Da3DeomA.js";
|
|
27
|
+
import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-BGiuiXAK.js";
|
|
28
|
+
import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-4WZ5ZdbC.js";
|
|
29
29
|
import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-5EP1WS_Z.js";
|
|
30
|
-
import { _ as recordRecoveryFailure, b as listFeatureWorkspaces, g as decideAgentAutonomousRedrive, r as coordinateSwarmSlots } from "./deacon-swarm-
|
|
30
|
+
import { _ as recordRecoveryFailure, b as listFeatureWorkspaces, g as decideAgentAutonomousRedrive, r as coordinateSwarmSlots } from "./deacon-swarm-BstYoz8Q.js";
|
|
31
31
|
import { n as isExplicitNoResumeRequest, t as init_no_resume_mode } from "./no-resume-mode-yrPEQ_pC.js";
|
|
32
|
-
import { n as reconcileClosedIssueAgents } from "./closed-issue-reaper-
|
|
32
|
+
import { n as reconcileClosedIssueAgents } from "./closed-issue-reaper-BsUfBSjM.js";
|
|
33
33
|
import { a as RELEASED_LABEL, i as READY_LABEL, n as OBJECTION_LABEL, o as VETOED_LABEL, r as PARKED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-KLRUhThD.js";
|
|
34
|
-
import { n as pruneTerminalStoppedAgents } from "./agent-gc-
|
|
35
|
-
import { a as spawnWorkAgentThroughAgentsEndpoint, i as reconcileOrphanProposedSpecs, o as triggerRebuildAndStart } from "./orphan-proposed-reconciler-
|
|
36
|
-
import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-
|
|
37
|
-
import { i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-
|
|
34
|
+
import { n as pruneTerminalStoppedAgents } from "./agent-gc-CUb52n7s.js";
|
|
35
|
+
import { a as spawnWorkAgentThroughAgentsEndpoint, i as reconcileOrphanProposedSpecs, o as triggerRebuildAndStart } from "./orphan-proposed-reconciler-BSGCNJ6X.js";
|
|
36
|
+
import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-DGy7tvC9.js";
|
|
37
|
+
import { i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-Bm4uv_AA.js";
|
|
38
38
|
import { createRequire } from "node:module";
|
|
39
|
+
import { join } from "node:path";
|
|
39
40
|
import { Effect } from "effect";
|
|
40
41
|
import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
41
|
-
import { dirname, join } from "path";
|
|
42
|
+
import { dirname as dirname$1, join as join$1 } from "path";
|
|
42
43
|
import { cpus, homedir, loadavg } from "os";
|
|
43
44
|
import { cpus as cpus$1, freemem as freemem$1, homedir as homedir$1, loadavg as loadavg$1, platform as platform$1, totalmem as totalmem$1 } from "node:os";
|
|
44
45
|
import { closeSync as closeSync$1, existsSync as existsSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, unlinkSync as unlinkSync$1, writeFileSync as writeFileSync$1 } from "node:fs";
|
|
45
|
-
import { join as join$1 } from "node:path";
|
|
46
46
|
import { access, readFile } from "node:fs/promises";
|
|
47
47
|
import { readFile as readFile$1, readdir as readdir$1, stat as stat$2, writeFile as writeFile$1 } from "fs/promises";
|
|
48
48
|
import { exec, execFile, spawn } from "node:child_process";
|
|
@@ -358,7 +358,7 @@ function isOwnActiveSpecialist(role) {
|
|
|
358
358
|
return role === "review" || role === "test" || role === "ship";
|
|
359
359
|
}
|
|
360
360
|
function getClaudeProjectDir(workspacePath) {
|
|
361
|
-
return join(homedir(), ".claude", "projects", encodeClaudeProjectDir(workspacePath));
|
|
361
|
+
return join$1(homedir(), ".claude", "projects", encodeClaudeProjectDir(workspacePath));
|
|
362
362
|
}
|
|
363
363
|
async function getActiveSessionPath(projectDir) {
|
|
364
364
|
if (!existsSync(projectDir)) return null;
|
|
@@ -369,8 +369,8 @@ async function getActiveSessionPath(projectDir) {
|
|
|
369
369
|
try {
|
|
370
370
|
return {
|
|
371
371
|
name: f,
|
|
372
|
-
path: join(projectDir, f),
|
|
373
|
-
mtime: (await stat$2(join(projectDir, f))).mtime.getTime()
|
|
372
|
+
path: join$1(projectDir, f),
|
|
373
|
+
mtime: (await stat$2(join$1(projectDir, f))).mtime.getTime()
|
|
374
374
|
};
|
|
375
375
|
} catch {
|
|
376
376
|
return null;
|
|
@@ -390,14 +390,14 @@ function getProjectPathByPrefix(issuePrefix) {
|
|
|
390
390
|
if (config) {
|
|
391
391
|
for (const { owner, repo, prefix } of config.repos) if ((prefix || repo.toUpperCase().replace(/-CLI$/, "").replace(/-/g, "")).toUpperCase() === issuePrefix.toUpperCase()) {
|
|
392
392
|
const possiblePaths = [
|
|
393
|
-
join(homedir(), "Projects", repo),
|
|
394
|
-
join(homedir(), "Projects", repo.replace(/-cli$/, "")),
|
|
395
|
-
join(homedir(), "Projects", owner, repo)
|
|
393
|
+
join$1(homedir(), "Projects", repo),
|
|
394
|
+
join$1(homedir(), "Projects", repo.replace(/-cli$/, "")),
|
|
395
|
+
join$1(homedir(), "Projects", owner, repo)
|
|
396
396
|
];
|
|
397
397
|
for (const path of possiblePaths) if (existsSync(path)) return path;
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
|
-
return join(homedir(), "Projects");
|
|
400
|
+
return join$1(homedir(), "Projects");
|
|
401
401
|
}
|
|
402
402
|
async function getAgentWorkspacePromise(agentId) {
|
|
403
403
|
const workspace = getAgentStateSync(agentId)?.workspace;
|
|
@@ -412,7 +412,7 @@ async function getAgentWorkspacePromise(agentId) {
|
|
|
412
412
|
if (!prefix) return null;
|
|
413
413
|
try {
|
|
414
414
|
const projectPath = getProjectPathByPrefix(prefix);
|
|
415
|
-
const workspacePath = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
415
|
+
const workspacePath = join$1(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
416
416
|
if (existsSync(workspacePath)) return workspacePath;
|
|
417
417
|
return projectPath;
|
|
418
418
|
} catch {
|
|
@@ -445,7 +445,7 @@ async function countPendingAskUserQuestionsForAgentPromise(agentId) {
|
|
|
445
445
|
}
|
|
446
446
|
let total = 0;
|
|
447
447
|
for (const f of files) try {
|
|
448
|
-
const scan = await scanPendingInputsPromise(join(projectDir, f));
|
|
448
|
+
const scan = await scanPendingInputsPromise(join$1(projectDir, f));
|
|
449
449
|
total += scan.askUserQuestions.length;
|
|
450
450
|
} catch {}
|
|
451
451
|
return total;
|
|
@@ -22287,9 +22287,9 @@ new ((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
22287
22287
|
* isSmeeProcessRunning();
|
|
22288
22288
|
*/
|
|
22289
22289
|
init_errors();
|
|
22290
|
-
const SMEE_URL_PATH = join
|
|
22291
|
-
const SMEE_PID_PATH = join
|
|
22292
|
-
const SMEE_LOG_PATH = join
|
|
22290
|
+
const SMEE_URL_PATH = join(homedir$1(), ".overdeck", "github-app", "smee-url");
|
|
22291
|
+
const SMEE_PID_PATH = join(homedir$1(), ".overdeck", "github-app", "smee.pid");
|
|
22292
|
+
const SMEE_LOG_PATH = join(homedir$1(), ".overdeck", "logs", "smee.log");
|
|
22293
22293
|
const require$1 = createRequire(import.meta.url);
|
|
22294
22294
|
function getSmeeUrl() {
|
|
22295
22295
|
try {
|
|
@@ -22464,7 +22464,7 @@ const DEFAULT_RESOURCE_CONFIG = {
|
|
|
22464
22464
|
};
|
|
22465
22465
|
const KB = 1024;
|
|
22466
22466
|
const GIB$1 = 1024 ** 3;
|
|
22467
|
-
const GLOBAL_CONFIG_PATH = join
|
|
22467
|
+
const GLOBAL_CONFIG_PATH = join(homedir$1(), ".overdeck", "config.yaml");
|
|
22468
22468
|
let dockerStatsCollector$1 = null;
|
|
22469
22469
|
let previousCpuSample = null;
|
|
22470
22470
|
let previousCpuSampleAt = 0;
|
|
@@ -23124,7 +23124,7 @@ init_agents$1();
|
|
|
23124
23124
|
init_tmux();
|
|
23125
23125
|
init_jsonl_parser();
|
|
23126
23126
|
init_errors();
|
|
23127
|
-
const CLAUDE_PROJECTS_DIR = join(homedir(), ".claude", "projects");
|
|
23127
|
+
const CLAUDE_PROJECTS_DIR = join$1(homedir(), ".claude", "projects");
|
|
23128
23128
|
/**
|
|
23129
23129
|
* Claude Code Runtime implementation
|
|
23130
23130
|
*/
|
|
@@ -23143,7 +23143,7 @@ var ClaudeCodeRuntimeSync = class {
|
|
|
23143
23143
|
if (!existsSync(CLAUDE_PROJECTS_DIR)) return null;
|
|
23144
23144
|
const projectDirs = getProjectDirsSync();
|
|
23145
23145
|
for (const projectDir of projectDirs) {
|
|
23146
|
-
const indexPath = join(projectDir, "sessions-index.json");
|
|
23146
|
+
const indexPath = join$1(projectDir, "sessions-index.json");
|
|
23147
23147
|
if (existsSync(indexPath)) try {
|
|
23148
23148
|
if (readFileSync(indexPath, "utf-8").includes(workspace)) return projectDir;
|
|
23149
23149
|
} catch {}
|
|
@@ -23154,7 +23154,7 @@ var ClaudeCodeRuntimeSync = class {
|
|
|
23154
23154
|
* Get the active session ID for an agent from the sessions index
|
|
23155
23155
|
*/
|
|
23156
23156
|
getActiveSessionId(projectDir) {
|
|
23157
|
-
const indexPath = join(projectDir, "sessions-index.json");
|
|
23157
|
+
const indexPath = join$1(projectDir, "sessions-index.json");
|
|
23158
23158
|
if (!existsSync(indexPath)) return null;
|
|
23159
23159
|
try {
|
|
23160
23160
|
const indexContent = readFileSync(indexPath, "utf-8");
|
|
@@ -23186,7 +23186,7 @@ var ClaudeCodeRuntimeSync = class {
|
|
|
23186
23186
|
if (!projectDir) return null;
|
|
23187
23187
|
const sessionId = this.getActiveSessionId(projectDir);
|
|
23188
23188
|
if (sessionId) {
|
|
23189
|
-
const sessionPath = join(projectDir, `${sessionId}.jsonl`);
|
|
23189
|
+
const sessionPath = join$1(projectDir, `${sessionId}.jsonl`);
|
|
23190
23190
|
if (existsSync(sessionPath)) return sessionPath;
|
|
23191
23191
|
}
|
|
23192
23192
|
return this.getMostRecentJSONL(projectDir);
|
|
@@ -23209,7 +23209,7 @@ var ClaudeCodeRuntimeSync = class {
|
|
|
23209
23209
|
* Read active heartbeat file if it exists
|
|
23210
23210
|
*/
|
|
23211
23211
|
getActiveHeartbeat(agentId) {
|
|
23212
|
-
const heartbeatPath = join(homedir(), ".overdeck", "heartbeats", `${agentId}.json`);
|
|
23212
|
+
const heartbeatPath = join$1(homedir(), ".overdeck", "heartbeats", `${agentId}.json`);
|
|
23213
23213
|
if (!existsSync(heartbeatPath)) return null;
|
|
23214
23214
|
try {
|
|
23215
23215
|
const content = readFileSync(heartbeatPath, "utf-8");
|
|
@@ -23298,9 +23298,9 @@ var ClaudeCodeRuntimeSync = class {
|
|
|
23298
23298
|
async sendMessage(agentId, message) {
|
|
23299
23299
|
if (!sessionExistsSync(agentId)) throw new Error(`Agent ${agentId} is not running`);
|
|
23300
23300
|
await Effect.runPromise(sendKeys(agentId, message));
|
|
23301
|
-
const mailDir = join(getAgentDir(agentId), "mail");
|
|
23301
|
+
const mailDir = join$1(getAgentDir(agentId), "mail");
|
|
23302
23302
|
mkdirSync(mailDir, { recursive: true });
|
|
23303
|
-
writeFileSync(join(mailDir, `${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.md`), `# Message\n\n${message}\n`);
|
|
23303
|
+
writeFileSync(join$1(mailDir, `${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.md`), `# Message\n\n${message}\n`);
|
|
23304
23304
|
}
|
|
23305
23305
|
/**
|
|
23306
23306
|
* Kill an agent
|
|
@@ -23526,7 +23526,7 @@ async function checkInspectAgentTimeouts(now = /* @__PURE__ */ new Date()) {
|
|
|
23526
23526
|
console.warn(`[deacon] Failed to kill inspect session ${sessionName}: ${msg}`);
|
|
23527
23527
|
});
|
|
23528
23528
|
try {
|
|
23529
|
-
const { messageAgent } = await import("./agents-
|
|
23529
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
23530
23530
|
await messageAgent(`agent-${issueId.toLowerCase()}`, verdict, "deacon:inspect-watchdog");
|
|
23531
23531
|
} catch (err) {
|
|
23532
23532
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -23689,7 +23689,7 @@ async function maybeProactivelyCompactContext(sessionName, now) {
|
|
|
23689
23689
|
if (!sessionName.startsWith("agent-")) return null;
|
|
23690
23690
|
let lastAttempt = contextProactiveCompactState.get(sessionName)?.lastAttempt ?? 0;
|
|
23691
23691
|
if (!lastAttempt) try {
|
|
23692
|
-
const stamp = await readFile$1(join(getAgentDir(sessionName), PROACTIVE_COMPACT_STAMP_FILE), "utf-8");
|
|
23692
|
+
const stamp = await readFile$1(join$1(getAgentDir(sessionName), PROACTIVE_COMPACT_STAMP_FILE), "utf-8");
|
|
23693
23693
|
const parsed = Date.parse(stamp.trim());
|
|
23694
23694
|
if (!Number.isNaN(parsed)) lastAttempt = parsed;
|
|
23695
23695
|
} catch {}
|
|
@@ -23701,7 +23701,7 @@ async function maybeProactivelyCompactContext(sessionName, now) {
|
|
|
23701
23701
|
if (!agentState?.workspace || !sessionId || !agentState.model) return null;
|
|
23702
23702
|
let usage = null;
|
|
23703
23703
|
try {
|
|
23704
|
-
const { computeContextUsage } = await import("./conversation-service-
|
|
23704
|
+
const { computeContextUsage } = await import("./conversation-service-CkL-6MuG.js");
|
|
23705
23705
|
usage = await computeContextUsage(sessionFilePath(agentState.workspace, sessionId), agentState.model);
|
|
23706
23706
|
} catch {
|
|
23707
23707
|
return null;
|
|
@@ -23710,7 +23710,7 @@ async function maybeProactivelyCompactContext(sessionName, now) {
|
|
|
23710
23710
|
await Effect.runPromise(sendKeys(sessionName, "/compact"));
|
|
23711
23711
|
contextProactiveCompactState.set(sessionName, { lastAttempt: now });
|
|
23712
23712
|
try {
|
|
23713
|
-
await writeFile$1(join(getAgentDir(sessionName), PROACTIVE_COMPACT_STAMP_FILE), new Date(now).toISOString(), "utf-8");
|
|
23713
|
+
await writeFile$1(join$1(getAgentDir(sessionName), PROACTIVE_COMPACT_STAMP_FILE), new Date(now).toISOString(), "utf-8");
|
|
23714
23714
|
} catch {}
|
|
23715
23715
|
emitActivityEntrySync({
|
|
23716
23716
|
source: "cloister",
|
|
@@ -23798,13 +23798,13 @@ async function checkApiErrorAgents() {
|
|
|
23798
23798
|
const st = getAgentStateSync(sessionName);
|
|
23799
23799
|
const sid = st?.sessionId ?? runtimeState?.claudeSessionId;
|
|
23800
23800
|
if (st?.workspace && sid && st.model) {
|
|
23801
|
-
const { computeContextUsage } = await import("./conversation-service-
|
|
23801
|
+
const { computeContextUsage } = await import("./conversation-service-CkL-6MuG.js");
|
|
23802
23802
|
const usage = await computeContextUsage(sessionFilePath(st.workspace, sid), st.model);
|
|
23803
23803
|
if (usage && usage.percentUsed < 85) recoveredPct = usage.percentUsed;
|
|
23804
23804
|
}
|
|
23805
23805
|
} catch {}
|
|
23806
23806
|
if (recoveredPct !== null) {
|
|
23807
|
-
const { clearWorkspaceStuck } = await import("./review-status-sync-
|
|
23807
|
+
const { clearWorkspaceStuck } = await import("./review-status-sync-B_GrEke8.js");
|
|
23808
23808
|
clearWorkspaceStuck(issueId);
|
|
23809
23809
|
stuckOverflowNativeRecoveryState.delete(sessionName);
|
|
23810
23810
|
actions.push(`Context overflow recovery: cleared stuck flag for ${sessionName} (context back to ${Math.round(recoveredPct)}%)`);
|
|
@@ -23820,7 +23820,7 @@ async function checkApiErrorAgents() {
|
|
|
23820
23820
|
rec.attempts += 1;
|
|
23821
23821
|
rec.lastAttempt = now;
|
|
23822
23822
|
stuckOverflowNativeRecoveryState.set(sessionName, rec);
|
|
23823
|
-
const { resumeAgent } = await import("./agents-
|
|
23823
|
+
const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
|
|
23824
23824
|
const recovered = await resumeAgent(sessionName, void 0, { compact: true });
|
|
23825
23825
|
if (recovered.success) {
|
|
23826
23826
|
stuckOverflowNativeRecoveryState.delete(sessionName);
|
|
@@ -23868,7 +23868,7 @@ async function checkApiErrorAgents() {
|
|
|
23868
23868
|
}
|
|
23869
23869
|
const compactAttempts = (ov?.compactAttempts ?? 0) + 1;
|
|
23870
23870
|
if (issueId !== null) {
|
|
23871
|
-
const { resumeAgent } = await import("./agents-
|
|
23871
|
+
const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
|
|
23872
23872
|
const resumeResult = await resumeAgent(sessionName, void 0, { compact: true });
|
|
23873
23873
|
contextOverflowRecoveryState.set(sessionName, {
|
|
23874
23874
|
lastAttempt: now,
|
|
@@ -24233,7 +24233,7 @@ function reviewConvoyLiveness(issueId) {
|
|
|
24233
24233
|
*/
|
|
24234
24234
|
async function recoverUnhealthyTestStack(issueId, workspacePath) {
|
|
24235
24235
|
const key = issueId.toUpperCase();
|
|
24236
|
-
const { getWorkspaceStackHealth } = await import("./stack-health-
|
|
24236
|
+
const { getWorkspaceStackHealth } = await import("./stack-health-BFM8YlHw.js");
|
|
24237
24237
|
const health = await Effect.runPromise(getWorkspaceStackHealth(issueId, { workspacePath }));
|
|
24238
24238
|
if (health.healthy) {
|
|
24239
24239
|
testStackRebuildState.delete(key);
|
|
@@ -24265,7 +24265,7 @@ async function recoverUnhealthyTestStack(issueId, workspacePath) {
|
|
|
24265
24265
|
record.attempts += 1;
|
|
24266
24266
|
testStackRebuildState.set(key, record);
|
|
24267
24267
|
console.log(`[deacon] Test stack for ${key} unhealthy (${health.reasons.join("; ")}) — rebuilding (attempt ${record.attempts}/${TEST_STACK_REBUILD_MAX_ATTEMPTS})`);
|
|
24268
|
-
const { rebuildWorkspaceStack } = await import("./rebuild-stack-
|
|
24268
|
+
const { rebuildWorkspaceStack } = await import("./rebuild-stack-CXSgAGPR.js");
|
|
24269
24269
|
const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[deacon] ${key} stack rebuild: ${m}`) }));
|
|
24270
24270
|
if (!result.success) {
|
|
24271
24271
|
console.warn(`[deacon] Test stack rebuild failed for ${key}: ${result.error}`);
|
|
@@ -24393,7 +24393,7 @@ async function handleReviewCoordinatorDied(issueId, _sessionName, _reason) {
|
|
|
24393
24393
|
return actions;
|
|
24394
24394
|
}
|
|
24395
24395
|
try {
|
|
24396
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
24396
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
24397
24397
|
const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
24398
24398
|
issueId,
|
|
24399
24399
|
workspace,
|
|
@@ -24466,7 +24466,7 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
|
|
|
24466
24466
|
try {
|
|
24467
24467
|
const project = resolveProjectFromIssueSync(issueId);
|
|
24468
24468
|
if (project) {
|
|
24469
|
-
const workspacePath = join(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
24469
|
+
const workspacePath = join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
24470
24470
|
if (existsSync(workspacePath)) {
|
|
24471
24471
|
const { stdout } = await execAsync$5("git rev-parse HEAD", { cwd: workspacePath });
|
|
24472
24472
|
reviewUpdate["reviewedAtCommit"] = stdout.trim();
|
|
@@ -24516,14 +24516,14 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
|
|
|
24516
24516
|
return actions;
|
|
24517
24517
|
}
|
|
24518
24518
|
const agentIdForCheck = `agent-${issueId.toLowerCase()}`;
|
|
24519
|
-
if (!existsSync(join(AGENTS_DIR, agentIdForCheck, "completed.processed"))) return actions;
|
|
24519
|
+
if (!existsSync(join$1(AGENTS_DIR, agentIdForCheck, "completed.processed"))) return actions;
|
|
24520
24520
|
const agentState = getAgentStateSync(agentIdForCheck);
|
|
24521
24521
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
24522
24522
|
const issueLower = issueId.toLowerCase();
|
|
24523
24523
|
const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
|
|
24524
24524
|
if (workspace && resolved && !tryReserveAdvancingSlot() && !await tryYieldForAdvancingDispatch("review", issueId)) actions.push(`Deferred review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
|
|
24525
24525
|
else if (workspace && resolved) try {
|
|
24526
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
24526
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
24527
24527
|
const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
24528
24528
|
issueId,
|
|
24529
24529
|
workspace,
|
|
@@ -24548,8 +24548,8 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
|
|
|
24548
24548
|
const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
|
|
24549
24549
|
if (workspace && resolved) {
|
|
24550
24550
|
const branch = `feature/${issueLower}`;
|
|
24551
|
-
const { spawnRun } = await import("./agents-
|
|
24552
|
-
const { buildTestRolePrompt } = await import("./test-agent-queue-
|
|
24551
|
+
const { spawnRun } = await import("./agents-C4kZ8a2r.js");
|
|
24552
|
+
const { buildTestRolePrompt } = await import("./test-agent-queue-TiVXe3ZT.js");
|
|
24553
24553
|
const stackRecovery = await recoverUnhealthyTestStack(issueId, workspace);
|
|
24554
24554
|
if (stackRecovery === "cooldown" || stackRecovery === "exhausted") {
|
|
24555
24555
|
setReviewStatusSync(issueId, { testStatus: "dispatch_failed" });
|
|
@@ -24687,7 +24687,7 @@ async function recoverStalledReviewConvoys(getCanonicalState = getAutoCloseOutCa
|
|
|
24687
24687
|
record.lastAttempt = now;
|
|
24688
24688
|
record.attempts += 1;
|
|
24689
24689
|
stalledReviewConvoyRecoveryState.set(key, record);
|
|
24690
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
24690
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
24691
24691
|
try {
|
|
24692
24692
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
24693
24693
|
issueId,
|
|
@@ -24727,8 +24727,8 @@ async function checkMissingReviewStatuses() {
|
|
|
24727
24727
|
if (!agent.id.startsWith("agent-")) continue;
|
|
24728
24728
|
const issueId = agent.id.replace("agent-", "").toUpperCase();
|
|
24729
24729
|
if (statuses[issueId]) continue;
|
|
24730
|
-
const completedFile = join(AGENTS_DIR, agent.id, "completed");
|
|
24731
|
-
const processedFile = join(AGENTS_DIR, agent.id, "completed.processed");
|
|
24730
|
+
const completedFile = join$1(AGENTS_DIR, agent.id, "completed");
|
|
24731
|
+
const processedFile = join$1(AGENTS_DIR, agent.id, "completed.processed");
|
|
24732
24732
|
if (!existsSync(completedFile) && !existsSync(processedFile)) continue;
|
|
24733
24733
|
const rowCreated = await handleWorkCompleted(issueId);
|
|
24734
24734
|
actions.push(...rowCreated);
|
|
@@ -24758,7 +24758,7 @@ async function checkMissingReviewStatuses() {
|
|
|
24758
24758
|
continue;
|
|
24759
24759
|
}
|
|
24760
24760
|
try {
|
|
24761
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
24761
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
24762
24762
|
await Effect.runPromise(spawnReviewRoleForIssue({
|
|
24763
24763
|
issueId,
|
|
24764
24764
|
workspace,
|
|
@@ -24809,7 +24809,7 @@ async function checkStuckReviewing() {
|
|
|
24809
24809
|
const actions = [];
|
|
24810
24810
|
const REVIEW_STUCK_THRESHOLD_MS = 1800 * 1e3;
|
|
24811
24811
|
try {
|
|
24812
|
-
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-
|
|
24812
|
+
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
|
|
24813
24813
|
const statuses = loadReviewStatuses();
|
|
24814
24814
|
const now = Date.now();
|
|
24815
24815
|
const activeReviewIssues = /* @__PURE__ */ new Set();
|
|
@@ -24825,7 +24825,7 @@ async function checkStuckReviewing() {
|
|
|
24825
24825
|
if (rState?.state === "active" && rState.currentIssue) activeReviewIssues.add(rState.currentIssue.toUpperCase());
|
|
24826
24826
|
}
|
|
24827
24827
|
try {
|
|
24828
|
-
const { listRunningAgents } = await import("./agents-
|
|
24828
|
+
const { listRunningAgents } = await import("./agents-C4kZ8a2r.js");
|
|
24829
24829
|
const agents = await Effect.runPromise(listRunningAgents());
|
|
24830
24830
|
for (const agent of agents) {
|
|
24831
24831
|
if (agent.status === "stopped" || agent.status === "error") continue;
|
|
@@ -24876,7 +24876,7 @@ function isSynthesisForActiveReviewRun(dirPath, status, synthesisMtimeMs) {
|
|
|
24876
24876
|
const spawnedAtMs = Date.parse(status.reviewSpawnedAt);
|
|
24877
24877
|
if (!Number.isFinite(spawnedAtMs)) return true;
|
|
24878
24878
|
if (synthesisMtimeMs < spawnedAtMs) return false;
|
|
24879
|
-
const contextPath = join(dirPath, "context.json");
|
|
24879
|
+
const contextPath = join$1(dirPath, "context.json");
|
|
24880
24880
|
if (!existsSync(contextPath)) return false;
|
|
24881
24881
|
let context;
|
|
24882
24882
|
try {
|
|
@@ -24903,14 +24903,14 @@ async function checkCompletedButUnsignaledReviews() {
|
|
|
24903
24903
|
if (!resolved) continue;
|
|
24904
24904
|
const wsPath = findWorkspacePath(resolved.projectPath, issueId.toLowerCase());
|
|
24905
24905
|
if (!wsPath) continue;
|
|
24906
|
-
const reviewBaseDir = join(wsPath, ".pan", "review");
|
|
24906
|
+
const reviewBaseDir = join$1(wsPath, ".pan", "review");
|
|
24907
24907
|
if (!existsSync(reviewBaseDir)) continue;
|
|
24908
24908
|
let latestDir = null;
|
|
24909
24909
|
let latestMtime = 0;
|
|
24910
24910
|
for (const entry of readdirSync(reviewBaseDir)) {
|
|
24911
24911
|
if (!entry.startsWith(`agent-${issueId.toLowerCase()}-review`)) continue;
|
|
24912
|
-
const dirPath = join(reviewBaseDir, entry);
|
|
24913
|
-
const synthPath = join(dirPath, "synthesis.md");
|
|
24912
|
+
const dirPath = join$1(reviewBaseDir, entry);
|
|
24913
|
+
const synthPath = join$1(dirPath, "synthesis.md");
|
|
24914
24914
|
if (!existsSync(synthPath)) continue;
|
|
24915
24915
|
const mtime = statSync(synthPath).mtimeMs;
|
|
24916
24916
|
if (!isSynthesisForActiveReviewRun(dirPath, status, mtime)) continue;
|
|
@@ -24927,8 +24927,8 @@ async function checkCompletedButUnsignaledReviews() {
|
|
|
24927
24927
|
const sessionAlive = sessionExistsSync(reviewSession);
|
|
24928
24928
|
const paneDead = sessionAlive ? await Effect.runPromise(isPaneDead(reviewSession)).catch(() => true) : true;
|
|
24929
24929
|
const activeReviewState = sessionAlive && !paneDead ? getAgentStateSync(reviewSession) : null;
|
|
24930
|
-
if (activeReviewState?.reviewRunId && latestDir !== join(reviewBaseDir, activeReviewState.reviewRunId)) continue;
|
|
24931
|
-
const synthesisPath = join(latestDir, "synthesis.md");
|
|
24930
|
+
if (activeReviewState?.reviewRunId && latestDir !== join$1(reviewBaseDir, activeReviewState.reviewRunId)) continue;
|
|
24931
|
+
const synthesisPath = join$1(latestDir, "synthesis.md");
|
|
24932
24932
|
let verdict = null;
|
|
24933
24933
|
let topBlocker = "";
|
|
24934
24934
|
try {
|
|
@@ -24958,7 +24958,7 @@ async function checkCompletedButUnsignaledReviews() {
|
|
|
24958
24958
|
}
|
|
24959
24959
|
const nudge = `Your review synthesis is already written and saved. Your ONLY remaining task is to execute this Bash command immediately — do not analyze, do not summarize, do not ask questions, just run it:\n\n${`pan admin specialists done review ${issueId} --status ${verdict}${verdict === "blocked" || verdict === "failed" ? ` --notes "${topBlocker || "See synthesis.md"}"` : ""}`}\n\nRun this command NOW. Do not write any other response before executing it.`;
|
|
24960
24960
|
try {
|
|
24961
|
-
const { messageAgent } = await import("./agents-
|
|
24961
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
24962
24962
|
await messageAgent(reviewSession, nudge);
|
|
24963
24963
|
unsignaledReviewNudges.set(latestDir, now);
|
|
24964
24964
|
actions.push(`Nudged ${reviewSession} to signal ${verdict} (synthesis written ${Math.round((now - latestMtime) / 6e4)}min ago)`);
|
|
@@ -25079,8 +25079,8 @@ async function respawnIdleReviewer(state, agentId) {
|
|
|
25079
25079
|
return false;
|
|
25080
25080
|
}
|
|
25081
25081
|
try {
|
|
25082
|
-
const { spawnReviewSubRoleForIssue } = await import("./review-agent-
|
|
25083
|
-
const contextManifestPath = join(dirname(outputPath), "context.json");
|
|
25082
|
+
const { spawnReviewSubRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
25083
|
+
const contextManifestPath = join$1(dirname$1(outputPath), "context.json");
|
|
25084
25084
|
const result = await Effect.runPromise(spawnReviewSubRoleForIssue({
|
|
25085
25085
|
issueId: state.issueId,
|
|
25086
25086
|
workspace: state.workspace,
|
|
@@ -25116,14 +25116,14 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
|
|
|
25116
25116
|
for (const state of synthesisStates) {
|
|
25117
25117
|
const status = getReviewStatusSync(state.issueId);
|
|
25118
25118
|
if (!status || status.reviewStatus !== "reviewing") continue;
|
|
25119
|
-
const reviewDir = join(state.workspace, ".pan", "review", state.reviewRunId);
|
|
25120
|
-
if (existsSync(join(reviewDir, "synthesis.md"))) continue;
|
|
25119
|
+
const reviewDir = join$1(state.workspace, ".pan", "review", state.reviewRunId);
|
|
25120
|
+
if (existsSync(join$1(reviewDir, "synthesis.md"))) continue;
|
|
25121
25121
|
const startedMs = Date.parse(state.startedAt);
|
|
25122
25122
|
const readyLines = [];
|
|
25123
25123
|
const reports = [];
|
|
25124
25124
|
let allReportsPresent = true;
|
|
25125
25125
|
for (const subRole of REVIEW_SUB_ROLES) {
|
|
25126
|
-
const outputPath = join(reviewDir, `${subRole}.md`);
|
|
25126
|
+
const outputPath = join$1(reviewDir, `${subRole}.md`);
|
|
25127
25127
|
if (!existsSync(outputPath)) {
|
|
25128
25128
|
allReportsPresent = false;
|
|
25129
25129
|
break;
|
|
@@ -25162,7 +25162,7 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
|
|
|
25162
25162
|
reviewDir,
|
|
25163
25163
|
reports
|
|
25164
25164
|
});
|
|
25165
|
-
writeFileSync(join(reviewDir, "synthesis.md"), synthesis.body);
|
|
25165
|
+
writeFileSync(join$1(reviewDir, "synthesis.md"), synthesis.body);
|
|
25166
25166
|
let fallbackHead;
|
|
25167
25167
|
try {
|
|
25168
25168
|
const { execFile } = await import("node:child_process");
|
|
@@ -25208,7 +25208,7 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
|
|
|
25208
25208
|
"Read the four reports, write synthesis.md, then signal review status exactly as roles/review.md instructs."
|
|
25209
25209
|
].join("\n");
|
|
25210
25210
|
try {
|
|
25211
|
-
const { messageAgent } = await import("./agents-
|
|
25211
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
25212
25212
|
await messageAgent(state.id, message);
|
|
25213
25213
|
reviewReportsPresentNudges.set(nudgeKey, now);
|
|
25214
25214
|
const action = `Nudged ${state.id} to synthesize from ${REVIEW_SUB_ROLES.length} reviewer reports`;
|
|
@@ -25239,7 +25239,7 @@ async function monitorReviewConvoySignals() {
|
|
|
25239
25239
|
if (!state.reviewSubRole || !state.reviewSynthesisAgentId) continue;
|
|
25240
25240
|
if (state.reviewMonitorSignaled) continue;
|
|
25241
25241
|
const startedMs = Date.parse(state.startedAt);
|
|
25242
|
-
const signalMarker = join(AGENTS_DIR, agentId, "reviewer-signaled");
|
|
25242
|
+
const signalMarker = join$1(AGENTS_DIR, agentId, "reviewer-signaled");
|
|
25243
25243
|
if (existsSync(signalMarker)) try {
|
|
25244
25244
|
if (Number.isFinite(startedMs) && statSync(signalMarker).mtimeMs >= startedMs) continue;
|
|
25245
25245
|
} catch {}
|
|
@@ -25287,7 +25287,7 @@ async function monitorReviewConvoySignals() {
|
|
|
25287
25287
|
if (!signal) continue;
|
|
25288
25288
|
const message = signal === "ready" ? `REVIEWER_READY ${state.reviewSubRole} ${outputPath}` : signal === "timeout" ? `REVIEWER_TIMEOUT ${state.reviewSubRole} ${reason}` : `REVIEWER_FAILED ${state.reviewSubRole} ${reason}`;
|
|
25289
25289
|
try {
|
|
25290
|
-
const { messageAgent } = await import("./agents-
|
|
25290
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
25291
25291
|
await messageAgent(state.reviewSynthesisAgentId, message);
|
|
25292
25292
|
state.reviewMonitorSignaled = signal;
|
|
25293
25293
|
saveAgentStateSync(state);
|
|
@@ -25295,7 +25295,7 @@ async function monitorReviewConvoySignals() {
|
|
|
25295
25295
|
actions.push(action);
|
|
25296
25296
|
logDeaconEventSync(`monitorReviewConvoySignals: ${action}`);
|
|
25297
25297
|
if (signal === "ready") try {
|
|
25298
|
-
const { notifyPipelineSync } = await import("./pipeline-notifier-
|
|
25298
|
+
const { notifyPipelineSync } = await import("./pipeline-notifier-BtYHbBPl.js");
|
|
25299
25299
|
notifyPipelineSync({
|
|
25300
25300
|
type: "reviewer_completed",
|
|
25301
25301
|
issueId: state.issueId,
|
|
@@ -25303,7 +25303,7 @@ async function monitorReviewConvoySignals() {
|
|
|
25303
25303
|
});
|
|
25304
25304
|
} catch {}
|
|
25305
25305
|
else if (signal === "timeout") try {
|
|
25306
|
-
const { notifyPipelineSync } = await import("./pipeline-notifier-
|
|
25306
|
+
const { notifyPipelineSync } = await import("./pipeline-notifier-BtYHbBPl.js");
|
|
25307
25307
|
notifyPipelineSync({
|
|
25308
25308
|
type: "reviewer_timed_out",
|
|
25309
25309
|
issueId: state.issueId,
|
|
@@ -25403,7 +25403,7 @@ const FORK_CACHE_CHECK_DELAY_MS = 180 * 1e3;
|
|
|
25403
25403
|
async function checkStalledReviewDiscovery() {
|
|
25404
25404
|
const actions = [];
|
|
25405
25405
|
try {
|
|
25406
|
-
const { listAgentStates } = await import("./agents-
|
|
25406
|
+
const { listAgentStates } = await import("./agents-C4kZ8a2r.js");
|
|
25407
25407
|
const states = listAgentStates();
|
|
25408
25408
|
const now = Date.now();
|
|
25409
25409
|
for (const state of states) {
|
|
@@ -25412,7 +25412,7 @@ async function checkStalledReviewDiscovery() {
|
|
|
25412
25412
|
const aged = Number.isFinite(startedMs) && now - startedMs > 48e4;
|
|
25413
25413
|
const dead = !await Effect.runPromise(sessionExists(state.id)).catch(() => false) || await Effect.runPromise(isPaneDead(state.id)).catch(() => true);
|
|
25414
25414
|
if (!aged && !dead) continue;
|
|
25415
|
-
const { handleReviewDiscoveryReady } = await import("./review-agent-
|
|
25415
|
+
const { handleReviewDiscoveryReady } = await import("./review-agent-uwVftH98.js");
|
|
25416
25416
|
const result = await handleReviewDiscoveryReady(state.issueId, { source: dead ? "deacon-backstop (parent dead)" : "deacon-backstop (discovery timeout)" });
|
|
25417
25417
|
actions.push(result.message);
|
|
25418
25418
|
logDeaconEventSync(`checkStalledReviewDiscovery: ${result.message}`);
|
|
@@ -25423,6 +25423,58 @@ async function checkStalledReviewDiscovery() {
|
|
|
25423
25423
|
return actions;
|
|
25424
25424
|
}
|
|
25425
25425
|
/**
|
|
25426
|
+
* PAN-2584: liveness for the review PARENT (synthesis/self-review). Deadlines
|
|
25427
|
+
* were armed only on convoy sub-reviewers, so a wedged or dead parent blocked
|
|
25428
|
+
* re-dispatch behind the idempotency guard forever (the PAN-399 wedge). A
|
|
25429
|
+
* running parent past its deadline whose issue has no terminal review verdict
|
|
25430
|
+
* is killed and its row marked stopped; the durable review-request intent then
|
|
25431
|
+
* respawns it (warm resume keeps its context). The deadline is explicit
|
|
25432
|
+
* (`reviewDeadlineAt`, armed at spawn/resume) with an implicit fallback from
|
|
25433
|
+
* the last (re)start for parents predating the arming code.
|
|
25434
|
+
*/
|
|
25435
|
+
async function checkStalledReviewParents() {
|
|
25436
|
+
const actions = [];
|
|
25437
|
+
try {
|
|
25438
|
+
const { listAgentStates, markAgentStoppedState } = await import("./agents-C4kZ8a2r.js");
|
|
25439
|
+
const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-uwVftH98.js");
|
|
25440
|
+
const states = listAgentStates();
|
|
25441
|
+
const now = Date.now();
|
|
25442
|
+
for (const state of states) {
|
|
25443
|
+
if (state.role !== "review" || state.reviewSubRole || !state.issueId) continue;
|
|
25444
|
+
if (state.status !== "running") continue;
|
|
25445
|
+
const armedMs = state.reviewDeadlineAt ? Date.parse(state.reviewDeadlineAt) : NaN;
|
|
25446
|
+
const startedMs = Date.parse(state.lastResumeAt ?? state.startedAt);
|
|
25447
|
+
const deadlineMs = Number.isFinite(armedMs) ? armedMs : Number.isFinite(startedMs) ? startedMs + PARENT_REVIEW_TIMEOUT_MS : NaN;
|
|
25448
|
+
if (!Number.isFinite(deadlineMs) || now < deadlineMs) continue;
|
|
25449
|
+
const reviewStatus = getReviewStatusSync(state.issueId)?.reviewStatus;
|
|
25450
|
+
if (reviewStatus === "passed" || reviewStatus === "blocked" || reviewStatus === "failed") continue;
|
|
25451
|
+
try {
|
|
25452
|
+
await Effect.runPromise(killSession(state.id));
|
|
25453
|
+
} catch {}
|
|
25454
|
+
try {
|
|
25455
|
+
saveAgentStateSync(markAgentStoppedState(state));
|
|
25456
|
+
} catch (stopErr) {
|
|
25457
|
+
console.warn(`[deacon] checkStalledReviewParents: could not mark ${state.id} stopped:`, stopErr);
|
|
25458
|
+
}
|
|
25459
|
+
const message = `checkStalledReviewParents: killed ${state.id} — past review deadline with no terminal verdict for ${state.issueId}; redispatch will respawn it warm (PAN-2584)`;
|
|
25460
|
+
actions.push(message);
|
|
25461
|
+
logDeaconEventSync(message);
|
|
25462
|
+
try {
|
|
25463
|
+
const { emitActivityEntrySync } = await import("./activity-logger-DvYvFhwZ.js");
|
|
25464
|
+
emitActivityEntrySync({
|
|
25465
|
+
source: "review",
|
|
25466
|
+
level: "warn",
|
|
25467
|
+
message: `Review parent for ${state.issueId} exceeded its deadline with no verdict — killed for warm respawn`,
|
|
25468
|
+
issueId: state.issueId
|
|
25469
|
+
});
|
|
25470
|
+
} catch {}
|
|
25471
|
+
}
|
|
25472
|
+
} catch (error) {
|
|
25473
|
+
console.error("[deacon] Error checking stalled review parents:", error instanceof Error ? error.message : String(error));
|
|
25474
|
+
}
|
|
25475
|
+
return actions;
|
|
25476
|
+
}
|
|
25477
|
+
/**
|
|
25426
25478
|
* PAN-1862 (FR-11/FR-12): detect a fork cache MISS — a forked reviewer's first
|
|
25427
25479
|
* request reporting cacheRead == 0 when a warm hit was expected (TTL expired,
|
|
25428
25480
|
* model mismatch, prefix drift). Purely observability: reviews are already
|
|
@@ -25433,8 +25485,8 @@ async function checkStalledReviewDiscovery() {
|
|
|
25433
25485
|
async function checkReviewForkCacheMisses() {
|
|
25434
25486
|
const actions = [];
|
|
25435
25487
|
try {
|
|
25436
|
-
const { listAgentStates, saveAgentState } = await import("./agents-
|
|
25437
|
-
const { readEventsSync } = await import("./events-
|
|
25488
|
+
const { listAgentStates, saveAgentState } = await import("./agents-C4kZ8a2r.js");
|
|
25489
|
+
const { readEventsSync } = await import("./events-DLRxpSuV.js");
|
|
25438
25490
|
const { emitActivityEntrySync } = await import("./activity-logger-DvYvFhwZ.js");
|
|
25439
25491
|
const states = listAgentStates();
|
|
25440
25492
|
const now = Date.now();
|
|
@@ -25581,7 +25633,7 @@ async function reconcileStaleMergeStatus() {
|
|
|
25581
25633
|
if (!project) continue;
|
|
25582
25634
|
let specStatus;
|
|
25583
25635
|
try {
|
|
25584
|
-
const { findSpecByIssue } = await import("./specs-
|
|
25636
|
+
const { findSpecByIssue } = await import("./specs-CVH1kvz3.js");
|
|
25585
25637
|
const spec = await Effect.runPromise(findSpecByIssue(project.projectPath, issueId));
|
|
25586
25638
|
specStatus = spec?.status;
|
|
25587
25639
|
if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
|
|
@@ -25596,7 +25648,7 @@ async function reconcileStaleMergeStatus() {
|
|
|
25596
25648
|
if (branchTip.stdout.trim() === mainTip.stdout.trim()) console.log(`[deacon] ${issueId}: branch ${branch} points at main; not treating zero-commit branch as merged`);
|
|
25597
25649
|
} catch {}
|
|
25598
25650
|
if (!isMerged) {
|
|
25599
|
-
const { resolveGitHubIssueSync: _resolveGitHubIssue } = await import("./tracker-utils-
|
|
25651
|
+
const { resolveGitHubIssueSync: _resolveGitHubIssue } = await import("./tracker-utils-Bg-Sevcv.js");
|
|
25600
25652
|
const ghResolved = _resolveGitHubIssue(issueId);
|
|
25601
25653
|
if (ghResolved.isGitHub) try {
|
|
25602
25654
|
const { stdout } = await execFileAsync$4("gh", [
|
|
@@ -25633,7 +25685,7 @@ async function reconcileStaleMergeStatus() {
|
|
|
25633
25685
|
actions.push(msg);
|
|
25634
25686
|
console.log(`[deacon] ${msg}`);
|
|
25635
25687
|
try {
|
|
25636
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
25688
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
25637
25689
|
postMergeLifecycle(issueId, project.projectPath, branch, { skipDeploy: true }).catch((err) => console.warn(`[deacon] postMergeLifecycle (reconcile) failed for ${issueId}: ${err}`));
|
|
25638
25690
|
} catch (err) {
|
|
25639
25691
|
console.warn(`[deacon] Could not import postMergeLifecycle: ${err}`);
|
|
@@ -25658,7 +25710,7 @@ const falseMergedReset = /* @__PURE__ */ new Set();
|
|
|
25658
25710
|
async function reconcileFalseMerged() {
|
|
25659
25711
|
const actions = [];
|
|
25660
25712
|
try {
|
|
25661
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
25713
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
25662
25714
|
if (!isGitHubAppConfigured()) return actions;
|
|
25663
25715
|
const statuses = loadReviewStatuses();
|
|
25664
25716
|
for (const [issueId, status] of Object.entries(statuses)) {
|
|
@@ -25703,7 +25755,7 @@ const CLOSED_PR_RECONCILE_COOLDOWN_MS = 600 * 1e3;
|
|
|
25703
25755
|
async function reconcileClosedPrReadyForMerge() {
|
|
25704
25756
|
const actions = [];
|
|
25705
25757
|
try {
|
|
25706
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
25758
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
25707
25759
|
if (!isGitHubAppConfigured()) return actions;
|
|
25708
25760
|
const statuses = loadReviewStatuses();
|
|
25709
25761
|
const now = Date.now();
|
|
@@ -25775,7 +25827,7 @@ const STALE_MERGE_BLOCKER_COOLDOWN_MS = 120 * 1e3;
|
|
|
25775
25827
|
async function reconcileStaleMergeBlockers() {
|
|
25776
25828
|
const actions = [];
|
|
25777
25829
|
try {
|
|
25778
|
-
const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-
|
|
25830
|
+
const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-Ds9_2yjd.js");
|
|
25779
25831
|
const statuses = loadReviewStatuses();
|
|
25780
25832
|
const now = Date.now();
|
|
25781
25833
|
const deps = buildRealConflictGateDeps();
|
|
@@ -25787,7 +25839,7 @@ async function reconcileStaleMergeBlockers() {
|
|
|
25787
25839
|
staleMergeBlockerCooldowns.set(issueId, now + STALE_MERGE_BLOCKER_COOLDOWN_MS);
|
|
25788
25840
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
25789
25841
|
if (!resolved) continue;
|
|
25790
|
-
const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
25842
|
+
const workspacePath = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
25791
25843
|
if (!existsSync(workspacePath)) continue;
|
|
25792
25844
|
try {
|
|
25793
25845
|
if ((await resolveConflictGate(issueId, workspacePath, "main", deps)).clearedStaleBlocker) {
|
|
@@ -25918,7 +25970,7 @@ async function checkFailedMergeRetry() {
|
|
|
25918
25970
|
if (ciEntry.count === 5) {
|
|
25919
25971
|
console.log(`[deacon] CI check failure for ${issueId} — retries exhausted, notifying work agent`);
|
|
25920
25972
|
const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
|
|
25921
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
25973
|
+
const { writeFeedbackFile } = await import("./feedback-writer-DMBdS_jL.js");
|
|
25922
25974
|
const ciFileResult = await Effect.runPromise(writeFeedbackFile({
|
|
25923
25975
|
issueId,
|
|
25924
25976
|
specialist: "merge-agent",
|
|
@@ -25950,7 +26002,7 @@ async function checkFailedMergeRetry() {
|
|
|
25950
26002
|
ciRetryMap.set(issueId, ciEntry);
|
|
25951
26003
|
console.log(`[deacon] CI check failure for ${issueId} — notifying agent to re-submit (attempt ${ciEntry.count}/5)`);
|
|
25952
26004
|
const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
|
|
25953
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
26005
|
+
const { writeFeedbackFile } = await import("./feedback-writer-DMBdS_jL.js");
|
|
25954
26006
|
const ciFileResult2 = await Effect.runPromise(writeFeedbackFile({
|
|
25955
26007
|
issueId,
|
|
25956
26008
|
specialist: "merge-agent",
|
|
@@ -25978,7 +26030,7 @@ async function checkFailedMergeRetry() {
|
|
|
25978
26030
|
const lastNudge = timeoutNudgeCooldowns.get(issueIdForFb);
|
|
25979
26031
|
if (!lastNudge || now - lastNudge >= TIMEOUT_NUDGE_COOLDOWN_MS) {
|
|
25980
26032
|
const timeoutNotes = status.mergeNotes;
|
|
25981
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
26033
|
+
const { writeFeedbackFile } = await import("./feedback-writer-DMBdS_jL.js");
|
|
25982
26034
|
await Effect.runPromise(writeFeedbackFile({
|
|
25983
26035
|
issueId: issueIdForFb,
|
|
25984
26036
|
specialist: "merge-agent",
|
|
@@ -26083,7 +26135,7 @@ async function autoCloseOut(now = /* @__PURE__ */ new Date()) {
|
|
|
26083
26135
|
} } : {}
|
|
26084
26136
|
};
|
|
26085
26137
|
try {
|
|
26086
|
-
const { closeOut } = await import("./workflows-
|
|
26138
|
+
const { closeOut } = await import("./workflows-pKw9yRSV.js");
|
|
26087
26139
|
const result = await Effect.runPromise(closeOut(ctx));
|
|
26088
26140
|
if (!result.success) {
|
|
26089
26141
|
const failed = result.steps.find((step) => !step.success && !step.skipped);
|
|
@@ -26130,8 +26182,8 @@ async function checkFirstCompletionAgents() {
|
|
|
26130
26182
|
const agentId = agent.id;
|
|
26131
26183
|
if (!agentId || !agentId.startsWith("agent-") || !agent.tmuxActive) continue;
|
|
26132
26184
|
if (agentId.startsWith("specialist-")) continue;
|
|
26133
|
-
const completedFile = join(AGENTS_DIR, agent.id, "completed");
|
|
26134
|
-
const processedMarker = join(AGENTS_DIR, agent.id, "completed.processed");
|
|
26185
|
+
const completedFile = join$1(AGENTS_DIR, agent.id, "completed");
|
|
26186
|
+
const processedMarker = join$1(AGENTS_DIR, agent.id, "completed.processed");
|
|
26135
26187
|
if (existsSync(completedFile) || existsSync(processedMarker)) continue;
|
|
26136
26188
|
if (!isAgentIdleForNudge(agent.id, FIRST_COMPLETION_IDLE_MS)) continue;
|
|
26137
26189
|
const runtimeState = getAgentRuntimeStateSync(agent.id);
|
|
@@ -26151,7 +26203,7 @@ async function checkFirstCompletionAgents() {
|
|
|
26151
26203
|
} catch {}
|
|
26152
26204
|
const agentStateForGate = getAgentStateSync(agent.id);
|
|
26153
26205
|
if (agentStateForGate?.workspace) {
|
|
26154
|
-
const feedbackDir = join(agentStateForGate.workspace, ".pan", "feedback");
|
|
26206
|
+
const feedbackDir = join$1(agentStateForGate.workspace, ".pan", "feedback");
|
|
26155
26207
|
if (existsSync(feedbackDir)) try {
|
|
26156
26208
|
const feedbackFiles = readdirSync(feedbackDir);
|
|
26157
26209
|
if (feedbackFiles.length > 0) {
|
|
@@ -26174,7 +26226,7 @@ async function checkFirstCompletionAgents() {
|
|
|
26174
26226
|
try {
|
|
26175
26227
|
const subdirs = readdirSync(agentState.workspace, { withFileTypes: true }).filter((d) => d.isDirectory() && !d.name.startsWith("."));
|
|
26176
26228
|
for (const sub of subdirs) try {
|
|
26177
|
-
const { stdout: subLog } = await execAsync$4("git log --oneline -3 2>/dev/null", { cwd: join(agentState.workspace, sub.name) });
|
|
26229
|
+
const { stdout: subLog } = await execAsync$4("git log --oneline -3 2>/dev/null", { cwd: join$1(agentState.workspace, sub.name) });
|
|
26178
26230
|
if (subLog.trim().length > 0) {
|
|
26179
26231
|
hasCommits = true;
|
|
26180
26232
|
break;
|
|
@@ -26240,7 +26292,7 @@ function bootReconciliationSkipReason(agent) {
|
|
|
26240
26292
|
if (!agent.workspace || !existsSync(agent.workspace)) return "workspace_missing";
|
|
26241
26293
|
const review = getReviewStatusSync(agent.issueId);
|
|
26242
26294
|
if (review?.mergeStatus === "merged" || agent.merged === true || review?.readyForMerge === true && review.reviewStatus === "passed" && review.testStatus === "passed") return "merged";
|
|
26243
|
-
if ((existsSync(join
|
|
26295
|
+
if ((existsSync(join(getAgentDir(agent.id), "completed")) || existsSync(join(getAgentDir(agent.id), "completed.processed"))) && review?.reviewStatus === "passed" && review.testStatus === "passed") return "completed";
|
|
26244
26296
|
return null;
|
|
26245
26297
|
}
|
|
26246
26298
|
//#endregion
|
|
@@ -26251,7 +26303,7 @@ init_config();
|
|
|
26251
26303
|
let graceTimer = null;
|
|
26252
26304
|
function hasCompletionMarker(workspace) {
|
|
26253
26305
|
if (!workspace) return false;
|
|
26254
|
-
return existsSync$1(join
|
|
26306
|
+
return existsSync$1(join(workspace, ".pan", "completed")) || existsSync$1(join(workspace, ".pan", "completed.processed"));
|
|
26255
26307
|
}
|
|
26256
26308
|
function newestAgentTimestampMs(agent) {
|
|
26257
26309
|
const timestamps = [
|
|
@@ -26417,7 +26469,7 @@ function hasCompletedReviewArtifact(state) {
|
|
|
26417
26469
|
if (state.role !== "review") return false;
|
|
26418
26470
|
if (state.reviewSubRole) return reviewArtifactExistsForRun(state.reviewOutputPath, state.startedAt);
|
|
26419
26471
|
if (!state.workspace || !state.reviewRunId) return false;
|
|
26420
|
-
return reviewArtifactExistsForRun(join(state.workspace, ".pan", "review", state.reviewRunId, "synthesis.md"), state.startedAt);
|
|
26472
|
+
return reviewArtifactExistsForRun(join$1(state.workspace, ".pan", "review", state.reviewRunId, "synthesis.md"), state.startedAt);
|
|
26421
26473
|
}
|
|
26422
26474
|
const RAPID_POST_RESUME_DEATH_MS = 12e4;
|
|
26423
26475
|
function isRapidPostResumeDeath(state) {
|
|
@@ -26598,7 +26650,7 @@ function hasLandedUserRecordSinceResume(state, snapshot) {
|
|
|
26598
26650
|
return lastUserAt >= resumeAt;
|
|
26599
26651
|
}
|
|
26600
26652
|
function cooldownActive(agentId, filename, cooldownMs) {
|
|
26601
|
-
const cooldownFile = join(getAgentDir(agentId), filename);
|
|
26653
|
+
const cooldownFile = join$1(getAgentDir(agentId), filename);
|
|
26602
26654
|
if (!existsSync(cooldownFile)) return false;
|
|
26603
26655
|
try {
|
|
26604
26656
|
const last = parseInt(readFileSync(cooldownFile, "utf-8").trim(), 10);
|
|
@@ -26608,11 +26660,11 @@ function cooldownActive(agentId, filename, cooldownMs) {
|
|
|
26608
26660
|
}
|
|
26609
26661
|
}
|
|
26610
26662
|
function recordCooldown(agentId, filename) {
|
|
26611
|
-
writeFileSync(join(getAgentDir(agentId), filename), String(Date.now()), "utf-8");
|
|
26663
|
+
writeFileSync(join$1(getAgentDir(agentId), filename), String(Date.now()), "utf-8");
|
|
26612
26664
|
}
|
|
26613
26665
|
function buildStalledResumePrompt(state) {
|
|
26614
26666
|
if (state.kickoffDelivered === false) {
|
|
26615
|
-
const promptPath = join(getAgentDir(state.id), "initial-prompt.md");
|
|
26667
|
+
const promptPath = join$1(getAgentDir(state.id), "initial-prompt.md");
|
|
26616
26668
|
try {
|
|
26617
26669
|
return readFileSync(promptPath, "utf-8");
|
|
26618
26670
|
} catch (err) {
|
|
@@ -26645,7 +26697,7 @@ async function nudgeStalledResumeWorkAgents() {
|
|
|
26645
26697
|
const message = buildStalledResumePrompt(state);
|
|
26646
26698
|
if (!message) continue;
|
|
26647
26699
|
try {
|
|
26648
|
-
const { messageAgent } = await import("./agents-
|
|
26700
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
26649
26701
|
await messageAgent(agentId, message);
|
|
26650
26702
|
recordCooldown(agentId, ".last-stalled-resume-nudge");
|
|
26651
26703
|
const action = `Re-sent stalled resume prompt to ${agentId} (${state.issueId})`;
|
|
@@ -26675,7 +26727,7 @@ async function redeliverUndeliveredKickoffs() {
|
|
|
26675
26727
|
const startedMs = Date.parse(state.startedAt ?? "");
|
|
26676
26728
|
if (!Number.isFinite(startedMs) || Date.now() - startedMs <= 18e4) continue;
|
|
26677
26729
|
if (cooldownActive(agentId, ".last-kickoff-redelivery", KICKOFF_REDELIVERY_COOLDOWN_MS)) continue;
|
|
26678
|
-
const promptPath = join(getAgentDir(agentId), "initial-prompt.md");
|
|
26730
|
+
const promptPath = join$1(getAgentDir(agentId), "initial-prompt.md");
|
|
26679
26731
|
let prompt;
|
|
26680
26732
|
try {
|
|
26681
26733
|
prompt = readFileSync(promptPath, "utf-8");
|
|
@@ -26734,7 +26786,7 @@ async function nudgeIdleWorkAgentsWithOpenBeads() {
|
|
|
26734
26786
|
}
|
|
26735
26787
|
if (!await Effect.runPromise(sessionExists(agentId))) continue;
|
|
26736
26788
|
if (!isAgentIdleForNudge(agentId)) continue;
|
|
26737
|
-
const cooldownFile = join(getAgentDir(agentId), ".last-bead-nudge");
|
|
26789
|
+
const cooldownFile = join$1(getAgentDir(agentId), ".last-bead-nudge");
|
|
26738
26790
|
if (existsSync(cooldownFile)) try {
|
|
26739
26791
|
const last = parseInt(readFileSync(cooldownFile, "utf-8").trim(), 10);
|
|
26740
26792
|
if (!Number.isNaN(last) && Date.now() - last < BEAD_NUDGE_COOLDOWN_MS) continue;
|
|
@@ -26752,7 +26804,7 @@ async function nudgeIdleWorkAgentsWithOpenBeads() {
|
|
|
26752
26804
|
const openBeads = ready.byIssue[state.issueId.toLowerCase()] ?? [];
|
|
26753
26805
|
if (openBeads.length === 0) continue;
|
|
26754
26806
|
const firstBead = readyBeadLine(openBeads[0]).slice(0, 200);
|
|
26755
|
-
const briefPath = join(getAgentDir(agentId), "initial-prompt.md");
|
|
26807
|
+
const briefPath = join$1(getAgentDir(agentId), "initial-prompt.md");
|
|
26756
26808
|
const message = [
|
|
26757
26809
|
`Deacon idle-nudge: your tmux is alive but Claude is idle and you have ${openBeads.length} open bead(s) remaining for ${state.issueId}.`,
|
|
26758
26810
|
``,
|
|
@@ -26763,9 +26815,9 @@ async function nudgeIdleWorkAgentsWithOpenBeads() {
|
|
|
26763
26815
|
"Continue the per-bead workflow without asking — claim it (`bd update <bead-id> --claim`), implement, commit, close. Inspection is conditional on metadata.requiresInspection (default false; check the plan item before deciding to call `pan inspect`). Do NOT end your turn with a multi-paragraph summary; just advance to the next bead."
|
|
26764
26816
|
].join("\n");
|
|
26765
26817
|
try {
|
|
26766
|
-
const { messageAgent } = await import("./agents-
|
|
26818
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
26767
26819
|
await messageAgent(agentId, message);
|
|
26768
|
-
writeFileSync(join(getAgentDir(agentId), ".last-bead-nudge"), String(Date.now()), "utf-8");
|
|
26820
|
+
writeFileSync(join$1(getAgentDir(agentId), ".last-bead-nudge"), String(Date.now()), "utf-8");
|
|
26769
26821
|
const action = `Nudged idle ${agentId} (${state.issueId}) — ${openBeads.length} open bead(s)`;
|
|
26770
26822
|
actions.push(action);
|
|
26771
26823
|
logDeaconEventSync(`nudgeIdleWorkAgentsWithOpenBeads: ${action}`);
|
|
@@ -26861,8 +26913,8 @@ async function handleAgentStoppedEvent$1(agentId, opts = {}, deps) {
|
|
|
26861
26913
|
return null;
|
|
26862
26914
|
}
|
|
26863
26915
|
}
|
|
26864
|
-
const completedFile = join(getAgentDir(agentId), "completed");
|
|
26865
|
-
const processedFile = join(getAgentDir(agentId), "completed.processed");
|
|
26916
|
+
const completedFile = join$1(getAgentDir(agentId), "completed");
|
|
26917
|
+
const processedFile = join$1(getAgentDir(agentId), "completed.processed");
|
|
26866
26918
|
const handedOffViaDone = existsSync(completedFile) || existsSync(processedFile);
|
|
26867
26919
|
let review = getReviewStatusSync(state.issueId);
|
|
26868
26920
|
if (handedOffViaDone) if (review?.reviewStatus === "blocked" || review?.reviewStatus === "failed" || review?.testStatus === "failed") logDeaconEventSync(`handleAgentStoppedEvent: ${agentId} resuming despite completed marker — review/test needs fixing (review=${review?.reviewStatus}, test=${review?.testStatus})`);
|
|
@@ -27252,12 +27304,12 @@ async function recordMainDivergenceHealth(state, projects = listProjectsSync(),
|
|
|
27252
27304
|
init_paths();
|
|
27253
27305
|
init_tmux();
|
|
27254
27306
|
function agentDir(agentId) {
|
|
27255
|
-
return join(getOverdeckHome(), "agents", agentId);
|
|
27307
|
+
return join$1(getOverdeckHome(), "agents", agentId);
|
|
27256
27308
|
}
|
|
27257
27309
|
/** Read the launcher-recorded exit code + UTC timestamp, or null if absent. */
|
|
27258
27310
|
function readAgentExitStatus(agentId) {
|
|
27259
27311
|
try {
|
|
27260
|
-
const p = join(agentDir(agentId), "exit-status");
|
|
27312
|
+
const p = join$1(agentDir(agentId), "exit-status");
|
|
27261
27313
|
if (!existsSync(p)) return null;
|
|
27262
27314
|
const raw = readFileSync(p, "utf-8").trim();
|
|
27263
27315
|
if (!raw) return null;
|
|
@@ -27284,7 +27336,7 @@ function describeAgentDeath(agentId) {
|
|
|
27284
27336
|
if (paneExit) parts.push(`pane_exit=${paneExit}`);
|
|
27285
27337
|
}
|
|
27286
27338
|
try {
|
|
27287
|
-
const logPath = join(agentDir(agentId), "output.log");
|
|
27339
|
+
const logPath = join$1(agentDir(agentId), "output.log");
|
|
27288
27340
|
if (existsSync(logPath)) {
|
|
27289
27341
|
const tail = readFileSync(logPath, "utf-8").slice(-1500).trim().split("\n").slice(-6).join(" | ").trim();
|
|
27290
27342
|
if (tail) parts.push(`output.log tail: ${tail}`);
|
|
@@ -27296,10 +27348,10 @@ function describeAgentDeath(agentId) {
|
|
|
27296
27348
|
//#region ../../lib/cloister/stuck-remediation-state.ts
|
|
27297
27349
|
init_paths();
|
|
27298
27350
|
function agentStateDir(agentId) {
|
|
27299
|
-
return join(getOverdeckHome(), "agents", agentId);
|
|
27351
|
+
return join$1(getOverdeckHome(), "agents", agentId);
|
|
27300
27352
|
}
|
|
27301
27353
|
function statePath(agentId) {
|
|
27302
|
-
return join(agentStateDir(agentId), "stuck-remediation.json");
|
|
27354
|
+
return join$1(agentStateDir(agentId), "stuck-remediation.json");
|
|
27303
27355
|
}
|
|
27304
27356
|
function readStuckRemediationState(agentId) {
|
|
27305
27357
|
const filePath = statePath(agentId);
|
|
@@ -27336,7 +27388,9 @@ function shouldSkipReviewStatus(status) {
|
|
|
27336
27388
|
if (!status) return false;
|
|
27337
27389
|
if (status.stuck || status.deaconIgnored || status.mergeStatus === "merged" || status.readyForMerge) return true;
|
|
27338
27390
|
if (status.reviewStatus === "blocked" || status.reviewStatus === "failed") return true;
|
|
27339
|
-
|
|
27391
|
+
if (status.verificationStatus === "failed" || status.testStatus === "failed") return true;
|
|
27392
|
+
if (status.reviewStatus === "reviewing" || status.reviewStatus === "passed") return true;
|
|
27393
|
+
return status.reviewStatus === "pending" && !!status.reviewRequestedAt;
|
|
27340
27394
|
}
|
|
27341
27395
|
function hasPendingRework(status) {
|
|
27342
27396
|
if (!status) return false;
|
|
@@ -27538,7 +27592,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
|
|
|
27538
27592
|
now
|
|
27539
27593
|
});
|
|
27540
27594
|
if (decision.kind === "noop") return;
|
|
27541
|
-
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-
|
|
27595
|
+
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-k4FPtCQ_.js");
|
|
27542
27596
|
const prev = readStuckRemediationState(agentId);
|
|
27543
27597
|
const nowIso = new Date(now).toISOString();
|
|
27544
27598
|
if (decision.kind === "escalate") {
|
|
@@ -28247,7 +28301,7 @@ async function cleanupOrphanedInspectSessions() {
|
|
|
28247
28301
|
return actions;
|
|
28248
28302
|
}
|
|
28249
28303
|
for (const session of inspectSessions) {
|
|
28250
|
-
const hasStateFile = existsSync(join(AGENTS_DIR, session, "state.json"));
|
|
28304
|
+
const hasStateFile = existsSync(join$1(AGENTS_DIR, session, "state.json"));
|
|
28251
28305
|
const paneDead = await Effect.runPromise(isPaneDead(session)).catch(() => false);
|
|
28252
28306
|
if (hasStateFile && !paneDead) continue;
|
|
28253
28307
|
try {
|
|
@@ -28306,10 +28360,10 @@ const DEFAULT_CONFIG = {
|
|
|
28306
28360
|
massDeathThreshold: 2,
|
|
28307
28361
|
massDeathWindowMs: 6e4
|
|
28308
28362
|
};
|
|
28309
|
-
const DEACON_DIR = join(OVERDECK_HOME, "deacon");
|
|
28310
|
-
const STATE_FILE = join(DEACON_DIR, "health-state.json");
|
|
28311
|
-
const CONFIG_FILE = join(DEACON_DIR, "config.json");
|
|
28312
|
-
const DEACON_LOG_FILE = join(OVERDECK_HOME, "logs", "deacon.log");
|
|
28363
|
+
const DEACON_DIR = join$1(OVERDECK_HOME, "deacon");
|
|
28364
|
+
const STATE_FILE = join$1(DEACON_DIR, "health-state.json");
|
|
28365
|
+
const CONFIG_FILE = join$1(DEACON_DIR, "config.json");
|
|
28366
|
+
const DEACON_LOG_FILE = join$1(OVERDECK_HOME, "logs", "deacon.log");
|
|
28313
28367
|
let deaconInterval = null;
|
|
28314
28368
|
const deaconPatrolGuard = createInFlightGuard();
|
|
28315
28369
|
let config = { ...DEFAULT_CONFIG };
|
|
@@ -28502,7 +28556,7 @@ async function cleanupStaleAgentState() {
|
|
|
28502
28556
|
try {
|
|
28503
28557
|
const dirs = readdirSync(AGENTS_DIR, { withFileTypes: true }).filter((d) => d.isDirectory());
|
|
28504
28558
|
for (const dir of dirs) {
|
|
28505
|
-
const agentDir = join(AGENTS_DIR, dir.name);
|
|
28559
|
+
const agentDir = join$1(AGENTS_DIR, dir.name);
|
|
28506
28560
|
const isReviewer = dir.name.startsWith("review-");
|
|
28507
28561
|
const effectiveRetentionMs = isReviewer ? reviewerRetentionMs : retentionMs;
|
|
28508
28562
|
try {
|
|
@@ -28515,7 +28569,7 @@ async function cleanupStaleAgentState() {
|
|
|
28515
28569
|
const ageMs = now - statSync(agentDir).mtimeMs;
|
|
28516
28570
|
if (ageMs < effectiveRetentionMs) continue;
|
|
28517
28571
|
if (!isReviewer) {
|
|
28518
|
-
const completedFile = join(agentDir, "completed");
|
|
28572
|
+
const completedFile = join$1(agentDir, "completed");
|
|
28519
28573
|
if (existsSync(completedFile)) {
|
|
28520
28574
|
if (now - statSync(completedFile).mtimeMs < 10080 * 60 * 1e3) continue;
|
|
28521
28575
|
}
|
|
@@ -28554,10 +28608,10 @@ async function cleanupStaleAgentState() {
|
|
|
28554
28608
|
*/
|
|
28555
28609
|
async function cleanupAbandonedFeedback() {
|
|
28556
28610
|
const actions = [];
|
|
28557
|
-
const { getReviewStatusSync } = await import("./review-status-
|
|
28558
|
-
const { clearFeedbackFiles } = await import("./feedback-writer-
|
|
28611
|
+
const { getReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
|
|
28612
|
+
const { clearFeedbackFiles } = await import("./feedback-writer-DMBdS_jL.js");
|
|
28559
28613
|
for (const { issueId, workspacePath } of listFeatureWorkspaces()) {
|
|
28560
|
-
const panFeedbackDir = join(workspacePath, ".pan", "feedback");
|
|
28614
|
+
const panFeedbackDir = join$1(workspacePath, ".pan", "feedback");
|
|
28561
28615
|
if (!existsSync(panFeedbackDir)) continue;
|
|
28562
28616
|
const issueLower = issueId.toLowerCase();
|
|
28563
28617
|
const agentSession = `agent-${issueLower}`;
|
|
@@ -28586,7 +28640,7 @@ async function cleanupAbandonedFeedback() {
|
|
|
28586
28640
|
const ORPHAN_REVIEWER_AGE_MS = 3600 * 1e3;
|
|
28587
28641
|
async function loadTmuxSessionsWithCreationTimes() {
|
|
28588
28642
|
try {
|
|
28589
|
-
const { stdout } = await execAsync(`tmux -L overdeck -f ${join(OVERDECK_HOME, "tmux", "overdeck.tmux.conf")} list-sessions -F '#{session_name} #{session_created}'`, { encoding: "utf-8" });
|
|
28643
|
+
const { stdout } = await execAsync(`tmux -L overdeck -f ${join$1(OVERDECK_HOME, "tmux", "overdeck.tmux.conf")} list-sessions -F '#{session_name} #{session_created}'`, { encoding: "utf-8" });
|
|
28590
28644
|
const lines = stdout.split("\n").filter((l) => l.trim());
|
|
28591
28645
|
const sessions = [];
|
|
28592
28646
|
const creationTimes = /* @__PURE__ */ new Map();
|
|
@@ -28626,7 +28680,7 @@ async function handleOrphanReviewerSession(sessionName, sessions, creationTimes,
|
|
|
28626
28680
|
if (!issueId) return null;
|
|
28627
28681
|
const agentSession = `agent-${issueId.toLowerCase()}`;
|
|
28628
28682
|
if (sessions.includes(agentSession)) return null;
|
|
28629
|
-
const { getReviewStatusSync } = await import("./review-status-
|
|
28683
|
+
const { getReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
|
|
28630
28684
|
try {
|
|
28631
28685
|
if (getReviewStatusSync(issueId)?.reviewStatus === "reviewing") return null;
|
|
28632
28686
|
} catch {}
|
|
@@ -28746,7 +28800,7 @@ async function checkOrphanedCompletions() {
|
|
|
28746
28800
|
async function checkPendingTestDispatch() {
|
|
28747
28801
|
const actions = [];
|
|
28748
28802
|
try {
|
|
28749
|
-
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-
|
|
28803
|
+
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
|
|
28750
28804
|
const statuses = loadReviewStatuses();
|
|
28751
28805
|
const now = Date.now();
|
|
28752
28806
|
for (const [issueId, status] of Object.entries(statuses)) {
|
|
@@ -28779,7 +28833,7 @@ async function checkPendingTestDispatch() {
|
|
|
28779
28833
|
console.log(`[deacon] ${issueId}: skipping test re-dispatch — issue is closed`);
|
|
28780
28834
|
continue;
|
|
28781
28835
|
}
|
|
28782
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
28836
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
28783
28837
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
28784
28838
|
if (!resolved) continue;
|
|
28785
28839
|
const issueLower = issueId.toLowerCase();
|
|
@@ -28794,8 +28848,8 @@ async function checkPendingTestDispatch() {
|
|
|
28794
28848
|
logDeaconEventSync(`checkPendingTestDispatch: deferred test for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
|
|
28795
28849
|
continue;
|
|
28796
28850
|
}
|
|
28797
|
-
const { spawnRun } = await import("./agents-
|
|
28798
|
-
const { buildTestRolePrompt } = await import("./test-agent-queue-
|
|
28851
|
+
const { spawnRun } = await import("./agents-C4kZ8a2r.js");
|
|
28852
|
+
const { buildTestRolePrompt } = await import("./test-agent-queue-TiVXe3ZT.js");
|
|
28799
28853
|
try {
|
|
28800
28854
|
const run = await spawnRun(issueId, "test", {
|
|
28801
28855
|
workspace,
|
|
@@ -28918,7 +28972,7 @@ async function checkCompletedButUnsignaledTests() {
|
|
|
28918
28972
|
const cmd = `pan admin specialists done test ${issueId} --status ${decision.status}${noteArg}`;
|
|
28919
28973
|
const nudge = `Your test verdict (${decision.status}) is already written to .pan/test/result.json. Your ONLY remaining task is to execute this Bash command immediately — do not analyze, do not summarize, do not ask questions, just run it:\n\n${cmd}\n\nRun this command NOW. Do not write any other response before executing it.`;
|
|
28920
28974
|
try {
|
|
28921
|
-
const { messageAgent } = await import("./agents-
|
|
28975
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
28922
28976
|
await messageAgent(testSession, nudge);
|
|
28923
28977
|
unsignaledTestNudges.set(testSession, now);
|
|
28924
28978
|
const msg = `Nudged ${testSession} to signal ${decision.status} (verdict artifact present)`;
|
|
@@ -28932,7 +28986,7 @@ async function checkCompletedButUnsignaledTests() {
|
|
|
28932
28986
|
case "nudge-write": {
|
|
28933
28987
|
const nudge = `Your test run for ${issueId} looks finished but no verdict was recorded. Decide the verdict from the gates/UAT you ran, then do BOTH of these now: (1) write the workspace file .pan/test/result.json as {"status":"passed"|"failed","notes":"<evidence>"}, and (2) run: pan admin specialists done test ${issueId} --status passed|failed. Do this immediately — do not summarize or ask questions, just write the file and run the command.`;
|
|
28934
28988
|
try {
|
|
28935
|
-
const { messageAgent } = await import("./agents-
|
|
28989
|
+
const { messageAgent } = await import("./agents-C4kZ8a2r.js");
|
|
28936
28990
|
await messageAgent(testSession, nudge);
|
|
28937
28991
|
unsignaledTestNudges.set(testSession, now);
|
|
28938
28992
|
const msg = `Nudged ${testSession} to write+signal a test verdict (no artifact yet)`;
|
|
@@ -28955,15 +29009,15 @@ async function checkCompletedButUnsignaledTests() {
|
|
|
28955
29009
|
async function checkVerificationReviewContradiction() {
|
|
28956
29010
|
const actions = [];
|
|
28957
29011
|
try {
|
|
28958
|
-
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-
|
|
28959
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
29012
|
+
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
|
|
29013
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
28960
29014
|
const statuses = loadReviewStatuses();
|
|
28961
29015
|
for (const [issueId, status] of Object.entries(statuses)) if (status.verificationStatus === "passed" && status.reviewStatus === "reviewing" && status.stuckReason === "review_infrastructure_failure") {
|
|
28962
29016
|
let reviewedAtCommit;
|
|
28963
29017
|
try {
|
|
28964
29018
|
const project = resolveProjectFromIssueSync(issueId);
|
|
28965
29019
|
if (project) {
|
|
28966
|
-
const workspacePath = join(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
29020
|
+
const workspacePath = join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
28967
29021
|
if (existsSync(workspacePath)) {
|
|
28968
29022
|
const { stdout } = await execAsync("git rev-parse HEAD", { cwd: workspacePath });
|
|
28969
29023
|
reviewedAtCommit = stdout.trim();
|
|
@@ -29005,7 +29059,7 @@ async function checkPostReviewCommits() {
|
|
|
29005
29059
|
const actions = [];
|
|
29006
29060
|
try {
|
|
29007
29061
|
const statuses = loadReviewStatuses();
|
|
29008
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
29062
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
29009
29063
|
for (const [issueId, status] of Object.entries(statuses)) {
|
|
29010
29064
|
if (status.mergeStatus === "merged") continue;
|
|
29011
29065
|
if (!status.reviewedAtCommit) continue;
|
|
@@ -29016,7 +29070,7 @@ async function checkPostReviewCommits() {
|
|
|
29016
29070
|
}
|
|
29017
29071
|
const project = resolveProjectFromIssueSync(issueId);
|
|
29018
29072
|
if (!project) continue;
|
|
29019
|
-
const workspacePath = join(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
29073
|
+
const workspacePath = join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
29020
29074
|
if (!existsSync(workspacePath)) continue;
|
|
29021
29075
|
let currentHead;
|
|
29022
29076
|
try {
|
|
@@ -29060,7 +29114,7 @@ async function checkPostReviewCommits() {
|
|
|
29060
29114
|
actions.push(`Deferred post-review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
|
|
29061
29115
|
logDeaconEventSync(`checkPostReviewCommits: deferred review for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
|
|
29062
29116
|
} else if (freshStatus?.reviewStatus === "pending") {
|
|
29063
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
29117
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-uwVftH98.js");
|
|
29064
29118
|
const branch = `feature/${issueId.toLowerCase()}`;
|
|
29065
29119
|
const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
29066
29120
|
issueId,
|
|
@@ -29160,7 +29214,7 @@ async function checkReadyForMergeStuck() {
|
|
|
29160
29214
|
const testStatusGreenCiReconcileCooldowns = /* @__PURE__ */ new Map();
|
|
29161
29215
|
const TEST_STATUS_GREEN_CI_RECONCILE_COOLDOWN_MS = 300 * 1e3;
|
|
29162
29216
|
async function reconcileTestStatusFromGreenCi() {
|
|
29163
|
-
const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-
|
|
29217
|
+
const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-C7lftMNj.js");
|
|
29164
29218
|
return reconcileTestStatusFromGreenCiWithDeps({
|
|
29165
29219
|
isGitHubAppConfigured,
|
|
29166
29220
|
loadReviewStatuses,
|
|
@@ -29181,17 +29235,17 @@ async function reconcileTestStatusFromGreenCi() {
|
|
|
29181
29235
|
*/
|
|
29182
29236
|
async function clearStaleCiFeedback(issueId) {
|
|
29183
29237
|
const { readdir, rm } = await import("fs/promises");
|
|
29184
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
29238
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
29185
29239
|
const projectConfig = resolveProjectFromIssueSync(issueId);
|
|
29186
29240
|
if (!projectConfig) return;
|
|
29187
29241
|
const repoDir = projectConfig.projectPath;
|
|
29188
29242
|
if (!repoDir) return;
|
|
29189
|
-
const feedbackDir = join(repoDir, "workspaces", `feature-${issueId.toLowerCase()}`, ".pan", "feedback");
|
|
29243
|
+
const feedbackDir = join$1(repoDir, "workspaces", `feature-${issueId.toLowerCase()}`, ".pan", "feedback");
|
|
29190
29244
|
try {
|
|
29191
29245
|
if (!existsSync(feedbackDir)) return;
|
|
29192
29246
|
const files = await readdir(feedbackDir);
|
|
29193
29247
|
for (const file of files) if (file.includes("merge-agent") && file.includes("ci-failure") && file.endsWith(".md")) {
|
|
29194
|
-
await rm(join(feedbackDir, file));
|
|
29248
|
+
await rm(join$1(feedbackDir, file));
|
|
29195
29249
|
console.log(`[deacon] Cleared stale CI feedback: ${file} for ${issueId}`);
|
|
29196
29250
|
}
|
|
29197
29251
|
} catch (err) {
|
|
@@ -29320,10 +29374,10 @@ async function checkDeadEndAgents() {
|
|
|
29320
29374
|
if (resolved) {
|
|
29321
29375
|
const wsPath = findWorkspacePath(resolved.projectPath, issueId.toLowerCase());
|
|
29322
29376
|
if (wsPath) {
|
|
29323
|
-
const feedbackDir = join(wsPath, ".pan", "feedback");
|
|
29377
|
+
const feedbackDir = join$1(wsPath, ".pan", "feedback");
|
|
29324
29378
|
if (existsSync(feedbackDir)) {
|
|
29325
29379
|
const files = (await readdir$1(feedbackDir)).filter((f) => f.endsWith(".md")).sort();
|
|
29326
|
-
if (files.length > 0) latestFeedbackPath = join(feedbackDir, files[files.length - 1]);
|
|
29380
|
+
if (files.length > 0) latestFeedbackPath = join$1(feedbackDir, files[files.length - 1]);
|
|
29327
29381
|
}
|
|
29328
29382
|
}
|
|
29329
29383
|
}
|
|
@@ -29481,7 +29535,7 @@ async function checkWorkspaceContainerHealth(sharedState) {
|
|
|
29481
29535
|
}
|
|
29482
29536
|
}
|
|
29483
29537
|
try {
|
|
29484
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
29538
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
29485
29539
|
const resolved = resolveProjectFromIssueSync(issueLower.toUpperCase());
|
|
29486
29540
|
if (resolved) await killOrphanedWorkspaceProcesses(`${resolved.projectPath}/workspaces/feature-${issueLower}`);
|
|
29487
29541
|
} catch {}
|
|
@@ -29531,7 +29585,7 @@ async function checkMergedWorkSessions() {
|
|
|
29531
29585
|
const actions = [];
|
|
29532
29586
|
try {
|
|
29533
29587
|
const { selectMergedWorkSessions } = await import("./reap-terminal-sessions-BwJb2DLJ.js");
|
|
29534
|
-
const { setAgentPaused } = await import("./agents-
|
|
29588
|
+
const { setAgentPaused } = await import("./agents-C4kZ8a2r.js");
|
|
29535
29589
|
const toKill = selectMergedWorkSessions(loadReviewStatuses(), [...await Effect.runPromise(listSessionNames())]);
|
|
29536
29590
|
for (const session of toKill) try {
|
|
29537
29591
|
await Effect.runPromise(setAgentPaused(session, "merged — awaiting close-out (verify on main)", true));
|
|
@@ -29627,19 +29681,19 @@ async function runPatrol() {
|
|
|
29627
29681
|
const stuckRemediationActions = await checkStuckAgentRemediation();
|
|
29628
29682
|
actions.push(...stuckRemediationActions);
|
|
29629
29683
|
for (const a of stuckRemediationActions) addLog("action", a, state.patrolCycle);
|
|
29630
|
-
const { reconcileInFlightJournals } = await import("./advancing-selfheal-
|
|
29684
|
+
const { reconcileInFlightJournals } = await import("./advancing-selfheal-BqsLWqEM.js");
|
|
29631
29685
|
const reconciledJournalActions = await reconcileInFlightJournals();
|
|
29632
29686
|
actions.push(...reconciledJournalActions);
|
|
29633
29687
|
for (const a of reconciledJournalActions) addLog("action", a, state.patrolCycle);
|
|
29634
29688
|
try {
|
|
29635
|
-
const pendingFile = join(OVERDECK_HOME, "pending-post-merge.json");
|
|
29689
|
+
const pendingFile = join$1(OVERDECK_HOME, "pending-post-merge.json");
|
|
29636
29690
|
if (existsSync(pendingFile)) {
|
|
29637
29691
|
const content = readFileSync(pendingFile, "utf-8");
|
|
29638
29692
|
const pending = JSON.parse(content);
|
|
29639
29693
|
const age = Date.now() - (pending.timestamp ?? 0);
|
|
29640
29694
|
if (age < 3600 * 1e3) {
|
|
29641
29695
|
console.log(`[deacon] Processing pending post-merge lifecycle for ${pending.issueId} (age: ${Math.round(age / 1e3)}s)`);
|
|
29642
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
29696
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
29643
29697
|
const { unlinkSync } = await import("fs");
|
|
29644
29698
|
unlinkSync(pendingFile);
|
|
29645
29699
|
await postMergeLifecycle(pending.issueId, pending.projectPath, pending.sourceBranch, { skipDeploy: true });
|
|
@@ -29684,13 +29738,13 @@ async function runPatrol() {
|
|
|
29684
29738
|
actions.push(...suspendActions);
|
|
29685
29739
|
for (const a of suspendActions) addLog("action", a, state.patrolCycle);
|
|
29686
29740
|
try {
|
|
29687
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
29741
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
29688
29742
|
const allStatuses = loadReviewStatuses();
|
|
29689
29743
|
for (const [issueId, status] of Object.entries(allStatuses)) {
|
|
29690
29744
|
if (!status.readyForMerge || status.mergeStatus === "merged") continue;
|
|
29691
29745
|
const project = resolveProjectFromIssueSync(issueId);
|
|
29692
29746
|
if (!project) continue;
|
|
29693
|
-
if (!existsSync(join(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`))) {
|
|
29747
|
+
if (!existsSync(join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`))) {
|
|
29694
29748
|
setReviewStatusSync(issueId, {
|
|
29695
29749
|
readyForMerge: false,
|
|
29696
29750
|
mergeStatus: "failed",
|
|
@@ -29704,7 +29758,7 @@ async function runPatrol() {
|
|
|
29704
29758
|
} catch (err) {
|
|
29705
29759
|
console.warn(`[deacon] Failed to check workspace existence: ${err.message}`);
|
|
29706
29760
|
}
|
|
29707
|
-
const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-
|
|
29761
|
+
const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-BqsLWqEM.js");
|
|
29708
29762
|
const reapedWorkActions = await checkMergedWorkSessions();
|
|
29709
29763
|
actions.push(...reapedWorkActions);
|
|
29710
29764
|
for (const a of reapedWorkActions) addLog("action", a, state.patrolCycle);
|
|
@@ -29712,7 +29766,7 @@ async function runPatrol() {
|
|
|
29712
29766
|
actions.push(...reapedMergedAdvancingActions);
|
|
29713
29767
|
for (const a of reapedMergedAdvancingActions) addLog("action", a, state.patrolCycle);
|
|
29714
29768
|
try {
|
|
29715
|
-
const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-
|
|
29769
|
+
const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-RZYePR_0.js");
|
|
29716
29770
|
const remoteCredentialActions = await refreshClaudeCredentialsForActiveRemoteAgents();
|
|
29717
29771
|
actions.push(...remoteCredentialActions);
|
|
29718
29772
|
for (const a of remoteCredentialActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
|
|
@@ -29720,7 +29774,7 @@ async function runPatrol() {
|
|
|
29720
29774
|
addLog("warn", `Remote credential refresh patrol failed: ${err.message}`, state.patrolCycle);
|
|
29721
29775
|
}
|
|
29722
29776
|
try {
|
|
29723
|
-
const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-
|
|
29777
|
+
const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-UHoi4oGr.js");
|
|
29724
29778
|
const heartbeatActions = await refreshHostHeartbeatForEphemeralVms();
|
|
29725
29779
|
actions.push(...heartbeatActions);
|
|
29726
29780
|
for (const a of heartbeatActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
|
|
@@ -29728,7 +29782,7 @@ async function runPatrol() {
|
|
|
29728
29782
|
addLog("warn", `Remote heartbeat refresh patrol failed: ${err.message}`, state.patrolCycle);
|
|
29729
29783
|
}
|
|
29730
29784
|
try {
|
|
29731
|
-
const { reapCompletedRemoteAgents } = await import("./remote-completion-
|
|
29785
|
+
const { reapCompletedRemoteAgents } = await import("./remote-completion-RZYePR_0.js");
|
|
29732
29786
|
const remoteReap = await reapCompletedRemoteAgents();
|
|
29733
29787
|
for (const r of remoteReap) if (r.status === "handed-off" || r.status === "error") {
|
|
29734
29788
|
const msg = `Remote reap ${r.issueId}: ${r.status} (${r.details.join("; ")})`;
|
|
@@ -29786,6 +29840,9 @@ async function runPatrol() {
|
|
|
29786
29840
|
const stalledDiscoveryActions = await checkStalledReviewDiscovery();
|
|
29787
29841
|
actions.push(...stalledDiscoveryActions);
|
|
29788
29842
|
for (const a of stalledDiscoveryActions) addLog("action", a, state.patrolCycle);
|
|
29843
|
+
const stalledParentActions = await checkStalledReviewParents();
|
|
29844
|
+
actions.push(...stalledParentActions);
|
|
29845
|
+
for (const a of stalledParentActions) addLog("action", a, state.patrolCycle);
|
|
29789
29846
|
const forkCacheActions = await checkReviewForkCacheMisses();
|
|
29790
29847
|
actions.push(...forkCacheActions);
|
|
29791
29848
|
for (const a of forkCacheActions) addLog("action", a, state.patrolCycle);
|
|
@@ -29903,7 +29960,7 @@ async function runPatrol() {
|
|
|
29903
29960
|
const issueId = runtimeState.currentIssue;
|
|
29904
29961
|
try {
|
|
29905
29962
|
if (getReviewStatusSync(issueId)?.mergeStatus === "merging") {
|
|
29906
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
29963
|
+
const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
|
|
29907
29964
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
29908
29965
|
if (resolved) {
|
|
29909
29966
|
const branch = `feature/${issueId.toLowerCase()}`;
|
|
@@ -29917,7 +29974,7 @@ async function runPatrol() {
|
|
|
29917
29974
|
mergeStatus: "merged",
|
|
29918
29975
|
readyForMerge: false
|
|
29919
29976
|
});
|
|
29920
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
29977
|
+
const { postMergeLifecycle } = await import("./merge-agent-CfohxFWM.js");
|
|
29921
29978
|
postMergeLifecycle(issueId, resolved.projectPath).catch((err) => console.warn(`[deacon] postMergeLifecycle failed for ${issueId}: ${err}`));
|
|
29922
29979
|
actions.push(`Auto-completed stale merge for ${issueId}`);
|
|
29923
29980
|
} else {
|
|
@@ -30004,7 +30061,7 @@ function addLog(level, message, cycle) {
|
|
|
30004
30061
|
};
|
|
30005
30062
|
deaconLogs.push(entry);
|
|
30006
30063
|
try {
|
|
30007
|
-
mkdirSync(dirname(DEACON_LOG_FILE), { recursive: true });
|
|
30064
|
+
mkdirSync(dirname$1(DEACON_LOG_FILE), { recursive: true });
|
|
30008
30065
|
appendFileSync(DEACON_LOG_FILE, JSON.stringify(entry) + "\n", "utf-8");
|
|
30009
30066
|
} catch {}
|
|
30010
30067
|
if (deaconLogs.length > MAX_LOG_ENTRIES) deaconLogs.splice(0, deaconLogs.length - MAX_LOG_ENTRIES);
|
|
@@ -30063,7 +30120,7 @@ async function checkThinkingSignatureCorruption() {
|
|
|
30063
30120
|
try {
|
|
30064
30121
|
await Effect.runPromise(killSession(agentId));
|
|
30065
30122
|
} catch {}
|
|
30066
|
-
const sessionFile = join(AGENTS_DIR, agentId, "session.id");
|
|
30123
|
+
const sessionFile = join$1(AGENTS_DIR, agentId, "session.id");
|
|
30067
30124
|
if (existsSync(sessionFile)) try {
|
|
30068
30125
|
rmSync(sessionFile);
|
|
30069
30126
|
} catch {}
|
|
@@ -30097,7 +30154,7 @@ function startDeacon() {
|
|
|
30097
30154
|
logDeaconEventSync(`startDeacon: health monitor starting (patrol every ${config.patrolIntervalMs / 1e3}s)`);
|
|
30098
30155
|
(async () => {
|
|
30099
30156
|
await reconcileAgentLiveness();
|
|
30100
|
-
const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-
|
|
30157
|
+
const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-BqsLWqEM.js");
|
|
30101
30158
|
await runBootAdvancingSelfHeal();
|
|
30102
30159
|
runScheduledPatrol("startup");
|
|
30103
30160
|
})().catch((err) => {
|
|
@@ -30169,4 +30226,4 @@ function assessDeaconPatrolFreshness(params) {
|
|
|
30169
30226
|
//#endregion
|
|
30170
30227
|
export { isPreKickoffLaunchDeath as $, scanPendingInputsPromise as $t, reconcileAgentLiveness as A, stalledReviewConvoyRecoveryState as At, applyIssueBlocksMainLabel as B, formatUptime as Bt, getLastPatrolResult as C, isSynthesisForActiveReviewRun as Ct, isDeaconRunning as D, handleWorkCompleted as Dt, handleAgentStoppedForOrphanReviewerSessions as E, handleReviewCoordinatorDied as Et, setAgentStatusChangedNotifier as F, INSPECT_TIMEOUT_MS as Ft, applyIssueVetoedLabel as G, isSmeeConfiguredSync as Gt, applyIssueParkedLabel as H, getCurrentDockerStats as Ht, setAgentStoppedNotifier as I, checkInspectAgentTimeouts as It, removeIssueParkedLabel as J, countPendingAskUserQuestionsForAgent as Jt, removeIssueBlocksMainLabel as K, startSmeeProcessSync as Kt, setMergeReadyNotifier as L, getRuntimeForAgent as Lt, resetPatrolHeartbeatForStartup as M, contextOverflowRecoveryState as Mt, runPatrol as N, contextProactiveCompactState as Nt, loadConfig as O, recoverStalledReviewConvoys as Ot, saveState as P, stuckOverflowNativeRecoveryState as Pt, createInFlightGuard as Q, getAgentWorkspace as Qt, startDeacon as R, classifyMemoryPressure as Rt, getDeaconStatus as S, checkStuckReviewing as St, handleAgentStoppedEvent as T, checkOrphanedReviewStatuses as Tt, applyIssueReadyLabel as U, getResourceConfig as Ut, applyIssueObjectionLabel as V, getContainerHistory as Vt, applyIssueReleasedLabel as W, getSystemHealthSnapshot as Wt, removeIssueReleasedLabel as X, getAgentJsonlPath as Xt, removeIssueReadyLabel as Y, getAgentJsonlMtime as Yt, removeIssueVetoedLabel as Z, getAgentPendingQuestions as Zt, cleanupOrphanReviewerSessions as _, withConcurrencyLimit as _t, checkCompletedButUnsignaledTests as a, listBootReconciliationCandidates as at, containerRestartBackoffMs as b, synthesizeReviewFromReports as bt, checkMergedWorkSessions as c, checkFailedMergeRetry as ct, checkPostReviewCommits as d, reconcileClosedPrReadyForMerge as dt, detectAwaitingInputForAgent as en, isRapidPostResumeDeath as et, checkReadyForMergeStuck as f, reconcileFalseMerged as ft, cleanupAbandonedFeedback as g, reconcileStuckReadyForMerge as gt, checkWorkspaceContainerHealth as h, reconcileStaleMergeStatus as ht, checkAwaitingTestWorkSessions as i, isBootReconciliationCandidate as it, reconcileTestStatusFromGreenCi as j, checkApiErrorAgents as jt, loadState as k, reviewConvoyLiveness as kt, checkOrphanedCompletions as l, checkFirstCompletionAgents as lt, checkVerificationReviewContradiction as m, reconcileStaleMergeBlockers as mt, assessDeaconPatrolFreshness as n, normalizeAwaitingInputPrompt as nn, nudgeStalledResumeWorkAgents as nt, checkDeadEndAgents as o, startBootReconciliation as ot, checkStuckWorkAgents as p, reconcileMergedButReviewing as pt, removeIssueObjectionLabel as q, computeAgentEnrichment as qt, checkAndSuspendIdleAgents as r, parseCodexApprovalPrompt as rn, redeliverUndeliveredKickoffs as rt, checkMassDeath as s, autoCloseOut as st, applyBootReconciliationDecision as t, detectAwaitingInputFromPaneSync as tn, nudgeIdleWorkAgentsWithOpenBeads as tt, checkPendingTestDispatch as u, ciRetryMap as ut, cleanupOrphanedPlanningSessions as v, cleanupOrphanedReviewSessions as vt, handleAgentHeartbeatDeadEvent as w, checkMissingReviewStatuses as wt, getDeaconLogs as x, checkCompletedButUnsignaledReviews as xt, cleanupStaleAgentState as y, monitorReviewConvoySignals as yt, stopDeacon as z, getResourceStacks as zt };
|
|
30171
30228
|
|
|
30172
|
-
//# sourceMappingURL=deacon-
|
|
30229
|
+
//# sourceMappingURL=deacon-CM0MxbS8.js.map
|