@overdeck/desktop 0.45.16 → 0.45.19
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-DQqRIuQ-.js +62 -0
- package/server/{advancing-selfheal-DJYAvGv-.js → advancing-selfheal-BYidNkmp.js} +6 -6
- package/server/{agent-gc-D0wDIeV1.js → agent-gc-ClNQLl_V.js} +3 -3
- package/server/agent-state-BMrpX7kU.js +3 -0
- package/server/{agent-state-service-DFslS5go.js → agent-state-service-BpAKmodj.js} +5 -5
- package/server/{agent-state-service-CZrayD_G.js → agent-state-service-CC9NMIWn.js} +1 -1
- package/server/{briefing-freshness-DESTCWo-.js → agents--ljN-wVY.js} +5 -131
- package/server/agents-DAUyr_Z1.js +3 -0
- package/server/{archive-planning-CoyIbgGK.js → archive-planning-2w8WQaeJ.js} +1 -1
- package/server/{archive-planning-CbghE9-o.js → archive-planning-BW3te5Vw.js} +5 -10
- package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-DFO3eceF.js} +2 -2
- package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-DECBMxLq.js} +2 -2
- package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
- package/server/briefing-freshness-B1delh4l.js +131 -0
- package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-CjLY6A4r.js} +1 -1
- package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-D6_71Rpb.js} +3 -3
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BtUonbs3.js → checkpoints-BYrLxVle.js} +2 -2
- package/server/{checkpoints-fjadfOKF.js → checkpoints-xSuv4v4I.js} +1 -1
- package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-DL6yfJB_.js} +1 -1
- package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-DvfVZbbT.js} +2 -2
- package/server/{claude-permissions-CThLgf8d.js → claude-permissions-CcncrTNF.js} +2 -2
- package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-1IfYetv2.js} +2 -2
- package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-Ca3LXjAC.js} +1 -1
- package/server/cli-BxZHwgRK.js +3 -0
- package/server/{cli-ByKIIMfT.js → cli-DGZWYXio.js} +9 -9
- package/server/{cliproxy-B4c1BUvs.js → cliproxy-Dw42Xy3t.js} +2 -2
- package/server/{cliproxy-C_GuT5DU.js → cliproxy-DziJLbfo.js} +1 -1
- package/server/{close-issue-BOuLKr6e.js → close-issue-DEGjxifn.js} +5 -5
- package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-BsJ3JqQy.js} +9 -9
- package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-CNr7X4MB.js} +1 -1
- package/server/codex-C8OlW-dN.js +3 -0
- package/server/{codex-BbqIRZjd.js → codex-D5RyWzNL.js} +43 -18
- package/server/{codex-parser-mFYZh8vR.js → codex-parser-BRxvUkk8.js} +2 -2
- package/server/{config-Dj6N8EP9.js → config-CQ2u44iP.js} +1 -1
- package/server/{config-DVLdmnMJ.js → config-Cntj_tFu.js} +2 -2
- package/server/{config-yaml-cNOZcEww.js → config-yaml-BQs6GbD_.js} +75 -74
- package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BE6JdfkO.js} +1 -1
- package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-DdfwKgy0.js} +3 -3
- package/server/{context-layers-c0JqYHcS.js → context-layers-DFucrVVG.js} +17 -3
- package/server/{context-layers-CeAwSYNt.js → context-layers-DO0Eyq2E.js} +2 -2
- package/server/{control-settings-D4EFsRBd.js → control-settings-bxOCLsuE.js} +4 -4
- package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-Dq6MfZdL.js} +8 -8
- package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-lSlUb-cU.js} +1 -1
- package/server/{conversation-service-BTzObqGi.js → conversation-service-BVt4MQ1_.js} +1 -1
- package/server/{conversation-service-B8LFQQm1.js → conversation-service-TZsQjkjT.js} +6 -6
- package/server/{conversations-B-lcHv-5.js → conversations-CxOWHNzv.js} +4 -4
- package/server/{conversations-BM7zlXjr.js → conversations-DaF6elGK.js} +1 -1
- package/server/{cost-BcpRQ-7o.js → cost-Dlh0IEiv.js} +3 -3
- package/server/{cost-D9kPIY_5.js → cost-oinpUqvE.js} +2 -2
- package/server/{cost-sync-DF6odxK9.js → cost-sync-CVIAsrhB.js} +3 -3
- package/server/{dag-DKI3sOmX.js → dag-ClFr7Bah.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-B8ygB3e8.js} +3 -3
- package/server/{deacon-DdARMjZq.js → deacon-D2-xTesT.js} +233 -162
- package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
- package/server/deacon-swarm-1vPLuj_l.js +2 -0
- package/server/{deacon-swarm-BNGkmYR_.js → deacon-swarm-yWKQhxiX.js} +298 -72
- package/server/deacon.js +14 -7
- package/server/{devcontainer-renderer-C-34Sxyz.js → devcontainer-renderer-xPhZHCrx.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-DPEglAwA.js} +2 -2
- package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-SzSvEdKq.js} +4 -4
- package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-wU3ym1b5.js} +1 -1
- package/server/{esm-shims-BEjvINX3.js → esm-shims-Cso7IGBC.js} +1 -1
- package/server/{event-store-CqDgfbAs.js → event-store-BZoXexYS.js} +1 -1
- package/server/{event-store-D89fMfXS.js → event-store-D4s6eQ6o.js} +3 -3
- package/server/{events-rIGncmP1.js → events-Bn-wdUBF.js} +1 -1
- package/server/{events-S_C0pvl6.js → events-D1hMLl2a.js} +3 -3
- package/server/{factory-DV18m0rc.js → factory-ltWnu0V_.js} +20 -17
- package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-xj-J1Wm7.js} +4 -4
- package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-CQZukiLm.js} +2 -2
- package/server/{features-u5XeMaOK.js → features-Dyqi6N8f.js} +2 -2
- package/server/{feedback-target-DDG1PWl3.js → feedback-target-Ba0zhSYI.js} +1 -1
- package/server/{feedback-target-CwyWf0Dg.js → feedback-target-Chd5dm-Q.js} +9 -7
- package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-BtaoJGl2.js} +1 -1
- package/server/{feedback-writer-D20HSXre.js → feedback-writer-BujzReaQ.js} +4 -4
- package/server/{flywheel-Dczmgchd.js → flywheel-FTInS73X.js} +15 -28
- package/server/{flywheel-RCnHAgc4.js → flywheel-bTImiVrk.js} +1 -1
- package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-DuenRJLZ.js} +6 -6
- package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-O5Zu8iPw.js} +1 -1
- package/server/{flywheel-9Y1X7IM-.js → flywheel-rmYbW-lh.js} +13 -13
- package/server/{forge-DFDThFil.js → forge-OWm99lie.js} +22 -12
- package/server/forge-x5lszTd0.js +2 -0
- package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
- package/server/{fts-db-C5A_TTOM.js → fts-db-BRfS5ukG.js} +2 -2
- package/server/{fts-operations-DvCSimfU.js → fts-operations-L5sNLoHl.js} +2 -2
- package/server/{git-utils-C0neHvQx.js → git-utils-BIEzv2Zp.js} +1 -1
- package/server/{git-utils-Dr0L7mFk.js → git-utils-CP-bg-aM.js} +2 -2
- package/server/{github-app-u9-SX7Gc.js → github-app-CRUIvHuM.js} +8 -3
- package/server/{github-app-Bwt9lK4A.js → github-app-Dtn4ib6M.js} +1 -1
- package/server/{github-client-Btyy3uan.js → github-client-CWEFlCqL.js} +3 -3
- package/server/{github-client-Do3k-N1W.js → github-client-DSVv6wX8.js} +1 -1
- package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-D6CS9vtG.js} +2 -2
- package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-ScD6rV47.js} +3 -3
- package/server/{health-events-Bos3sk5g.js → health-events-DbcJmYmd.js} +1 -1
- package/server/{health-events-B4u-2a9m.js → health-events-Dm1Vcvqe.js} +2 -2
- package/server/{hooks-uEr8WTx_.js → hooks-B6gaI6Kg.js} +1 -1
- package/server/{hooks-BCoOjL_R.js → hooks-VXuCnzCv.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-H0W6XtHh.js → idle-stack-reaper-Gv32ZCrQ.js} +1 -1
- package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-po700Lfg.js} +2 -2
- package/server/{infra-Ba9mS6e6.js → infra-DYwIXlK5.js} +9 -4
- package/server/{injection-C1DKXeIZ.js → injection-CTfFnpsG.js} +1 -1
- package/server/{injection-yrMBxzVq.js → injection-DPsUoCJp.js} +7 -7
- package/server/inspect-agent-B25IP-0O.js +2 -0
- package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-CLkwfLRx.js} +35 -67
- package/server/{internal-token-BtqSbKTx.js → internal-token--50JhWP7.js} +2 -2
- package/server/{internal-token-BPYEaXFh.js → internal-token-BOgxXMGy.js} +1 -1
- package/server/{io-VEGSAqsd.js → io-Cv9xQTks.js} +36 -43
- package/server/{issue-closed-BxcePXL-.js → issue-closed-CyqtoFUj.js} +41 -6
- package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-Cm7ydBGK.js} +1 -1
- package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-DR6n40bh.js} +22 -37
- package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton--LQ5c2zT.js} +1 -1
- package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-DKKPneH4.js} +29 -29
- package/server/{issues-CBAsuoAO.js → issues-Cr-BLFLO.js} +2 -2
- package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Bp_xCkX4.js} +3 -3
- package/server/{label-cleanup-htK6fBRU.js → label-cleanup-BbLy2FZe.js} +3 -3
- package/server/{state-home-CEvD_v5F.js → launcher-generator-C-FU4PNT.js} +7 -127
- package/server/{layers-jjL16At6.js → layers-C-6lBDUE.js} +2 -2
- package/server/lifecycle-Bmw8yU_A.js +12 -0
- package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-B150XprC.js} +1 -1
- package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-Dcu-_ktz.js} +4 -4
- package/server/{linear-client-D9cSQfvD.js → linear-client-BHjs0luk.js} +3 -3
- package/server/{linear-client-By7hjwuN.js → linear-client-s65LNmlG.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-BLcEZNXz.js → merge-CM8swd2V.js} +1 -1
- package/server/{merge-BN8FGJ2q.js → merge-CS0b-E3u.js} +3 -3
- package/server/{merge-agent-B3u2szOL.js → merge-agent-Bu1hw9cz.js} +64 -51
- package/server/{merge-agent-ejC7Wos8.js → merge-agent-D6LRIW63.js} +1 -1
- package/server/{merge-batch-DyqlgYGp.js → merge-batch-Bv6Z5K2H.js} +1 -1
- package/server/{merge-blockers-cq-aS2KG.js → merge-blockers-Dt43hJiW.js} +2 -2
- package/server/merge-ops-DwYi3U_x.js +2 -0
- package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-B3vQcTq1.js} +2 -2
- package/server/{merge-set-Dy0D0r3i.js → merge-set-BMEGEKQg.js} +1 -1
- package/server/{merge-set-CZ9Nbay0.js → merge-set-Pe3spe8k.js} +3 -3
- package/server/{merge-sync-CG9kDCdT.js → merge-sync-CpxFRIQ7.js} +1 -1
- package/server/{merge-sync-D7jWLgCC.js → merge-sync-STpg1hk3.js} +2 -2
- package/server/{merge-train-CH33XJOH.js → merge-train-DLw2hDk0.js} +3 -3
- package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-BlCGLqwy.js} +4 -4
- package/server/{merge-verification-D4wTChdX.js → merge-verification-C4WMP40D.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-BIcNu4tl.js → orphan-proposed-reconciler-eetUXmmt.js} +1 -1
- package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-k9eydM1E.js} +14 -24
- package/server/package-lock.json +12 -12
- package/server/package.json +1 -1
- package/server/{pan-dir-CQIfKG8c.js → pan-dir-D3vABXMs.js} +4 -4
- package/server/{paths-Blj6A9AJ.js → paths-DIoslfsu.js} +2 -2
- package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-Bgidcelx.js} +1 -1
- package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-CuBONomU.js} +2 -2
- package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B9b_JVTS.js} +2 -2
- package/server/projects-DxMUi2eI.js +3 -0
- package/server/{prompts-B3njaImU.js → prompts-CY1xnHS-.js} +2 -2
- package/server/{providers-DnPxkHoG.js → providers-B7BNcK_j.js} +1 -1
- package/server/{providers-BbEyFhPX.js → providers-CAlK2If5.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-Cs4VLxiY.js} +1 -1
- package/server/{pull-requests-DyUkQl4W.js → pull-requests-CxfrQiWX.js} +3 -3
- package/server/{agents-B9GwfCyp.js → queries-srgusoi8.js} +710 -325
- package/server/{rally-BtWjybOa.js → rally-AKkjuGdi.js} +3 -3
- package/server/rally-BOza5j3_.js +3 -0
- package/server/{rally-api-B-osULNL.js → rally-api-BGxATnyr.js} +2 -2
- package/server/{rally-api-B-YA_oXx.js → rally-api-Dbqw1YW9.js} +1 -1
- package/server/{rally-client-CzFymP7P.js → rally-client-B1U5ewpO.js} +1 -1
- package/server/{rally-client-sErNQBO0.js → rally-client-D8h73ei_.js} +5 -5
- 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-CoU-HqZj.js → rebuild-stack-BYdtwS6f.js} +5 -5
- package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-Dsm9WjKv.js} +1 -1
- package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-D7oM1lNv.js} +6 -6
- package/server/record-BeXdn9Ue.js +3 -0
- package/server/record-update-Cb_pPM-F.js +168 -0
- package/server/record-update-KFiISAmu.js +3 -0
- package/server/recovery-trip-DwbsONZf.js +44 -0
- package/server/{release-engine-CBLQXDlH.js → release-engine-CAai5W0V.js} +5 -5
- package/server/{release-set-BNiqi7hy.js → release-set-vNEAfyDH.js} +3 -3
- package/server/{remote-DW_TWQnr.js → remote-8HlOfuF1.js} +3 -3
- package/server/{remote-DcO9An_f.js → remote-RQMKOL_R.js} +3 -3
- package/server/{remote-agents-C4cyxHQS.js → remote-agents-C4a4DdTj.js} +6 -33
- package/server/{remote-agents-Cv-U-_V8.js → remote-agents-_Z1SAaSK.js} +1 -1
- package/server/{remote-completion-PhXGGFQy.js → remote-completion-CH3igKY8.js} +13 -13
- package/server/resume-Cr34JAXO.js +3 -0
- package/server/{review-agent-Dn-yn7Zj.js → review-agent-CQ7oRh_G.js} +31 -23
- package/server/{review-agent-u5q3ip7H.js → review-agent-CUVj54v0.js} +1 -1
- package/server/{review-artifacts-D4T04aYI.js → review-artifacts-CC3yGv7o.js} +5 -19
- package/server/{review-context-Rc0VDLG_.js → review-context-BuxaAgAd.js} +8 -8
- package/server/{review-monitor-BC--miCO.js → review-monitor-uogOppaW.js} +2 -2
- package/server/{review-status-CG0iDuWa.js → review-status-BoJdyvUQ.js} +1 -1
- package/server/{review-status-Dc1l4dVz.js → review-status-By86XA6Z.js} +38 -62
- package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-CRQAO27G.js} +3 -3
- package/server/{review-status-sync-CfSixhhX.js → review-status-sync-BI4WhUkF.js} +1 -1
- package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-DUQmrLkK.js} +2 -2
- package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-BNcGkBRD.js} +8 -8
- package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-CWz9_9Kp.js} +1 -1
- package/server/{rollup-CakjztPl.js → rollup-B-K6PCbm.js} +1 -1
- package/server/{rollup-DctoIu-A.js → rollup-CqiFgtBp.js} +8 -8
- package/server/{scanner-BTM1jc_u.js → scanner-BZmDUjyD.js} +7 -7
- package/server/{sequence-io-pnoIDGv4.js → sequence-io-BuUx1ZAY.js} +4 -4
- package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-2uWOA_BC.js} +6 -17
- package/server/server.js +4700 -4096
- package/server/{service-DfTVoqJg.js → service-COB19Uhm.js} +116 -90
- package/server/{session-fork-C4jAFHj8.js → session-fork-D18TscUZ.js} +2 -2
- package/server/{session-history-DanhhiCw.js → session-history-DbWnzfo-.js} +4 -4
- package/server/settings-C3w2std9.js +2 -0
- package/server/{settings-Cuc12oP_.js → settings-CFEdfovT.js} +2 -2
- package/server/{settings-DfT3f86D.js → settings-DNPAf2X_.js} +3 -3
- package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-D8xTtraU.js} +3 -3
- package/server/{shadow-state-DJz6_pb_.js → shadow-state-CTgub0ME.js} +2 -2
- package/server/{shadow-state-CVHpRWlb.js → shadow-state-fRDYhcyx.js} +1 -1
- package/server/shadow-utils-DqMLnRgQ.js +39 -0
- package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
- package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-CL6yaFpc.js} +1 -1
- package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CsJDKM-N.js} +7 -7
- package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-C_wIQ-Zg.js} +1 -1
- package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-D0-NlNK1.js} +16 -16
- package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
- package/server/{specialist-context-B2HlbNxS.js → specialist-context-DXj5Itg8.js} +5 -5
- package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-BFH-IB0n.js} +2 -2
- package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-B-rldhNg.js} +3 -3
- package/server/{specialists-CFgw_0Q6.js → specialists-C6-b3YZb.js} +161 -448
- package/server/{specialists-D7AcFi1u.js → specialists-CI_eqHAz.js} +1 -1
- package/server/{specialists-CwzFdapR.js → specialists-Dp8ABxVh.js} +18 -18
- package/server/{specialists-k22_Btaq.js → specialists-Hq3EojmD.js} +1 -1
- package/server/specs-DPGNVh51.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-Bxt-oGE6.js} +1 -1
- package/server/{stack-health-CSgcYcr8.js → stack-health-FtNYSTCS.js} +2 -2
- package/server/stale-task-claims-DnCHCATD.js +69 -0
- package/server/state-home-BzzKVh_C.js +213 -0
- package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
- package/server/state-migrate-BS4IybIS.js +362 -0
- package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CTNT4LUC.js} +1 -1
- package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-DbwhGg3g.js} +36 -41
- package/server/{summary-fork-CnRMPCYd.js → summary-fork-CloCB8dV.js} +2 -2
- package/server/{summary-fork-gKSoFAnK.js → summary-fork-DaCs0tCq.js} +8 -8
- package/server/supervisor/{paths-3R6b989k.js → paths-C1yU0jq4.js} +5 -3
- package/server/supervisor/pty-supervisor.js +2 -2
- package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-CSryb8Mb.js} +2 -2
- package/server/{supervisor-CZMs8s0M.js → supervisor-CRED6PD6.js} +2 -2
- package/server/supervisor-DHwuClN_.js +2 -0
- package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-CEOrP9rE.js} +3 -3
- package/server/{system-prerequisites-DZZTi2G6.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
- package/server/{teardown-workspace-B4D-oCVg.js → teardown-workspace-Ckn7HGhp.js} +14 -71
- package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-C8lE8r2j.js} +5 -5
- package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-BE5rqR90.js} +1 -1
- package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-CGwDr28O.js} +2 -2
- package/server/{tmux-C3g9VFcg.js → tmux-C3X2XmV0.js} +92 -4
- package/server/tmux-DNaD06Gc.js +3 -0
- 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-5Cabf1MU.js} +2 -2
- package/server/{tracker-utils--z8FLSWn.js → tracker-utils-Cl-Eaqrv.js} +2 -2
- package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-FexeJhyf.js} +1 -1
- package/server/{tunnel-CN2px87h.js → tunnel-D4px7sKc.js} +1 -1
- package/server/{tunnel-BpWZs0Jy.js → tunnel-KId6Z59z.js} +3 -3
- 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-BRo6DM7p.js → uat-train-B16skN7L.js} +24 -25
- package/server/{uat-train-utGVmqdm.js → uat-train-BBMrnecu.js} +1 -1
- package/server/validation-Zc4kAmqa.js +3 -0
- package/server/{validation-CsPVsoA0.js → validation-xAD7y5vW.js} +70 -23
- 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-32y8NRfL.js} +338 -58
- package/server/verification-runner-DAat1p1u.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-S3Fe1kpV.js} +12 -88
- package/server/{workflows-CXRwhw_o.js → workflows-BNvk5gbE.js} +17 -24
- package/server/workflows-Cw2-a_hn.js +2 -0
- package/server/{workspace-CNfuj1-5.js → workspace-BhUnCpcq.js} +3 -3
- package/server/{workspace-9UEsKuiP.js → workspace-C-gP6JAz.js} +1 -1
- package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
- package/server/{workspace-manager-D8AByFIT.js → workspace-manager-BKiMmb0c.js} +23 -48
- package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-DD6PDqV8.js} +1 -1
- package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-Cnq0snrf.js} +2 -2
- package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-D5gNR61G.js} +1 -1
- package/server/{workspaces-D-uIoqbg.js → workspaces-DiAwBsb9.js} +182 -152
- package/sync-sources/hooks/codex-notify-hook +64 -8
- package/sync-sources/hooks/record-cost-event.js +1110 -37
- 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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { a as getHarnessBehavior } from "./src-
|
|
4
|
-
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-
|
|
5
|
-
import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-
|
|
6
|
-
import { t as init_behavior } from "./behavior-
|
|
2
|
+
import { Q as MODEL_CAPABILITIES, Yr as init_paths, at as resolveModelIdSync, rt as init_model_capabilities } from "./config-yaml-BQs6GbD_.js";
|
|
3
|
+
import { a as getHarnessBehavior } from "./src-By3D85Ry.js";
|
|
4
|
+
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-oinpUqvE.js";
|
|
5
|
+
import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-BRxvUkk8.js";
|
|
6
|
+
import { t as init_behavior } from "./behavior-CWqNMqE5.js";
|
|
7
7
|
import "node:path";
|
|
8
8
|
import "node:os";
|
|
9
9
|
import { open, readFile, stat, watch } from "node:fs/promises";
|
|
@@ -1751,4 +1751,4 @@ var init_conversation_service = __esmMin((() => {
|
|
|
1751
1751
|
//#endregion
|
|
1752
1752
|
export { init_codex_conversation_parser as _, contextUsageFromParseResult as a, parseEntireConversation as c, init_pi_conversation_parser as d, isPiSessionFile as f, parseOhmypiConversationMessages as g, isOhmypiSessionFile as h, computeContextUsage as i, parseFromLastCompactBoundary as l, init_ohmypi_conversation_parser as m, gateSnapshotEmission as n, summarizeConversationActivity as o, parsePiConversationMessages as p, watchConversation as r, parseConversationMessages as s, init_conversation_service as t, findLastCompactBoundary as u, parseCodexConversationMessages as v };
|
|
1753
1753
|
|
|
1754
|
-
//# sourceMappingURL=conversation-service-
|
|
1754
|
+
//# sourceMappingURL=conversation-service-TZsQjkjT.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { Jr as
|
|
3
|
-
import { T as isNull, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, g as real, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, w as isNotNull, x as eq } from "./infra-
|
|
4
|
-
import { a as init_event_store, n as getEventStore } from "./event-store-
|
|
2
|
+
import { Jr as getOverdeckHome, Yr as init_paths } from "./config-yaml-BQs6GbD_.js";
|
|
3
|
+
import { T as isNull, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, g as real, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, w as isNotNull, x as eq } from "./infra-DYwIXlK5.js";
|
|
4
|
+
import { a as init_event_store, n as getEventStore } from "./event-store-D4s6eQ6o.js";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { Context, Effect, Layer, Schema, Stream } from "effect";
|
|
7
7
|
import { readFileSync } from "node:fs";
|
|
@@ -1583,4 +1583,4 @@ var init_conversations = __esmMin((() => {
|
|
|
1583
1583
|
//#endregion
|
|
1584
1584
|
export { updateConversationForkFallbackReason as $, isAgentConversationName as A, removeFavorite as B, getConversationByTmuxSession as C, searchFtsSessions as Ct, importLegacyConversation as D, hasOtherActiveConversationOnTmuxSession as E, upsertDiscoveredSession as Et, markConversationEnded as F, setConversationHarness as G, setClearedToConvId as H, markConversationRunning as I, setForkRequest as J, setConversationModel as K, normalizeHarness as L, listConversations as M, listFavoritedIds as N, incrementForkRetryCount as O, markConversationActive as P, updateConversationDeliveryMethod as Q, reactivateConversationForSpawn as R, getConversationByName as S, markEnrichmentFailed as St, getStuckForks as T, updateEnrichment as Tt, setConversationClaudeSessionId as U, resolveLiveSessionId as V, setConversationEffort as W, unarchiveConversation as X, setImportedConversationLinks as Y, updateConversationCost as Z, canRefineTitle as _, getDiscoveredStats as _t, ConversationName as a, aggregateDiscoveredSessionCost as at, getConversationByClaudeSessionId as b, insertEmbedding as bt, ConversationsResolver as c, countDiscoveredSessions as ct, TitleSource as d, findDiscoveredSessionIds as dt, updateConversationTitle as et, Transcript as f, findDiscoveredSessions as ft, backfillConversationModel as g, getDiscoveredSessionBySessionId as gt, archiveConversation as h, getDiscoveredSessionByJsonlPath as ht, ConversationId as i, findConversationForCostSessionSync as it, listArchivedConversationsWithEnrichment as j, init_conversations as k, Harness as l, countFtsSessions as lt, TranscriptsWriter as m, getDiscoveredSessionById as mt, BackingFile as n, updateLastAttached as nt, ConversationNotFound as o, aggregateDiscoveredSessionCostBy as ot, TranscriptsResolver as p, findEnrichedSessionIdsMissingEmbedding as pt, setFavorite as q, Conversation as r, updateSpawnError as rt, ConversationWriter as s, buildFilterSql as st, AlreadyArchived as t, updateForkStatus as tt, NotArchived as u, ensureDiscoveredSessionsSchema as ut, canReplaceTitle as v, getEmbedding as vt, getConversationLedgerCosts as w, topKCosine as wt, getConversationById as x, loadEmbeddings as xt, createConversation as y, init_discovered_sessions as yt, recordConversationHandoff as z };
|
|
1585
1585
|
|
|
1586
|
-
//# sourceMappingURL=conversations-
|
|
1586
|
+
//# sourceMappingURL=conversations-CxOWHNzv.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-
|
|
3
|
-
import { i as init_events, t as appendCostEventSync } from "./events-
|
|
2
|
+
import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-oinpUqvE.js";
|
|
3
|
+
import { i as init_events, t as appendCostEventSync } from "./events-D1hMLl2a.js";
|
|
4
4
|
//#region ../../lib/background-ai/cost.ts
|
|
5
5
|
/** The cost-source tag prefix used for every background AI event. */
|
|
6
6
|
function backgroundCostSource(feature) {
|
|
@@ -52,4 +52,4 @@ var init_cost = __esmMin((() => {
|
|
|
52
52
|
//#endregion
|
|
53
53
|
export { recordBackgroundAiCost as n, init_cost as t };
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=cost-
|
|
55
|
+
//# sourceMappingURL=cost-Dlh0IEiv.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Ar as COSTS_DIR, Sr as init_errors, Yr as init_paths } from "./config-yaml-BQs6GbD_.js";
|
|
3
3
|
import "effect";
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -464,4 +464,4 @@ var init_cost = __esmMin((() => {
|
|
|
464
464
|
//#endregion
|
|
465
465
|
export { getAllBudgetsSync as a, deleteBudgetSync as i, checkBudgetSync as n, getPricingSync as o, createBudgetSync as r, init_cost as s, calculateCostSync as t };
|
|
466
466
|
|
|
467
|
-
//# sourceMappingURL=cost-
|
|
467
|
+
//# sourceMappingURL=cost-oinpUqvE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { Jr as
|
|
3
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
2
|
+
import { Jr as getOverdeckHome, Yr as init_paths } from "./config-yaml-BQs6GbD_.js";
|
|
3
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DYwIXlK5.js";
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { appendFile, mkdir } from "fs/promises";
|
|
6
6
|
//#region ../../lib/agents/tier-metrics.ts
|
|
@@ -398,4 +398,4 @@ var init_cost_sync = __esmMin((() => {
|
|
|
398
398
|
//#endregion
|
|
399
399
|
export { init_tier_metrics as _, getCostForIssueAggregateSync as a, getDailyTrendsSync as c, init_cost_sync as d, insertCostEventSync as f, estimateFeedDeliveryTokens as g, deriveTieredAgentCostRole as h, getCostBreakdownByStageAndModelSync as i, getModelRollupSync as l, queryMemoryExtractionCostUsdSync as m, getBackgroundCostBySourceSync as n, getCostForIssueSync as o, queryCostEventsSync as p, getCavemanExperimentDataSync as r, getCostsByIssueSync as s, getAgentDailyCostSync as t, getTodayCostSync as u, recordTierFeedDelivery as v };
|
|
400
400
|
|
|
401
|
-
//# sourceMappingURL=cost-sync-
|
|
401
|
+
//# sourceMappingURL=cost-sync-CVIAsrhB.js.map
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { existsSync } from "fs";
|
|
6
|
-
import { dirname, join } from "path";
|
|
7
|
-
import { mkdir, readFile, readdir, rename, rm, writeFile } from "fs/promises";
|
|
2
|
+
import { o as init_io, v as init_types, y as subItemsOf } from "./io-Cv9xQTks.js";
|
|
3
|
+
import { Data } from "effect";
|
|
4
|
+
import "fs/promises";
|
|
8
5
|
//#region ../../lib/vbrief/dag.ts
|
|
9
6
|
/**
|
|
10
|
-
* vBRIEF DAG utilities — critical path, graph analysis, wave scheduling, per-item dispatch
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
7
|
* Groups actionable vBRIEF items into dependency waves using Kahn's algorithm.
|
|
14
8
|
*
|
|
15
9
|
* Wave 0 = items with no unresolved blockers (ready to start).
|
|
@@ -344,69 +338,6 @@ function renderActiveSlicePrompt(slice) {
|
|
|
344
338
|
if (slice.synthesisContext) lines.push(``, `## Synthesis Context`, slice.synthesisContext);
|
|
345
339
|
return lines.join("\n");
|
|
346
340
|
}
|
|
347
|
-
function isTaskOperationType(value) {
|
|
348
|
-
return TASK_OPERATION_TYPES.has(value);
|
|
349
|
-
}
|
|
350
|
-
function statusForOperation(type) {
|
|
351
|
-
switch (type) {
|
|
352
|
-
case "claim": return "running";
|
|
353
|
-
case "done": return "completed";
|
|
354
|
-
case "block": return "blocked";
|
|
355
|
-
case "unblock": return "pending";
|
|
356
|
-
case "cancel": return "cancelled";
|
|
357
|
-
default: throw new Error(`Unsupported vBRIEF task operation: ${String(type)}`);
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
function cloneDoc(doc) {
|
|
361
|
-
return JSON.parse(JSON.stringify(doc));
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Apply a Overdeck-native task operation to the vBRIEF itself. This is the
|
|
365
|
-
* single mutation authority for swarm task status: Beads can mirror state during
|
|
366
|
-
* migration, but the plan document wins and receives the sequence bump.
|
|
367
|
-
*/
|
|
368
|
-
function applyTaskOperation(doc, operation) {
|
|
369
|
-
if (!isTaskOperationType(String(operation.type))) throw new Error(`Unsupported vBRIEF task operation: ${String(operation.type)}`);
|
|
370
|
-
const currentSequence = doc.plan.sequence ?? 0;
|
|
371
|
-
if (operation.expectedSequence !== void 0 && operation.expectedSequence !== currentSequence) throw new Error(`vBRIEF sequence conflict: expected ${operation.expectedSequence}, found ${currentSequence}`);
|
|
372
|
-
const next = cloneDoc(doc);
|
|
373
|
-
const item = next.plan.items.find((i) => i.id === operation.itemId);
|
|
374
|
-
if (!item) throw new Error(`Plan item not found: ${operation.itemId}`);
|
|
375
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
376
|
-
item.status = statusForOperation(operation.type);
|
|
377
|
-
if (operation.type === "done") item.completed = now;
|
|
378
|
-
if (operation.reason) item.metadata = {
|
|
379
|
-
...item.metadata ?? {},
|
|
380
|
-
statusReason: operation.reason,
|
|
381
|
-
statusUpdatedAt: now
|
|
382
|
-
};
|
|
383
|
-
if (operation.subItemIds?.length) {
|
|
384
|
-
const ids = new Set(operation.subItemIds);
|
|
385
|
-
for (const sub of subItemsOf(item)) if (ids.has(sub.id)) {
|
|
386
|
-
sub.status = item.status;
|
|
387
|
-
if (operation.type === "done") sub.completed = now;
|
|
388
|
-
}
|
|
389
|
-
} else if (operation.type === "done") for (const sub of subItemsOf(item)) {
|
|
390
|
-
sub.status = "completed";
|
|
391
|
-
sub.completed = now;
|
|
392
|
-
}
|
|
393
|
-
next.plan.sequence = currentSequence + 1;
|
|
394
|
-
next.plan.updated = now;
|
|
395
|
-
next.vBRIEFInfo.updated = now;
|
|
396
|
-
if (operation.pipeline) setPipelineMirror(next, operation.pipeline);
|
|
397
|
-
return {
|
|
398
|
-
doc: next,
|
|
399
|
-
item
|
|
400
|
-
};
|
|
401
|
-
}
|
|
402
|
-
/** Write pipeline state into plan.metadata.pipeline for pan-oversee and dashboard readers. */
|
|
403
|
-
function setPipelineMirror(doc, pipeline) {
|
|
404
|
-
doc.plan.metadata = {
|
|
405
|
-
...doc.plan.metadata ?? {},
|
|
406
|
-
pipeline
|
|
407
|
-
};
|
|
408
|
-
return doc;
|
|
409
|
-
}
|
|
410
341
|
/** Build a document containing only actionable (non-terminal) items and their block edges. */
|
|
411
342
|
function actionableDoc(doc) {
|
|
412
343
|
const actionableItems = doc.plan.items.filter((i) => !NON_ACTIONABLE_STATUSES.has(i.status));
|
|
@@ -421,123 +352,9 @@ function actionableDoc(doc) {
|
|
|
421
352
|
}
|
|
422
353
|
};
|
|
423
354
|
}
|
|
424
|
-
|
|
425
|
-
return new VBriefDagError({
|
|
426
|
-
planPath,
|
|
427
|
-
operation,
|
|
428
|
-
message: cause instanceof Error ? cause.message : String(cause),
|
|
429
|
-
cause
|
|
430
|
-
});
|
|
431
|
-
}
|
|
432
|
-
function lockPathForPlan(planPath) {
|
|
433
|
-
return `${planPath}.writer.lock`;
|
|
434
|
-
}
|
|
435
|
-
function lockOwnerPath(planPath) {
|
|
436
|
-
return join(lockPathForPlan(planPath), "owner.json");
|
|
437
|
-
}
|
|
438
|
-
/**
|
|
439
|
-
* Returns true if `pid` is *certainly* dead — i.e., `process.kill(pid, 0)`
|
|
440
|
-
* throws ESRCH. Any other error (EPERM, EINVAL) means the process might
|
|
441
|
-
* still be running and we should NOT reclaim the lock. Returns false for
|
|
442
|
-
* `pid <= 0` or undefined to be conservative.
|
|
443
|
-
*
|
|
444
|
-
* Used to detect orphaned writer locks left behind by crashed writers.
|
|
445
|
-
*/
|
|
446
|
-
function isPidDead(pid) {
|
|
447
|
-
if (!pid || pid <= 0) return false;
|
|
448
|
-
if (pid === process.pid) return false;
|
|
449
|
-
try {
|
|
450
|
-
process.kill(pid, 0);
|
|
451
|
-
return false;
|
|
452
|
-
} catch (err) {
|
|
453
|
-
return err?.code === "ESRCH";
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
/**
|
|
457
|
-
* Remove a stale writer lock directory and any sibling `.tmp` transaction
|
|
458
|
-
* files for the same plan path. Idempotent and best-effort.
|
|
459
|
-
*/
|
|
460
|
-
async function removeStaleLockFromDisk(planPath) {
|
|
461
|
-
await rm(lockPathForPlan(planPath), {
|
|
462
|
-
recursive: true,
|
|
463
|
-
force: true
|
|
464
|
-
});
|
|
465
|
-
try {
|
|
466
|
-
const dir = dirname(planPath);
|
|
467
|
-
const base = planPath.slice(dir.length + 1);
|
|
468
|
-
const entries = await readdir(dir);
|
|
469
|
-
for (const entry of entries) if (entry.startsWith(`${base}.`) && entry.endsWith(".tmp")) try {
|
|
470
|
-
await rm(join(dir, entry), { force: true });
|
|
471
|
-
} catch {}
|
|
472
|
-
} catch {}
|
|
473
|
-
}
|
|
474
|
-
async function assertSingleWriterForPlan(planPath, writerId) {
|
|
475
|
-
const lockPath = lockPathForPlan(planPath);
|
|
476
|
-
let lastOwnerDescription = "unknown writer";
|
|
477
|
-
for (let attempt = 0; attempt <= WRITER_LOCK_RETRY_DELAYS_MS.length; attempt += 1) {
|
|
478
|
-
const owner = activePlanWriters.get(planPath);
|
|
479
|
-
if (!owner || owner === writerId) try {
|
|
480
|
-
await mkdir(lockPath, { mode: 448 });
|
|
481
|
-
try {
|
|
482
|
-
await writeFile(lockOwnerPath(planPath), JSON.stringify({
|
|
483
|
-
writerId,
|
|
484
|
-
pid: process.pid,
|
|
485
|
-
acquiredAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
486
|
-
}, null, 2), "utf-8");
|
|
487
|
-
} catch (writeErr) {
|
|
488
|
-
try {
|
|
489
|
-
await rm(lockPath, {
|
|
490
|
-
recursive: true,
|
|
491
|
-
force: true
|
|
492
|
-
});
|
|
493
|
-
} catch {}
|
|
494
|
-
throw writeErr;
|
|
495
|
-
}
|
|
496
|
-
activePlanWriters.set(planPath, writerId);
|
|
497
|
-
return;
|
|
498
|
-
} catch (err) {
|
|
499
|
-
if (err?.code !== "EEXIST") throw err;
|
|
500
|
-
let ownerPid;
|
|
501
|
-
try {
|
|
502
|
-
const ownerData = JSON.parse(await readFile(lockOwnerPath(planPath), "utf-8"));
|
|
503
|
-
ownerPid = ownerData.pid;
|
|
504
|
-
lastOwnerDescription = `${ownerData.writerId ?? "unknown writer"} pid=${ownerData.pid ?? "unknown"} acquiredAt=${ownerData.acquiredAt ?? "unknown"}`;
|
|
505
|
-
} catch {}
|
|
506
|
-
if (isPidDead(ownerPid)) {
|
|
507
|
-
console.warn(`[vbrief] Reclaiming orphan writer lock for ${planPath} (dead ${lastOwnerDescription})`);
|
|
508
|
-
await removeStaleLockFromDisk(planPath);
|
|
509
|
-
continue;
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
else lastOwnerDescription = owner;
|
|
513
|
-
const delay = WRITER_LOCK_RETRY_DELAYS_MS[attempt];
|
|
514
|
-
if (delay === void 0) break;
|
|
515
|
-
await new Promise((resolve) => {
|
|
516
|
-
setTimeout(resolve, delay);
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
|
-
throw new Error(`vBRIEF plan writer conflict for ${planPath}: ${lastOwnerDescription} already owns the worktree`);
|
|
520
|
-
}
|
|
521
|
-
async function releasePlanWriterForPlan(planPath, writerId) {
|
|
522
|
-
if (activePlanWriters.get(planPath) === writerId) activePlanWriters.delete(planPath);
|
|
523
|
-
await rm(lockPathForPlan(planPath), {
|
|
524
|
-
recursive: true,
|
|
525
|
-
force: true
|
|
526
|
-
});
|
|
527
|
-
}
|
|
528
|
-
async function writePlanFileAtomically(planPath, doc) {
|
|
529
|
-
await mkdir(dirname(planPath), { recursive: true });
|
|
530
|
-
const tmp = `${planPath}.${process.pid}.${Date.now()}.tmp`;
|
|
531
|
-
await writeFile(tmp, serializeVBriefDocument(doc), "utf-8");
|
|
532
|
-
await rename(tmp, planPath);
|
|
533
|
-
}
|
|
534
|
-
async function readPlanFileFromDisk(planPath) {
|
|
535
|
-
return normalizeVBriefEnvelope(JSON.parse(await readFile(planPath, "utf-8")));
|
|
536
|
-
}
|
|
537
|
-
var TASK_OPERATION_TYPES, NON_ACTIONABLE_STATUSES, activePlanWriters, VBriefDagError, WRITER_LOCK_RETRY_DELAYS_MS, assertSingleWriter, releasePlanWriter, writePlanFileAtomic, mirrorTaskOperationToRecord, applyTaskOperationToPlanFile, readPlanFile;
|
|
355
|
+
var TASK_OPERATION_TYPES, NON_ACTIONABLE_STATUSES;
|
|
538
356
|
var init_dag = __esmMin((() => {
|
|
539
357
|
init_types();
|
|
540
|
-
init_record();
|
|
541
358
|
init_io();
|
|
542
359
|
TASK_OPERATION_TYPES = new Set([
|
|
543
360
|
"claim",
|
|
@@ -557,62 +374,9 @@ var init_dag = __esmMin((() => {
|
|
|
557
374
|
"running",
|
|
558
375
|
"blocked"
|
|
559
376
|
]);
|
|
560
|
-
|
|
561
|
-
VBriefDagError = class extends Data.TaggedError("VBriefDagError") {};
|
|
562
|
-
WRITER_LOCK_RETRY_DELAYS_MS = [
|
|
563
|
-
5,
|
|
564
|
-
10,
|
|
565
|
-
20,
|
|
566
|
-
40,
|
|
567
|
-
80,
|
|
568
|
-
160,
|
|
569
|
-
320,
|
|
570
|
-
360
|
|
571
|
-
];
|
|
572
|
-
assertSingleWriter = (planPath, writerId) => Effect.tryPromise({
|
|
573
|
-
try: () => assertSingleWriterForPlan(planPath, writerId),
|
|
574
|
-
catch: (cause) => liftDagError(planPath, "assertSingleWriter", cause)
|
|
575
|
-
});
|
|
576
|
-
releasePlanWriter = (planPath, writerId) => Effect.tryPromise({
|
|
577
|
-
try: () => releasePlanWriterForPlan(planPath, writerId),
|
|
578
|
-
catch: (cause) => liftDagError(planPath, "releasePlanWriter", cause)
|
|
579
|
-
});
|
|
580
|
-
writePlanFileAtomic = (planPath, doc) => Effect.tryPromise({
|
|
581
|
-
try: () => writePlanFileAtomically(planPath, doc),
|
|
582
|
-
catch: (cause) => liftDagError(planPath, "writePlanFileAtomic", cause)
|
|
583
|
-
});
|
|
584
|
-
mirrorTaskOperationToRecord = (workspacePath, itemId, status, doc, subItemIds) => Effect.try({
|
|
585
|
-
try: () => {
|
|
586
|
-
const issueId = workspacePath.match(/feature-([a-z]+-\d+)$/i)?.[1]?.toUpperCase();
|
|
587
|
-
if (!issueId) return;
|
|
588
|
-
const project = resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath);
|
|
589
|
-
const overrides = { [itemId]: status };
|
|
590
|
-
const item = doc.plan.items.find((i) => i.id === itemId);
|
|
591
|
-
if (item) {
|
|
592
|
-
const allSubIds = subItemsOf(item).map((s) => s.id);
|
|
593
|
-
const affectedSubIds = subItemIds?.length ? subItemIds.filter((id) => allSubIds.includes(id)) : status === "completed" ? allSubIds : [];
|
|
594
|
-
for (const subId of affectedSubIds) overrides[`${itemId}.${subId}`] = status;
|
|
595
|
-
}
|
|
596
|
-
writeStatusOverridesSync(project, issueId, overrides);
|
|
597
|
-
},
|
|
598
|
-
catch: (cause) => liftDagError(workspacePath, "mirrorTaskOperationToRecord", cause)
|
|
599
|
-
});
|
|
600
|
-
applyTaskOperationToPlanFile = (planPath, operation, workspacePath) => Effect.gen(function* () {
|
|
601
|
-
if (!existsSync(planPath)) return yield* Effect.fail(liftDagError(planPath, "applyTaskOperationToPlanFile", /* @__PURE__ */ new Error(`vBRIEF plan not found: ${planPath}`)));
|
|
602
|
-
yield* assertSingleWriter(planPath, operation.writerId);
|
|
603
|
-
return yield* Effect.gen(function* () {
|
|
604
|
-
const result = applyTaskOperation(yield* readPlanFile(planPath), operation);
|
|
605
|
-
yield* writePlanFileAtomic(planPath, result.doc);
|
|
606
|
-
yield* mirrorTaskOperationToRecord(workspacePath ?? dirname(dirname(planPath)), operation.itemId, result.item.status, result.doc, operation.subItemIds);
|
|
607
|
-
return result;
|
|
608
|
-
}).pipe(Effect.ensuring(releasePlanWriter(planPath, operation.writerId).pipe(Effect.catch(() => Effect.void))));
|
|
609
|
-
});
|
|
610
|
-
readPlanFile = (planPath) => Effect.tryPromise({
|
|
611
|
-
try: () => readPlanFileFromDisk(planPath),
|
|
612
|
-
catch: (cause) => liftDagError(planPath, "readPlanFile", cause)
|
|
613
|
-
});
|
|
377
|
+
Data.TaggedError("VBriefDagError");
|
|
614
378
|
}));
|
|
615
379
|
//#endregion
|
|
616
|
-
export {
|
|
380
|
+
export { criticalPath as a, hasFileOverlap as c, createActiveSlice as i, init_dag as l, blockingParentCount as n, getDispatchableItems as o, compileGlob as r, groupItemsByWave as s, actionableDoc as t };
|
|
617
381
|
|
|
618
|
-
//# sourceMappingURL=dag-
|
|
382
|
+
//# sourceMappingURL=dag-ClFr7Bah.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-
|
|
2
|
-
import { o as getSetting, s as init_control_settings, w as setSetting } from "./control-settings-
|
|
3
|
-
import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-
|
|
1
|
+
import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-CxOWHNzv.js";
|
|
2
|
+
import { o as getSetting, s as init_control_settings, w as setSetting } from "./control-settings-bxOCLsuE.js";
|
|
3
|
+
import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-BZmDUjyD.js";
|
|
4
4
|
import { parentPort } from "node:worker_threads";
|
|
5
5
|
//#region services/dashboard-db-worker.ts
|
|
6
6
|
init_discovered_sessions();
|
|
@@ -59,15 +59,15 @@ async function runJob(id, operation, payload) {
|
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
61
|
case "getArtifactBySlug": {
|
|
62
|
-
const { getArtifactBySlugJob } = await import("./artifact-index-jobs-
|
|
62
|
+
const { getArtifactBySlugJob } = await import("./artifact-index-jobs-DFO3eceF.js");
|
|
63
63
|
return getArtifactBySlugJob(payload);
|
|
64
64
|
}
|
|
65
65
|
case "listArtifactsForWorkspaceOrIssue": {
|
|
66
|
-
const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-
|
|
66
|
+
const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-DFO3eceF.js");
|
|
67
67
|
return listArtifactsForWorkspaceOrIssueJob(payload);
|
|
68
68
|
}
|
|
69
69
|
case "unshareArtifactBySlug": {
|
|
70
|
-
const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-
|
|
70
|
+
const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-DFO3eceF.js");
|
|
71
71
|
return unshareArtifactBySlugJob(payload);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./config-yaml-
|
|
2
|
-
import { Dt as handleWorkCompleted, E as handleAgentStoppedForOrphanReviewerSessions, Et as handleReviewCoordinatorDied, T as handleAgentStoppedEvent, w as handleAgentHeartbeatDeadEvent } from "./deacon-
|
|
3
|
-
import "./deacon-swarm-
|
|
1
|
+
import "./config-yaml-BQs6GbD_.js";
|
|
2
|
+
import { Dt as handleWorkCompleted, E as handleAgentStoppedForOrphanReviewerSessions, Et as handleReviewCoordinatorDied, T as handleAgentStoppedEvent, w as handleAgentHeartbeatDeadEvent } from "./deacon-D2-xTesT.js";
|
|
3
|
+
import "./deacon-swarm-yWKQhxiX.js";
|
|
4
4
|
export { handleAgentHeartbeatDeadEvent, handleAgentStoppedEvent, handleAgentStoppedForOrphanReviewerSessions, handleReviewCoordinatorDied, handleWorkCompleted };
|