@overdeck/desktop 0.45.13 → 0.45.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/{acceptance-criteria-CfujPRrz.js → acceptance-criteria-BZ_nQS1f.js} +2 -2
- package/server/{advancing-selfheal-Bn5QiLtn.js → advancing-selfheal-DJYAvGv-.js} +6 -5
- package/server/{agent-gc-Cl9Nm0Zu.js → agent-gc-D0wDIeV1.js} +3 -3
- package/server/{agent-state-C6Rm6FPR.js → agent-state-lGvgPP4m.js} +1 -1
- package/server/{agent-state-service-U8feBf8t.js → agent-state-service-CZrayD_G.js} +1 -1
- package/server/{agent-state-service-JhFzYCP_.js → agent-state-service-DFslS5go.js} +9 -52
- package/server/{agents-DqQa4Dq_.js → agents-B9GwfCyp.js} +155 -153
- package/server/{agents-CxbuBjID.js → agents-CEcaxSkR.js} +1 -1
- package/server/{archive-planning-CPitEZo4.js → archive-planning-CbghE9-o.js} +5 -5
- package/server/{archive-planning-DmpT1_14.js → archive-planning-CoyIbgGK.js} +1 -1
- package/server/{artifact-index-jobs-sMnNtPhy.js → artifact-index-jobs-CcSrUoSE.js} +2 -2
- package/server/auto-commit-IW-eik_b.js +3 -0
- package/server/{backlog-auto-trigger-Cf9C8fwD.js → backlog-auto-trigger-BfgDsII0.js} +3 -3
- package/server/{bd-process-lock-D1aJxeYv.js → bd-process-lock-XAXAet9O.js} +32 -11
- package/server/{beads-CivpXztb.js → beads-B1u04n3o.js} +1 -1
- package/server/{beads-DRoj6-e1.js → beads-BeSMEjGT.js} +96 -196
- package/server/{beads-query-tOsAYP5h.js → beads-query-Dl4FhT8J.js} +24 -99
- package/server/beads-restore-BUItPOjI.js +23 -0
- package/server/behavior-BTpYbAv4.js +10 -0
- package/server/{briefing-freshness-BL3Q6p7R.js → briefing-freshness-DESTCWo-.js} +4 -4
- package/server/{checkpoint-manager-DCxjQvP_.js → checkpoint-manager-BwFdegJF.js} +2 -2
- package/server/{checkpoint-manager-j5URlFY7.js → checkpoint-manager-DWSXooZV.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BoX1H2Hf.js → checkpoints-BtUonbs3.js} +2 -2
- package/server/{checkpoints-Bu_M_Q9W.js → checkpoints-fjadfOKF.js} +1 -1
- package/server/{claude-hooks-provision-D-jGXmu1.js → claude-hooks-provision-DAtxutOs.js} +132 -114
- package/server/claude-hooks-provision-DiK62u0k.js +3 -0
- package/server/{claude-permissions-DxIjkOVl.js → claude-permissions-CThLgf8d.js} +2 -2
- package/server/{claude-settings-overlay-BPDS6GfE.js → claude-settings-overlay-BF9MPIwx.js} +2 -2
- package/server/{claude-settings-overlay-5b9X2S0C.js → claude-settings-overlay-Dx_Uqcmv.js} +1 -1
- package/server/{cli-s7bPWy-E.js → cli-ByKIIMfT.js} +9 -9
- package/server/cli-D9cUTbBr.js +3 -0
- package/server/{cliproxy-BituqWtR.js → cliproxy-B4c1BUvs.js} +2 -2
- package/server/{cliproxy-D3sHB0sI.js → cliproxy-C_GuT5DU.js} +1 -1
- package/server/{close-issue-CrBE7voz.js → close-issue-BOuLKr6e.js} +5 -5
- package/server/{closed-issue-reaper-BRQBc7Xa.js → closed-issue-reaper-CksfuiFD.js} +1 -1
- package/server/{closed-issue-reaper-DX9mYUji.js → closed-issue-reaper-DCAYzNXW.js} +102 -30
- package/server/{codex-Bi1ITSOo.js → codex-BYPz6ZdF.js} +1 -1
- package/server/{codex-CO0HrK3j.js → codex-BbqIRZjd.js} +6 -5
- package/server/{behavior-D3d2mVyD.js → codex-parser-mFYZh8vR.js} +3 -9
- package/server/{compact-beads-DUkCUFxA.js → compact-beads-CyJtoXJi.js} +15 -8
- package/server/{compact-beads-CrA8-k10.js → compact-beads-N00E4EVa.js} +1 -1
- package/server/{config-DsCxzjXK.js → config-DVLdmnMJ.js} +2 -2
- package/server/{config-B4_d7z7z.js → config-Dj6N8EP9.js} +1 -1
- package/server/{config-yaml-C_djSurJ.js → config-yaml-cNOZcEww.js} +118 -23
- package/server/{conflict-gate-D47Kl78u.js → conflict-gate-BMKm_5DV.js} +3 -3
- package/server/{conflict-gate-CpOn9KC-.js → conflict-gate-CuXUv-bP.js} +1 -1
- package/server/{context-layers-CHl3Nroz.js → context-layers-CeAwSYNt.js} +2 -2
- package/server/{context-layers-BNhUBTkf.js → context-layers-c0JqYHcS.js} +3 -3
- package/server/{control-settings-KyYNXZLv.js → control-settings-D4EFsRBd.js} +4 -4
- package/server/{conversation-compaction-D3aS5PnS.js → conversation-compaction-BCggyih4.js} +8 -8
- package/server/{conversation-compaction-D4Wed1BJ.js → conversation-compaction-kHVfVRg3.js} +1 -1
- package/server/{conversation-service-CFZIjs-M.js → conversation-service-B8LFQQm1.js} +6 -5
- package/server/{conversation-service-DcDB5usR.js → conversation-service-BTzObqGi.js} +1 -1
- package/server/{conversations-BSOU5qnu.js → conversations-B-lcHv-5.js} +4 -4
- package/server/{conversations-BbDPrz89.js → conversations-BM7zlXjr.js} +1 -1
- package/server/{cost-BE_ulOrw.js → cost-BcpRQ-7o.js} +3 -3
- package/server/{cost-CaiG63FG.js → cost-D9kPIY_5.js} +2 -2
- package/server/{cost-sync-D6AX8jv-.js → cost-sync-DF6odxK9.js} +3 -3
- package/server/{dag-BQFtXOuJ.js → dag-DKI3sOmX.js} +3 -3
- package/server/{dangerous-git-ops-04Ba-Qu3.js → dangerous-git-ops-Bn18PEcN.js} +1 -1
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-Bz-6Wjmn.js → deacon-DONuopff.js} +3 -3
- package/server/{deacon-2EvA9Ci3.js → deacon-DdARMjZq.js} +188 -1601
- package/server/{deacon-swarm-DYYOzHRH.js → deacon-swarm-BNGkmYR_.js} +12 -105
- package/server/deacon-swarm-CvdFekIO.js +2 -0
- package/server/deacon.js +7 -7
- package/server/{devcontainer-renderer-Dx0C7VWJ.js → devcontainer-renderer-C-34Sxyz.js} +3 -3
- package/server/{dist-ya66D9ze.js → dist-BMXvKiZP.js} +1 -1
- package/server/dist-BNwrgsUO.js +3 -0
- package/server/{dist-src-Byxt1ifL.js → dist-src-BgGUblXg.js} +1 -1
- package/server/{docker-D2TbXDO6.js → docker-apZ9pBYw.js} +67 -28
- package/server/{ensure-devcontainer-BTiMfFp5.js → ensure-devcontainer-Bqi1EF1P.js} +4 -4
- package/server/{ensure-devcontainer-BIShzs3M.js → ensure-devcontainer-Dq3KoOIl.js} +1 -1
- package/server/{esm-shims-DiV9jHa_.js → esm-shims-BEjvINX3.js} +1 -1
- package/server/{event-store-C02Gprug.js → event-store-CqDgfbAs.js} +1 -1
- package/server/{event-store-C71x6h0i.js → event-store-D89fMfXS.js} +3 -3
- package/server/{events-BFDuPV6n.js → events-S_C0pvl6.js} +3 -3
- package/server/{events-D2gP2-Yv.js → events-rIGncmP1.js} +1 -1
- package/server/export-BJHSVwKP.js +87 -0
- package/server/{factory-ByfbrCab.js → factory-DV18m0rc.js} +5 -5
- package/server/{feature-registry-population-CSH66UO8.js → feature-registry-population-CqZSnqQi.js} +4 -4
- package/server/{feature-registry-storage-DW7dUefc.js → feature-registry-storage-BeXmNBwK.js} +2 -2
- package/server/{features-x_aLR7U9.js → features-u5XeMaOK.js} +2 -2
- package/server/{feedback-target-BFo9fScH.js → feedback-target-CwyWf0Dg.js} +6 -6
- package/server/{feedback-target-C4VMPTZu.js → feedback-target-DDG1PWl3.js} +1 -1
- package/server/{feedback-writer-DCyd75yJ.js → feedback-writer-BsJiw5aT.js} +1 -1
- package/server/{feedback-writer-B9ZqnnX3.js → feedback-writer-D20HSXre.js} +4 -4
- package/server/{flywheel-DwQCoZQG.js → flywheel-9Y1X7IM-.js} +13 -13
- package/server/{flywheel-D9NKvWqb.js → flywheel-Dczmgchd.js} +23 -15
- package/server/{flywheel-DB48X7Nn.js → flywheel-RCnHAgc4.js} +1 -1
- package/server/{flywheel-merge-order-DrjmFXg4.js → flywheel-merge-order-CtCYsFJP.js} +7 -7
- package/server/{flywheel-merge-order-f1bi5XIf.js → flywheel-merge-order-DEtEd3aK.js} +1 -1
- package/server/forge-8y6aEPTB.js +2 -0
- package/server/{forge-C-SoKy8U.js → forge-DFDThFil.js} +2 -2
- package/server/{from-fu7ZumnY.js → from-NSJypkI8.js} +1 -1
- package/server/{fts-db-CL-YzSRG.js → fts-db-C5A_TTOM.js} +2 -2
- package/server/{fts-operations-Bylu5NjM.js → fts-operations-DvCSimfU.js} +2 -2
- package/server/{git-utils-Ym380hJZ.js → git-utils-C0neHvQx.js} +1 -1
- package/server/{git-utils-C8koBs8j.js → git-utils-Dr0L7mFk.js} +2 -2
- package/server/{github-app-DIr70YLg.js → github-app-Bwt9lK4A.js} +1 -1
- package/server/{github-app-DhycHVLF.js → github-app-u9-SX7Gc.js} +2 -2
- package/server/{github-client-7gkcXcBS.js → github-client-Btyy3uan.js} +3 -3
- package/server/{github-client-Ji9lUTNF.js → github-client-Do3k-N1W.js} +1 -1
- package/server/{github-pr-lookup-rt7T9FwA.js → github-pr-lookup-DOF1U2WW.js} +2 -2
- package/server/{harness-resolve-CvGXUnAF.js → harness-resolve-C6g2R0Cd.js} +3 -3
- package/server/{health-events-D4E1DLN-.js → health-events-B4u-2a9m.js} +2 -2
- package/server/{health-events-DDfkoO5a.js → health-events-Bos3sk5g.js} +1 -1
- package/server/{hooks-D_6pAbuJ.js → hooks-BCoOjL_R.js} +2 -2
- package/server/{hooks-DvdnCVv6.js → hooks-uEr8WTx_.js} +1 -1
- package/server/{hume-DkVOs1Qi.js → hume-BqxYKbUf.js} +2 -2
- package/server/hume-CerGi2RH.js +3 -0
- package/server/{idle-stack-reaper-cDRXDpgE.js → idle-stack-reaper-DbZ8ukMd.js} +2 -2
- package/server/{idle-stack-reaper-DNbV9-fj.js → idle-stack-reaper-H0W6XtHh.js} +1 -1
- package/server/{infra-Clew3DpF.js → infra-Ba9mS6e6.js} +3 -3
- package/server/{injection-QCIHOpk6.js → injection-C1DKXeIZ.js} +1 -1
- package/server/{injection-ql0Nddcn.js → injection-yrMBxzVq.js} +7 -7
- package/server/{inspect-agent-DY18KEx4.js → inspect-agent-B-mnb4uh.js} +9 -9
- package/server/inspect-agent-CWkeAB7J.js +2 -0
- package/server/{internal-token-C90jBp-y.js → internal-token-BPYEaXFh.js} +1 -1
- package/server/{internal-token-BeXjPLKy.js → internal-token-BtqSbKTx.js} +2 -2
- package/server/{io-CbAFXQge.js → io-VEGSAqsd.js} +15 -22
- package/server/{issue-closed-BYC2TCk-.js → issue-closed-BxcePXL-.js} +4 -4
- package/server/{issue-lifecycle-BoJa6qIt.js → issue-lifecycle--8MRxrG1.js} +22 -22
- package/server/{issue-lifecycle-CLHbj8RS.js → issue-lifecycle-CdMUauyb.js} +1 -1
- package/server/{issue-service-singleton-BS9NENuR.js → issue-service-singleton-CkTUI-eu.js} +10 -10
- package/server/{issue-service-singleton-3g_CCY-1.js → issue-service-singleton-MZsDhAob.js} +1 -1
- package/server/{issues-BPcqPqfV.js → issues-CBAsuoAO.js} +2 -2
- package/server/jsonl-parser-BUW5_sSK.js +245 -0
- package/server/{label-cleanup-CwiCSZrb.js → label-cleanup-htK6fBRU.js} +3 -3
- package/server/{layers-OHHLphl0.js → layers-jjL16At6.js} +2 -2
- package/server/{lifecycle-B8IdvUbt.js → lifecycle-Ck2UR27D.js} +7 -7
- package/server/{lifecycle-io-BMCH1Bxg.js → lifecycle-io-DXv8Utct.js} +1 -1
- package/server/{lifecycle-io-C73m5e6R.js → lifecycle-io-IehcRt2v.js} +36 -47
- package/server/{linear-client-BMxgycoy.js → linear-client-By7hjwuN.js} +1 -1
- package/server/{linear-client-CgQlM4aT.js → linear-client-D9cSQfvD.js} +3 -3
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-BRkVaIx-.js → merge-BLcEZNXz.js} +1 -1
- package/server/{merge-B7Oi-g6k.js → merge-BN8FGJ2q.js} +3 -3
- package/server/{merge-agent-DNFFsiEm.js → merge-agent-B3u2szOL.js} +29 -29
- package/server/{merge-agent-Bwm34MZ5.js → merge-agent-ejC7Wos8.js} +1 -1
- package/server/{merge-batch-BpYXUaqJ.js → merge-batch-DyqlgYGp.js} +1 -1
- package/server/{merge-blockers-DIOZmqdK.js → merge-blockers-cq-aS2KG.js} +2 -2
- package/server/merge-ops-CFkQtXEj.js +2 -0
- package/server/{merge-rebase-C8WH39MB.js → merge-rebase-Dl7yIxtV.js} +2 -2
- package/server/{merge-set-CsEE2CyQ.js → merge-set-CZ9Nbay0.js} +3 -3
- package/server/{merge-set-DOsBTBQc.js → merge-set-Dy0D0r3i.js} +1 -1
- package/server/{merge-sync-CcLM2vwW.js → merge-sync-CG9kDCdT.js} +1 -1
- package/server/{merge-sync-C2B322Ot.js → merge-sync-D7jWLgCC.js} +2 -2
- package/server/{merge-train-BIm7-7cy.js → merge-train-CH33XJOH.js} +3 -3
- package/server/{merge-train-deps-DG1oQ2DT.js → merge-train-deps-JoVdGnOg.js} +4 -4
- package/server/{merge-verification-BAbjxEd5.js → merge-verification-D4wTChdX.js} +4 -4
- package/server/{multipart-parser-jKtKAXtl.js → multipart-parser-Csn8U-K9.js} +2 -2
- package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
- package/server/node_modules/.package-lock.json +1 -1
- package/server/{orphan-proposed-reconciler-BqVGaOIj.js → orphan-proposed-reconciler-BIcNu4tl.js} +1 -1
- package/server/{orphan-proposed-reconciler-zHrwJ3xr.js → orphan-proposed-reconciler-DI_IS1p_.js} +15 -39
- package/server/package-lock.json +2 -2
- package/server/package.json +1 -1
- package/server/{pan-dir-BlNrLzW7.js → pan-dir-CQIfKG8c.js} +4 -4
- package/server/{paths-CiVeo4N_.js → paths-Blj6A9AJ.js} +2 -2
- package/server/{pickup-KLRUhThD.js → pickup-BtvRBbvI.js} +1 -1
- package/server/{pipeline-notifier-nkWCe042.js → pipeline-notifier-BH4PAi-w.js} +1 -1
- package/server/{pipeline-notifier-DBF6dHxH.js → pipeline-notifier-D_WYtEwl.js} +2 -2
- package/server/project-pipelines-jMTitpeO.js +162 -0
- package/server/projects-CrBE6IhN.js +3 -0
- package/server/{prompts-CXbQvevY.js → prompts-B3njaImU.js} +2 -2
- package/server/{providers-CUdAb5Qu.js → providers-BbEyFhPX.js} +7 -7
- package/server/providers-DnPxkHoG.js +3 -0
- package/server/public/assets/chunk-BO2N2NFS-3qh9TUJi.js +103 -0
- package/server/public/assets/{diagram-OG6HWLK6-NACO1xW5.js → diagram-OG6HWLK6-D8UVTPj7.js} +1 -1
- package/server/public/assets/{dist-DQD-ZjQY.js → dist-BvLLn1YC.js} +3 -3
- package/server/public/assets/{dist-D1FjqGgm.js → dist-CyubL7Wj.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-CEMAKgmE.js → ganttDiagram-6RSMTGT7-BI4E1LbQ.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-D5lC7FW8.js → highlighted-body-OFNGDK62-D_bapWkF.js} +1 -1
- package/server/public/assets/index-BAZxZ-8I.js +796 -0
- package/server/public/assets/index-FBG3JBfq.css +1 -0
- package/server/public/assets/{linear-DDHAMRPB.js → linear-CEdobObr.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-DwBdeKBb.js → pieDiagram-4H26LBE5-DT79L01f.js} +1 -1
- package/server/public/assets/{prod-DAZt0c4G.js → prod-CR_K2DFV.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CNDLp-_m.js → quadrantDiagram-W4KKPZXB-BEkKXXrL.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-oIUL_uO1.js → sankeyDiagram-5OEKKPKP-BxSCqn-j.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-B-IM6Cck.js → xychartDiagram-2RQKCTM6-DicwJGG_.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-DZ-V7_LB.js → pull-requests-43LPDfM8.js} +1 -1
- package/server/{pull-requests-kTRl7cWC.js → pull-requests-DyUkQl4W.js} +3 -3
- package/server/{rally-xCTZ-UcI.js → rally-BtWjybOa.js} +3 -3
- package/server/{rally-api-jOk4vit_.js → rally-api-B-YA_oXx.js} +1 -1
- package/server/{rally-api-DpZo3WwF.js → rally-api-B-osULNL.js} +2 -2
- package/server/{rally-client-BQjm3aaq.js → rally-client-CzFymP7P.js} +1 -1
- package/server/{rally-client-CoWZeVEj.js → rally-client-sErNQBO0.js} +5 -5
- package/server/rally-oggyp4cs.js +3 -0
- package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-2s-fvilz.js} +1 -1
- package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-DnDQ7pf9.js} +1 -1
- package/server/{rebuild-stack-BZ7j27xY.js → rebuild-stack-CoU-HqZj.js} +6 -6
- package/server/{rebuild-stack-r-cxcr26.js → rebuild-stack-nGD_nPZo.js} +1 -1
- package/server/{reconstruct-cache-13EkMg_i.js → reconstruct-cache-Wj8GrYB0.js} +6 -6
- package/server/record-lEYK__LD.js +3 -0
- package/server/recovery-trip-BT7nb9OV.js +98 -0
- package/server/{release-engine-YLTnEO_K.js → release-engine-CBLQXDlH.js} +5 -5
- package/server/{release-set-DwvT_Opu.js → release-set-BNiqi7hy.js} +3 -3
- package/server/{remote-B062S1Kc.js → remote-DW_TWQnr.js} +3 -3
- package/server/{remote-9u9WL0NJ.js → remote-DcO9An_f.js} +3 -3
- package/server/{remote-agents-BBTg-vLT.js → remote-agents-C4cyxHQS.js} +6 -6
- package/server/{remote-agents-B4eWgwNd.js → remote-agents-Cv-U-_V8.js} +1 -1
- package/server/{remote-completion-B0rmBnbL.js → remote-completion-PhXGGFQy.js} +13 -13
- package/server/resolver-C7dLn8OK.js +158 -0
- package/server/resume-BYZBIab-.js +3 -0
- package/server/{review-agent-tfR5RDzG.js → review-agent-Dn-yn7Zj.js} +23 -23
- package/server/{review-agent-Bf9XjLnl.js → review-agent-u5q3ip7H.js} +1 -1
- package/server/{review-artifacts-D0_IE6DQ.js → review-artifacts-D4T04aYI.js} +6 -6
- package/server/{review-context-CXO5ml5D.js → review-context-Rc0VDLG_.js} +8 -8
- package/server/{review-monitor-DfFUSx0J.js → review-monitor-BC--miCO.js} +2 -2
- package/server/{review-status-B0Axo-Ma.js → review-status-CG0iDuWa.js} +1 -1
- package/server/{review-status-BcfwcAcO.js → review-status-Dc1l4dVz.js} +18 -18
- package/server/{review-status-enrichment-Cp5kFTGl.js → review-status-enrichment-C1a1OG_1.js} +3 -3
- package/server/{review-status-sync-CEFty1pW.js → review-status-sync-CAr-hfnJ.js} +2 -2
- package/server/{review-status-sync-Bc0c_u12.js → review-status-sync-CfSixhhX.js} +1 -1
- package/server/{review-verdict-feedback-BOKRLLDf.js → review-verdict-feedback-CVDbIDBe.js} +7 -7
- package/server/{review-verdict-feedback-BnGtT0vN.js → review-verdict-feedback-D2Q960wX.js} +1 -1
- package/server/{rollup-BVqFuiS9.js → rollup-CakjztPl.js} +1 -1
- package/server/{rollup-C22QDVxh.js → rollup-DctoIu-A.js} +8 -8
- package/server/{scanner-BLCnuXqY.js → scanner-BTM1jc_u.js} +7 -7
- package/server/{sequence-io-BozlUb6f.js → sequence-io-pnoIDGv4.js} +4 -4
- package/server/{sequencer-agent-BEDEHfd2.js → sequencer-agent-9Soi-WL-.js} +10 -6
- package/server/server.js +1239 -1836
- package/server/{service-C8jKYZ0w.js → service-DfTVoqJg.js} +1668 -1408
- package/server/{session-fork-BDGksK4e.js → session-fork-C4jAFHj8.js} +2 -2
- package/server/session-history-DanhhiCw.js +168 -0
- package/server/{settings-CSLhh6qR.js → settings-Cuc12oP_.js} +2 -2
- package/server/settings-Cy7SCFO9.js +2 -0
- package/server/{settings-DrRQCren.js → settings-DfT3f86D.js} +3 -3
- package/server/{shadow-engineering-BMcBN-Of.js → shadow-engineering-bKuKTCn-.js} +3 -3
- package/server/{shadow-state-CHqWHD3T.js → shadow-state-CVHpRWlb.js} +1 -1
- package/server/{shadow-state-B4ayC7nx.js → shadow-state-DJz6_pb_.js} +2 -2
- package/server/{ship-log-CDVmOlZP.js → ship-log-CwqPFfqx.js} +1 -1
- package/server/{smart-compaction-V9DBrGcr.js → smart-compaction-B4KlpZGN.js} +1 -1
- package/server/{smart-compaction-C-F5sP9P.js → smart-compaction-CiWfGfRZ.js} +7 -7
- package/server/{spawn-planning-session-dSpOU0lP.js → spawn-planning-session-CU-DwyDl.js} +15 -15
- package/server/{spawn-planning-session-Bz4_JES2.js → spawn-planning-session-D5N3RuLG.js} +1 -1
- package/server/{specialist-completion-Coz3eTSr.js → specialist-completion-CJcv-NXH.js} +1 -1
- package/server/{specialist-context-fmb03vXQ.js → specialist-context-B2HlbNxS.js} +5 -5
- package/server/{specialist-handoff-logger-B9HK_lRu.js → specialist-handoff-logger-CQyF1ygu.js} +2 -2
- package/server/{specialist-logs-B24R2B9Y.js → specialist-logs-CdcUpfjj.js} +3 -3
- package/server/{specialists-CL7E8yUg.js → specialists-CFgw_0Q6.js} +1657 -113
- package/server/{specialists-BGNZ0_ZW.js → specialists-CwzFdapR.js} +20 -256
- package/server/{specialists-B6f5-5nG.js → specialists-D7AcFi1u.js} +1 -1
- package/server/{specialists-Chvvwf5z.js → specialists-k22_Btaq.js} +1 -1
- package/server/specs-RzcDgozr.js +3 -0
- package/server/{src-DGAEtABV.js → src-B4TTzNSr.js} +84 -2
- package/server/{src-BVxZuHMg.js → src-BvpMg4EB.js} +3 -3
- package/server/{src-D-VXCC9C.js → src-D4YUZrwR.js} +6 -6
- package/server/{stack-health-C-le5erA.js → stack-health-CSgcYcr8.js} +2 -2
- package/server/{stack-health-BKbTTOT2.js → stack-health-DVN7zRnL.js} +1 -1
- package/server/{state-home-CoyWsECg.js → state-home-CEvD_v5F.js} +6 -6
- package/server/{state-mapping-BvAgFK8n.js → state-mapping-C13UaCL7.js} +1 -1
- package/server/stuck-remediation-CxsyxwFO.js +1513 -0
- package/server/stuck-remediation-nTIvhGOR.js +2 -0
- package/server/{summary-fork-BF_0vxrq.js → summary-fork-CnRMPCYd.js} +2 -2
- package/server/{summary-fork-BlE30Q-I.js → summary-fork-gKSoFAnK.js} +8 -8
- package/server/{supervisor-BSeML_p0.js → supervisor-CZMs8s0M.js} +2 -2
- package/server/supervisor-CfX192ma.js +2 -0
- package/server/{swarm-readiness-CQ4sjrXc.js → swarm-readiness-h6-pwY8w.js} +3 -3
- package/server/{system-prerequisites-DnmLYOnU.js → system-prerequisites-DZZTi2G6.js} +1 -1
- package/server/{teardown-workspace-CpcjDrZ4.js → teardown-workspace-B4D-oCVg.js} +37 -68
- package/server/{test-agent-queue-Bq298zZl.js → test-agent-queue-CnuYku4B.js} +6 -6
- package/server/{test-verdict-CCDd25uN.js → test-verdict-CRsPpByy.js} +1 -1
- package/server/{test-verdict-Bm4uv_AA.js → test-verdict-CXMLATGc.js} +1 -1
- package/server/{tldr-daemon-Rn1Zue0P.js → tldr-daemon-CgZQ3jmZ.js} +1 -1
- package/server/{tldr-daemon-CaSUXd9r.js → tldr-daemon-CuA8hz21.js} +2 -2
- package/server/{tmux-CbcrkUx5.js → tmux-By8E_Yv_.js} +1 -1
- package/server/{tmux-BVc-NeKM.js → tmux-C3g9VFcg.js} +2 -2
- package/server/{token-D2OC_9ms.js → token-g_sJ19g3.js} +2 -2
- package/server/token-util-C9u4An3K.js +3 -0
- package/server/{token-util-CROoF5ic.js → token-util-DiwnnbJo.js} +1 -1
- package/server/{tracker-config-EsBoOWEy.js → tracker-config-BzfVj41Z.js} +1 -1
- package/server/{tracker-config-C1Y_2CIo.js → tracker-config-dQxC15vH.js} +2 -2
- package/server/{tracker-utils-lph9C3Pw.js → tracker-utils--z8FLSWn.js} +2 -2
- package/server/{tracker-utils-DSb9cfrF.js → tracker-utils-DkKyRT0H.js} +1 -1
- package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-CZYB3dlm.js} +1 -1
- package/server/{tunnel-BFBCeo97.js → tunnel-BpWZs0Jy.js} +3 -3
- package/server/{tunnel-DDe-ATFF.js → tunnel-CN2px87h.js} +1 -1
- package/server/{typed-errors-DSPn_xWP.js → typed-errors-CrN1AByg.js} +1 -1
- package/server/{typed-errors-BEJhbjJg.js → typed-errors-sLpGfegz.js} +1 -1
- package/server/{types-CE1m_daD.js → types-BLS_Zbmd.js} +1 -1
- package/server/{types-B5u3NxMl.js → types-tlXf80x3.js} +1 -1
- package/server/{uat-train-DtKHHy1U.js → uat-train-BRo6DM7p.js} +24 -24
- package/server/{uat-train-8T24rPzc.js → uat-train-utGVmqdm.js} +1 -1
- package/server/{validation-lyudzPvD.js → validation-CsPVsoA0.js} +4 -4
- package/server/{validation-COOXwNXU.js → validation-Dq_wwcw3.js} +1 -1
- package/server/{verification-runner-DO0nYTJx.js → verification-runner-CMT5WRMS.js} +12 -12
- package/server/{verification-runner-Dd1FX8Qk.js → verification-runner-D0Uh-9jc.js} +1 -1
- package/server/{vtt-parser-C57tEF7-.js → vtt-parser-C_XPlifj.js} +1 -1
- package/server/{work-agent-prompt-B2F3ZwKm.js → work-agent-prompt-ZTAb2Hyf.js} +12 -12
- package/server/workflows-BLwxUMP7.js +2 -0
- package/server/{workflows-Clz_AFwR.js → workflows-CXRwhw_o.js} +14 -14
- package/server/{workspace-D0rCFemz.js → workspace-9UEsKuiP.js} +1 -1
- package/server/{workspace-CY_2-Ddv.js → workspace-CNfuj1-5.js} +3 -3
- package/server/{workspace-config-DA8U97k9.js → workspace-config-ChWOECy0.js} +1 -1
- package/server/{workspace-manager-BIfpzqdU.js → workspace-manager-BO-6k3sP.js} +1 -1
- package/server/{workspace-manager-D6NgGkiF.js → workspace-manager-D8AByFIT.js} +13 -13
- package/server/{workspace-metadata-C8yn8kAH.js → workspace-metadata-CvC268MN.js} +2 -2
- package/server/{workspace-metadata-DfgR40YU.js → workspace-metadata-DZiJtnuF.js} +1 -1
- package/server/{workspaces-DOeHyKmA.js → workspaces-D-uIoqbg.js} +104 -122
- package/server/writer-BUweuRPx.js +3 -0
- package/server/writer-CrP2xuBn.js +251 -0
- package/sync-sources/hooks/ask-user-question-hook +7 -1
- package/sync-sources/hooks/record-cost-event.js +4 -3
- package/sync-sources/hooks/record-cost-event.js.map +1 -1
- package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
- package/server/auto-commit-wZ9X7Isd.js +0 -3
- package/server/bd-mutex-BItGvLQ8.js +0 -35
- package/server/beads-restore-CMbDSB5R.js +0 -60
- package/server/cli-CqgiSAU8.js +0 -3
- package/server/deacon-swarm-B8pgK2a7.js +0 -2
- package/server/dist-BYSj075e.js +0 -3
- package/server/forge-CUCYK7h_.js +0 -2
- package/server/hume-x9voULey.js +0 -3
- package/server/inspect-agent-D8UBDgfR.js +0 -2
- package/server/merge-ops-B7m-hBEZ.js +0 -2
- package/server/projects-BqRMlDOv.js +0 -3
- package/server/providers-gZ0cUgQM.js +0 -3
- package/server/public/assets/chunk-BO2N2NFS-C-6y8VFI.js +0 -103
- package/server/public/assets/index-BDqWyuZQ.js +0 -796
- package/server/public/assets/index-CZiADHcL.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-DRM2ANcR.js +0 -1
- package/server/rally-CRteqXe0.js +0 -3
- package/server/record-CJsjvRO4.js +0 -3
- package/server/resume-R7xkSmLW.js +0 -3
- package/server/settings-CSaXtkoA.js +0 -2
- package/server/specs-oaaYaA5c.js +0 -3
- package/server/supervisor-03Tj_Wra.js +0 -2
- package/server/token-util-xNaV-00f.js +0 -3
- package/server/workflows-B4fIN8VP.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-
|
|
1
|
+
import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-DCAYzNXW.js";
|
|
2
2
|
export { handleIssueStatusChangedClosed };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fn as init_projects, It as resolveProjectForIssue, Jr as init_paths, Sr as AGENTS_DIR, kt as init_record, nr as init_issue_id, zn as listProjectsSync } from "./config-yaml-cNOZcEww.js";
|
|
2
2
|
import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
|
|
3
|
-
import { O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-
|
|
4
|
-
import { c as init_review_status, u as loadReviewStatuses } from "./review-status-
|
|
5
|
-
import { K as stopAgent, Z as listRunningAgents, t as init_agents } from "./agents-
|
|
6
|
-
import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-
|
|
7
|
-
import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-
|
|
8
|
-
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-
|
|
9
|
-
import "./close-issue-
|
|
3
|
+
import { O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-C3g9VFcg.js";
|
|
4
|
+
import { c as init_review_status, u as loadReviewStatuses } from "./review-status-Dc1l4dVz.js";
|
|
5
|
+
import { K as stopAgent, Z as listRunningAgents, t as init_agents } from "./agents-B9GwfCyp.js";
|
|
6
|
+
import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-apZ9pBYw.js";
|
|
7
|
+
import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-CbghE9-o.js";
|
|
8
|
+
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BxcePXL-.js";
|
|
9
|
+
import "./close-issue-BOuLKr6e.js";
|
|
10
10
|
import { join } from "node:path";
|
|
11
11
|
import { Data, Effect } from "effect";
|
|
12
12
|
import "fs";
|
|
@@ -29,7 +29,50 @@ init_review_status();
|
|
|
29
29
|
init_archive_planning();
|
|
30
30
|
init_docker();
|
|
31
31
|
init_issue_id();
|
|
32
|
-
const execAsync$
|
|
32
|
+
const execAsync$2 = promisify$1(exec$1);
|
|
33
|
+
const ARTIFACT_PATH_PREFIXES = [
|
|
34
|
+
".pan/",
|
|
35
|
+
".planning/",
|
|
36
|
+
"docs/prds/",
|
|
37
|
+
".overdeck/"
|
|
38
|
+
];
|
|
39
|
+
const ARTIFACT_EXCLUSIONS = ARTIFACT_PATH_PREFIXES.map((prefix) => `':!${prefix.slice(0, -1)}'`).join(" ");
|
|
40
|
+
/**
|
|
41
|
+
* Squash-merge detection via the forge. A squash-merged branch is never an
|
|
42
|
+
* ancestor of main and its three-dot diff never empties (the pre-squash
|
|
43
|
+
* commits stay visible against the merge-base), so pure-git checks report it
|
|
44
|
+
* unmerged forever. The merged PR is the authoritative record: if a merged PR
|
|
45
|
+
* has this branch as head, its merge commit landed on main, and the branch has
|
|
46
|
+
* no post-merge code commits, the branch is merged. Returns false on any
|
|
47
|
+
* failure (no gh, GitLab remote, no PR) so callers fall through conservatively.
|
|
48
|
+
*/
|
|
49
|
+
async function isSquashMergedViaPr(branchName, tipRef, projectPath) {
|
|
50
|
+
try {
|
|
51
|
+
const { stdout } = await execAsync$2(`gh pr list --head "${branchName}" --state merged --json headRefOid,mergeCommit --limit 1`, {
|
|
52
|
+
cwd: projectPath,
|
|
53
|
+
encoding: "utf-8",
|
|
54
|
+
timeout: 15e3
|
|
55
|
+
});
|
|
56
|
+
const pr = JSON.parse(stdout)[0];
|
|
57
|
+
if (!pr?.headRefOid || !pr.mergeCommit?.oid) return false;
|
|
58
|
+
await execAsync$2(`git merge-base --is-ancestor ${pr.mergeCommit.oid} main`, {
|
|
59
|
+
cwd: projectPath,
|
|
60
|
+
encoding: "utf-8"
|
|
61
|
+
});
|
|
62
|
+
const { stdout: tipSha } = await execAsync$2(`git rev-parse "${tipRef}"`, {
|
|
63
|
+
cwd: projectPath,
|
|
64
|
+
encoding: "utf-8"
|
|
65
|
+
});
|
|
66
|
+
if (tipSha.trim() === pr.headRefOid) return true;
|
|
67
|
+
const { stdout: filesOut } = await execAsync$2(`git log ${pr.headRefOid}..${tipRef} --name-only --pretty=format:`, {
|
|
68
|
+
cwd: projectPath,
|
|
69
|
+
encoding: "utf-8"
|
|
70
|
+
});
|
|
71
|
+
return filesOut.split("\n").map((line) => line.trim()).filter(Boolean).every((file) => ARTIFACT_PATH_PREFIXES.some((prefix) => file.startsWith(prefix)));
|
|
72
|
+
} catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
33
76
|
/**
|
|
34
77
|
* Check if a feature branch has been merged into main.
|
|
35
78
|
*
|
|
@@ -42,7 +85,7 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
42
85
|
try {
|
|
43
86
|
const issueId = branchName.replace("feature/", "").toUpperCase();
|
|
44
87
|
if (loadReviewStatuses()[issueId]?.mergeStatus === "merged") {
|
|
45
|
-
const { stdout: aheadOfMain } = await execAsync$
|
|
88
|
+
const { stdout: aheadOfMain } = await execAsync$2(`git log main..${branchName} --oneline 2>/dev/null || true`, {
|
|
46
89
|
cwd: projectPath,
|
|
47
90
|
encoding: "utf-8"
|
|
48
91
|
});
|
|
@@ -52,12 +95,12 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
52
95
|
};
|
|
53
96
|
}
|
|
54
97
|
} catch {}
|
|
55
|
-
const { stdout: branchExists } = await execAsync$
|
|
98
|
+
const { stdout: branchExists } = await execAsync$2(`git branch --list "${branchName}" 2>/dev/null || true`, {
|
|
56
99
|
cwd: projectPath,
|
|
57
100
|
encoding: "utf-8"
|
|
58
101
|
});
|
|
59
102
|
if (branchExists.trim()) try {
|
|
60
|
-
await execAsync$
|
|
103
|
+
await execAsync$2(`git merge-base --is-ancestor ${branchName} main`, {
|
|
61
104
|
cwd: projectPath,
|
|
62
105
|
encoding: "utf-8"
|
|
63
106
|
});
|
|
@@ -67,7 +110,7 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
67
110
|
};
|
|
68
111
|
} catch {
|
|
69
112
|
try {
|
|
70
|
-
const { stdout: codeDiff } = await execAsync$
|
|
113
|
+
const { stdout: codeDiff } = await execAsync$2(`git diff main...${branchName} -- ${ARTIFACT_EXCLUSIONS} 2>/dev/null || true`, {
|
|
71
114
|
cwd: projectPath,
|
|
72
115
|
encoding: "utf-8"
|
|
73
116
|
});
|
|
@@ -76,7 +119,11 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
76
119
|
message: "Code changes squash-merged to main (only planning artifacts remain on branch)"
|
|
77
120
|
};
|
|
78
121
|
} catch {}
|
|
79
|
-
|
|
122
|
+
if (await isSquashMergedViaPr(branchName, branchName, projectPath)) return {
|
|
123
|
+
status: "merged",
|
|
124
|
+
message: `Merged PR found for ${branchName} (squash merge)`
|
|
125
|
+
};
|
|
126
|
+
const { stdout: unmerged } = await execAsync$2(`git log main..${branchName} --oneline 2>/dev/null || true`, {
|
|
80
127
|
cwd: projectPath,
|
|
81
128
|
encoding: "utf-8"
|
|
82
129
|
});
|
|
@@ -85,14 +132,14 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
85
132
|
message: `${unmerged.trim() ? unmerged.trim().split("\n").length : 0} unmerged commit(s) on ${branchName}. Merge before closing out.`
|
|
86
133
|
};
|
|
87
134
|
}
|
|
88
|
-
const { stdout: remoteBranch } = await execAsync$
|
|
135
|
+
const { stdout: remoteBranch } = await execAsync$2(`git ls-remote --heads origin "${branchName}" 2>/dev/null || true`, {
|
|
89
136
|
cwd: projectPath,
|
|
90
137
|
encoding: "utf-8"
|
|
91
138
|
});
|
|
92
139
|
if (remoteBranch.trim()) {
|
|
93
|
-
await execAsync$
|
|
140
|
+
await execAsync$2(`git fetch origin ${branchName}`, { cwd: projectPath }).catch(() => {});
|
|
94
141
|
try {
|
|
95
|
-
await execAsync$
|
|
142
|
+
await execAsync$2(`git merge-base --is-ancestor origin/${branchName} main`, {
|
|
96
143
|
cwd: projectPath,
|
|
97
144
|
encoding: "utf-8"
|
|
98
145
|
});
|
|
@@ -102,7 +149,7 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
102
149
|
};
|
|
103
150
|
} catch {
|
|
104
151
|
try {
|
|
105
|
-
const { stdout: codeDiff } = await execAsync$
|
|
152
|
+
const { stdout: codeDiff } = await execAsync$2(`git diff main...origin/${branchName} -- ${ARTIFACT_EXCLUSIONS} 2>/dev/null || true`, {
|
|
106
153
|
cwd: projectPath,
|
|
107
154
|
encoding: "utf-8"
|
|
108
155
|
});
|
|
@@ -111,7 +158,11 @@ async function isBranchMerged(branchName, projectPath) {
|
|
|
111
158
|
message: "Remote code changes squash-merged to main (only planning artifacts remain on branch)"
|
|
112
159
|
};
|
|
113
160
|
} catch {}
|
|
114
|
-
|
|
161
|
+
if (await isSquashMergedViaPr(branchName, `origin/${branchName}`, projectPath)) return {
|
|
162
|
+
status: "merged",
|
|
163
|
+
message: `Merged PR found for ${branchName} (squash merge)`
|
|
164
|
+
};
|
|
165
|
+
const { stdout: remoteUnmerged } = await execAsync$2(`git log main..origin/${branchName} --oneline 2>/dev/null || true`, {
|
|
115
166
|
cwd: projectPath,
|
|
116
167
|
encoding: "utf-8"
|
|
117
168
|
});
|
|
@@ -132,7 +183,7 @@ Data.TaggedError("CloseOutError");
|
|
|
132
183
|
init_paths();
|
|
133
184
|
init_tmux();
|
|
134
185
|
init_docker();
|
|
135
|
-
const execAsync = promisify(exec);
|
|
186
|
+
const execAsync$1 = promisify(exec);
|
|
136
187
|
function escapeRegex(value) {
|
|
137
188
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
138
189
|
}
|
|
@@ -156,19 +207,19 @@ async function reapIssueResidue(projectPath, issueId) {
|
|
|
156
207
|
} catch {}
|
|
157
208
|
}
|
|
158
209
|
} catch {}
|
|
159
|
-
if ((await isBranchMerged(branchName, projectPath)).status === "unmerged") {
|
|
160
|
-
actions.push(`skipped reap for ${issueId} — branch unmerged`);
|
|
161
|
-
return actions;
|
|
162
|
-
}
|
|
163
210
|
try {
|
|
164
|
-
if ((await teardownWorkspaceDockerByNamePromise(issueLower)).networkRemoved) actions.push(`removed Docker stack
|
|
165
|
-
else actions.push(`Docker network
|
|
211
|
+
if ((await teardownWorkspaceDockerByNamePromise(issueLower)).networkRemoved) actions.push(`removed Docker stack for feature-${issueLower}`);
|
|
212
|
+
else actions.push(`Docker network for feature-${issueLower} still present`);
|
|
166
213
|
} catch (err) {
|
|
167
214
|
actions.push(`Docker teardown failed for ${issueId}: ${err.message}`);
|
|
168
215
|
}
|
|
216
|
+
if ((await isBranchMerged(branchName, projectPath)).status === "unmerged") {
|
|
217
|
+
actions.push(`skipped disk reap for ${issueId} — branch unmerged`);
|
|
218
|
+
return actions;
|
|
219
|
+
}
|
|
169
220
|
const workspacePath = join(projectPath, "workspaces", `feature-${issueLower}`);
|
|
170
221
|
if (existsSync$1(workspacePath)) try {
|
|
171
|
-
await execAsync(`git worktree remove "${workspacePath}" --force`, { cwd: projectPath });
|
|
222
|
+
await execAsync$1(`git worktree remove "${workspacePath}" --force`, { cwd: projectPath });
|
|
172
223
|
actions.push(`removed workspace ${workspacePath}`);
|
|
173
224
|
} catch {
|
|
174
225
|
try {
|
|
@@ -180,11 +231,11 @@ async function reapIssueResidue(projectPath, issueId) {
|
|
|
180
231
|
} catch {}
|
|
181
232
|
}
|
|
182
233
|
try {
|
|
183
|
-
await execAsync(`git branch -D "${branchName}"`, { cwd: projectPath });
|
|
234
|
+
await execAsync$1(`git branch -D "${branchName}"`, { cwd: projectPath });
|
|
184
235
|
actions.push(`deleted local branch ${branchName}`);
|
|
185
236
|
} catch {}
|
|
186
237
|
try {
|
|
187
|
-
await execAsync(`git push origin --delete "${branchName}"`, { cwd: projectPath });
|
|
238
|
+
await execAsync$1(`git push origin --delete "${branchName}"`, { cwd: projectPath });
|
|
188
239
|
actions.push(`deleted remote branch ${branchName}`);
|
|
189
240
|
} catch {}
|
|
190
241
|
for (const agentDirName of [`agent-${issueLower}`, `planning-${issueLower}`]) {
|
|
@@ -216,6 +267,23 @@ function issueIdFromAgentDir(entryName) {
|
|
|
216
267
|
const match = entryName.match(/^agent-([a-z]+-\d+)$/i);
|
|
217
268
|
return match ? match[1].toUpperCase() : null;
|
|
218
269
|
}
|
|
270
|
+
const execAsync = promisify(exec);
|
|
271
|
+
async function listFeatureDevnetIssueIds() {
|
|
272
|
+
try {
|
|
273
|
+
const { stdout } = await execAsync(`docker network ls --format '{{.Name}}'`, {
|
|
274
|
+
encoding: "utf-8",
|
|
275
|
+
timeout: 3e4
|
|
276
|
+
});
|
|
277
|
+
const issueIds = /* @__PURE__ */ new Set();
|
|
278
|
+
for (const name of stdout.trim().split("\n")) {
|
|
279
|
+
const match = name.match(/-feature-([a-z]+-\d+)_devnet$/i);
|
|
280
|
+
if (match) issueIds.add(match[1].toUpperCase());
|
|
281
|
+
}
|
|
282
|
+
return [...issueIds];
|
|
283
|
+
} catch {
|
|
284
|
+
return [];
|
|
285
|
+
}
|
|
286
|
+
}
|
|
219
287
|
async function isClosedIssue(issueId, closedChecks) {
|
|
220
288
|
let promise = closedChecks.get(issueId);
|
|
221
289
|
if (!promise) {
|
|
@@ -337,9 +405,13 @@ async function reconcileClosedIssueAgents() {
|
|
|
337
405
|
if (!await isClosedIssue(issueId, closedChecks)) continue;
|
|
338
406
|
await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
|
|
339
407
|
}
|
|
408
|
+
for (const issueId of await listFeatureDevnetIssueIds()) {
|
|
409
|
+
if (!await isClosedIssue(issueId, closedChecks)) continue;
|
|
410
|
+
await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
|
|
411
|
+
}
|
|
340
412
|
return actions;
|
|
341
413
|
}
|
|
342
414
|
//#endregion
|
|
343
415
|
export { reconcileClosedIssueAgents as n, handleIssueStatusChangedClosed as t };
|
|
344
416
|
|
|
345
|
-
//# sourceMappingURL=closed-issue-reaper-
|
|
417
|
+
//# sourceMappingURL=closed-issue-reaper-DCAYzNXW.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as extractThreadIdFromRollout, c as initCodexHome, d as waitForCodexRollout, f as writeThreadId, l as init_codex, o as findLatestRollout, s as findRolloutPath } from "./codex-
|
|
1
|
+
import { a as extractThreadIdFromRollout, c as initCodexHome, d as waitForCodexRollout, f as writeThreadId, l as init_codex, o as findLatestRollout, s as findRolloutPath } from "./codex-BbqIRZjd.js";
|
|
2
2
|
init_codex();
|
|
3
3
|
export { extractThreadIdFromRollout, findLatestRollout, findRolloutPath, initCodexHome, waitForCodexRollout, writeThreadId };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { A as listSessionsSync, L as sessionExists, o as createSession, w as killSession, x as init_tmux } from "./tmux-
|
|
4
|
-
import { r as CODEX_BEHAVIOR } from "./src-
|
|
5
|
-
import {
|
|
2
|
+
import { xr as init_errors } from "./config-yaml-cNOZcEww.js";
|
|
3
|
+
import { A as listSessionsSync, L as sessionExists, o as createSession, w as killSession, x as init_tmux } from "./tmux-C3g9VFcg.js";
|
|
4
|
+
import { r as CODEX_BEHAVIOR } from "./src-B4TTzNSr.js";
|
|
5
|
+
import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-mFYZh8vR.js";
|
|
6
|
+
import { t as init_behavior } from "./behavior-BTpYbAv4.js";
|
|
6
7
|
import { basename, join } from "node:path";
|
|
7
8
|
import { Effect } from "effect";
|
|
8
9
|
import { homedir } from "node:os";
|
|
@@ -498,4 +499,4 @@ var init_codex = __esmMin((() => {
|
|
|
498
499
|
//#endregion
|
|
499
500
|
export { extractThreadIdFromRollout as a, initCodexHome as c, waitForCodexRollout as d, writeThreadId as f, createCodexRuntimeSync as i, init_codex as l, CodexSpawnTimeout as n, findLatestRollout as o, codexHome as r, findRolloutPath as s, CodexRuntimeSync as t, toCodexSandboxValue as u };
|
|
500
501
|
|
|
501
|
-
//# sourceMappingURL=codex-
|
|
502
|
+
//# sourceMappingURL=codex-BbqIRZjd.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { o as getPricingSync, s as init_cost } from "./cost-CaiG63FG.js";
|
|
2
|
+
import { o as getPricingSync, s as init_cost } from "./cost-D9kPIY_5.js";
|
|
4
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
4
|
//#region ../../lib/cost-parsers/codex-parser.ts
|
|
6
5
|
/**
|
|
@@ -243,11 +242,6 @@ var init_codex_parser = __esmMin((() => {
|
|
|
243
242
|
init_cost();
|
|
244
243
|
}));
|
|
245
244
|
//#endregion
|
|
246
|
-
|
|
247
|
-
var init_behavior = __esmMin((() => {
|
|
248
|
-
init_src();
|
|
249
|
-
}));
|
|
250
|
-
//#endregion
|
|
251
|
-
export { parseCodexSessionSync as i, init_codex_parser as n, parseCodexSessionCostEventsSync as r, init_behavior as t };
|
|
245
|
+
export { parseCodexSessionCostEventsSync as n, parseCodexSessionSync as r, init_codex_parser as t };
|
|
252
246
|
|
|
253
|
-
//# sourceMappingURL=
|
|
247
|
+
//# sourceMappingURL=codex-parser-mFYZh8vR.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-
|
|
2
|
+
import { hn as resolveStateReadHomeSync, mn as init_state_read_home } from "./config-yaml-cNOZcEww.js";
|
|
3
|
+
import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-tlXf80x3.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { existsSync } from "fs";
|
|
6
6
|
import { join } from "path";
|
|
@@ -43,12 +43,19 @@ async function compactBeadsImpl(ctx, opts) {
|
|
|
43
43
|
});
|
|
44
44
|
const count = parseInt(countOutput.trim(), 10) || 0;
|
|
45
45
|
if (count === 0) return stepSkipped(step, ["No closed beads older than " + days + " days"]);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
const { runMutationBatch } = await import("./writer-BUweuRPx.js");
|
|
47
|
+
const compacted = await runMutationBatch({
|
|
48
|
+
project: { workspacePath: operationRoot },
|
|
49
|
+
reason: `compact beads older than ${days} days`
|
|
50
|
+
}, (bd) => bd.mutate([
|
|
51
|
+
"admin",
|
|
52
|
+
"compact",
|
|
53
|
+
"--days",
|
|
54
|
+
String(days)
|
|
55
|
+
]));
|
|
56
|
+
if (!compacted.ok) return stepFailed(step, compacted.message);
|
|
50
57
|
if (stateHome.migrated) {
|
|
51
|
-
const { flushAutoCommits, queueBeadsAutoCommit } = await import("./auto-commit-
|
|
58
|
+
const { flushAutoCommits, queueBeadsAutoCommit } = await import("./auto-commit-IW-eik_b.js");
|
|
52
59
|
queueBeadsAutoCommit(ctx.projectPath);
|
|
53
60
|
const result = await Effect.runPromise(flushAutoCommits(ctx.projectPath));
|
|
54
61
|
return result.committed ? stepOk(step, [`Compacted ${count} closed beads and committed through overdeck-state`]) : stepFailed(step, `Compacted beads but state write door refused commit: ${result.reason ?? "unknown"}`);
|
|
@@ -84,4 +91,4 @@ var init_compact_beads = __esmMin((() => {
|
|
|
84
91
|
//#endregion
|
|
85
92
|
export { init_compact_beads as n, compactBeads as t };
|
|
86
93
|
|
|
87
|
-
//# sourceMappingURL=compact-beads-
|
|
94
|
+
//# sourceMappingURL=compact-beads-CyJtoXJi.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Jr as init_paths, Or as CONFIG_FILE, dr as FsError, f as loadConfigSync$1, t as init_config_yaml, xr as init_errors } from "./config-yaml-cNOZcEww.js";
|
|
3
3
|
import { t as require_toml } from "./toml-CeLDATih.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { existsSync, promises, readFileSync, writeFileSync } from "fs";
|
|
@@ -253,4 +253,4 @@ var init_config = __esmMin((() => {
|
|
|
253
253
|
//#endregion
|
|
254
254
|
export { saveConfigSync as _, getConversationsConfigSync as a, getDefaultConfig as c, getDevrootPathSync as d, init_config as f, saveConfig as g, normalizeRemoteConfig as h, getConversationsConfig as i, getDefaultConfigSync as l, loadConfigSync as m, findDevrootForProject as n, getDashboardApiUrl as o, loadConfig as p, findDevrootForProjectSync as r, getDashboardApiUrlSync as s, checkDevrootDeprecation as t, getDevrootPath as u };
|
|
255
255
|
|
|
256
|
-
//# sourceMappingURL=config-
|
|
256
|
+
//# sourceMappingURL=config-DVLdmnMJ.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as saveConfigSync, a as getConversationsConfigSync, c as getDefaultConfig, d as getDevrootPathSync, f as init_config, g as saveConfig, h as normalizeRemoteConfig, i as getConversationsConfig, l as getDefaultConfigSync, m as loadConfigSync, n as findDevrootForProject, o as getDashboardApiUrl, p as loadConfig, r as findDevrootForProjectSync, s as getDashboardApiUrlSync, t as checkDevrootDeprecation, u as getDevrootPath } from "./config-
|
|
1
|
+
import { _ as saveConfigSync, a as getConversationsConfigSync, c as getDefaultConfig, d as getDevrootPathSync, f as init_config, g as saveConfig, h as normalizeRemoteConfig, i as getConversationsConfig, l as getDefaultConfigSync, m as loadConfigSync, n as findDevrootForProject, o as getDashboardApiUrl, p as loadConfig, r as findDevrootForProjectSync, s as getDashboardApiUrlSync, t as checkDevrootDeprecation, u as getDevrootPath } from "./config-DVLdmnMJ.js";
|
|
2
2
|
init_config();
|
|
3
3
|
export { checkDevrootDeprecation, findDevrootForProject, findDevrootForProjectSync, getConversationsConfig, getConversationsConfigSync, getDashboardApiUrl, getDashboardApiUrlSync, getDefaultConfig, getDefaultConfigSync, getDevrootPath, getDevrootPathSync, loadConfig, loadConfigSync, normalizeRemoteConfig, saveConfig, saveConfigSync };
|
|
@@ -61,6 +61,28 @@ function resolveOhmypiExtensionPath() {
|
|
|
61
61
|
for (const candidate of ohmypiExtensionCandidates()) if (existsSync(candidate)) return candidate;
|
|
62
62
|
return null;
|
|
63
63
|
}
|
|
64
|
+
function getDocsPaths(overrides = {}) {
|
|
65
|
+
const docsDir = overrides.docsDir ?? join$1(overrides.overdeckHome ?? getOverdeckHome(), "docs");
|
|
66
|
+
return {
|
|
67
|
+
docsDir,
|
|
68
|
+
indexPath: overrides.indexPath ?? join$1(docsDir, "index.sqlite"),
|
|
69
|
+
budgetStatePath: overrides.budgetStatePath ?? join$1(docsDir, "budget-state.json"),
|
|
70
|
+
disableStatePath: overrides.disableStatePath ?? join$1(docsDir, "disable-state.json"),
|
|
71
|
+
telemetryPath: overrides.telemetryPath ?? join$1(docsDir, "telemetry.jsonl")
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function getDocsIndexPath(overrides = {}) {
|
|
75
|
+
return getDocsPaths(overrides).indexPath;
|
|
76
|
+
}
|
|
77
|
+
function getDocsBudgetStatePath(overrides = {}) {
|
|
78
|
+
return getDocsPaths(overrides).budgetStatePath;
|
|
79
|
+
}
|
|
80
|
+
function getDocsDisableStatePath(overrides = {}) {
|
|
81
|
+
return getDocsPaths(overrides).disableStatePath;
|
|
82
|
+
}
|
|
83
|
+
function getDocsTelemetryPath(overrides = {}) {
|
|
84
|
+
return getDocsPaths(overrides).telemetryPath;
|
|
85
|
+
}
|
|
64
86
|
/**
|
|
65
87
|
* Detect if running from a overdeck checkout (vs an installed package).
|
|
66
88
|
*
|
|
@@ -7634,11 +7656,12 @@ var init_state_plane = __esmMin((() => {
|
|
|
7634
7656
|
* periodic manual "chore: sync workspace state" passes from the operator and
|
|
7635
7657
|
* making the project repo stay perpetually dirty.
|
|
7636
7658
|
*
|
|
7637
|
-
* This module exposes a
|
|
7659
|
+
* This module exposes a serialized write-through commit primitive that pan-dir
|
|
7638
7660
|
* writers call after they update a file. Commits are:
|
|
7639
|
-
* -
|
|
7661
|
+
* - scheduled immediately by default so every state update reaches git + origin
|
|
7662
|
+
* - optionally fixed-window coalesced when OVERDECK_STATE_FLUSH_WINDOW_MS is set
|
|
7640
7663
|
* - serialized within a process so the git index is never contested
|
|
7641
|
-
* - best-effort: failures are logged and
|
|
7664
|
+
* - best-effort for synchronous callers: failures are logged and reported by flushes
|
|
7642
7665
|
* - main-only: feature branches have their own commit cadence owned by agents
|
|
7643
7666
|
*
|
|
7644
7667
|
* Cross-machine concern: when an agent's state is canonical on `main`, moving
|
|
@@ -7648,7 +7671,7 @@ var init_state_plane = __esmMin((() => {
|
|
|
7648
7671
|
function parseStateFlushWindowMs(value) {
|
|
7649
7672
|
if (!value) return DEFAULT_STATE_FLUSH_WINDOW_MS;
|
|
7650
7673
|
const parsed = Number(value);
|
|
7651
|
-
if (!Number.isFinite(parsed) || parsed
|
|
7674
|
+
if (!Number.isFinite(parsed) || parsed < 0) return DEFAULT_STATE_FLUSH_WINDOW_MS;
|
|
7652
7675
|
return parsed;
|
|
7653
7676
|
}
|
|
7654
7677
|
function parsePositiveInteger(value, fallback) {
|
|
@@ -7702,9 +7725,10 @@ function isGitError(value) {
|
|
|
7702
7725
|
return typeof value === "object" && value !== null && "_tag" in value && value._tag === "GitError";
|
|
7703
7726
|
}
|
|
7704
7727
|
/**
|
|
7705
|
-
* Queue an auto-commit for one or more files. Returns immediately;
|
|
7706
|
-
*
|
|
7707
|
-
*
|
|
7728
|
+
* Queue an auto-commit for one or more files. Returns immediately; by default
|
|
7729
|
+
* the serialized commit starts on the next timer turn. An explicit positive
|
|
7730
|
+
* OVERDECK_STATE_FLUSH_WINDOW_MS retains fixed-window coalescing for operators
|
|
7731
|
+
* who knowingly trade durability latency for fewer commits.
|
|
7708
7732
|
*
|
|
7709
7733
|
* PAN-1908: `repoRoot` allows committing files to a different git checkout
|
|
7710
7734
|
* than the project root (e.g., a declared infra repo for per-issue permanent
|
|
@@ -7771,6 +7795,40 @@ function queueBeadsAutoCommit(projectRoot) {
|
|
|
7771
7795
|
});
|
|
7772
7796
|
}
|
|
7773
7797
|
/**
|
|
7798
|
+
* PAN-2516 belt-and-suspenders reconciliation for state writes that predate or
|
|
7799
|
+
* bypassed the canonical writer. Patrols commit only the owned spec/record
|
|
7800
|
+
* surfaces; unrelated source or operator changes are never staged.
|
|
7801
|
+
*/
|
|
7802
|
+
function reconcileStatePlaneDrift(projectRoot) {
|
|
7803
|
+
const project = findProjectByPathSync(projectRoot);
|
|
7804
|
+
const stateHome = project ? resolveStateReadHomeSync(project) : null;
|
|
7805
|
+
const gitRoot = stateHome?.migrated ? stateHome.root : projectRoot;
|
|
7806
|
+
const ownedPaths = stateHome?.migrated ? ["specs", "records"] : [".pan/specs", ".pan/records"];
|
|
7807
|
+
return Effect.gen(function* () {
|
|
7808
|
+
const paths = (yield* runGit([
|
|
7809
|
+
"status",
|
|
7810
|
+
"--porcelain=v1",
|
|
7811
|
+
"--untracked-files=all",
|
|
7812
|
+
"--",
|
|
7813
|
+
...ownedPaths
|
|
7814
|
+
], gitRoot).pipe(Effect.match({
|
|
7815
|
+
onSuccess: (result) => result.stdout,
|
|
7816
|
+
onFailure: () => ""
|
|
7817
|
+
}))).split("\n").map((line) => line.trimEnd()).filter(Boolean).map((line) => line.slice(3)).map((path) => path.includes(" -> ") ? path.split(" -> ").at(-1) : path).map((path) => join$1(gitRoot, path));
|
|
7818
|
+
if (paths.length === 0) return {
|
|
7819
|
+
committed: false,
|
|
7820
|
+
reason: "no state-plane drift"
|
|
7821
|
+
};
|
|
7822
|
+
queueAutoCommit({
|
|
7823
|
+
projectRoot,
|
|
7824
|
+
repoRoot: gitRoot,
|
|
7825
|
+
paths,
|
|
7826
|
+
subject: `chore(state): reconcile ${paths.length} pending spec/record update(s)`
|
|
7827
|
+
});
|
|
7828
|
+
return yield* flushAutoCommits(projectRoot);
|
|
7829
|
+
});
|
|
7830
|
+
}
|
|
7831
|
+
/**
|
|
7774
7832
|
* Force a flush of any pending commits for `projectRoot`. Returns an Effect that
|
|
7775
7833
|
* resolves after the commit attempt (success or no-op).
|
|
7776
7834
|
*/
|
|
@@ -7900,13 +7958,28 @@ function doCommit(projectRoot, batch) {
|
|
|
7900
7958
|
}
|
|
7901
7959
|
}));
|
|
7902
7960
|
if (typeof commitOk !== "boolean") return commitOk;
|
|
7903
|
-
yield* maybePushStateCommit(gitRoot, branch);
|
|
7904
|
-
|
|
7961
|
+
const push = yield* maybePushStateCommit(gitRoot, branch);
|
|
7962
|
+
if (push && !push.pushed) return {
|
|
7963
|
+
committed: true,
|
|
7964
|
+
pushed: false,
|
|
7965
|
+
reason: push.reason
|
|
7966
|
+
};
|
|
7967
|
+
return {
|
|
7968
|
+
committed: true,
|
|
7969
|
+
pushed: push?.pushed
|
|
7970
|
+
};
|
|
7905
7971
|
});
|
|
7906
7972
|
}
|
|
7907
7973
|
function maybePushStateCommit(gitRoot, branch) {
|
|
7908
|
-
if (process.env.OVERDECK_STATE_AUTOPUSH === "0") return Effect.
|
|
7909
|
-
return
|
|
7974
|
+
if (process.env.OVERDECK_STATE_AUTOPUSH === "0") return Effect.succeed(null);
|
|
7975
|
+
return runGit([
|
|
7976
|
+
"remote",
|
|
7977
|
+
"get-url",
|
|
7978
|
+
"origin"
|
|
7979
|
+
], gitRoot).pipe(Effect.matchEffect({
|
|
7980
|
+
onFailure: () => Effect.succeed(null),
|
|
7981
|
+
onSuccess: () => pushStateBranch(gitRoot, branch)
|
|
7982
|
+
}));
|
|
7910
7983
|
}
|
|
7911
7984
|
function pushStateBranch(gitRoot, branch) {
|
|
7912
7985
|
if (branch === "main") return pushOriginMain(gitRoot, branch, false);
|
|
@@ -7916,10 +7989,14 @@ function pushStateBranch(gitRoot, branch) {
|
|
|
7916
7989
|
"origin",
|
|
7917
7990
|
branch
|
|
7918
7991
|
], gitRoot, timeoutMs).pipe(Effect.matchEffect({
|
|
7919
|
-
onSuccess: () => Effect.
|
|
7992
|
+
onSuccess: () => Effect.succeed({ pushed: true }),
|
|
7920
7993
|
onFailure: (err) => {
|
|
7921
|
-
|
|
7922
|
-
|
|
7994
|
+
const message = err.stderr || err._tag;
|
|
7995
|
+
warnAutoPush(branch, `push failed: ${message}`);
|
|
7996
|
+
return Effect.succeed({
|
|
7997
|
+
pushed: false,
|
|
7998
|
+
reason: `push failed: ${message}`
|
|
7999
|
+
});
|
|
7923
8000
|
}
|
|
7924
8001
|
}));
|
|
7925
8002
|
}
|
|
@@ -7929,12 +8006,15 @@ function pushOriginMain(gitRoot, branch, retry) {
|
|
|
7929
8006
|
"origin",
|
|
7930
8007
|
"main"
|
|
7931
8008
|
], gitRoot, parsePositiveInteger(process.env.OVERDECK_STATE_PUSH_TIMEOUT_MS, DEFAULT_STATE_PUSH_TIMEOUT_MS)).pipe(Effect.matchEffect({
|
|
7932
|
-
onSuccess: () => Effect.
|
|
8009
|
+
onSuccess: () => Effect.succeed({ pushed: true }),
|
|
7933
8010
|
onFailure: (err) => {
|
|
7934
8011
|
const message = err.stderr || err._tag;
|
|
7935
8012
|
if (!retry && isNonFastForwardPushError(message)) return rebaseLegacyMainAndRetry(gitRoot, branch);
|
|
7936
8013
|
warnAutoPush(branch, `push failed: ${message}`);
|
|
7937
|
-
return Effect.
|
|
8014
|
+
return Effect.succeed({
|
|
8015
|
+
pushed: false,
|
|
8016
|
+
reason: `push failed: ${message}`
|
|
8017
|
+
});
|
|
7938
8018
|
}
|
|
7939
8019
|
}));
|
|
7940
8020
|
}
|
|
@@ -7948,15 +8028,25 @@ function rebaseLegacyMainAndRetry(gitRoot, branch) {
|
|
|
7948
8028
|
], gitRoot, timeoutMs).pipe(Effect.match({
|
|
7949
8029
|
onSuccess: () => true,
|
|
7950
8030
|
onFailure: () => false
|
|
7951
|
-
}))) || !(yield* isWorkingTreeClean(gitRoot, branch))) return
|
|
8031
|
+
}))) || !(yield* isWorkingTreeClean(gitRoot, branch))) return {
|
|
8032
|
+
pushed: false,
|
|
8033
|
+
reason: "push rejected and reconciliation preconditions failed"
|
|
8034
|
+
};
|
|
7952
8035
|
if (!(yield* areLocalAheadCommitsStatePlaneOnly(gitRoot, branch))) {
|
|
7953
8036
|
warnAutoPush(branch, "non-fast-forward push rejected and at least one local-ahead commit is not state-plane-only; leaving local main ahead of origin/main");
|
|
7954
|
-
return
|
|
8037
|
+
return {
|
|
8038
|
+
pushed: false,
|
|
8039
|
+
reason: "push rejected with non-state local commits"
|
|
8040
|
+
};
|
|
7955
8041
|
}
|
|
7956
8042
|
if (yield* runGitWithTimeout(["rebase", "origin/main"], gitRoot, timeoutMs).pipe(Effect.match({
|
|
7957
8043
|
onSuccess: () => true,
|
|
7958
8044
|
onFailure: () => false
|
|
7959
|
-
}))) yield* pushOriginMain(gitRoot, branch, true);
|
|
8045
|
+
}))) return yield* pushOriginMain(gitRoot, branch, true);
|
|
8046
|
+
return {
|
|
8047
|
+
pushed: false,
|
|
8048
|
+
reason: "push rejected and state rebase failed"
|
|
8049
|
+
};
|
|
7960
8050
|
});
|
|
7961
8051
|
}
|
|
7962
8052
|
function areLocalAheadCommitsStatePlaneOnly(gitRoot, branch) {
|
|
@@ -8036,7 +8126,7 @@ var init_auto_commit = __esmMin((() => {
|
|
|
8036
8126
|
init_state_migration_lock();
|
|
8037
8127
|
init_state_plane();
|
|
8038
8128
|
spawnerLayer = NodeChildProcessSpawner.layer.pipe(Layer.provide(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
|
|
8039
|
-
DEFAULT_STATE_FLUSH_WINDOW_MS =
|
|
8129
|
+
DEFAULT_STATE_FLUSH_WINDOW_MS = 0;
|
|
8040
8130
|
STATE_FLUSH_WINDOW_MS = parseStateFlushWindowMs(process.env.OVERDECK_STATE_FLUSH_WINDOW_MS);
|
|
8041
8131
|
DEFAULT_STATE_PUSH_TIMEOUT_MS = 3e4;
|
|
8042
8132
|
AUTO_COMMIT_EXCLUDED_PATHS = [
|
|
@@ -8246,6 +8336,7 @@ function queueIssueRecordCommit(project, issueId, recordPath) {
|
|
|
8246
8336
|
paths: [recordPath],
|
|
8247
8337
|
subject: `chore(records): update ${issueId.toUpperCase()} per-issue record`
|
|
8248
8338
|
});
|
|
8339
|
+
return basePath;
|
|
8249
8340
|
}
|
|
8250
8341
|
/** Build this node's owner URI: pan://host[:port]. */
|
|
8251
8342
|
function buildOwnUri() {
|
|
@@ -10981,8 +11072,9 @@ var init_harness_policy = __esmMin((() => {
|
|
|
10981
11072
|
ALLOWED = { allowed: true };
|
|
10982
11073
|
OHMYPI_ANTHROPIC_SUBSCRIPTION_BLOCK = {
|
|
10983
11074
|
allowed: false,
|
|
10984
|
-
reason: "
|
|
11075
|
+
reason: "Claude Code subscription Terms of Service restrict Anthropic models to the Claude Code harness — ohmypi cannot run Anthropic models under subscription auth. To proceed, switch the Anthropic provider to API-key auth, or pick a non-Anthropic model for ohmypi."
|
|
10985
11076
|
};
|
|
11077
|
+
OHMYPI_ANTHROPIC_SUBSCRIPTION_BLOCK.reason;
|
|
10986
11078
|
SUBSCRIPTION_ONLY_MODEL_BLOCK = {
|
|
10987
11079
|
allowed: false,
|
|
10988
11080
|
reason: "This OpenAI model needs a ChatGPT/Codex subscription sign-in — it is not served by the plain OpenAI API key. Run `codex login` on the host (workspace containers inherit the host sign-in), or pick a different model."
|
|
@@ -11605,6 +11697,9 @@ function mergeDocsConfig(result, config) {
|
|
|
11605
11697
|
if (docs.classifier.timeout_ms !== void 0) result.classifier.timeoutMs = docs.classifier.timeout_ms;
|
|
11606
11698
|
}
|
|
11607
11699
|
}
|
|
11700
|
+
function getDefaultDocsConfig() {
|
|
11701
|
+
return cloneDocsConfig(DEFAULT_CONFIG.docs);
|
|
11702
|
+
}
|
|
11608
11703
|
function mergeTtsConfig(result, config) {
|
|
11609
11704
|
const tts = config?.tts;
|
|
11610
11705
|
if (!tts) return;
|
|
@@ -14522,6 +14617,6 @@ var init_config_yaml = __esmMin((() => {
|
|
|
14522
14617
|
init_load();
|
|
14523
14618
|
}));
|
|
14524
14619
|
//#endregion
|
|
14525
|
-
export {
|
|
14620
|
+
export { MODEL_DEPRECATIONS as $, unregisterProjectSync as $n, writeStatusOverrideSync as $t, KIMI_CODING_BASE_URL as A, getSpecialistConfig as An, LOGS_DIR as Ar, markRecordPipelineClosedOutSync as At, piProviderForModel as B, loadProjectsConfig as Bn, encodeClaudeProjectDir as Br, writeIssueRecordSync as Bt, init_tier_table as C, findProjectByTeam as Cn, ARCHIVES_DIR as Cr, ensureIssueRecordSync as Ct, canUseHarnessSync as D, getProject as Dn, CLAUDE_DIR as Dr, getIssueWorkspacePath as Dt, validateTieredExecutionConfig as E, getIssuePrefix as En, CACHE_RULES_DIR as Er, getIssueRecordPathForWorkspace as Et, getBuiltInDefaultHarness as F, init_projects as Fn, PROJECT_PRDS_PLANNED_SUBDIR as Fr, readRecordContinueViewSync as Ft, defaultBackgroundAiFeatures as G, resolveInfraRepo as Gn, getHandoffsDir as Gr, writeRecordHazards as Gt, setupCredentialFileAuthSync as H, projects_exports as Hn, getDocsDisableStatePath as Hr, writeRecordBeadsMappingSync as Ht, getKimiAnthropicBaseUrl as I, initializeProjectsConfig as In, PROJECT_PRDS_SUBDIR as Ir, resolveProjectForIssue as It, DEFAULT_WORKHORSES as J, resolveProjectPath as Jn, init_paths as Jr, writeRecordResumePointSync as Jt, init_registry as K, resolveProjectFromIssue as Kn, getLegacyHome as Kr, writeRecordHazardsSync as Kt, getProviderEnvSync as L, initializeProjectsConfigSync as Ln, SKILLS_DIR as Lr, writeAgentHarnessModel as Lt, PROVIDERS as M, getSpecialistRetention as Mn, PROJECT_DOCS_SUBDIR as Mr, readIssueRecord as Mt, UnknownModelError as N, hasProjects as Nn, PROJECT_PRDS_ACTIVE_SUBDIR as Nr, readIssueRecordForWorkspaceSync as Nt, canUseModelWithAuthSync as O, getProjectSwarmHotspots as On, CONFIG_FILE as Or, getProjectConfigFromWorkspacePath as Ot, clearCredentialFileAuthSync as P, hasProjectsSync as Pn, PROJECT_PRDS_COMPLETED_SUBDIR as Pr, readIssueRecordSync as Pt, MODEL_CAPABILITIES as Q, unregisterProject as Qn, sessionFilePath as Qr, writeStatusOverride as Qt, getProviderForModelSync as R, listProjects as Rn, SYNC_SOURCES as Rr, writeAgentHarnessModelSync as Rt, TieredExecutionConfigError as S, findProjectByPathSync as Sn, AGENTS_DIR as Sr, ensureIssueRecord as St, resolveTieredExecutionEnabledForIssue as T, findProjectsByRallyProject as Tn, CACHE_AGENTS_DIR as Tr, getIssueRecordPath as Tt, ensureOpenAICompatibleProxyRunning as U, registerProject as Un, getDocsIndexPath as Ur, writeRecordDecisions as Ut, qualifyPiModel as V, loadProjectsConfigSync as Vn, getDocsBudgetStatePath as Vr, writeRecordBeadsMapping as Vt, init_openai_compatible_proxy as W, registerProjectSync as Wn, getDocsTelemetryPath as Wr, writeRecordDecisionsSync as Wt, init_roles as X, saveProjectsConfigSync as Xn, packageRoot as Xr, writeRecordTieredExecutionOverride as Xt, computeModelOrigin as Y, saveProjectsConfig as Yn, isDevMode as Yr, writeRecordScopeDriftSync as Yt, resolveModel as Z, setProjectAutoMergeDefaultSync as Zn, resolveOhmypiExtensionPath as Zr, writeRecordTieredExecutionOverrideSync as Zt, getDefaultDocsConfig as _, init_project_key as _n, ProcessSpawnError as _r, appendSessionEntrySync as _t, getConversationsConfigSync as a, queueAutoCommit as an, resolveBareNumericIdSync as ar, resolveModelIdSync as at, DEFAULT_TIERED_EXECUTION_CONFIG as b, extractTeamPrefix as bn, VcsError as br, clearIssueOwner as bt, isClaudeCodeChannelsEnabled as c, STATE_BRANCH_PATHS as cn, CheckpointError as cr, init_percent as ct, loadConfigNoMigration as d, init_state_plane as dn, FsError as dr, ROLE_EFFORTS as dt, writeStatusOverridesSync as en, extractNumberSync as er, getModelCapabilitySync as et, loadConfigSync as f, isStatePlaneOnlyStatus as fn, GitError as fr, RECORD_DIRNAME as ft, mergeConfigs as g, shouldCommitLegacyWorkspaceArtifacts as gn, MergeConflictError as gr, appendSessionEntry as gt, jsYaml as h, resolveStateReadHomeSync as hn, LinearApiError as hr, appendFeedbackEntrySync as ht, getConversationsConfig as i, init_auto_commit as in, parseIssueIdSync as ir, modelSupportsImagesSync as it, KIMI_PLATFORM_BASE_URL as j, getSpecialistPromptOverride as jn, OVERDECK_HOME as jr, queueIssueRecordCommit as jt, init_harness_policy as k, getProjectSync as kn, COSTS_DIR as kr, init_record as kt, isClaudeCodeChannelsMcpEnabled as l, STATE_PLANE_PATHS as ln, ClaudeCredentialParseError as lr, COMPLIANCE_MODES as lt, init_js_yaml as m, init_state_read_home as mn, InvalidAgentIdError as mr, appendFeedbackEntry as mt, clearConfigCache as n, flushAllPendingAutoCommits as nn, init_issue_id as nr, hasModelCapabilitySync as nt, getGlobalConfigPath as o, queueBeadsAutoCommit as on, resolveIssueIdSync as or, fmix32 as ot, updateConversationsConfig as p, isStatePlanePath as pn, GitHubApiError as pr, RECORD_SCHEMA_VERSION as pt, DEFAULT_ROLES as q, resolveProjectFromIssueSync as qn, getOverdeckHome as qr, writeRecordResumePoint as qt, getConversationSearchConfigSync as r, flushAutoCommits as rn, normalizeIssueIdSync as rr, init_model_capabilities as rt, init_load as s, reconcileStatePlaneDrift as sn, require_dist as sr, fnv1a32 as st, init_config_yaml as t, deriveProjectRoot as tn, extractPrefixSync as tr, getModelEffortLevelsSync as tt, isTldrEnabledSync as u, getMainDivergence as un, ConfigError as ur, PARENT_MODEL_REF as ut, getDefaultTtsDaemonConfig as v, PROJECTS_CONFIG_FILE as vn, TmuxError as vr, buildOwnUri as vt, resolveTieredExecutionEnabled as w, findProjectByTeamSync as wn, BIN_DIR as wr, getIssueRecordBasePath as wt, TIERED_EXECUTION_DIFFICULTIES as x, findProjectByPath as xn, init_errors as xr, clearRecordFeedbackSync as xt, mergeTtsDaemonConfigs as y, createDefaultProjectsConfig as yn, TrackerError as yr, claimIssueOwner as yt, init_providers as z, listProjectsSync as zn, TRAEFIK_DIR as zr, writeIssueRecordForWorkspaceSync as zt };
|
|
14526
14621
|
|
|
14527
|
-
//# sourceMappingURL=config-yaml-
|
|
14622
|
+
//# sourceMappingURL=config-yaml-cNOZcEww.js.map
|