@overdeck/desktop 0.45.16 → 0.45.18
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/dist-electron/main.js +149 -158
- package/dist-electron/main.js.map +1 -1
- package/dist-electron/preload.js +17 -2
- package/dist-electron/preload.js.map +1 -1
- package/package.json +5 -4
- package/server/acceptance-criteria-aQFKQf-J.js +62 -0
- package/server/{advancing-selfheal-DJYAvGv-.js → advancing-selfheal-DgwQgm4D.js} +6 -6
- package/server/{agent-gc-D0wDIeV1.js → agent-gc-kpzxqT7P.js} +3 -3
- package/server/agent-state-C_6TG-Ad.js +3 -0
- package/server/{agent-state-service-CZrayD_G.js → agent-state-service-BUfovFfB.js} +1 -1
- package/server/{agent-state-service-DFslS5go.js → agent-state-service-nUD3qfob.js} +5 -5
- package/server/agents-BA15AQqo.js +3 -0
- package/server/{briefing-freshness-DESTCWo-.js → agents-BHBxr8c9.js} +5 -131
- package/server/{archive-planning-CbghE9-o.js → archive-planning-CzCW9Ifl.js} +5 -10
- package/server/{archive-planning-CoyIbgGK.js → archive-planning-D-QsBufn.js} +1 -1
- package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-qqa51B2Z.js} +2 -2
- package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-B7Bi0bvY.js} +2 -2
- package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
- package/server/briefing-freshness-DuxIE1yr.js +131 -0
- package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-DF6hb9Jw.js} +3 -3
- package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-DixkLus7.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-fjadfOKF.js → checkpoints-B1Z42tJE.js} +1 -1
- package/server/{checkpoints-BtUonbs3.js → checkpoints-BiviJqei.js} +2 -2
- package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-BeMGi4ty.js} +1 -1
- package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-Du_PkMsp.js} +2 -2
- package/server/{claude-permissions-CThLgf8d.js → claude-permissions-BB6agcOZ.js} +2 -2
- package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-CAq2oFSK.js} +2 -2
- package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-DUWWLd6M.js} +1 -1
- package/server/cli-BFgrSWKV.js +3 -0
- package/server/{cli-ByKIIMfT.js → cli-C33xPZNm.js} +9 -9
- package/server/{cliproxy-C_GuT5DU.js → cliproxy-BQX1TL6N.js} +1 -1
- package/server/{cliproxy-B4c1BUvs.js → cliproxy-CGBA1GzA.js} +2 -2
- package/server/{close-issue-BOuLKr6e.js → close-issue-DNv8npc1.js} +5 -5
- package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-DrqgBJlr.js} +1 -1
- package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-LoMnnjtJ.js} +9 -9
- package/server/codex-DxLivxri.js +3 -0
- package/server/{codex-parser-mFYZh8vR.js → codex-parser-DboQnEXN.js} +2 -2
- package/server/{codex-BbqIRZjd.js → codex-sgWVCGUd.js} +43 -18
- package/server/{config-Dj6N8EP9.js → config-6MCHOZ2N.js} +1 -1
- package/server/{config-DVLdmnMJ.js → config-DfaUXr6r.js} +2 -2
- package/server/{config-yaml-cNOZcEww.js → config-yaml-CqaAyn8y.js} +74 -74
- package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-BF_zhcmb.js} +3 -3
- package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BubJprtD.js} +1 -1
- package/server/{context-layers-c0JqYHcS.js → context-layers-BFrxfl0l.js} +17 -3
- package/server/{context-layers-CeAwSYNt.js → context-layers-DWL_8HhY.js} +2 -2
- package/server/{control-settings-D4EFsRBd.js → control-settings-BguNQ1F_.js} +4 -4
- package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-CRKAf2qP.js} +1 -1
- package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-DxSXl0pT.js} +8 -8
- package/server/{conversation-service-BTzObqGi.js → conversation-service-DzuY9qoH.js} +1 -1
- package/server/{conversation-service-B8LFQQm1.js → conversation-service-mFVFdDQK.js} +6 -6
- package/server/{conversations-B-lcHv-5.js → conversations-BX5aD-6F.js} +4 -4
- package/server/{conversations-BM7zlXjr.js → conversations-BajHQ60c.js} +1 -1
- package/server/{cost-D9kPIY_5.js → cost-BoqD1Pxz.js} +2 -2
- package/server/{cost-BcpRQ-7o.js → cost-DuZ5vlv-.js} +3 -3
- package/server/{cost-sync-DF6odxK9.js → cost-sync-BYnmnMkY.js} +3 -3
- package/server/{dag-DKI3sOmX.js → dag-C6kYyF17.js} +7 -243
- package/server/{dangerous-git-ops-Bn18PEcN.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-DONuopff.js → deacon-CwCiNuEZ.js} +3 -3
- package/server/{deacon-DdARMjZq.js → deacon-Dru5onpk.js} +233 -162
- package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
- package/server/{deacon-swarm-BNGkmYR_.js → deacon-swarm-BPmBmSoU.js} +298 -72
- package/server/deacon-swarm-CKyGJng1.js +2 -0
- package/server/deacon.js +14 -7
- package/server/{devcontainer-renderer-C-34Sxyz.js → devcontainer-renderer-BqGNCzvN.js} +3 -3
- package/server/{dist-BMXvKiZP.js → dist-BwlEiLCU.js} +1 -1
- package/server/dist-Bx4KkgYL.js +3 -0
- package/server/{dist-src-BgGUblXg.js → dist-src-BE0Denfs.js} +1 -1
- package/server/{docker-apZ9pBYw.js → docker-CNjXS72x.js} +2 -2
- package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-5e9xOve4.js} +4 -4
- package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-C6gyUQdE.js} +1 -1
- package/server/{esm-shims-BEjvINX3.js → esm-shims-Cso7IGBC.js} +1 -1
- package/server/{event-store-CqDgfbAs.js → event-store-D9UhQyMS.js} +1 -1
- package/server/{event-store-D89fMfXS.js → event-store-KZnWUKWh.js} +3 -3
- package/server/{events-S_C0pvl6.js → events-2eFUPdqz.js} +3 -3
- package/server/{events-rIGncmP1.js → events-BYbvqZky.js} +1 -1
- package/server/{factory-DV18m0rc.js → factory-BtaRsHFC.js} +20 -17
- package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-Ca2UaV0U.js} +4 -4
- package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-DaP-bQxO.js} +2 -2
- package/server/{features-u5XeMaOK.js → features-DqvaoQoa.js} +2 -2
- package/server/{feedback-target-CwyWf0Dg.js → feedback-target-BXWdOiYI.js} +9 -7
- package/server/{feedback-target-DDG1PWl3.js → feedback-target-BblmMe9P.js} +1 -1
- package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-CULeOOY4.js} +1 -1
- package/server/{feedback-writer-D20HSXre.js → feedback-writer-Dn8o9ZyE.js} +4 -4
- package/server/{flywheel-RCnHAgc4.js → flywheel-BUWdcfhq.js} +1 -1
- package/server/{flywheel-Dczmgchd.js → flywheel-CqkO3cDj.js} +15 -28
- package/server/{flywheel-9Y1X7IM-.js → flywheel-D9r1mw2U.js} +13 -13
- package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-LDzQDwSg.js} +1 -1
- package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-VtjUweEb.js} +6 -6
- package/server/forge-DJy3Zx4s.js +2 -0
- package/server/{forge-DFDThFil.js → forge-wEollMCi.js} +22 -12
- package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
- package/server/{fts-db-C5A_TTOM.js → fts-db-Bgzn2RO7.js} +2 -2
- package/server/{fts-operations-DvCSimfU.js → fts-operations-Bj8yutnR.js} +2 -2
- package/server/{git-utils-Dr0L7mFk.js → git-utils-GxlL0tmt.js} +2 -2
- package/server/{git-utils-C0neHvQx.js → git-utils-q8jNoBts.js} +1 -1
- package/server/{github-app-Bwt9lK4A.js → github-app-BrYwK_Gb.js} +1 -1
- package/server/{github-app-u9-SX7Gc.js → github-app-tUbb8Ldr.js} +8 -3
- package/server/{github-client-Btyy3uan.js → github-client-BwBU41jK.js} +3 -3
- package/server/{github-client-Do3k-N1W.js → github-client-D6CNsftm.js} +1 -1
- package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-BS5PqkJb.js} +2 -2
- package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-Dx8hUsvC.js} +3 -3
- package/server/{health-events-B4u-2a9m.js → health-events-2DLp-5Xp.js} +2 -2
- package/server/{health-events-Bos3sk5g.js → health-events-B0mj6Iae.js} +1 -1
- package/server/{hooks-uEr8WTx_.js → hooks-BDcQJDUe.js} +1 -1
- package/server/{hooks-BCoOjL_R.js → hooks-BS_JrvYP.js} +3 -3
- package/server/hume-B4seN95Y.js +3 -0
- package/server/{hume-BqxYKbUf.js → hume-BRhNKyXQ.js} +2 -2
- package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-BCITXNW5.js} +2 -2
- package/server/{idle-stack-reaper-H0W6XtHh.js → idle-stack-reaper-C1ymihno.js} +1 -1
- package/server/{infra-Ba9mS6e6.js → infra-_Kx1m9pm.js} +9 -4
- package/server/{injection-C1DKXeIZ.js → injection-Bvhyg_MV.js} +1 -1
- package/server/{injection-yrMBxzVq.js → injection-CCaYkofq.js} +7 -7
- package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-BqyZ4pCo.js} +35 -67
- package/server/inspect-agent-DCJQm9Wu.js +2 -0
- package/server/{internal-token-BtqSbKTx.js → internal-token-Cl-1IxaE.js} +2 -2
- package/server/{internal-token-BPYEaXFh.js → internal-token-D-t28de5.js} +1 -1
- package/server/{io-VEGSAqsd.js → io-DkC4sFSy.js} +36 -43
- package/server/{issue-closed-BxcePXL-.js → issue-closed-Cpl4VDUM.js} +41 -6
- package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-CFR8TJ22.js} +22 -37
- package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-YNTy3OT3.js} +1 -1
- package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton-D81mCts_.js} +1 -1
- package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-ldvUUXi3.js} +29 -29
- package/server/{issues-CBAsuoAO.js → issues-DIEHt9sq.js} +2 -2
- package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Cd5jIqh7.js} +3 -3
- package/server/{label-cleanup-htK6fBRU.js → label-cleanup-Btny6Gyo.js} +3 -3
- package/server/{state-home-CEvD_v5F.js → launcher-generator-BXLM9f4b.js} +7 -127
- package/server/{layers-jjL16At6.js → layers-gCJlK62m.js} +2 -2
- package/server/lifecycle-D7aQUnTO.js +12 -0
- package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-DQBF-GHO.js} +1 -1
- package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-FfPUtz-y.js} +4 -4
- package/server/{linear-client-D9cSQfvD.js → linear-client-CDH2D6Qy.js} +3 -3
- package/server/{linear-client-By7hjwuN.js → linear-client-WrYrUIAH.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-BN8FGJ2q.js → merge-BsDgUxFz.js} +3 -3
- package/server/{merge-BLcEZNXz.js → merge-Dervs4BF.js} +1 -1
- package/server/{merge-agent-B3u2szOL.js → merge-agent-D6DNhe9j.js} +64 -51
- package/server/{merge-agent-ejC7Wos8.js → merge-agent-DMQTJMP0.js} +1 -1
- package/server/{merge-batch-DyqlgYGp.js → merge-batch-Bv6Z5K2H.js} +1 -1
- package/server/{merge-blockers-cq-aS2KG.js → merge-blockers-WWWi6Ur2.js} +2 -2
- package/server/merge-ops-h9OCnIVz.js +2 -0
- package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-Czth9ggm.js} +2 -2
- package/server/{merge-set-CZ9Nbay0.js → merge-set-DNc4zBqd.js} +3 -3
- package/server/{merge-set-Dy0D0r3i.js → merge-set-vuE3MEVt.js} +1 -1
- package/server/{merge-sync-D7jWLgCC.js → merge-sync-B2KSk54U.js} +2 -2
- package/server/{merge-sync-CG9kDCdT.js → merge-sync-B9nHdUGx.js} +1 -1
- package/server/{merge-train-CH33XJOH.js → merge-train-DJgr81tF.js} +3 -3
- package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-B2OWS0k9.js} +4 -4
- package/server/{merge-verification-D4wTChdX.js → merge-verification-BBIXUEqa.js} +4 -4
- package/server/{multipart-parser-Csn8U-K9.js → multipart-parser-9DhuAkPd.js} +2 -2
- package/server/node_modules/.package-lock.json +11 -11
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/toml/README.md +54 -0
- package/server/node_modules/toml/index.d.ts +42 -1
- package/server/node_modules/toml/index.js +3 -3
- package/server/node_modules/toml/lib/compiler.js +35 -3
- package/server/node_modules/toml/lib/parser.js +224 -143
- package/server/node_modules/toml/package.json +3 -1
- package/server/node_modules/ws/lib/receiver.js +15 -32
- package/server/node_modules/ws/lib/websocket-server.js +4 -4
- package/server/node_modules/ws/lib/websocket.js +4 -4
- package/server/node_modules/ws/package.json +5 -1
- package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-B8H41C4a.js} +14 -24
- package/server/{orphan-proposed-reconciler-BIcNu4tl.js → orphan-proposed-reconciler-DbTmT7qy.js} +1 -1
- package/server/package-lock.json +12 -12
- package/server/package.json +1 -1
- package/server/{pan-dir-CQIfKG8c.js → pan-dir-BTw4MdSe.js} +4 -4
- package/server/{paths-Blj6A9AJ.js → paths-Btkc8mzp.js} +2 -2
- package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-3frIvSi3.js} +1 -1
- package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-DTd19f18.js} +2 -2
- package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B95fcAek.js} +2 -2
- package/server/projects-Dc9aoVoG.js +3 -0
- package/server/{prompts-B3njaImU.js → prompts-CIVmjHxn.js} +2 -2
- package/server/{providers-DnPxkHoG.js → providers-BLLk5IIb.js} +1 -1
- package/server/{providers-BbEyFhPX.js → providers-C-yWibCk.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-3qh9TUJi.js → chunk-BO2N2NFS-DzKZyoKY.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-D8UVTPj7.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
- package/server/public/assets/{dist-BvLLn1YC.js → dist-BqccLhaw.js} +3 -3
- package/server/public/assets/{dist-CyubL7Wj.js → dist-rC3nAs_O.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BI4E1LbQ.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-D_bapWkF.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
- package/server/public/assets/index-CPcysUHk.js +796 -0
- package/server/public/assets/index-H5M0yhM4.css +1 -0
- package/server/public/assets/{linear-CEdobObr.js → linear-yqcXkDfj.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-DT79L01f.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
- package/server/public/assets/{prod-CR_K2DFV.js → prod-DKUunUdN.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-BEkKXXrL.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-BxSCqn-j.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-DicwJGG_.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-43LPDfM8.js → pull-requests-D7AL5woD.js} +1 -1
- package/server/{pull-requests-DyUkQl4W.js → pull-requests-NDDNtqNq.js} +3 -3
- package/server/{agents-B9GwfCyp.js → queries-C0LCGG21.js} +710 -325
- package/server/{rally-BtWjybOa.js → rally-4oKvnxLG.js} +3 -3
- package/server/rally-DF5a3ioP.js +3 -0
- package/server/{rally-api-B-osULNL.js → rally-api-41tT6ikZ.js} +2 -2
- package/server/{rally-api-B-YA_oXx.js → rally-api-BsaQ8Vnz.js} +1 -1
- package/server/{rally-client-sErNQBO0.js → rally-client-Bo4hNcCZ.js} +5 -5
- package/server/{rally-client-CzFymP7P.js → rally-client-b5PT1x5L.js} +1 -1
- package/server/{reap-terminal-sessions-DnDQ7pf9.js → reap-terminal-sessions-BR39qflC.js} +1 -1
- package/server/{reap-terminal-sessions-2s-fvilz.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
- package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-C7JPUom6.js} +1 -1
- package/server/{rebuild-stack-CoU-HqZj.js → rebuild-stack-Ddv6W017.js} +5 -5
- package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-Gqhm---K.js} +6 -6
- package/server/record-DLOqfbkI.js +3 -0
- package/server/record-update-BltEmPge.js +168 -0
- package/server/record-update-CDp7aTaT.js +3 -0
- package/server/recovery-trip-Cn7KJVkS.js +44 -0
- package/server/{release-engine-CBLQXDlH.js → release-engine-BYzmIBf9.js} +5 -5
- package/server/{release-set-BNiqi7hy.js → release-set-7pnxFOWR.js} +3 -3
- package/server/{remote-DW_TWQnr.js → remote-Cvu4CSDk.js} +3 -3
- package/server/{remote-agents-C4cyxHQS.js → remote-agents-C2C6z9tj.js} +6 -33
- package/server/{remote-agents-Cv-U-_V8.js → remote-agents-DYY5fFpd.js} +1 -1
- package/server/{remote-completion-PhXGGFQy.js → remote-completion-2Kb4IDg_.js} +13 -13
- package/server/{remote-DcO9An_f.js → remote-rN0ecjHE.js} +3 -3
- package/server/resume-BFLl-yLn.js +3 -0
- package/server/{review-agent-Dn-yn7Zj.js → review-agent-BZvk0N5G.js} +31 -23
- package/server/{review-agent-u5q3ip7H.js → review-agent-CpSHLzed.js} +1 -1
- package/server/{review-artifacts-D4T04aYI.js → review-artifacts-PCo53YMn.js} +5 -19
- package/server/{review-context-Rc0VDLG_.js → review-context-M7QtJlJq.js} +8 -8
- package/server/{review-monitor-BC--miCO.js → review-monitor-BLC5mTTg.js} +2 -2
- package/server/{review-status-CG0iDuWa.js → review-status-77N3PoZr.js} +1 -1
- package/server/{review-status-Dc1l4dVz.js → review-status-DANr0t-v.js} +32 -58
- package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-DwOg4UfL.js} +3 -3
- package/server/{review-status-sync-CfSixhhX.js → review-status-sync-Bd08OOFA.js} +1 -1
- package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-BjTUJ5fx.js} +2 -2
- package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-BsFLjN_6.js} +1 -1
- package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-CBf-J_wS.js} +8 -8
- package/server/{rollup-DctoIu-A.js → rollup-Bu0f2EyN.js} +8 -8
- package/server/{rollup-CakjztPl.js → rollup-DTCCdEy4.js} +1 -1
- package/server/{scanner-BTM1jc_u.js → scanner-BlZ2vB7j.js} +7 -7
- package/server/{sequence-io-pnoIDGv4.js → sequence-io-ylyDtz2J.js} +4 -4
- package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-DsWQ-87H.js} +6 -17
- package/server/server.js +4695 -4093
- package/server/{service-DfTVoqJg.js → service-CLVBC_1Y.js} +116 -90
- package/server/{session-fork-C4jAFHj8.js → session-fork-DlEIAhRy.js} +2 -2
- package/server/{session-history-DanhhiCw.js → session-history-bnOFKMwf.js} +4 -4
- package/server/settings-CP3GGon2.js +2 -0
- package/server/{settings-Cuc12oP_.js → settings-Cqa-8nyj.js} +2 -2
- package/server/{settings-DfT3f86D.js → settings-gJrdLZy2.js} +3 -3
- package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-fq1YEKV3.js} +3 -3
- package/server/{shadow-state-CVHpRWlb.js → shadow-state-BqeFAygK.js} +1 -1
- package/server/{shadow-state-DJz6_pb_.js → shadow-state-RptE9Cau.js} +2 -2
- package/server/shadow-utils-BMWr5tRT.js +39 -0
- package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
- package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CmoXpjeU.js} +7 -7
- package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-DldUel4B.js} +1 -1
- package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-CoS6LTc6.js} +16 -16
- package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-DT2tSMxo.js} +1 -1
- package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
- package/server/{specialist-context-B2HlbNxS.js → specialist-context-CspI4Eog.js} +5 -5
- package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-Duz9RGvk.js} +2 -2
- package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-DtSkPJZK.js} +3 -3
- package/server/{specialists-D7AcFi1u.js → specialists-CywEMwxk.js} +1 -1
- package/server/{specialists-k22_Btaq.js → specialists-D9-dMUtI.js} +1 -1
- package/server/{specialists-CFgw_0Q6.js → specialists-Dax7tqXC.js} +161 -448
- package/server/{specialists-CwzFdapR.js → specialists-GF42OOqd.js} +18 -18
- package/server/specs-VwcFtEDi.js +3 -0
- package/server/{src-B4TTzNSr.js → src-By3D85Ry.js} +6 -1
- package/server/{src-BvpMg4EB.js → src-CqyFg52C.js} +5 -5
- package/server/{src-D4YUZrwR.js → src-DhxM-eCb.js} +6 -6
- package/server/{stack-health-DVN7zRnL.js → stack-health-BsEVrJZ6.js} +1 -1
- package/server/{stack-health-CSgcYcr8.js → stack-health-C-SnpRHh.js} +2 -2
- package/server/stale-task-claims-vTxmRzLi.js +69 -0
- package/server/state-home-Bur1y4oH.js +213 -0
- package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
- package/server/state-migrate-D3VveYfO.js +362 -0
- package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-B699-p8v.js} +36 -41
- package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CaFYYTQW.js} +1 -1
- package/server/{summary-fork-CnRMPCYd.js → summary-fork-BxnF8Xh0.js} +2 -2
- package/server/{summary-fork-gKSoFAnK.js → summary-fork-COqYpVa3.js} +8 -8
- package/server/supervisor/{paths-3R6b989k.js → paths-Bk6hJRH9.js} +4 -3
- package/server/supervisor/pty-supervisor.js +2 -2
- package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-BZS5GYdG.js} +2 -2
- package/server/supervisor-eWAAmXKu.js +2 -0
- package/server/{supervisor-CZMs8s0M.js → supervisor-liMgIPDF.js} +2 -2
- package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-sXB1vhzo.js} +3 -3
- package/server/{system-prerequisites-DZZTi2G6.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
- package/server/{teardown-workspace-B4D-oCVg.js → teardown-workspace-DvzqnmUF.js} +14 -71
- package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-hAU1Ah08.js} +5 -5
- package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-Bam7Xhoo.js} +2 -2
- package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-DhGwd88s.js} +1 -1
- package/server/tmux-C-rgxRDA.js +3 -0
- package/server/{tmux-C3g9VFcg.js → tmux-U55cNGFG.js} +92 -4
- package/server/{token-g_sJ19g3.js → token-Dsa-i36o.js} +2 -2
- package/server/{token-util-DiwnnbJo.js → token-util-BWNpH96m.js} +1 -1
- package/server/token-util-DRt0j2nQ.js +3 -0
- package/server/{tracker-config-dQxC15vH.js → tracker-config-OkdbaUCm.js} +2 -2
- package/server/{tracker-utils--z8FLSWn.js → tracker-utils-CghXMF3q.js} +2 -2
- package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-DdzUiPNU.js} +1 -1
- package/server/{tunnel-BpWZs0Jy.js → tunnel-D1YxesBL.js} +3 -3
- package/server/{tunnel-CN2px87h.js → tunnel-DjlzgTl3.js} +1 -1
- package/server/typed-errors-CH4roFIj.js +3 -0
- package/server/{typed-errors-sLpGfegz.js → typed-errors-n_Tnb4Fh.js} +3 -4
- package/server/{types-BLS_Zbmd.js → types-DOjWNv3Z.js} +1 -1
- package/server/{types-tlXf80x3.js → types-DXBMm4mX.js} +1 -1
- package/server/{uat-train-utGVmqdm.js → uat-train-CaaWs9Rp.js} +1 -1
- package/server/{uat-train-BRo6DM7p.js → uat-train-CqN34zFx.js} +24 -25
- package/server/{validation-CsPVsoA0.js → validation-4-z2Cw4z.js} +70 -23
- package/server/validation-DpTNakM6.js +3 -0
- package/server/verification-artifact-DK1xb1zG.js +56 -0
- package/server/verification-artifact-JD_edpZ9.js +2 -0
- package/server/{verification-runner-CMT5WRMS.js → verification-runner-BjHN80pJ.js} +338 -58
- package/server/verification-runner-ShYu5Ph3.js +2 -0
- package/server/{vtt-parser-C_XPlifj.js → vtt-parser-QnRfcjiU.js} +1 -1
- package/server/{work-agent-prompt-ZTAb2Hyf.js → work-agent-prompt-BiJ43Der.js} +12 -88
- package/server/workflows-B4C3lY9E.js +2 -0
- package/server/{workflows-CXRwhw_o.js → workflows-DkTotz_m.js} +17 -24
- package/server/{workspace-CNfuj1-5.js → workspace-CuN0ev4Z.js} +3 -3
- package/server/{workspace-9UEsKuiP.js → workspace-DQ4vVivd.js} +1 -1
- package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
- package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-B1mYn0lN.js} +1 -1
- package/server/{workspace-manager-D8AByFIT.js → workspace-manager-Beeo2aKF.js} +23 -48
- package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-BZC5BmoP.js} +2 -2
- package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-Cy7_ZACL.js} +1 -1
- package/server/{workspaces-D-uIoqbg.js → workspaces-CGuzW1Ia.js} +182 -152
- package/sync-sources/hooks/codex-notify-hook +64 -8
- package/sync-sources/hooks/record-cost-event.js +1109 -36
- package/sync-sources/hooks/record-cost-event.js.map +1 -1
- package/sync-sources/hooks/statusline.sh +2 -2
- package/sync-sources/hooks/work-agent-stop-hook +1 -2
- package/server/acceptance-criteria-BZ_nQS1f.js +0 -33
- package/server/agent-state-lGvgPP4m.js +0 -3
- package/server/agents-CEcaxSkR.js +0 -3
- package/server/auto-commit-IW-eik_b.js +0 -3
- package/server/bd-process-lock-XAXAet9O.js +0 -390
- package/server/beads-B1u04n3o.js +0 -2
- package/server/beads-BeSMEjGT.js +0 -649
- package/server/beads-query-Dl4FhT8J.js +0 -95
- package/server/beads-restore-BUItPOjI.js +0 -23
- package/server/cli-D9cUTbBr.js +0 -3
- package/server/codex-BYPz6ZdF.js +0 -3
- package/server/compact-beads-CyJtoXJi.js +0 -94
- package/server/compact-beads-N00E4EVa.js +0 -3
- package/server/deacon-swarm-CvdFekIO.js +0 -2
- package/server/dist-BNwrgsUO.js +0 -3
- package/server/export-BJHSVwKP.js +0 -87
- package/server/forge-8y6aEPTB.js +0 -2
- package/server/hume-CerGi2RH.js +0 -3
- package/server/inspect-agent-CWkeAB7J.js +0 -2
- package/server/lifecycle-Ck2UR27D.js +0 -14
- package/server/merge-ops-CFkQtXEj.js +0 -2
- package/server/projects-CrBE6IhN.js +0 -3
- package/server/public/assets/index-BAZxZ-8I.js +0 -796
- package/server/public/assets/index-FBG3JBfq.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +0 -1
- package/server/rally-oggyp4cs.js +0 -3
- package/server/record-lEYK__LD.js +0 -3
- package/server/recovery-trip-BT7nb9OV.js +0 -98
- package/server/resolver-C7dLn8OK.js +0 -158
- package/server/resume-BYZBIab-.js +0 -3
- package/server/settings-Cy7SCFO9.js +0 -2
- package/server/specs-RzcDgozr.js +0 -3
- package/server/supervisor-CfX192ma.js +0 -2
- package/server/tmux-By8E_Yv_.js +0 -3
- package/server/token-util-C9u4An3K.js +0 -3
- package/server/tracker-config-BzfVj41Z.js +0 -3
- package/server/typed-errors-CrN1AByg.js +0 -3
- package/server/validation-Dq_wwcw3.js +0 -3
- package/server/verification-runner-D0Uh-9jc.js +0 -2
- package/server/workflows-BLwxUMP7.js +0 -2
- package/server/writer-BUweuRPx.js +0 -3
- package/server/writer-CrP2xuBn.js +0 -251
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { Fn as init_projects, Gn as resolveInfraRepo, an as STATE_BRANCH_PATHS, cn as init_state_plane, dn as acquireStateMigrationLock, fn as init_state_migration_lock, kn as getProjectSync, nn as init_auto_commit, tn as flushAutoCommits } from "./config-yaml-CqaAyn8y.js";
|
|
2
|
+
import { l as stateWorktreePath, n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER } from "./state-home-Bur1y4oH.js";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { Effect } from "effect";
|
|
5
|
+
import { tmpdir } from "node:os";
|
|
6
|
+
import { copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
7
|
+
import { execFile } from "node:child_process";
|
|
8
|
+
import { promisify } from "node:util";
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
10
|
+
//#region ../../lib/state-migration-manifest.ts
|
|
11
|
+
init_projects();
|
|
12
|
+
init_state_migration_lock();
|
|
13
|
+
init_state_plane();
|
|
14
|
+
init_auto_commit();
|
|
15
|
+
init_state_home();
|
|
16
|
+
function manifestEntry(source, destination) {
|
|
17
|
+
const stat = lstatSync(source);
|
|
18
|
+
const bytes = readFileSync(source);
|
|
19
|
+
return {
|
|
20
|
+
source,
|
|
21
|
+
destination,
|
|
22
|
+
mode: stat.mode & 511,
|
|
23
|
+
size: stat.size,
|
|
24
|
+
sha256: createHash("sha256").update(bytes).digest("hex")
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function verifyStateMigrationManifest(entries) {
|
|
28
|
+
for (const expected of entries) {
|
|
29
|
+
const actual = manifestEntry(expected.destination, expected.destination);
|
|
30
|
+
if ((actual.mode & 64) !== (expected.mode & 64) || actual.size !== expected.size || actual.sha256 !== expected.sha256) throw new Error(`State migration no-loss mismatch: ${expected.source} -> ${expected.destination}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region ../../cli/commands/admin/state-migrate.ts
|
|
35
|
+
const execFileAsync = promisify(execFile);
|
|
36
|
+
async function git(cwd, args, env) {
|
|
37
|
+
const { stdout } = await execFileAsync("git", args, {
|
|
38
|
+
cwd,
|
|
39
|
+
env: {
|
|
40
|
+
...process.env,
|
|
41
|
+
...env
|
|
42
|
+
},
|
|
43
|
+
encoding: "utf8",
|
|
44
|
+
maxBuffer: 32 * 1024 * 1024
|
|
45
|
+
});
|
|
46
|
+
return stdout.trim();
|
|
47
|
+
}
|
|
48
|
+
function destinationForTracked(path) {
|
|
49
|
+
if (!path.startsWith(".pan/")) return null;
|
|
50
|
+
const flat = path.slice(5);
|
|
51
|
+
return STATE_BRANCH_PATHS.some((prefix) => flat.startsWith(prefix)) ? flat : null;
|
|
52
|
+
}
|
|
53
|
+
async function trackedManifest(repo, sourceSha, stateRoot) {
|
|
54
|
+
return (await git(repo, [
|
|
55
|
+
"ls-tree",
|
|
56
|
+
"-r",
|
|
57
|
+
"--name-only",
|
|
58
|
+
sourceSha,
|
|
59
|
+
"--",
|
|
60
|
+
".pan"
|
|
61
|
+
])).split("\n").filter(Boolean).flatMap((path) => {
|
|
62
|
+
const destination = destinationForTracked(path);
|
|
63
|
+
if (!destination) return [];
|
|
64
|
+
const source = join(repo, path);
|
|
65
|
+
const target = join(stateRoot, destination);
|
|
66
|
+
if (!existsSync(target)) {
|
|
67
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
68
|
+
copyFileSync(source, target);
|
|
69
|
+
}
|
|
70
|
+
return [manifestEntry(source, target)];
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
async function createOrphanStateCommit(repo, sourceSha) {
|
|
74
|
+
const index = join(tmpdir(), `overdeck-state-index-${process.pid}-${Date.now()}`);
|
|
75
|
+
const env = { GIT_INDEX_FILE: index };
|
|
76
|
+
try {
|
|
77
|
+
await git(repo, ["read-tree", "--empty"], env);
|
|
78
|
+
const rows = (await git(repo, [
|
|
79
|
+
"ls-tree",
|
|
80
|
+
"-r",
|
|
81
|
+
sourceSha,
|
|
82
|
+
"--",
|
|
83
|
+
".pan"
|
|
84
|
+
])).split("\n").filter(Boolean);
|
|
85
|
+
for (const row of rows) {
|
|
86
|
+
const match = row.match(/^(\d+)\s+\w+\s+([0-9a-f]+)\t(.+)$/);
|
|
87
|
+
if (!match) continue;
|
|
88
|
+
const destination = destinationForTracked(match[3]);
|
|
89
|
+
if (destination) await git(repo, [
|
|
90
|
+
"update-index",
|
|
91
|
+
"--add",
|
|
92
|
+
"--cacheinfo",
|
|
93
|
+
`${match[1]},${match[2]},${destination}`
|
|
94
|
+
], env);
|
|
95
|
+
}
|
|
96
|
+
return await git(repo, [
|
|
97
|
+
"commit-tree",
|
|
98
|
+
await git(repo, ["write-tree"], env),
|
|
99
|
+
"-m",
|
|
100
|
+
"chore(state): seed overdeck-state"
|
|
101
|
+
]);
|
|
102
|
+
} finally {
|
|
103
|
+
rmSync(index, { force: true });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function copyLegacyState(sourceRoot, stateRoot) {
|
|
107
|
+
const manifest = [];
|
|
108
|
+
for (const sourcePath of STATE_BRANCH_PATHS) {
|
|
109
|
+
const source = join(sourceRoot, ".pan", sourcePath);
|
|
110
|
+
if (!existsSync(source)) continue;
|
|
111
|
+
const destination = join(stateRoot, sourcePath);
|
|
112
|
+
cpSync(source, destination, {
|
|
113
|
+
recursive: true,
|
|
114
|
+
preserveTimestamps: true
|
|
115
|
+
});
|
|
116
|
+
const visit = (sourceDir, destinationDir) => {
|
|
117
|
+
for (const entry of readdirSync(sourceDir, { withFileTypes: true })) {
|
|
118
|
+
const sourceEntry = join(sourceDir, entry.name);
|
|
119
|
+
const destinationEntry = join(destinationDir, entry.name);
|
|
120
|
+
if (entry.isDirectory()) visit(sourceEntry, destinationEntry);
|
|
121
|
+
else if (entry.isFile()) manifest.push(manifestEntry(sourceEntry, destinationEntry));
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
visit(source, destination);
|
|
125
|
+
}
|
|
126
|
+
return manifest;
|
|
127
|
+
}
|
|
128
|
+
function hasNonStateDirtyState(porcelain) {
|
|
129
|
+
return porcelain.split("\n").filter(Boolean).some((line) => {
|
|
130
|
+
const path = line.slice(3).split(" -> ").at(-1) ?? "";
|
|
131
|
+
if (path === ".pan" || path.startsWith(".pan/")) return false;
|
|
132
|
+
return true;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
function dedupeManifest(entries) {
|
|
136
|
+
return [...new Map(entries.map((entry) => [entry.destination, entry])).values()];
|
|
137
|
+
}
|
|
138
|
+
const GITIGNORE_MANAGED_LINES = [
|
|
139
|
+
"# PAN-2541: permanent state is on overdeck-state; workspace runtime stays local.",
|
|
140
|
+
".pan/",
|
|
141
|
+
".overdeck/continue.json",
|
|
142
|
+
".overdeck/spec.vbrief.json",
|
|
143
|
+
".overdeck/sessions.jsonl",
|
|
144
|
+
".overdeck/feedback/",
|
|
145
|
+
".overdeck/review/",
|
|
146
|
+
".overdeck/test/",
|
|
147
|
+
".overdeck/kickoff.md",
|
|
148
|
+
".overdeck/agent-mcp.json"
|
|
149
|
+
];
|
|
150
|
+
function rewriteGitignore(repo) {
|
|
151
|
+
const path = join(repo, ".gitignore");
|
|
152
|
+
const prior = existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
153
|
+
const managed = new Set([...GITIGNORE_MANAGED_LINES, ".overdeck/"]);
|
|
154
|
+
const kept = prior.split("\n").filter((line) => !managed.has(line.trim()));
|
|
155
|
+
while (kept.length > 0 && kept[kept.length - 1]?.trim() === "") kept.pop();
|
|
156
|
+
writeFileSync(path, [
|
|
157
|
+
...kept,
|
|
158
|
+
"",
|
|
159
|
+
...GITIGNORE_MANAGED_LINES,
|
|
160
|
+
""
|
|
161
|
+
].join("\n"));
|
|
162
|
+
}
|
|
163
|
+
async function migrateProjectState(projectKey, options = {}, projectOverride) {
|
|
164
|
+
const project = projectOverride ?? getProjectSync(projectKey);
|
|
165
|
+
if (!project) throw new Error(`Unknown project: ${projectKey}`);
|
|
166
|
+
const { repoPath: repo } = resolveInfraRepo(project);
|
|
167
|
+
const legacyStateSource = project.path;
|
|
168
|
+
const sourceIsHostRepo = legacyStateSource === repo;
|
|
169
|
+
const stateRoot = stateWorktreePath(project, { projectKey });
|
|
170
|
+
console.log(`PAN-2541 state migration plan for ${projectKey}:`);
|
|
171
|
+
console.log(` ${legacyStateSource}/.pan/{${STATE_BRANCH_PATHS.map((p) => p.slice(0, -1)).join(",")}} -> ${stateRoot}/`);
|
|
172
|
+
console.log(` ${legacyStateSource}/.pan/context -> ${legacyStateSource}/.overdeck/context`);
|
|
173
|
+
if (options.dryRun) return;
|
|
174
|
+
const release = acquireStateMigrationLock(projectKey);
|
|
175
|
+
try {
|
|
176
|
+
await Effect.runPromise(flushAutoCommits(repo));
|
|
177
|
+
if (hasNonStateDirtyState(await git(repo, ["status", "--porcelain"]))) throw new Error("Primary checkout is dirty outside legacy state paths; migration refused before mutation");
|
|
178
|
+
await git(repo, [
|
|
179
|
+
"fetch",
|
|
180
|
+
"--prune",
|
|
181
|
+
"origin"
|
|
182
|
+
]);
|
|
183
|
+
const sourceMainSha = await git(repo, ["rev-parse", "main"]);
|
|
184
|
+
if (sourceMainSha !== await git(repo, ["rev-parse", "origin/main"])) throw new Error("main is not exactly at origin/main; migration refused");
|
|
185
|
+
if (await git(repo, ["show", `origin/overdeck-state:migration-complete.json`]).catch(() => "")) {
|
|
186
|
+
console.log("State migration already complete on origin; nothing to do.");
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
let stateSha = await git(repo, ["rev-parse", STATE_BRANCH]).catch(() => "");
|
|
190
|
+
const remoteStateSha = await git(repo, ["rev-parse", `origin/${STATE_BRANCH}`]).catch(() => "");
|
|
191
|
+
if (stateSha && remoteStateSha && stateSha !== remoteStateSha) throw new Error("Local and remote overdeck-state diverged; refusing non-fast-forward migration");
|
|
192
|
+
if (!stateSha) {
|
|
193
|
+
stateSha = remoteStateSha || await createOrphanStateCommit(repo, sourceMainSha);
|
|
194
|
+
await git(repo, [
|
|
195
|
+
"update-ref",
|
|
196
|
+
`refs/heads/${STATE_BRANCH}`,
|
|
197
|
+
stateSha
|
|
198
|
+
]);
|
|
199
|
+
}
|
|
200
|
+
if (!remoteStateSha) await git(repo, [
|
|
201
|
+
"push",
|
|
202
|
+
"origin",
|
|
203
|
+
STATE_BRANCH
|
|
204
|
+
]);
|
|
205
|
+
if (!existsSync(stateRoot)) {
|
|
206
|
+
mkdirSync(dirname(stateRoot), { recursive: true });
|
|
207
|
+
await git(repo, [
|
|
208
|
+
"worktree",
|
|
209
|
+
"add",
|
|
210
|
+
stateRoot,
|
|
211
|
+
STATE_BRANCH
|
|
212
|
+
]);
|
|
213
|
+
}
|
|
214
|
+
const manifest = sourceIsHostRepo ? dedupeManifest([...await trackedManifest(repo, sourceMainSha, stateRoot), ...copyLegacyState(legacyStateSource, stateRoot)]) : copyLegacyState(legacyStateSource, stateRoot);
|
|
215
|
+
if (manifest.length > 0) {
|
|
216
|
+
await git(stateRoot, ["add", "--all"]);
|
|
217
|
+
if (await git(stateRoot, [
|
|
218
|
+
"diff",
|
|
219
|
+
"--cached",
|
|
220
|
+
"--name-only"
|
|
221
|
+
])) await git(stateRoot, [
|
|
222
|
+
"commit",
|
|
223
|
+
"-m",
|
|
224
|
+
"chore(state): seed legacy project state"
|
|
225
|
+
]);
|
|
226
|
+
await git(stateRoot, [
|
|
227
|
+
"push",
|
|
228
|
+
"origin",
|
|
229
|
+
STATE_BRANCH
|
|
230
|
+
]);
|
|
231
|
+
}
|
|
232
|
+
const untracked = sourceIsHostRepo ? (await git(repo, [
|
|
233
|
+
"ls-files",
|
|
234
|
+
"--others",
|
|
235
|
+
"--",
|
|
236
|
+
".pan"
|
|
237
|
+
])).split("\n").filter((path) => path.split("/").length === 2 && existsSync(join(repo, path)) && lstatSync(join(repo, path)).isFile()) : existsSync(join(legacyStateSource, ".pan")) ? readdirSync(join(legacyStateSource, ".pan"), { withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => `.pan/${entry.name}`) : [];
|
|
238
|
+
for (const path of untracked) {
|
|
239
|
+
if (!existsSync(join(legacyStateSource, path))) continue;
|
|
240
|
+
const destination = join(stateRoot, "notes", path.slice(5));
|
|
241
|
+
if (existsSync(destination)) {
|
|
242
|
+
if (!readFileSync(join(legacyStateSource, path)).equals(readFileSync(destination))) throw new Error(`Untracked-note destination collision: ${destination}`);
|
|
243
|
+
manifest.push(manifestEntry(join(legacyStateSource, path), destination));
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
mkdirSync(dirname(destination), { recursive: true });
|
|
247
|
+
copyFileSync(join(legacyStateSource, path), destination);
|
|
248
|
+
manifest.push(manifestEntry(join(legacyStateSource, path), destination));
|
|
249
|
+
}
|
|
250
|
+
if (untracked.length > 0) {
|
|
251
|
+
await git(stateRoot, ["add", "notes"]);
|
|
252
|
+
if (await git(stateRoot, [
|
|
253
|
+
"diff",
|
|
254
|
+
"--cached",
|
|
255
|
+
"--name-only"
|
|
256
|
+
])) await git(stateRoot, [
|
|
257
|
+
"commit",
|
|
258
|
+
"-m",
|
|
259
|
+
"chore(state): preserve untracked operator notes"
|
|
260
|
+
]);
|
|
261
|
+
await git(stateRoot, [
|
|
262
|
+
"push",
|
|
263
|
+
"origin",
|
|
264
|
+
STATE_BRANCH
|
|
265
|
+
]);
|
|
266
|
+
}
|
|
267
|
+
if (await git(repo, ["rev-parse", "main"]) !== sourceMainSha) throw new Error("main advanced during migration; refusing cleanup");
|
|
268
|
+
if (sourceIsHostRepo) await git(repo, [
|
|
269
|
+
"rm",
|
|
270
|
+
"-r",
|
|
271
|
+
"--cached",
|
|
272
|
+
"--ignore-unmatch",
|
|
273
|
+
".pan/records",
|
|
274
|
+
".pan/continues",
|
|
275
|
+
".pan/specs",
|
|
276
|
+
".pan/drafts",
|
|
277
|
+
".pan/review",
|
|
278
|
+
".pan/test",
|
|
279
|
+
".pan/feedback",
|
|
280
|
+
".pan/backlog",
|
|
281
|
+
".pan/notes"
|
|
282
|
+
]);
|
|
283
|
+
const oldContext = join(legacyStateSource, ".pan", "context");
|
|
284
|
+
const newContext = join(legacyStateSource, ".overdeck", "context");
|
|
285
|
+
let movedContext = false;
|
|
286
|
+
if (existsSync(oldContext) && !existsSync(newContext)) {
|
|
287
|
+
mkdirSync(dirname(newContext), { recursive: true });
|
|
288
|
+
renameSync(oldContext, newContext);
|
|
289
|
+
movedContext = true;
|
|
290
|
+
}
|
|
291
|
+
rewriteGitignore(legacyStateSource);
|
|
292
|
+
if (sourceIsHostRepo) {
|
|
293
|
+
if (await git(repo, [
|
|
294
|
+
"ls-files",
|
|
295
|
+
"--",
|
|
296
|
+
".pan/context"
|
|
297
|
+
])) await git(repo, [
|
|
298
|
+
"add",
|
|
299
|
+
"-u",
|
|
300
|
+
"--",
|
|
301
|
+
".pan/context"
|
|
302
|
+
]);
|
|
303
|
+
const addPaths = [".gitignore"];
|
|
304
|
+
if (movedContext || existsSync(newContext)) addPaths.push(".overdeck/context");
|
|
305
|
+
await git(repo, [
|
|
306
|
+
"add",
|
|
307
|
+
"--",
|
|
308
|
+
...addPaths
|
|
309
|
+
]);
|
|
310
|
+
if (await git(repo, [
|
|
311
|
+
"diff",
|
|
312
|
+
"--cached",
|
|
313
|
+
"--name-only"
|
|
314
|
+
])) await git(repo, [
|
|
315
|
+
"commit",
|
|
316
|
+
"-m",
|
|
317
|
+
"chore(state): move permanent state to overdeck-state"
|
|
318
|
+
]);
|
|
319
|
+
}
|
|
320
|
+
verifyStateMigrationManifest(manifest);
|
|
321
|
+
for (const entry of manifest) rmSync(entry.source, { force: true });
|
|
322
|
+
if (!sourceIsHostRepo) rmSync(join(legacyStateSource, ".pan"), {
|
|
323
|
+
recursive: true,
|
|
324
|
+
force: true
|
|
325
|
+
});
|
|
326
|
+
stateSha = await git(stateRoot, ["rev-parse", "HEAD"]);
|
|
327
|
+
writeFileSync(join(stateRoot, MIGRATION_COMPLETE_MARKER), `${JSON.stringify({
|
|
328
|
+
sourceMainSha,
|
|
329
|
+
stateBranchSha: stateSha,
|
|
330
|
+
completedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
331
|
+
version: 1
|
|
332
|
+
}, null, 2)}\n`);
|
|
333
|
+
await git(stateRoot, ["add", MIGRATION_COMPLETE_MARKER]);
|
|
334
|
+
await git(stateRoot, [
|
|
335
|
+
"commit",
|
|
336
|
+
"-m",
|
|
337
|
+
"chore(state): complete state migration"
|
|
338
|
+
]);
|
|
339
|
+
await git(repo, [
|
|
340
|
+
"push",
|
|
341
|
+
"--atomic",
|
|
342
|
+
"--dry-run",
|
|
343
|
+
"origin",
|
|
344
|
+
"main",
|
|
345
|
+
STATE_BRANCH
|
|
346
|
+
]);
|
|
347
|
+
await git(repo, [
|
|
348
|
+
"push",
|
|
349
|
+
"--atomic",
|
|
350
|
+
"origin",
|
|
351
|
+
"main",
|
|
352
|
+
STATE_BRANCH
|
|
353
|
+
]);
|
|
354
|
+
clearStateMigrationCache();
|
|
355
|
+
} finally {
|
|
356
|
+
release();
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//#endregion
|
|
360
|
+
export { migrateProjectState };
|
|
361
|
+
|
|
362
|
+
//# sourceMappingURL=state-migrate-D3VveYfO.js.map
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { n as CLAUDE_CODE_BEHAVIOR } from "./src-
|
|
4
|
-
import { c as init_review_status, s as getReviewStatusSync } from "./review-status-
|
|
5
|
-
import {
|
|
6
|
-
import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-
|
|
7
|
-
import { t as init_behavior } from "./behavior-
|
|
8
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
1
|
+
import { Fn as init_projects, Jr as getOverdeckHome, Sr as init_errors, Vr as encodeClaudeProjectDir, Yr as init_paths, fr as FsError, nr as extractPrefixSync, qn as resolveProjectFromIssueSync, rr as init_issue_id, yr as TmuxError } from "./config-yaml-CqaAyn8y.js";
|
|
2
|
+
import { E as killSessionSync, F as sendKeys, O as listPaneValuesSync, S as init_tmux, a as capturePaneSync, c as detectTerminalApiErrorSync, i as capturePane, z as sessionExistsSync } from "./tmux-U55cNGFG.js";
|
|
3
|
+
import { n as CLAUDE_CODE_BEHAVIOR } from "./src-By3D85Ry.js";
|
|
4
|
+
import { c as init_review_status, s as getReviewStatusSync } from "./review-status-DANr0t-v.js";
|
|
5
|
+
import { Fn as getAgentStateSync, K as createOhmypiRuntimeSync, L as messageAgent, M as resumeAgent, Un as markAgentTroubled, Y as spawnAgent, Yn as saveAgentStateSync, _t as init_config, a as listRunningAgentsSync, gr as saveAgentRuntimeState, ht as DEFAULT_CLOISTER_CONFIG, jn as getAgentDir, ln as determineModel, mr as getAgentRuntimeStateSync, pr as getAgentRuntimeState, q as init_ohmypi, s as init_agents, tn as init_pi_fifo, yt as loadCloisterConfigSync } from "./queries-C0LCGG21.js";
|
|
6
|
+
import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-bnOFKMwf.js";
|
|
7
|
+
import { t as init_behavior } from "./behavior-CWqNMqE5.js";
|
|
8
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-OkdbaUCm.js";
|
|
9
|
+
import { m as readWorkspacePlanSync, o as init_io } from "./io-DkC4sFSy.js";
|
|
10
|
+
import { n as init_launcher_generator } from "./launcher-generator-BXLM9f4b.js";
|
|
11
|
+
import { i as createCodexRuntimeSync, l as init_codex } from "./codex-sgWVCGUd.js";
|
|
12
|
+
import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-BguNQ1F_.js";
|
|
13
|
+
import { l as init_dag, o as getDispatchableItems } from "./dag-C6kYyF17.js";
|
|
14
|
+
import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-Cd5jIqh7.js";
|
|
15
|
+
import { t as recordRecoveryFailure } from "./recovery-trip-Cn7KJVkS.js";
|
|
15
16
|
import "node:path";
|
|
16
17
|
import { Effect } from "effect";
|
|
17
18
|
import { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
@@ -32,9 +33,10 @@ init_projects();
|
|
|
32
33
|
init_behavior();
|
|
33
34
|
init_persistent_logger();
|
|
34
35
|
init_review_status();
|
|
36
|
+
init_io();
|
|
35
37
|
init_codex();
|
|
36
38
|
init_launcher_generator();
|
|
37
|
-
|
|
39
|
+
init_dag();
|
|
38
40
|
init_agents();
|
|
39
41
|
init_tmux();
|
|
40
42
|
init_errors();
|
|
@@ -1220,7 +1222,7 @@ async function evaluateWedgedReworkAgent(agent, config, now, actions) {
|
|
|
1220
1222
|
markAgentTroubled(agentId);
|
|
1221
1223
|
writeStuckRemediationState(agentId, stageState(3, now, firstStuck));
|
|
1222
1224
|
logAction(actions, transitionAction(3, issueId, idleMinutes, "rework-wedge-troubled"));
|
|
1223
|
-
surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
|
|
1225
|
+
await surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
|
|
1224
1226
|
return true;
|
|
1225
1227
|
}
|
|
1226
1228
|
killSessionSync(agentId);
|
|
@@ -1228,9 +1230,6 @@ async function evaluateWedgedReworkAgent(agent, config, now, actions) {
|
|
|
1228
1230
|
logAction(actions, transitionAction(3, issueId, idleMinutes, "killed-for-respawn"));
|
|
1229
1231
|
return true;
|
|
1230
1232
|
}
|
|
1231
|
-
function hasReadyBeads(readyByQueryRoot, agent, issueLabel) {
|
|
1232
|
-
return (readyByQueryRoot.get(resolveBeadsQueryRoot(agent.workspace))?.[issueLabel] ?? []).length > 0;
|
|
1233
|
-
}
|
|
1234
1233
|
function shouldCheckReadyBeadsForAgent(agent, now) {
|
|
1235
1234
|
const agentId = agent.id;
|
|
1236
1235
|
if (!agentId) return false;
|
|
@@ -1263,11 +1262,11 @@ function logAction(actions, action) {
|
|
|
1263
1262
|
console.log(action);
|
|
1264
1263
|
logDeaconEventSync(action);
|
|
1265
1264
|
}
|
|
1266
|
-
function surfaceStuckNeedsYou(agent, issueId, generation, actions) {
|
|
1265
|
+
async function surfaceStuckNeedsYou(agent, issueId, generation, actions) {
|
|
1267
1266
|
if (!agent.workspace) return;
|
|
1268
|
-
if (recordRecoveryFailure(agent.workspace, issueId, "stuck-remediation", generation, 1).emitNeedsYou) logAction(actions, `[deacon] needs-you ${issueId}: stuck remediation exhausted`);
|
|
1267
|
+
if ((await recordRecoveryFailure(agent.workspace, issueId, "stuck-remediation", generation, 1)).emitNeedsYou) logAction(actions, `[deacon] needs-you ${issueId}: stuck remediation exhausted`);
|
|
1269
1268
|
}
|
|
1270
|
-
async function evaluateAgent(agent, config, now, actions
|
|
1269
|
+
async function evaluateAgent(agent, config, now, actions) {
|
|
1271
1270
|
const agentId = agent.id;
|
|
1272
1271
|
if (!agentId) return;
|
|
1273
1272
|
if (agent.status !== "running") return;
|
|
@@ -1286,7 +1285,9 @@ async function evaluateAgent(agent, config, now, actions, readyByQueryRoot) {
|
|
|
1286
1285
|
if (!shouldCheckReadyBeadsForAgent(agent, now)) return;
|
|
1287
1286
|
if (!agent.workspace) return;
|
|
1288
1287
|
const issueId = issueIdForAgent(agent);
|
|
1289
|
-
|
|
1288
|
+
const plan = readWorkspacePlanSync(agent.workspace);
|
|
1289
|
+
if (!plan) return;
|
|
1290
|
+
if (getDispatchableItems(plan, /* @__PURE__ */ new Set()).length > 0) return;
|
|
1290
1291
|
const lastActivityMs = getAgentEffectiveLastActivityMs(agentId);
|
|
1291
1292
|
if (lastActivityMs === null) return;
|
|
1292
1293
|
if (!Number.isFinite(lastActivityMs)) return;
|
|
@@ -1302,11 +1303,19 @@ async function evaluateAgent(agent, config, now, actions, readyByQueryRoot) {
|
|
|
1302
1303
|
const idleMinutes = Math.floor((now - lastActivityMs) / 6e4);
|
|
1303
1304
|
const lastStage = stuckState?.lastStage ?? 0;
|
|
1304
1305
|
const firstStuck = firstStuckAt(lastActivity, stuckState);
|
|
1306
|
+
const terminalProviderError = detectTerminalApiErrorSync(capturePaneSync(agentId, 80));
|
|
1307
|
+
if (terminalProviderError) {
|
|
1308
|
+
markAgentTroubled(agentId);
|
|
1309
|
+
writeStuckRemediationState(agentId, stageState(3, now, firstStuck));
|
|
1310
|
+
logAction(actions, `${agentId} provider-terminal: ${terminalProviderError.summary}`);
|
|
1311
|
+
await surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
|
|
1312
|
+
return;
|
|
1313
|
+
}
|
|
1305
1314
|
if (idleMinutes >= config.stage3_minutes && lastStage < 3) {
|
|
1306
1315
|
markAgentTroubled(agentId);
|
|
1307
1316
|
writeStuckRemediationState(agentId, stageState(3, now, firstStuck));
|
|
1308
1317
|
logAction(actions, transitionAction(3, issueId, idleMinutes, "marked-troubled"));
|
|
1309
|
-
surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
|
|
1318
|
+
await surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
|
|
1310
1319
|
return;
|
|
1311
1320
|
}
|
|
1312
1321
|
if (idleMinutes >= config.stage2_minutes && lastStage < 2) {
|
|
@@ -1390,7 +1399,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
|
|
|
1390
1399
|
now
|
|
1391
1400
|
});
|
|
1392
1401
|
if (decision.kind === "noop") return;
|
|
1393
|
-
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-
|
|
1402
|
+
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-BUWdcfhq.js");
|
|
1394
1403
|
const prev = readStuckRemediationState(agentId);
|
|
1395
1404
|
const nowIso = new Date(now).toISOString();
|
|
1396
1405
|
if (decision.kind === "escalate") {
|
|
@@ -1473,25 +1482,11 @@ async function checkStuckAgentRemediation(opts = {}) {
|
|
|
1473
1482
|
const actions = [];
|
|
1474
1483
|
const now = opts.now ?? Date.now();
|
|
1475
1484
|
const runningAgents = listRunningAgentsSync();
|
|
1476
|
-
const readyByQueryRoot = /* @__PURE__ */ new Map();
|
|
1477
|
-
const workAgentsByQueryRoot = /* @__PURE__ */ new Map();
|
|
1478
1485
|
let sawFlywheelOrchestrator = false;
|
|
1479
|
-
for (const agent of runningAgents) {
|
|
1480
|
-
if (!shouldCheckReadyBeadsForAgent(agent, now)) continue;
|
|
1481
|
-
const queryRoot = resolveBeadsQueryRoot(agent.workspace);
|
|
1482
|
-
const workspaceAgents = workAgentsByQueryRoot.get(queryRoot) ?? [];
|
|
1483
|
-
workspaceAgents.push(agent);
|
|
1484
|
-
workAgentsByQueryRoot.set(queryRoot, workspaceAgents);
|
|
1485
|
-
}
|
|
1486
|
-
for (const [queryRoot, workspaceAgents] of workAgentsByQueryRoot) {
|
|
1487
|
-
const issueIds = workspaceAgents.map(issueIdForAgent);
|
|
1488
|
-
const ready = await Effect.runPromise(queryReadyBeadsByIssueLabels(queryRoot, issueIds, { acquisitionTimeoutMs: 500 }));
|
|
1489
|
-
readyByQueryRoot.set(queryRoot, ready.byIssue);
|
|
1490
|
-
}
|
|
1491
1486
|
for (const agent of runningAgents) {
|
|
1492
1487
|
if (agent.id === FLYWHEEL_ORCHESTRATOR_AGENT_ID || agent.role === "flywheel") sawFlywheelOrchestrator = true;
|
|
1493
1488
|
try {
|
|
1494
|
-
await evaluateAgent(agent, config, now, actions
|
|
1489
|
+
await evaluateAgent(agent, config, now, actions);
|
|
1495
1490
|
} catch (error) {
|
|
1496
1491
|
const message = `[deacon] stuck-remediation agent=${agent.id || "(unknown)"} error=${error instanceof Error ? error.message : String(error)}`;
|
|
1497
1492
|
console.error(message, error);
|
|
@@ -1510,4 +1505,4 @@ async function checkStuckAgentRemediation(opts = {}) {
|
|
|
1510
1505
|
//#endregion
|
|
1511
1506
|
export { parseCodexApprovalPrompt as _, isAgentIdleForNudge as a, countPendingAskUserQuestionsForAgent as c, getAgentPendingQuestions as d, getAgentWorkspace as f, normalizeAwaitingInputPrompt as g, detectAwaitingInputFromPaneSync as h, shouldSkipReviewStatus as i, getAgentJsonlMtime as l, detectAwaitingInputForAgent as m, decideFlywheelRemediation as n, getRuntimeForAgent as o, scanPendingInputsPromise as p, shouldSkipIdlePokeForAgent as r, computeAgentEnrichment as s, checkStuckAgentRemediation as t, getAgentJsonlPath as u };
|
|
1512
1507
|
|
|
1513
|
-
//# sourceMappingURL=stuck-remediation-
|
|
1508
|
+
//# sourceMappingURL=stuck-remediation-B699-p8v.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-
|
|
1
|
+
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-B699-p8v.js";
|
|
2
2
|
export { shouldSkipIdlePokeForAgent };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./smart-compaction-
|
|
2
|
-
import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-
|
|
1
|
+
import "./smart-compaction-CmoXpjeU.js";
|
|
2
|
+
import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-COqYpVa3.js";
|
|
3
3
|
init_summary_fork();
|
|
4
4
|
export { generateFallbackSummary };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { St as deliverAgentMessage,
|
|
4
|
-
import { k as init_conversations } from "./conversations-
|
|
5
|
-
import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-
|
|
6
|
-
import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-
|
|
2
|
+
import { $r as sessionFilePath, Kr as getHandoffsDir, Sr as init_errors, Yr as init_paths, Zr as packageRoot, f as loadConfigSync, fr as FsError, t as init_config_yaml } from "./config-yaml-CqaAyn8y.js";
|
|
3
|
+
import { St as deliverAgentMessage, s as init_agents } from "./queries-C0LCGG21.js";
|
|
4
|
+
import { k as init_conversations } from "./conversations-BX5aD-6F.js";
|
|
5
|
+
import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-C-SnpRHh.js";
|
|
6
|
+
import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-CmoXpjeU.js";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
import { Effect } from "effect";
|
|
9
9
|
import { join as join$1 } from "path";
|
|
@@ -442,11 +442,11 @@ async function generateSummaryForFork(jsonlPath, summaryModel, includeThinkingIn
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
async function reserveSummaryForkSessionPromise(cwd) {
|
|
445
|
-
const { reserveForkSession } = await import("./session-fork-
|
|
445
|
+
const { reserveForkSession } = await import("./session-fork-DlEIAhRy.js");
|
|
446
446
|
return reserveForkSession(cwd);
|
|
447
447
|
}
|
|
448
448
|
async function copySessionFromCompactBoundaryPromise(sourcePath, destPath) {
|
|
449
|
-
const { copySessionForFork } = await import("./session-fork-
|
|
449
|
+
const { copySessionForFork } = await import("./session-fork-DlEIAhRy.js");
|
|
450
450
|
return copySessionForFork(sourcePath, destPath, { fullHistory: false });
|
|
451
451
|
}
|
|
452
452
|
/** Effect variant of generateFallbackSummary. */
|
|
@@ -521,4 +521,4 @@ var init_summary_fork = __esmMin((() => {
|
|
|
521
521
|
//#endregion
|
|
522
522
|
export { init_transcript_adapter as _, generateFallbackSummary as a, handoffPreconditionFallbackReason as c, prependFallbackFocus as d, requestHandoffFromAgent as f, getTranscriptAdapter as g, validateHandoffDoc as h, copySessionFromCompactBoundary as i, init_summary_fork as l, sanitizeHandoffDoc as m, HandoffValidationError as n, generateSummaryForFork as o, reserveSummaryForkSession as p, authorHandoffExternal as r, handoffFailureReason as s, HandoffStallError as t, logHandoffFallback as u };
|
|
523
523
|
|
|
524
|
-
//# sourceMappingURL=summary-fork-
|
|
524
|
+
//# sourceMappingURL=summary-fork-COqYpVa3.js.map
|
|
@@ -129,7 +129,7 @@ function sessionIdFromFile(sessionFile) {
|
|
|
129
129
|
if (!sessionFile) return void 0;
|
|
130
130
|
return sessionFile.split("/").pop()?.replace(".jsonl", "") ?? void 0;
|
|
131
131
|
}
|
|
132
|
-
var OVERDECK_HOME, CONFIG_DIR, SKILLS_DIR, COMMANDS_DIR, AGENTS_DIR, BIN_DIR, BACKUPS_DIR, COSTS_DIR, HEARTBEATS_DIR, ARCHIVES_DIR, LOGS_DIR, HANDOFFS_DIR, TRAEFIK_DIR, TRAEFIK_DYNAMIC_DIR, TRAEFIK_CERTS_DIR, CERTS_DIR, CONFIG_FILE, SETTINGS_FILE, CLAUDE_DIR, LEGACY_RUNTIME_DIRS, SYNC_TARGET, TEMPLATES_DIR, CLAUDE_MD_TEMPLATES, currentDir, packageRoot, SYNC_SOURCES_ROOT, SYNC_SOURCES, CACHE_SKILLS_DIR, CACHE_AGENTS_DIR, CACHE_RULES_DIR, CACHE_MANIFEST, DOCS_DIR, PRDS_DIR, PRD_DRAFTS_DIR, PRD_PUBLISHED_DIR, DOCS_INDEX_FILE, DOCS_BUDGET_STATE_FILE, DOCS_DISABLE_STATE_FILE, DOCS_TELEMETRY_FILE, PROJECT_DOCS_SUBDIR, PROJECT_PRDS_SUBDIR, PROJECT_PRDS_ACTIVE_SUBDIR, PROJECT_PRDS_PLANNED_SUBDIR, PROJECT_PRDS_COMPLETED_SUBDIR, INIT_DIRS;
|
|
132
|
+
var OVERDECK_HOME, CONFIG_DIR, SKILLS_DIR, COMMANDS_DIR, AGENTS_DIR, BIN_DIR, BACKUPS_DIR, COSTS_DIR, HEARTBEATS_DIR, ARCHIVES_DIR, LOGS_DIR, HANDOFFS_DIR, TRAEFIK_DIR, TRAEFIK_DYNAMIC_DIR, TRAEFIK_CERTS_DIR, CERTS_DIR, CONFIG_FILE, SETTINGS_FILE, CLAUDE_DIR, AGENT_SKILLS_DIR, LEGACY_RUNTIME_DIRS, SYNC_TARGET, TEMPLATES_DIR, CLAUDE_MD_TEMPLATES, currentDir, packageRoot, SYNC_SOURCES_ROOT, SYNC_SOURCES, CACHE_SKILLS_DIR, CACHE_AGENTS_DIR, CACHE_RULES_DIR, CACHE_MANIFEST, DOCS_DIR, PRDS_DIR, PRD_DRAFTS_DIR, PRD_PUBLISHED_DIR, DOCS_INDEX_FILE, DOCS_BUDGET_STATE_FILE, DOCS_DISABLE_STATE_FILE, DOCS_TELEMETRY_FILE, PROJECT_DOCS_SUBDIR, PROJECT_PRDS_SUBDIR, PROJECT_PRDS_ACTIVE_SUBDIR, PROJECT_PRDS_PLANNED_SUBDIR, PROJECT_PRDS_COMPLETED_SUBDIR, INIT_DIRS;
|
|
133
133
|
var init_paths = __esmMin((() => {
|
|
134
134
|
OVERDECK_HOME = process.env.OVERDECK_HOME || join(homedir(), ".overdeck");
|
|
135
135
|
CONFIG_DIR = OVERDECK_HOME;
|
|
@@ -150,6 +150,7 @@ var init_paths = __esmMin((() => {
|
|
|
150
150
|
CONFIG_FILE = join(CONFIG_DIR, "config.toml");
|
|
151
151
|
SETTINGS_FILE = join(CONFIG_DIR, "settings.json");
|
|
152
152
|
CLAUDE_DIR = join(homedir(), ".claude");
|
|
153
|
+
AGENT_SKILLS_DIR = join(homedir(), ".agents", "skills");
|
|
153
154
|
LEGACY_RUNTIME_DIRS = {
|
|
154
155
|
codex: join(homedir(), ".codex"),
|
|
155
156
|
cursor: join(homedir(), ".cursor"),
|
|
@@ -219,6 +220,6 @@ var init_paths = __esmMin((() => {
|
|
|
219
220
|
];
|
|
220
221
|
}));
|
|
221
222
|
//#endregion
|
|
222
|
-
export {
|
|
223
|
+
export { getLegacyHome as $, PRD_PUBLISHED_DIR as A, SYNC_TARGET as B, HEARTBEATS_DIR as C, OVERDECK_HOME as D, LOGS_DIR as E, PROJECT_PRDS_SUBDIR as F, encodeClaudeProjectDir as G, TRAEFIK_CERTS_DIR as H, SETTINGS_FILE as I, getDocsDisableStatePath as J, getDocsBudgetStatePath as K, SKILLS_DIR as L, PROJECT_PRDS_ACTIVE_SUBDIR as M, PROJECT_PRDS_COMPLETED_SUBDIR as N, PRDS_DIR as O, PROJECT_PRDS_PLANNED_SUBDIR as P, getHandoffsDir as Q, SYNC_SOURCES as R, HANDOFFS_DIR as S, LEGACY_RUNTIME_DIRS as T, TRAEFIK_DIR as U, TEMPLATES_DIR as V, TRAEFIK_DYNAMIC_DIR as W, getDocsPaths as X, getDocsIndexPath as Y, getDocsTelemetryPath as Z, DOCS_BUDGET_STATE_FILE as _, BIN_DIR as a, piExtensionCandidates as at, DOCS_INDEX_FILE as b, CACHE_RULES_DIR as c, resolvePiExtensionPath as ct, CLAUDE_DIR as d, getOverdeckHome as et, CLAUDE_MD_TEMPLATES as f, COSTS_DIR as g, CONFIG_FILE as h, BACKUPS_DIR as i, packageRoot as it, PROJECT_DOCS_SUBDIR as j, PRD_DRAFTS_DIR as k, CACHE_SKILLS_DIR as l, sessionFilePath as lt, CONFIG_DIR as m, AGENT_SKILLS_DIR as n, isDevMode as nt, CACHE_AGENTS_DIR as o, resolveOhmypiExtensionPath as ot, COMMANDS_DIR as p, getDocsDir as q, ARCHIVES_DIR as r, ohmypiExtensionCandidates as rt, CACHE_MANIFEST as s, resolvePackageRootForDir as st, AGENTS_DIR as t, init_paths as tt, CERTS_DIR as u, sessionIdFromFile as ut, DOCS_DIR as v, INIT_DIRS as w, DOCS_TELEMETRY_FILE as x, DOCS_DISABLE_STATE_FILE as y, SYNC_SOURCES_ROOT as z };
|
|
223
224
|
|
|
224
|
-
//# sourceMappingURL=paths-
|
|
225
|
+
//# sourceMappingURL=paths-Bk6hJRH9.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { n as init_pty_token, r as readPtyToken, t as PTY_TOKEN_HEADER } from "./pty-token-
|
|
2
|
+
import { et as getOverdeckHome, tt as init_paths } from "./paths-Bk6hJRH9.js";
|
|
3
|
+
import { n as init_pty_token, r as readPtyToken, t as PTY_TOKEN_HEADER } from "./pty-token-BZS5GYdG.js";
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { appendFile, chmod, mkdir, unlink } from "node:fs/promises";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __esmMin } from "./chunk-ruWRV7i3.js";
|
|
2
|
-
import {
|
|
2
|
+
import { et as getOverdeckHome, tt as init_paths } from "./paths-Bk6hJRH9.js";
|
|
3
3
|
import "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -40,4 +40,4 @@ var init_pty_token = __esmMin((() => {
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { writePtyToken as i, init_pty_token as n, readPtyToken as r, PTY_TOKEN_HEADER as t };
|
|
42
42
|
|
|
43
|
-
//# sourceMappingURL=pty-token-
|
|
43
|
+
//# sourceMappingURL=pty-token-BZS5GYdG.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Br as TRAEFIK_DIR, Mr as OVERDECK_HOME, Sr as init_errors, Yr as init_paths, jr as LOGS_DIR, kr as CONFIG_FILE } from "./config-yaml-CqaAyn8y.js";
|
|
2
2
|
import { t as require_toml } from "./toml-CeLDATih.js";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import "effect";
|
|
@@ -73,4 +73,4 @@ function getSupervisorUrlSync() {
|
|
|
73
73
|
//#endregion
|
|
74
74
|
export { getSupervisorUrlSync as n, getSupervisorPortSync as t };
|
|
75
75
|
|
|
76
|
-
//# sourceMappingURL=supervisor-
|
|
76
|
+
//# sourceMappingURL=supervisor-liMgIPDF.js.map
|