@overdeck/desktop 0.45.18 → 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/package.json +1 -1
- package/server/{acceptance-criteria-aQFKQf-J.js → acceptance-criteria-DQqRIuQ-.js} +2 -2
- package/server/{advancing-selfheal-DgwQgm4D.js → advancing-selfheal-BYidNkmp.js} +5 -5
- package/server/{agent-gc-kpzxqT7P.js → agent-gc-ClNQLl_V.js} +3 -3
- package/server/{agent-state-C_6TG-Ad.js → agent-state-BMrpX7kU.js} +1 -1
- package/server/{agent-state-service-nUD3qfob.js → agent-state-service-BpAKmodj.js} +4 -4
- package/server/{agent-state-service-BUfovFfB.js → agent-state-service-CC9NMIWn.js} +1 -1
- package/server/{agents-BHBxr8c9.js → agents--ljN-wVY.js} +4 -4
- package/server/{agents-BA15AQqo.js → agents-DAUyr_Z1.js} +1 -1
- package/server/{archive-planning-D-QsBufn.js → archive-planning-2w8WQaeJ.js} +1 -1
- package/server/{archive-planning-CzCW9Ifl.js → archive-planning-BW3te5Vw.js} +3 -3
- package/server/{artifact-index-jobs-qqa51B2Z.js → artifact-index-jobs-DFO3eceF.js} +2 -2
- package/server/{backlog-auto-trigger-B7Bi0bvY.js → backlog-auto-trigger-DECBMxLq.js} +2 -2
- package/server/{briefing-freshness-DuxIE1yr.js → briefing-freshness-B1delh4l.js} +2 -2
- package/server/{checkpoint-manager-DixkLus7.js → checkpoint-manager-CjLY6A4r.js} +1 -1
- package/server/{checkpoint-manager-DF6hb9Jw.js → checkpoint-manager-D6_71Rpb.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BiviJqei.js → checkpoints-BYrLxVle.js} +2 -2
- package/server/{checkpoints-B1Z42tJE.js → checkpoints-xSuv4v4I.js} +1 -1
- package/server/{claude-hooks-provision-BeMGi4ty.js → claude-hooks-provision-DL6yfJB_.js} +1 -1
- package/server/{claude-hooks-provision-Du_PkMsp.js → claude-hooks-provision-DvfVZbbT.js} +2 -2
- package/server/{claude-permissions-BB6agcOZ.js → claude-permissions-CcncrTNF.js} +2 -2
- package/server/{claude-settings-overlay-CAq2oFSK.js → claude-settings-overlay-1IfYetv2.js} +2 -2
- package/server/{claude-settings-overlay-DUWWLd6M.js → claude-settings-overlay-Ca3LXjAC.js} +1 -1
- package/server/cli-BxZHwgRK.js +3 -0
- package/server/{cli-C33xPZNm.js → cli-DGZWYXio.js} +9 -9
- package/server/{cliproxy-CGBA1GzA.js → cliproxy-Dw42Xy3t.js} +2 -2
- package/server/{cliproxy-BQX1TL6N.js → cliproxy-DziJLbfo.js} +1 -1
- package/server/{close-issue-DNv8npc1.js → close-issue-DEGjxifn.js} +4 -4
- package/server/{closed-issue-reaper-LoMnnjtJ.js → closed-issue-reaper-BsJ3JqQy.js} +9 -9
- package/server/{closed-issue-reaper-DrqgBJlr.js → closed-issue-reaper-CNr7X4MB.js} +1 -1
- package/server/{codex-DxLivxri.js → codex-C8OlW-dN.js} +1 -1
- package/server/{codex-sgWVCGUd.js → codex-D5RyWzNL.js} +4 -4
- package/server/{codex-parser-DboQnEXN.js → codex-parser-BRxvUkk8.js} +2 -2
- package/server/{config-6MCHOZ2N.js → config-CQ2u44iP.js} +1 -1
- package/server/{config-DfaUXr6r.js → config-Cntj_tFu.js} +2 -2
- package/server/{config-yaml-CqaAyn8y.js → config-yaml-BQs6GbD_.js} +2 -1
- package/server/{conflict-gate-BubJprtD.js → conflict-gate-BE6JdfkO.js} +1 -1
- package/server/{conflict-gate-BF_zhcmb.js → conflict-gate-DdfwKgy0.js} +3 -3
- package/server/{context-layers-BFrxfl0l.js → context-layers-DFucrVVG.js} +3 -3
- package/server/{context-layers-DWL_8HhY.js → context-layers-DO0Eyq2E.js} +2 -2
- package/server/{control-settings-BguNQ1F_.js → control-settings-bxOCLsuE.js} +4 -4
- package/server/{conversation-compaction-DxSXl0pT.js → conversation-compaction-Dq6MfZdL.js} +8 -8
- package/server/{conversation-compaction-CRKAf2qP.js → conversation-compaction-lSlUb-cU.js} +1 -1
- package/server/{conversation-service-DzuY9qoH.js → conversation-service-BVt4MQ1_.js} +1 -1
- package/server/{conversation-service-mFVFdDQK.js → conversation-service-TZsQjkjT.js} +4 -4
- package/server/{conversations-BX5aD-6F.js → conversations-CxOWHNzv.js} +4 -4
- package/server/{conversations-BajHQ60c.js → conversations-DaF6elGK.js} +1 -1
- package/server/{cost-DuZ5vlv-.js → cost-Dlh0IEiv.js} +3 -3
- package/server/{cost-BoqD1Pxz.js → cost-oinpUqvE.js} +2 -2
- package/server/{cost-sync-BYnmnMkY.js → cost-sync-CVIAsrhB.js} +3 -3
- package/server/{dag-C6kYyF17.js → dag-ClFr7Bah.js} +2 -2
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-CwCiNuEZ.js → deacon-B8ygB3e8.js} +3 -3
- package/server/{deacon-Dru5onpk.js → deacon-D2-xTesT.js} +98 -98
- package/server/deacon-swarm-1vPLuj_l.js +2 -0
- package/server/{deacon-swarm-BPmBmSoU.js → deacon-swarm-yWKQhxiX.js} +12 -12
- package/server/deacon.js +8 -8
- package/server/{devcontainer-renderer-BqGNCzvN.js → devcontainer-renderer-xPhZHCrx.js} +2 -2
- package/server/{docker-CNjXS72x.js → docker-DPEglAwA.js} +2 -2
- package/server/{ensure-devcontainer-5e9xOve4.js → ensure-devcontainer-SzSvEdKq.js} +3 -3
- package/server/{ensure-devcontainer-C6gyUQdE.js → ensure-devcontainer-wU3ym1b5.js} +1 -1
- package/server/{event-store-D9UhQyMS.js → event-store-BZoXexYS.js} +1 -1
- package/server/{event-store-KZnWUKWh.js → event-store-D4s6eQ6o.js} +3 -3
- package/server/{events-BYbvqZky.js → events-Bn-wdUBF.js} +1 -1
- package/server/{events-2eFUPdqz.js → events-D1hMLl2a.js} +3 -3
- package/server/{factory-BtaRsHFC.js → factory-ltWnu0V_.js} +4 -4
- package/server/{feature-registry-population-Ca2UaV0U.js → feature-registry-population-xj-J1Wm7.js} +4 -4
- package/server/{feature-registry-storage-DaP-bQxO.js → feature-registry-storage-CQZukiLm.js} +2 -2
- package/server/{features-DqvaoQoa.js → features-Dyqi6N8f.js} +2 -2
- package/server/{feedback-target-BblmMe9P.js → feedback-target-Ba0zhSYI.js} +1 -1
- package/server/{feedback-target-BXWdOiYI.js → feedback-target-Chd5dm-Q.js} +7 -7
- package/server/{feedback-writer-CULeOOY4.js → feedback-writer-BtaoJGl2.js} +1 -1
- package/server/{feedback-writer-Dn8o9ZyE.js → feedback-writer-BujzReaQ.js} +4 -4
- package/server/{flywheel-CqkO3cDj.js → flywheel-FTInS73X.js} +10 -10
- package/server/{flywheel-BUWdcfhq.js → flywheel-bTImiVrk.js} +1 -1
- package/server/{flywheel-merge-order-VtjUweEb.js → flywheel-merge-order-DuenRJLZ.js} +6 -6
- package/server/{flywheel-merge-order-LDzQDwSg.js → flywheel-merge-order-O5Zu8iPw.js} +1 -1
- package/server/{flywheel-D9r1mw2U.js → flywheel-rmYbW-lh.js} +12 -12
- package/server/{forge-wEollMCi.js → forge-OWm99lie.js} +2 -2
- package/server/forge-x5lszTd0.js +2 -0
- package/server/{fts-db-Bgzn2RO7.js → fts-db-BRfS5ukG.js} +2 -2
- package/server/{fts-operations-Bj8yutnR.js → fts-operations-L5sNLoHl.js} +2 -2
- package/server/{git-utils-q8jNoBts.js → git-utils-BIEzv2Zp.js} +1 -1
- package/server/{git-utils-GxlL0tmt.js → git-utils-CP-bg-aM.js} +2 -2
- package/server/{github-app-tUbb8Ldr.js → github-app-CRUIvHuM.js} +2 -2
- package/server/{github-app-BrYwK_Gb.js → github-app-Dtn4ib6M.js} +1 -1
- package/server/{github-client-BwBU41jK.js → github-client-CWEFlCqL.js} +2 -2
- package/server/{github-client-D6CNsftm.js → github-client-DSVv6wX8.js} +1 -1
- package/server/{github-pr-lookup-BS5PqkJb.js → github-pr-lookup-D6CS9vtG.js} +2 -2
- package/server/{harness-resolve-Dx8hUsvC.js → harness-resolve-ScD6rV47.js} +3 -3
- package/server/{health-events-B0mj6Iae.js → health-events-DbcJmYmd.js} +1 -1
- package/server/{health-events-2DLp-5Xp.js → health-events-Dm1Vcvqe.js} +2 -2
- package/server/{hooks-BDcQJDUe.js → hooks-B6gaI6Kg.js} +1 -1
- package/server/{hooks-BS_JrvYP.js → hooks-VXuCnzCv.js} +2 -2
- package/server/{idle-stack-reaper-C1ymihno.js → idle-stack-reaper-Gv32ZCrQ.js} +1 -1
- package/server/{idle-stack-reaper-BCITXNW5.js → idle-stack-reaper-po700Lfg.js} +2 -2
- package/server/{infra-_Kx1m9pm.js → infra-DYwIXlK5.js} +4 -4
- package/server/{injection-Bvhyg_MV.js → injection-CTfFnpsG.js} +1 -1
- package/server/{injection-CCaYkofq.js → injection-DPsUoCJp.js} +7 -7
- package/server/inspect-agent-B25IP-0O.js +2 -0
- package/server/{inspect-agent-BqyZ4pCo.js → inspect-agent-CLkwfLRx.js} +9 -9
- package/server/{internal-token-Cl-1IxaE.js → internal-token--50JhWP7.js} +2 -2
- package/server/{internal-token-D-t28de5.js → internal-token-BOgxXMGy.js} +1 -1
- package/server/{io-DkC4sFSy.js → io-Cv9xQTks.js} +2 -2
- package/server/{issue-closed-Cpl4VDUM.js → issue-closed-CyqtoFUj.js} +7 -7
- package/server/{issue-lifecycle-YNTy3OT3.js → issue-lifecycle-Cm7ydBGK.js} +1 -1
- package/server/{issue-lifecycle-CFR8TJ22.js → issue-lifecycle-DR6n40bh.js} +20 -20
- package/server/{issue-service-singleton-D81mCts_.js → issue-service-singleton--LQ5c2zT.js} +1 -1
- package/server/{issue-service-singleton-ldvUUXi3.js → issue-service-singleton-DKKPneH4.js} +8 -8
- package/server/{issues-DIEHt9sq.js → issues-Cr-BLFLO.js} +2 -2
- package/server/{jsonl-parser-Cd5jIqh7.js → jsonl-parser-Bp_xCkX4.js} +3 -3
- package/server/{label-cleanup-Btny6Gyo.js → label-cleanup-BbLy2FZe.js} +2 -2
- package/server/{launcher-generator-BXLM9f4b.js → launcher-generator-C-FU4PNT.js} +4 -4
- package/server/{layers-gCJlK62m.js → layers-C-6lBDUE.js} +2 -2
- package/server/{lifecycle-D7aQUnTO.js → lifecycle-Bmw8yU_A.js} +5 -5
- package/server/{lifecycle-io-DQBF-GHO.js → lifecycle-io-B150XprC.js} +1 -1
- package/server/{lifecycle-io-FfPUtz-y.js → lifecycle-io-Dcu-_ktz.js} +4 -4
- package/server/{linear-client-CDH2D6Qy.js → linear-client-BHjs0luk.js} +2 -2
- package/server/{linear-client-WrYrUIAH.js → linear-client-s65LNmlG.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-Dervs4BF.js → merge-CM8swd2V.js} +1 -1
- package/server/{merge-BsDgUxFz.js → merge-CS0b-E3u.js} +3 -3
- package/server/{merge-agent-D6DNhe9j.js → merge-agent-Bu1hw9cz.js} +26 -26
- package/server/{merge-agent-DMQTJMP0.js → merge-agent-D6LRIW63.js} +1 -1
- package/server/{merge-blockers-WWWi6Ur2.js → merge-blockers-Dt43hJiW.js} +2 -2
- package/server/merge-ops-DwYi3U_x.js +2 -0
- package/server/{merge-rebase-Czth9ggm.js → merge-rebase-B3vQcTq1.js} +2 -2
- package/server/{merge-set-vuE3MEVt.js → merge-set-BMEGEKQg.js} +1 -1
- package/server/{merge-set-DNc4zBqd.js → merge-set-Pe3spe8k.js} +3 -3
- package/server/{merge-sync-B9nHdUGx.js → merge-sync-CpxFRIQ7.js} +1 -1
- package/server/{merge-sync-B2KSk54U.js → merge-sync-STpg1hk3.js} +2 -2
- package/server/{merge-train-DJgr81tF.js → merge-train-DLw2hDk0.js} +3 -3
- package/server/{merge-train-deps-B2OWS0k9.js → merge-train-deps-BlCGLqwy.js} +4 -4
- package/server/{merge-verification-BBIXUEqa.js → merge-verification-C4WMP40D.js} +4 -4
- package/server/node_modules/.package-lock.json +1 -1
- package/server/{orphan-proposed-reconciler-DbTmT7qy.js → orphan-proposed-reconciler-eetUXmmt.js} +1 -1
- package/server/{orphan-proposed-reconciler-B8H41C4a.js → orphan-proposed-reconciler-k9eydM1E.js} +9 -9
- package/server/package-lock.json +2 -2
- package/server/package.json +1 -1
- package/server/{pan-dir-BTw4MdSe.js → pan-dir-D3vABXMs.js} +3 -3
- package/server/{paths-Btkc8mzp.js → paths-DIoslfsu.js} +2 -2
- package/server/{pipeline-notifier-3frIvSi3.js → pipeline-notifier-Bgidcelx.js} +1 -1
- package/server/{pipeline-notifier-DTd19f18.js → pipeline-notifier-CuBONomU.js} +2 -2
- package/server/{project-pipelines-B95fcAek.js → project-pipelines-B9b_JVTS.js} +2 -2
- package/server/{projects-Dc9aoVoG.js → projects-DxMUi2eI.js} +1 -1
- package/server/{prompts-CIVmjHxn.js → prompts-CY1xnHS-.js} +2 -2
- package/server/{providers-BLLk5IIb.js → providers-B7BNcK_j.js} +1 -1
- package/server/{providers-C-yWibCk.js → providers-CAlK2If5.js} +7 -7
- package/server/{pull-requests-D7AL5woD.js → pull-requests-Cs4VLxiY.js} +1 -1
- package/server/{pull-requests-NDDNtqNq.js → pull-requests-CxfrQiWX.js} +3 -3
- package/server/{queries-C0LCGG21.js → queries-srgusoi8.js} +59 -59
- package/server/{rally-4oKvnxLG.js → rally-AKkjuGdi.js} +3 -3
- package/server/rally-BOza5j3_.js +3 -0
- package/server/{rally-api-41tT6ikZ.js → rally-api-BGxATnyr.js} +2 -2
- package/server/{rally-api-BsaQ8Vnz.js → rally-api-Dbqw1YW9.js} +1 -1
- package/server/{rally-client-b5PT1x5L.js → rally-client-B1U5ewpO.js} +1 -1
- package/server/{rally-client-Bo4hNcCZ.js → rally-client-D8h73ei_.js} +4 -4
- package/server/{rebuild-stack-Ddv6W017.js → rebuild-stack-BYdtwS6f.js} +5 -5
- package/server/{rebuild-stack-C7JPUom6.js → rebuild-stack-Dsm9WjKv.js} +1 -1
- package/server/{reconstruct-cache-Gqhm---K.js → reconstruct-cache-D7oM1lNv.js} +6 -6
- package/server/{record-DLOqfbkI.js → record-BeXdn9Ue.js} +1 -1
- package/server/{record-update-BltEmPge.js → record-update-Cb_pPM-F.js} +2 -2
- package/server/{record-update-CDp7aTaT.js → record-update-KFiISAmu.js} +1 -1
- package/server/{recovery-trip-Cn7KJVkS.js → recovery-trip-DwbsONZf.js} +2 -2
- package/server/{release-engine-BYzmIBf9.js → release-engine-CAai5W0V.js} +5 -5
- package/server/{release-set-7pnxFOWR.js → release-set-vNEAfyDH.js} +3 -3
- package/server/{remote-Cvu4CSDk.js → remote-8HlOfuF1.js} +3 -3
- package/server/{remote-rN0ecjHE.js → remote-RQMKOL_R.js} +3 -3
- package/server/{remote-agents-C2C6z9tj.js → remote-agents-C4a4DdTj.js} +6 -6
- package/server/{remote-agents-DYY5fFpd.js → remote-agents-_Z1SAaSK.js} +1 -1
- package/server/{remote-completion-2Kb4IDg_.js → remote-completion-CH3igKY8.js} +12 -12
- package/server/resume-Cr34JAXO.js +3 -0
- package/server/{review-agent-BZvk0N5G.js → review-agent-CQ7oRh_G.js} +22 -22
- package/server/{review-agent-CpSHLzed.js → review-agent-CUVj54v0.js} +1 -1
- package/server/{review-artifacts-PCo53YMn.js → review-artifacts-CC3yGv7o.js} +5 -5
- package/server/{review-context-M7QtJlJq.js → review-context-BuxaAgAd.js} +7 -7
- package/server/{review-monitor-BLC5mTTg.js → review-monitor-uogOppaW.js} +2 -2
- package/server/{review-status-77N3PoZr.js → review-status-BoJdyvUQ.js} +1 -1
- package/server/{review-status-DANr0t-v.js → review-status-By86XA6Z.js} +23 -21
- package/server/{review-status-enrichment-DwOg4UfL.js → review-status-enrichment-CRQAO27G.js} +3 -3
- package/server/{review-status-sync-Bd08OOFA.js → review-status-sync-BI4WhUkF.js} +1 -1
- package/server/{review-status-sync-BjTUJ5fx.js → review-status-sync-DUQmrLkK.js} +2 -2
- package/server/{review-verdict-feedback-CBf-J_wS.js → review-verdict-feedback-BNcGkBRD.js} +6 -6
- package/server/{review-verdict-feedback-BsFLjN_6.js → review-verdict-feedback-CWz9_9Kp.js} +1 -1
- package/server/{rollup-DTCCdEy4.js → rollup-B-K6PCbm.js} +1 -1
- package/server/{rollup-Bu0f2EyN.js → rollup-CqiFgtBp.js} +7 -7
- package/server/{scanner-BlZ2vB7j.js → scanner-BZmDUjyD.js} +7 -7
- package/server/{sequence-io-ylyDtz2J.js → sequence-io-BuUx1ZAY.js} +4 -4
- package/server/{sequencer-agent-DsWQ-87H.js → sequencer-agent-2uWOA_BC.js} +5 -5
- package/server/server.js +155 -153
- package/server/{service-CLVBC_1Y.js → service-COB19Uhm.js} +45 -45
- package/server/{session-fork-DlEIAhRy.js → session-fork-D18TscUZ.js} +2 -2
- package/server/{session-history-bnOFKMwf.js → session-history-DbWnzfo-.js} +2 -2
- package/server/settings-C3w2std9.js +2 -0
- package/server/{settings-Cqa-8nyj.js → settings-CFEdfovT.js} +2 -2
- package/server/{settings-gJrdLZy2.js → settings-DNPAf2X_.js} +3 -3
- package/server/{shadow-engineering-fq1YEKV3.js → shadow-engineering-D8xTtraU.js} +2 -2
- package/server/{shadow-state-RptE9Cau.js → shadow-state-CTgub0ME.js} +2 -2
- package/server/{shadow-state-BqeFAygK.js → shadow-state-fRDYhcyx.js} +1 -1
- package/server/{shadow-utils-BMWr5tRT.js → shadow-utils-DqMLnRgQ.js} +2 -2
- package/server/{smart-compaction-DldUel4B.js → smart-compaction-CL6yaFpc.js} +1 -1
- package/server/{smart-compaction-CmoXpjeU.js → smart-compaction-CsJDKM-N.js} +5 -5
- package/server/{spawn-planning-session-DT2tSMxo.js → spawn-planning-session-C_wIQ-Zg.js} +1 -1
- package/server/{spawn-planning-session-CoS6LTc6.js → spawn-planning-session-D0-NlNK1.js} +13 -13
- package/server/{specialist-context-CspI4Eog.js → specialist-context-DXj5Itg8.js} +5 -5
- package/server/{specialist-handoff-logger-Duz9RGvk.js → specialist-handoff-logger-BFH-IB0n.js} +2 -2
- package/server/{specialist-logs-DtSkPJZK.js → specialist-logs-B-rldhNg.js} +3 -3
- package/server/{specialists-Dax7tqXC.js → specialists-C6-b3YZb.js} +81 -81
- package/server/{specialists-CywEMwxk.js → specialists-CI_eqHAz.js} +1 -1
- package/server/{specialists-GF42OOqd.js → specialists-Dp8ABxVh.js} +18 -18
- package/server/{specialists-D9-dMUtI.js → specialists-Hq3EojmD.js} +1 -1
- package/server/specs-DPGNVh51.js +3 -0
- package/server/{stack-health-BsEVrJZ6.js → stack-health-Bxt-oGE6.js} +1 -1
- package/server/{stack-health-C-SnpRHh.js → stack-health-FtNYSTCS.js} +2 -2
- package/server/{stale-task-claims-vTxmRzLi.js → stale-task-claims-DnCHCATD.js} +4 -4
- package/server/{state-home-Bur1y4oH.js → state-home-BzzKVh_C.js} +2 -2
- package/server/{state-migrate-D3VveYfO.js → state-migrate-BS4IybIS.js} +3 -3
- package/server/{stuck-remediation-CaFYYTQW.js → stuck-remediation-CTNT4LUC.js} +1 -1
- package/server/{stuck-remediation-B699-p8v.js → stuck-remediation-DbwhGg3g.js} +15 -15
- package/server/{summary-fork-BxnF8Xh0.js → summary-fork-CloCB8dV.js} +2 -2
- package/server/{summary-fork-COqYpVa3.js → summary-fork-DaCs0tCq.js} +8 -8
- package/server/supervisor/{paths-Bk6hJRH9.js → paths-C1yU0jq4.js} +2 -1
- package/server/supervisor/pty-supervisor.js +2 -2
- package/server/supervisor/{pty-token-BZS5GYdG.js → pty-token-CSryb8Mb.js} +2 -2
- package/server/{supervisor-liMgIPDF.js → supervisor-CRED6PD6.js} +2 -2
- package/server/supervisor-DHwuClN_.js +2 -0
- package/server/{swarm-readiness-sXB1vhzo.js → swarm-readiness-CEOrP9rE.js} +3 -3
- package/server/{teardown-workspace-DvzqnmUF.js → teardown-workspace-Ckn7HGhp.js} +12 -12
- package/server/{test-agent-queue-hAU1Ah08.js → test-agent-queue-C8lE8r2j.js} +5 -5
- package/server/{tldr-daemon-DhGwd88s.js → tldr-daemon-BE5rqR90.js} +1 -1
- package/server/{tldr-daemon-Bam7Xhoo.js → tldr-daemon-CGwDr28O.js} +2 -2
- package/server/{tmux-U55cNGFG.js → tmux-C3X2XmV0.js} +2 -2
- package/server/{tmux-C-rgxRDA.js → tmux-DNaD06Gc.js} +1 -1
- package/server/{tracker-config-OkdbaUCm.js → tracker-config-5Cabf1MU.js} +2 -2
- package/server/{tracker-utils-CghXMF3q.js → tracker-utils-Cl-Eaqrv.js} +2 -2
- package/server/{tracker-utils-DdzUiPNU.js → tracker-utils-FexeJhyf.js} +1 -1
- package/server/{tunnel-DjlzgTl3.js → tunnel-D4px7sKc.js} +1 -1
- package/server/{tunnel-D1YxesBL.js → tunnel-KId6Z59z.js} +2 -2
- package/server/{uat-train-CqN34zFx.js → uat-train-B16skN7L.js} +23 -23
- package/server/{uat-train-CaaWs9Rp.js → uat-train-BBMrnecu.js} +1 -1
- package/server/{validation-DpTNakM6.js → validation-Zc4kAmqa.js} +1 -1
- package/server/{validation-4-z2Cw4z.js → validation-xAD7y5vW.js} +3 -3
- package/server/{verification-runner-BjHN80pJ.js → verification-runner-32y8NRfL.js} +13 -13
- package/server/{verification-runner-ShYu5Ph3.js → verification-runner-DAat1p1u.js} +1 -1
- package/server/{work-agent-prompt-BiJ43Der.js → work-agent-prompt-S3Fe1kpV.js} +9 -9
- package/server/{workflows-DkTotz_m.js → workflows-BNvk5gbE.js} +12 -12
- package/server/workflows-Cw2-a_hn.js +2 -0
- package/server/{workspace-CuN0ev4Z.js → workspace-BhUnCpcq.js} +3 -3
- package/server/{workspace-DQ4vVivd.js → workspace-C-gP6JAz.js} +1 -1
- package/server/{workspace-manager-Beeo2aKF.js → workspace-manager-BKiMmb0c.js} +10 -10
- package/server/{workspace-manager-B1mYn0lN.js → workspace-manager-DD6PDqV8.js} +1 -1
- package/server/{workspace-metadata-BZC5BmoP.js → workspace-metadata-Cnq0snrf.js} +2 -2
- package/server/{workspace-metadata-Cy7_ZACL.js → workspace-metadata-D5gNR61G.js} +1 -1
- package/server/{workspaces-CGuzW1Ia.js → workspaces-DiAwBsb9.js} +91 -91
- package/sync-sources/hooks/record-cost-event.js +1 -1
- package/sync-sources/hooks/record-cost-event.js.map +1 -1
- package/server/cli-BFgrSWKV.js +0 -3
- package/server/deacon-swarm-CKyGJng1.js +0 -2
- package/server/forge-DJy3Zx4s.js +0 -2
- package/server/inspect-agent-DCJQm9Wu.js +0 -2
- package/server/merge-ops-h9OCnIVz.js +0 -2
- package/server/rally-DF5a3ioP.js +0 -3
- package/server/resume-BFLl-yLn.js +0 -3
- package/server/settings-CP3GGon2.js +0 -2
- package/server/specs-VwcFtEDi.js +0 -3
- package/server/supervisor-eWAAmXKu.js +0 -2
- package/server/workflows-B4C3lY9E.js +0 -2
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import { i as __require, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { $r as sessionFilePath, Cr as AGENTS_DIR, En as getIssuePrefix, Fn as init_projects, Mr as OVERDECK_HOME, Nt as readIssueRecordForWorkspaceSync, Pt as readIssueRecordSync, Sr as init_errors, Yr as init_paths, cn as init_state_plane, f as loadConfigSync, in as reconcileStatePlaneDrift, kn as getProjectSync, kt as init_record, nn as init_auto_commit, on as STATE_PLANE_PATHS, qn as resolveProjectFromIssueSync, s as init_load, sn as getMainDivergence, un as isStatePlanePath, zn as listProjectsSync } from "./config-yaml-
|
|
2
|
+
import { $r as sessionFilePath, Cr as AGENTS_DIR, En as getIssuePrefix, Fn as init_projects, Mr as OVERDECK_HOME, Nt as readIssueRecordForWorkspaceSync, Pt as readIssueRecordSync, Sr as init_errors, Yr as init_paths, cn as init_state_plane, f as loadConfigSync, in as reconcileStatePlaneDrift, kn as getProjectSync, kt as init_record, nn as init_auto_commit, on as STATE_PLANE_PATHS, qn as resolveProjectFromIssueSync, s as init_load, sn as getMainDivergence, un as isStatePlanePath, zn as listProjectsSync } from "./config-yaml-BQs6GbD_.js";
|
|
3
3
|
import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
|
|
4
|
-
import { n as updateIssueRecord, t as init_record_update } from "./record-update-
|
|
5
|
-
import { A as listSessions, D as listPaneValues, F as sendKeys, I as sendKeysAsync, R as sessionExists, S as init_tmux, T as killSession, i as capturePane, k as listSessionNames, w as isPaneDead, z as sessionExistsSync } from "./tmux-
|
|
6
|
-
import { a as init_event_store, i as initEventStore } from "./event-store-
|
|
7
|
-
import { S as needsReviewDispatch, c as init_review_status, h as reviewGatesPassedSync, s as getReviewStatusSync, u as loadReviewStatuses, x as init_review_dispatch_decision, y as setReviewStatusSync } from "./review-status-
|
|
8
|
-
import { c as listAllAgentsSync, d as isTerminalIssueStage, o as init_agents, u as getIssueStageSync } from "./agents-
|
|
9
|
-
import { Dt as captureTranscriptUserRecordSnapshot, F as isContextOverflowTail, Fn as getAgentStateSync, In as init_agent_state, Jn as saveAgentState, M as resumeAgent, N as init_context_overflow, Nn as getAgentState, On as clearAgentTroubledSync, Ot as init_transcript_landing, Q as stopAgent, Qn as setAgentYieldedSync, Sr as paneShowsCodexAuthBurn, Vn as markAgentRunningState, Wn as recordAgentFailure, Yn as saveAgentStateSync, Z as init_termination, Zn as setAgentPausedSync, _n as buildDefaultResumeContinueMessage, _t as init_config, a as listRunningAgentsSync, at as init_concurrency, ct as resetPatrolDispatchBudget, dt as workResumeSlotsAvailable, et as countRunningAgents, gr as saveAgentRuntimeState, hr as init_runtime_state, i as listRunningAgents, it as getConcurrencyLimits, jn as getAgentDir, kn as clearYieldForResumeSync, lt as tryReserveAdvancingSlot, mr as getAgentRuntimeStateSync, mt as setCachedMemoryVerdict, n as init_queries, nt as describeRunningAgents, ot as releaseAdvancingSlot, pr as getAgentRuntimeState, pt as init_memory_verdict_cache, qn as resetAgentFailureCount, r as listAgentStates, s as init_agents$1, vt as loadCloisterConfig, wt as deliverInitialPromptWithRetry, xr as init_codex_auth, yr as applyCodexAuthBurnFlag, yt as loadCloisterConfigSync } from "./queries-
|
|
10
|
-
import { c as logDeaconEventSync, o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-
|
|
11
|
-
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-
|
|
4
|
+
import { n as updateIssueRecord, t as init_record_update } from "./record-update-Cb_pPM-F.js";
|
|
5
|
+
import { A as listSessions, D as listPaneValues, F as sendKeys, I as sendKeysAsync, R as sessionExists, S as init_tmux, T as killSession, i as capturePane, k as listSessionNames, w as isPaneDead, z as sessionExistsSync } from "./tmux-C3X2XmV0.js";
|
|
6
|
+
import { a as init_event_store, i as initEventStore } from "./event-store-D4s6eQ6o.js";
|
|
7
|
+
import { S as needsReviewDispatch, c as init_review_status, h as reviewGatesPassedSync, s as getReviewStatusSync, u as loadReviewStatuses, x as init_review_dispatch_decision, y as setReviewStatusSync } from "./review-status-By86XA6Z.js";
|
|
8
|
+
import { c as listAllAgentsSync, d as isTerminalIssueStage, o as init_agents, u as getIssueStageSync } from "./agents--ljN-wVY.js";
|
|
9
|
+
import { Dt as captureTranscriptUserRecordSnapshot, F as isContextOverflowTail, Fn as getAgentStateSync, In as init_agent_state, Jn as saveAgentState, M as resumeAgent, N as init_context_overflow, Nn as getAgentState, On as clearAgentTroubledSync, Ot as init_transcript_landing, Q as stopAgent, Qn as setAgentYieldedSync, Sr as paneShowsCodexAuthBurn, Vn as markAgentRunningState, Wn as recordAgentFailure, Yn as saveAgentStateSync, Z as init_termination, Zn as setAgentPausedSync, _n as buildDefaultResumeContinueMessage, _t as init_config, a as listRunningAgentsSync, at as init_concurrency, ct as resetPatrolDispatchBudget, dt as workResumeSlotsAvailable, et as countRunningAgents, gr as saveAgentRuntimeState, hr as init_runtime_state, i as listRunningAgents, it as getConcurrencyLimits, jn as getAgentDir, kn as clearYieldForResumeSync, lt as tryReserveAdvancingSlot, mr as getAgentRuntimeStateSync, mt as setCachedMemoryVerdict, n as init_queries, nt as describeRunningAgents, ot as releaseAdvancingSlot, pr as getAgentRuntimeState, pt as init_memory_verdict_cache, qn as resetAgentFailureCount, r as listAgentStates, s as init_agents$1, vt as loadCloisterConfig, wt as deliverInitialPromptWithRetry, xr as init_codex_auth, yr as applyCodexAuthBurnFlag, yt as loadCloisterConfigSync } from "./queries-srgusoi8.js";
|
|
10
|
+
import { c as logDeaconEventSync, o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-DbWnzfo-.js";
|
|
11
|
+
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Cl-Eaqrv.js";
|
|
12
12
|
import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-Ci0pkac4.js";
|
|
13
|
-
import { c as init_review_status_sync, l as markWorkspaceStuck } from "./review-status-sync-
|
|
14
|
-
import { m as readWorkspacePlanSync, o as init_io } from "./io-
|
|
15
|
-
import { f as init_config$1, m as loadConfigSync$1, p as loadConfig$1 } from "./config-
|
|
16
|
-
import { T as stampBootReconciliation, h as setBootReconciliationDecision, l as isDeaconGloballyPaused, r as getBootReconciliationState, s as init_control_settings } from "./control-settings-
|
|
17
|
-
import { c as init_docker_stats, s as DockerStatsCollector } from "./stack-health-
|
|
18
|
-
import { l as init_dag, o as getDispatchableItems } from "./dag-
|
|
19
|
-
import { a as findRecreatedLegacyStatePaths, o as init_state_home } from "./state-home-
|
|
20
|
-
import { a as isAgentIdleForNudge, t as checkStuckAgentRemediation } from "./stuck-remediation-
|
|
13
|
+
import { c as init_review_status_sync, l as markWorkspaceStuck } from "./review-status-sync-DUQmrLkK.js";
|
|
14
|
+
import { m as readWorkspacePlanSync, o as init_io } from "./io-Cv9xQTks.js";
|
|
15
|
+
import { f as init_config$1, m as loadConfigSync$1, p as loadConfig$1 } from "./config-Cntj_tFu.js";
|
|
16
|
+
import { T as stampBootReconciliation, h as setBootReconciliationDecision, l as isDeaconGloballyPaused, r as getBootReconciliationState, s as init_control_settings } from "./control-settings-bxOCLsuE.js";
|
|
17
|
+
import { c as init_docker_stats, s as DockerStatsCollector } from "./stack-health-FtNYSTCS.js";
|
|
18
|
+
import { l as init_dag, o as getDispatchableItems } from "./dag-ClFr7Bah.js";
|
|
19
|
+
import { a as findRecreatedLegacyStatePaths, o as init_state_home } from "./state-home-BzzKVh_C.js";
|
|
20
|
+
import { a as isAgentIdleForNudge, t as checkStuckAgentRemediation } from "./stuck-remediation-DbwhGg3g.js";
|
|
21
21
|
import { n as __filename, r as init_esm_shims } from "./esm-shims-Cso7IGBC.js";
|
|
22
22
|
import { t as recordDeaconNudge } from "./deacon-nudge-log-ilDfxrhK.js";
|
|
23
|
-
import { n as init_review_monitor, t as REVIEW_SUB_ROLES } from "./review-monitor-
|
|
24
|
-
import { O as init_specialists, R as parseReviewerSessionName, T as getTmuxSessionName, d as getAllProjectSpecialistStatuses } from "./specialists-
|
|
25
|
-
import { a as inferBranchFromWorkspace, i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-
|
|
26
|
-
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-
|
|
27
|
-
import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-
|
|
28
|
-
import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-
|
|
23
|
+
import { n as init_review_monitor, t as REVIEW_SUB_ROLES } from "./review-monitor-uogOppaW.js";
|
|
24
|
+
import { O as init_specialists, R as parseReviewerSessionName, T as getTmuxSessionName, d as getAllProjectSpecialistStatuses } from "./specialists-Dp8ABxVh.js";
|
|
25
|
+
import { a as inferBranchFromWorkspace, i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-BW3te5Vw.js";
|
|
26
|
+
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-CyqtoFUj.js";
|
|
27
|
+
import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-C4WMP40D.js";
|
|
28
|
+
import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-BNcGkBRD.js";
|
|
29
29
|
import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-CZYB3dlm.js";
|
|
30
|
-
import { g as decideAgentAutonomousRedrive, r as coordinateSwarmSlots, y as listFeatureWorkspaces } from "./deacon-swarm-
|
|
31
|
-
import { t as recordRecoveryFailure } from "./recovery-trip-
|
|
30
|
+
import { g as decideAgentAutonomousRedrive, r as coordinateSwarmSlots, y as listFeatureWorkspaces } from "./deacon-swarm-yWKQhxiX.js";
|
|
31
|
+
import { t as recordRecoveryFailure } from "./recovery-trip-DwbsONZf.js";
|
|
32
32
|
import { n as isExplicitNoResumeRequest, t as init_no_resume_mode } from "./no-resume-mode-Gh5R_YLF.js";
|
|
33
|
-
import { n as reconcileClosedIssueAgents } from "./closed-issue-reaper-
|
|
33
|
+
import { n as reconcileClosedIssueAgents } from "./closed-issue-reaper-BsJ3JqQy.js";
|
|
34
34
|
import { a as RELEASED_LABEL, i as READY_LABEL, n as OBJECTION_LABEL, o as VETOED_LABEL, r as PARKED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-BtvRBbvI.js";
|
|
35
|
-
import { n as pruneTerminalStoppedAgents } from "./agent-gc-
|
|
36
|
-
import { a as spawnWorkAgentThroughAgentsEndpoint, i as reconcileOrphanProposedSpecs, o as triggerRebuildAndStart } from "./orphan-proposed-reconciler-
|
|
37
|
-
import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-
|
|
35
|
+
import { n as pruneTerminalStoppedAgents } from "./agent-gc-ClNQLl_V.js";
|
|
36
|
+
import { a as spawnWorkAgentThroughAgentsEndpoint, i as reconcileOrphanProposedSpecs, o as triggerRebuildAndStart } from "./orphan-proposed-reconciler-k9eydM1E.js";
|
|
37
|
+
import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-po700Lfg.js";
|
|
38
38
|
import { i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-CXMLATGc.js";
|
|
39
39
|
import { createRequire } from "node:module";
|
|
40
40
|
import { join } from "node:path";
|
|
@@ -22541,7 +22541,7 @@ async function checkInspectAgentTimeouts(now = /* @__PURE__ */ new Date()) {
|
|
|
22541
22541
|
console.warn(`[deacon] Failed to kill inspect session ${sessionName}: ${msg}`);
|
|
22542
22542
|
});
|
|
22543
22543
|
try {
|
|
22544
|
-
const { messageAgent } = await import("./agents-
|
|
22544
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
22545
22545
|
await messageAgent(`agent-${issueId.toLowerCase()}`, verdict, "deacon:inspect-watchdog");
|
|
22546
22546
|
} catch (err) {
|
|
22547
22547
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -22693,7 +22693,7 @@ async function maybeProactivelyCompactContext(sessionName, now) {
|
|
|
22693
22693
|
if (!agentState?.workspace || !sessionId || !agentState.model) return null;
|
|
22694
22694
|
let usage = null;
|
|
22695
22695
|
try {
|
|
22696
|
-
const { computeContextUsage } = await import("./conversation-service-
|
|
22696
|
+
const { computeContextUsage } = await import("./conversation-service-BVt4MQ1_.js");
|
|
22697
22697
|
usage = await computeContextUsage(sessionFilePath(agentState.workspace, sessionId), agentState.model);
|
|
22698
22698
|
} catch {
|
|
22699
22699
|
return null;
|
|
@@ -22803,13 +22803,13 @@ async function checkApiErrorAgents() {
|
|
|
22803
22803
|
const st = getAgentStateSync(sessionName);
|
|
22804
22804
|
const sid = st?.sessionId ?? runtimeState?.claudeSessionId;
|
|
22805
22805
|
if (st?.workspace && sid && st.model) {
|
|
22806
|
-
const { computeContextUsage } = await import("./conversation-service-
|
|
22806
|
+
const { computeContextUsage } = await import("./conversation-service-BVt4MQ1_.js");
|
|
22807
22807
|
const usage = await computeContextUsage(sessionFilePath(st.workspace, sid), st.model);
|
|
22808
22808
|
if (usage && usage.percentUsed < 85) recoveredPct = usage.percentUsed;
|
|
22809
22809
|
}
|
|
22810
22810
|
} catch {}
|
|
22811
22811
|
if (recoveredPct !== null) {
|
|
22812
|
-
const { clearWorkspaceStuck } = await import("./review-status-sync-
|
|
22812
|
+
const { clearWorkspaceStuck } = await import("./review-status-sync-BI4WhUkF.js");
|
|
22813
22813
|
clearWorkspaceStuck(issueId);
|
|
22814
22814
|
stuckOverflowNativeRecoveryState.delete(sessionName);
|
|
22815
22815
|
actions.push(`Context overflow recovery: cleared stuck flag for ${sessionName} (context back to ${Math.round(recoveredPct)}%)`);
|
|
@@ -22825,7 +22825,7 @@ async function checkApiErrorAgents() {
|
|
|
22825
22825
|
rec.attempts += 1;
|
|
22826
22826
|
rec.lastAttempt = now;
|
|
22827
22827
|
stuckOverflowNativeRecoveryState.set(sessionName, rec);
|
|
22828
|
-
const { resumeAgent } = await import("./agents-
|
|
22828
|
+
const { resumeAgent } = await import("./agents-DAUyr_Z1.js");
|
|
22829
22829
|
const recovered = await resumeAgent(sessionName, void 0, { compact: true });
|
|
22830
22830
|
if (recovered.success) {
|
|
22831
22831
|
stuckOverflowNativeRecoveryState.delete(sessionName);
|
|
@@ -22873,7 +22873,7 @@ async function checkApiErrorAgents() {
|
|
|
22873
22873
|
}
|
|
22874
22874
|
const compactAttempts = (ov?.compactAttempts ?? 0) + 1;
|
|
22875
22875
|
if (issueId !== null) {
|
|
22876
|
-
const { resumeAgent } = await import("./agents-
|
|
22876
|
+
const { resumeAgent } = await import("./agents-DAUyr_Z1.js");
|
|
22877
22877
|
const resumeResult = await resumeAgent(sessionName, void 0, { compact: true });
|
|
22878
22878
|
contextOverflowRecoveryState.set(sessionName, {
|
|
22879
22879
|
lastAttempt: now,
|
|
@@ -23240,7 +23240,7 @@ function reviewConvoyLiveness(issueId) {
|
|
|
23240
23240
|
*/
|
|
23241
23241
|
async function recoverUnhealthyTestStack(issueId, workspacePath) {
|
|
23242
23242
|
const key = issueId.toUpperCase();
|
|
23243
|
-
const { getWorkspaceStackHealth } = await import("./stack-health-
|
|
23243
|
+
const { getWorkspaceStackHealth } = await import("./stack-health-Bxt-oGE6.js");
|
|
23244
23244
|
const health = await Effect.runPromise(getWorkspaceStackHealth(issueId, { workspacePath }));
|
|
23245
23245
|
if (health.healthy) {
|
|
23246
23246
|
testStackRebuildState.delete(key);
|
|
@@ -23272,7 +23272,7 @@ async function recoverUnhealthyTestStack(issueId, workspacePath) {
|
|
|
23272
23272
|
record.attempts += 1;
|
|
23273
23273
|
testStackRebuildState.set(key, record);
|
|
23274
23274
|
console.log(`[deacon] Test stack for ${key} unhealthy (${health.reasons.join("; ")}) — rebuilding (attempt ${record.attempts}/${TEST_STACK_REBUILD_MAX_ATTEMPTS})`);
|
|
23275
|
-
const { rebuildWorkspaceStack } = await import("./rebuild-stack-
|
|
23275
|
+
const { rebuildWorkspaceStack } = await import("./rebuild-stack-Dsm9WjKv.js");
|
|
23276
23276
|
const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[deacon] ${key} stack rebuild: ${m}`) }));
|
|
23277
23277
|
if (!result.success) {
|
|
23278
23278
|
console.warn(`[deacon] Test stack rebuild failed for ${key}: ${result.error}`);
|
|
@@ -23437,7 +23437,7 @@ async function handleReviewCoordinatorDied(issueId, _sessionName, _reason) {
|
|
|
23437
23437
|
return actions;
|
|
23438
23438
|
}
|
|
23439
23439
|
try {
|
|
23440
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
23440
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
|
|
23441
23441
|
const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
23442
23442
|
issueId,
|
|
23443
23443
|
workspace,
|
|
@@ -23567,7 +23567,7 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
|
|
|
23567
23567
|
const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
|
|
23568
23568
|
if (workspace && resolved && !tryReserveAdvancingSlot() && !await tryYieldForAdvancingDispatch("review", issueId)) actions.push(`Deferred review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
|
|
23569
23569
|
else if (workspace && resolved) try {
|
|
23570
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
23570
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
|
|
23571
23571
|
const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
23572
23572
|
issueId,
|
|
23573
23573
|
workspace,
|
|
@@ -23592,8 +23592,8 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
|
|
|
23592
23592
|
const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
|
|
23593
23593
|
if (workspace && resolved) {
|
|
23594
23594
|
const branch = `feature/${issueLower}`;
|
|
23595
|
-
const { spawnRun } = await import("./agents-
|
|
23596
|
-
const { buildTestRolePrompt } = await import("./test-agent-queue-
|
|
23595
|
+
const { spawnRun } = await import("./agents-DAUyr_Z1.js");
|
|
23596
|
+
const { buildTestRolePrompt } = await import("./test-agent-queue-C8lE8r2j.js");
|
|
23597
23597
|
const stackRecovery = await recoverUnhealthyTestStack(issueId, workspace);
|
|
23598
23598
|
if (stackRecovery === "cooldown" || stackRecovery === "exhausted") {
|
|
23599
23599
|
setReviewStatusSync(issueId, { testStatus: "dispatch_failed" });
|
|
@@ -23731,7 +23731,7 @@ async function recoverStalledReviewConvoys(getCanonicalState = getAutoCloseOutCa
|
|
|
23731
23731
|
record.lastAttempt = now;
|
|
23732
23732
|
record.attempts += 1;
|
|
23733
23733
|
stalledReviewConvoyRecoveryState.set(key, record);
|
|
23734
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
23734
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
|
|
23735
23735
|
try {
|
|
23736
23736
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
23737
23737
|
issueId,
|
|
@@ -23802,7 +23802,7 @@ async function checkMissingReviewStatuses() {
|
|
|
23802
23802
|
continue;
|
|
23803
23803
|
}
|
|
23804
23804
|
try {
|
|
23805
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
23805
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
|
|
23806
23806
|
await Effect.runPromise(spawnReviewRoleForIssue({
|
|
23807
23807
|
issueId,
|
|
23808
23808
|
workspace,
|
|
@@ -23853,7 +23853,7 @@ async function checkStuckReviewing() {
|
|
|
23853
23853
|
const actions = [];
|
|
23854
23854
|
const REVIEW_STUCK_THRESHOLD_MS = 1800 * 1e3;
|
|
23855
23855
|
try {
|
|
23856
|
-
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-
|
|
23856
|
+
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-BoJdyvUQ.js");
|
|
23857
23857
|
const statuses = loadReviewStatuses();
|
|
23858
23858
|
const now = Date.now();
|
|
23859
23859
|
const activeReviewIssues = /* @__PURE__ */ new Set();
|
|
@@ -23869,7 +23869,7 @@ async function checkStuckReviewing() {
|
|
|
23869
23869
|
if (rState?.state === "active" && rState.currentIssue) activeReviewIssues.add(rState.currentIssue.toUpperCase());
|
|
23870
23870
|
}
|
|
23871
23871
|
try {
|
|
23872
|
-
const { listRunningAgents } = await import("./agents-
|
|
23872
|
+
const { listRunningAgents } = await import("./agents-DAUyr_Z1.js");
|
|
23873
23873
|
const agents = await Effect.runPromise(listRunningAgents());
|
|
23874
23874
|
for (const agent of agents) {
|
|
23875
23875
|
if (agent.status === "stopped" || agent.status === "error") continue;
|
|
@@ -24002,7 +24002,7 @@ async function checkCompletedButUnsignaledReviews() {
|
|
|
24002
24002
|
}
|
|
24003
24003
|
const nudge = `Your review synthesis is already written and saved. Your ONLY remaining task is to execute this Bash command immediately — do not analyze, do not summarize, do not ask questions, just run it:\n\n${`pan admin specialists done review ${issueId} --status ${verdict}${verdict === "blocked" || verdict === "failed" ? ` --notes "${topBlocker || "See synthesis.md"}"` : ""}`}\n\nRun this command NOW. Do not write any other response before executing it.`;
|
|
24004
24004
|
try {
|
|
24005
|
-
const { messageAgent } = await import("./agents-
|
|
24005
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
24006
24006
|
await messageAgent(reviewSession, nudge);
|
|
24007
24007
|
unsignaledReviewNudges.set(latestDir, now);
|
|
24008
24008
|
actions.push(`Nudged ${reviewSession} to signal ${verdict} (synthesis written ${Math.round((now - latestMtime) / 6e4)}min ago)`);
|
|
@@ -24124,7 +24124,7 @@ async function respawnIdleReviewer(state, agentId) {
|
|
|
24124
24124
|
return false;
|
|
24125
24125
|
}
|
|
24126
24126
|
try {
|
|
24127
|
-
const { spawnReviewSubRoleForIssue } = await import("./review-agent-
|
|
24127
|
+
const { spawnReviewSubRoleForIssue } = await import("./review-agent-CUVj54v0.js");
|
|
24128
24128
|
const contextManifestPath = join$1(dirname$1(outputPath), "context.json");
|
|
24129
24129
|
const result = await Effect.runPromise(spawnReviewSubRoleForIssue({
|
|
24130
24130
|
issueId: state.issueId,
|
|
@@ -24253,7 +24253,7 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
|
|
|
24253
24253
|
"Read the four reports, write synthesis.md, then signal review status exactly as roles/review.md instructs."
|
|
24254
24254
|
].join("\n");
|
|
24255
24255
|
try {
|
|
24256
|
-
const { messageAgent } = await import("./agents-
|
|
24256
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
24257
24257
|
await messageAgent(state.id, message);
|
|
24258
24258
|
reviewReportsPresentNudges.set(nudgeKey, now);
|
|
24259
24259
|
const action = `Nudged ${state.id} to synthesize from ${REVIEW_SUB_ROLES.length} reviewer reports`;
|
|
@@ -24339,7 +24339,7 @@ async function monitorReviewConvoySignals() {
|
|
|
24339
24339
|
if (!signal) continue;
|
|
24340
24340
|
const message = signal === "ready" ? `REVIEWER_READY ${state.reviewSubRole} ${outputPath}` : signal === "timeout" ? `REVIEWER_TIMEOUT ${state.reviewSubRole} ${reason}` : `REVIEWER_FAILED ${state.reviewSubRole} ${reason}`;
|
|
24341
24341
|
try {
|
|
24342
|
-
const { messageAgent } = await import("./agents-
|
|
24342
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
24343
24343
|
await messageAgent(state.reviewSynthesisAgentId, message);
|
|
24344
24344
|
state.reviewMonitorSignaled = signal;
|
|
24345
24345
|
saveAgentStateSync(state);
|
|
@@ -24347,7 +24347,7 @@ async function monitorReviewConvoySignals() {
|
|
|
24347
24347
|
actions.push(action);
|
|
24348
24348
|
logDeaconEventSync(`monitorReviewConvoySignals: ${action}`);
|
|
24349
24349
|
if (signal === "ready") try {
|
|
24350
|
-
const { notifyPipelineSync } = await import("./pipeline-notifier-
|
|
24350
|
+
const { notifyPipelineSync } = await import("./pipeline-notifier-Bgidcelx.js");
|
|
24351
24351
|
notifyPipelineSync({
|
|
24352
24352
|
type: "reviewer_completed",
|
|
24353
24353
|
issueId: state.issueId,
|
|
@@ -24355,7 +24355,7 @@ async function monitorReviewConvoySignals() {
|
|
|
24355
24355
|
});
|
|
24356
24356
|
} catch {}
|
|
24357
24357
|
else if (signal === "timeout") try {
|
|
24358
|
-
const { notifyPipelineSync } = await import("./pipeline-notifier-
|
|
24358
|
+
const { notifyPipelineSync } = await import("./pipeline-notifier-Bgidcelx.js");
|
|
24359
24359
|
notifyPipelineSync({
|
|
24360
24360
|
type: "reviewer_timed_out",
|
|
24361
24361
|
issueId: state.issueId,
|
|
@@ -24455,7 +24455,7 @@ const FORK_CACHE_CHECK_DELAY_MS = 180 * 1e3;
|
|
|
24455
24455
|
async function checkStalledReviewDiscovery() {
|
|
24456
24456
|
const actions = [];
|
|
24457
24457
|
try {
|
|
24458
|
-
const { listAgentStates } = await import("./agents-
|
|
24458
|
+
const { listAgentStates } = await import("./agents-DAUyr_Z1.js");
|
|
24459
24459
|
const states = listAgentStates();
|
|
24460
24460
|
const now = Date.now();
|
|
24461
24461
|
for (const state of states) {
|
|
@@ -24464,7 +24464,7 @@ async function checkStalledReviewDiscovery() {
|
|
|
24464
24464
|
const aged = Number.isFinite(startedMs) && now - startedMs > 48e4;
|
|
24465
24465
|
const dead = !await Effect.runPromise(sessionExists(state.id)).catch(() => false) || await Effect.runPromise(isPaneDead(state.id)).catch(() => true);
|
|
24466
24466
|
if (!aged && !dead) continue;
|
|
24467
|
-
const { handleReviewDiscoveryReady } = await import("./review-agent-
|
|
24467
|
+
const { handleReviewDiscoveryReady } = await import("./review-agent-CUVj54v0.js");
|
|
24468
24468
|
const result = await handleReviewDiscoveryReady(state.issueId, { source: dead ? "deacon-backstop (parent dead)" : "deacon-backstop (discovery timeout)" });
|
|
24469
24469
|
actions.push(result.message);
|
|
24470
24470
|
logDeaconEventSync(`checkStalledReviewDiscovery: ${result.message}`);
|
|
@@ -24487,8 +24487,8 @@ async function checkStalledReviewDiscovery() {
|
|
|
24487
24487
|
async function checkStalledReviewParents() {
|
|
24488
24488
|
const actions = [];
|
|
24489
24489
|
try {
|
|
24490
|
-
const { listAgentStates, markAgentStoppedState } = await import("./agents-
|
|
24491
|
-
const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-
|
|
24490
|
+
const { listAgentStates, markAgentStoppedState } = await import("./agents-DAUyr_Z1.js");
|
|
24491
|
+
const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-CUVj54v0.js");
|
|
24492
24492
|
const states = listAgentStates();
|
|
24493
24493
|
const now = Date.now();
|
|
24494
24494
|
for (const state of states) {
|
|
@@ -24537,8 +24537,8 @@ async function checkStalledReviewParents() {
|
|
|
24537
24537
|
async function checkReviewForkCacheMisses() {
|
|
24538
24538
|
const actions = [];
|
|
24539
24539
|
try {
|
|
24540
|
-
const { listAgentStates, saveAgentState } = await import("./agents-
|
|
24541
|
-
const { readEventsSync } = await import("./events-
|
|
24540
|
+
const { listAgentStates, saveAgentState } = await import("./agents-DAUyr_Z1.js");
|
|
24541
|
+
const { readEventsSync } = await import("./events-Bn-wdUBF.js");
|
|
24542
24542
|
const { emitActivityEntrySync } = await import("./activity-logger-DvYvFhwZ.js");
|
|
24543
24543
|
const states = listAgentStates();
|
|
24544
24544
|
const now = Date.now();
|
|
@@ -24685,7 +24685,7 @@ async function reconcileStaleMergeStatus() {
|
|
|
24685
24685
|
if (!project) continue;
|
|
24686
24686
|
let specStatus;
|
|
24687
24687
|
try {
|
|
24688
|
-
const { findSpecByIssue } = await import("./specs-
|
|
24688
|
+
const { findSpecByIssue } = await import("./specs-DPGNVh51.js");
|
|
24689
24689
|
const spec = await Effect.runPromise(findSpecByIssue(project.projectPath, issueId));
|
|
24690
24690
|
specStatus = spec?.status;
|
|
24691
24691
|
if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
|
|
@@ -24700,7 +24700,7 @@ async function reconcileStaleMergeStatus() {
|
|
|
24700
24700
|
if (branchTip.stdout.trim() === mainTip.stdout.trim()) console.log(`[deacon] ${issueId}: branch ${branch} points at main; not treating zero-commit branch as merged`);
|
|
24701
24701
|
} catch {}
|
|
24702
24702
|
if (!isMerged) {
|
|
24703
|
-
const { resolveGitHubIssueSync: _resolveGitHubIssue } = await import("./tracker-utils-
|
|
24703
|
+
const { resolveGitHubIssueSync: _resolveGitHubIssue } = await import("./tracker-utils-FexeJhyf.js");
|
|
24704
24704
|
const ghResolved = _resolveGitHubIssue(issueId);
|
|
24705
24705
|
if (ghResolved.isGitHub) try {
|
|
24706
24706
|
const { stdout } = await execFileAsync$4("gh", [
|
|
@@ -24737,7 +24737,7 @@ async function reconcileStaleMergeStatus() {
|
|
|
24737
24737
|
actions.push(msg);
|
|
24738
24738
|
console.log(`[deacon] ${msg}`);
|
|
24739
24739
|
try {
|
|
24740
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
24740
|
+
const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
|
|
24741
24741
|
postMergeLifecycle(issueId, project.projectPath, branch, { skipDeploy: true }).catch((err) => console.warn(`[deacon] postMergeLifecycle (reconcile) failed for ${issueId}: ${err}`));
|
|
24742
24742
|
} catch (err) {
|
|
24743
24743
|
console.warn(`[deacon] Could not import postMergeLifecycle: ${err}`);
|
|
@@ -24762,7 +24762,7 @@ const falseMergedReset = /* @__PURE__ */ new Set();
|
|
|
24762
24762
|
async function reconcileFalseMerged() {
|
|
24763
24763
|
const actions = [];
|
|
24764
24764
|
try {
|
|
24765
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
24765
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
|
|
24766
24766
|
if (!isGitHubAppConfigured()) return actions;
|
|
24767
24767
|
const statuses = loadReviewStatuses();
|
|
24768
24768
|
for (const [issueId, status] of Object.entries(statuses)) {
|
|
@@ -24807,7 +24807,7 @@ const CLOSED_PR_RECONCILE_COOLDOWN_MS = 600 * 1e3;
|
|
|
24807
24807
|
async function reconcileClosedPrReadyForMerge() {
|
|
24808
24808
|
const actions = [];
|
|
24809
24809
|
try {
|
|
24810
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
24810
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
|
|
24811
24811
|
if (!isGitHubAppConfigured()) return actions;
|
|
24812
24812
|
const statuses = loadReviewStatuses();
|
|
24813
24813
|
const now = Date.now();
|
|
@@ -24879,7 +24879,7 @@ const STALE_MERGE_BLOCKER_COOLDOWN_MS = 120 * 1e3;
|
|
|
24879
24879
|
async function reconcileStaleMergeBlockers() {
|
|
24880
24880
|
const actions = [];
|
|
24881
24881
|
try {
|
|
24882
|
-
const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-
|
|
24882
|
+
const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-BE6JdfkO.js");
|
|
24883
24883
|
const statuses = loadReviewStatuses();
|
|
24884
24884
|
const now = Date.now();
|
|
24885
24885
|
const deps = buildRealConflictGateDeps();
|
|
@@ -25022,7 +25022,7 @@ async function checkFailedMergeRetry() {
|
|
|
25022
25022
|
if (ciEntry.count === 5) {
|
|
25023
25023
|
console.log(`[deacon] CI check failure for ${issueId} — retries exhausted, notifying work agent`);
|
|
25024
25024
|
const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
|
|
25025
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
25025
|
+
const { writeFeedbackFile } = await import("./feedback-writer-BtaoJGl2.js");
|
|
25026
25026
|
const ciFileResult = await Effect.runPromise(writeFeedbackFile({
|
|
25027
25027
|
issueId,
|
|
25028
25028
|
specialist: "merge-agent",
|
|
@@ -25054,7 +25054,7 @@ async function checkFailedMergeRetry() {
|
|
|
25054
25054
|
ciRetryMap.set(issueId, ciEntry);
|
|
25055
25055
|
console.log(`[deacon] CI check failure for ${issueId} — notifying agent to re-submit (attempt ${ciEntry.count}/5)`);
|
|
25056
25056
|
const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
|
|
25057
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
25057
|
+
const { writeFeedbackFile } = await import("./feedback-writer-BtaoJGl2.js");
|
|
25058
25058
|
const ciFileResult2 = await Effect.runPromise(writeFeedbackFile({
|
|
25059
25059
|
issueId,
|
|
25060
25060
|
specialist: "merge-agent",
|
|
@@ -25082,7 +25082,7 @@ async function checkFailedMergeRetry() {
|
|
|
25082
25082
|
const lastNudge = timeoutNudgeCooldowns.get(issueIdForFb);
|
|
25083
25083
|
if (!lastNudge || now - lastNudge >= TIMEOUT_NUDGE_COOLDOWN_MS) {
|
|
25084
25084
|
const timeoutNotes = status.mergeNotes;
|
|
25085
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
25085
|
+
const { writeFeedbackFile } = await import("./feedback-writer-BtaoJGl2.js");
|
|
25086
25086
|
await Effect.runPromise(writeFeedbackFile({
|
|
25087
25087
|
issueId: issueIdForFb,
|
|
25088
25088
|
specialist: "merge-agent",
|
|
@@ -25187,7 +25187,7 @@ async function autoCloseOut(now = /* @__PURE__ */ new Date()) {
|
|
|
25187
25187
|
} } : {}
|
|
25188
25188
|
};
|
|
25189
25189
|
try {
|
|
25190
|
-
const { closeOut } = await import("./workflows-
|
|
25190
|
+
const { closeOut } = await import("./workflows-Cw2-a_hn.js");
|
|
25191
25191
|
const result = await Effect.runPromise(closeOut(ctx));
|
|
25192
25192
|
if (!result.success) {
|
|
25193
25193
|
const failed = result.steps.find((step) => !step.success && !step.skipped);
|
|
@@ -25752,7 +25752,7 @@ async function nudgeStalledResumeWorkAgents() {
|
|
|
25752
25752
|
const message = buildStalledResumePrompt(state);
|
|
25753
25753
|
if (!message) continue;
|
|
25754
25754
|
try {
|
|
25755
|
-
const { messageAgent } = await import("./agents-
|
|
25755
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
25756
25756
|
await messageAgent(agentId, message);
|
|
25757
25757
|
recordCooldown(agentId, ".last-stalled-resume-nudge");
|
|
25758
25758
|
const action = `Re-sent stalled resume prompt to ${agentId} (${state.issueId})`;
|
|
@@ -25866,7 +25866,7 @@ async function nudgeIdleWorkAgentsWithOpenBeads() {
|
|
|
25866
25866
|
"Continue the per-item workflow without asking — claim it (`pan task claim <item-id>`), implement, commit, push, then complete it through `pan task done <item-id>`. Inspection is conditional on metadata.requiresInspection (default false; check the plan item before deciding to call `pan inspect`). Do NOT end your turn with a multi-paragraph summary; just advance to the next bead."
|
|
25867
25867
|
].join("\n");
|
|
25868
25868
|
try {
|
|
25869
|
-
const { messageAgent } = await import("./agents-
|
|
25869
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
25870
25870
|
await messageAgent(agentId, message);
|
|
25871
25871
|
writeFileSync(join$1(getAgentDir(agentId), ".last-bead-nudge"), String(Date.now()), "utf-8");
|
|
25872
25872
|
const action = `Nudged idle ${agentId} (${state.issueId}) — ${openTasks.length} ready task(s)`;
|
|
@@ -27257,8 +27257,8 @@ async function cleanupStaleAgentState() {
|
|
|
27257
27257
|
*/
|
|
27258
27258
|
async function cleanupAbandonedFeedback() {
|
|
27259
27259
|
const actions = [];
|
|
27260
|
-
const { getReviewStatusSync } = await import("./review-status-
|
|
27261
|
-
const { clearFeedbackFiles } = await import("./feedback-writer-
|
|
27260
|
+
const { getReviewStatusSync } = await import("./review-status-BoJdyvUQ.js");
|
|
27261
|
+
const { clearFeedbackFiles } = await import("./feedback-writer-BtaoJGl2.js");
|
|
27262
27262
|
for (const { issueId, workspacePath } of listFeatureWorkspaces()) {
|
|
27263
27263
|
const panFeedbackDir = join$1(workspacePath, ".pan", "feedback");
|
|
27264
27264
|
if (!existsSync(panFeedbackDir)) continue;
|
|
@@ -27329,7 +27329,7 @@ async function handleOrphanReviewerSession(sessionName, sessions, creationTimes,
|
|
|
27329
27329
|
if (!issueId) return null;
|
|
27330
27330
|
const agentSession = `agent-${issueId.toLowerCase()}`;
|
|
27331
27331
|
if (sessions.includes(agentSession)) return null;
|
|
27332
|
-
const { getReviewStatusSync } = await import("./review-status-
|
|
27332
|
+
const { getReviewStatusSync } = await import("./review-status-BoJdyvUQ.js");
|
|
27333
27333
|
try {
|
|
27334
27334
|
if (getReviewStatusSync(issueId)?.reviewStatus === "reviewing") return null;
|
|
27335
27335
|
} catch {}
|
|
@@ -27451,7 +27451,7 @@ async function checkOrphanedCompletions() {
|
|
|
27451
27451
|
async function checkPendingTestDispatch() {
|
|
27452
27452
|
const actions = [];
|
|
27453
27453
|
try {
|
|
27454
|
-
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-
|
|
27454
|
+
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-BoJdyvUQ.js");
|
|
27455
27455
|
const statuses = loadReviewStatuses();
|
|
27456
27456
|
const now = Date.now();
|
|
27457
27457
|
for (const [issueId, status] of Object.entries(statuses)) {
|
|
@@ -27484,7 +27484,7 @@ async function checkPendingTestDispatch() {
|
|
|
27484
27484
|
console.log(`[deacon] ${issueId}: skipping test re-dispatch — issue is closed`);
|
|
27485
27485
|
continue;
|
|
27486
27486
|
}
|
|
27487
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
27487
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
27488
27488
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
27489
27489
|
if (!resolved) continue;
|
|
27490
27490
|
const issueLower = issueId.toLowerCase();
|
|
@@ -27499,8 +27499,8 @@ async function checkPendingTestDispatch() {
|
|
|
27499
27499
|
logDeaconEventSync(`checkPendingTestDispatch: deferred test for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
|
|
27500
27500
|
continue;
|
|
27501
27501
|
}
|
|
27502
|
-
const { spawnRun } = await import("./agents-
|
|
27503
|
-
const { buildTestRolePrompt } = await import("./test-agent-queue-
|
|
27502
|
+
const { spawnRun } = await import("./agents-DAUyr_Z1.js");
|
|
27503
|
+
const { buildTestRolePrompt } = await import("./test-agent-queue-C8lE8r2j.js");
|
|
27504
27504
|
try {
|
|
27505
27505
|
const run = await spawnRun(issueId, "test", {
|
|
27506
27506
|
workspace,
|
|
@@ -27623,7 +27623,7 @@ async function checkCompletedButUnsignaledTests() {
|
|
|
27623
27623
|
const cmd = `pan admin specialists done test ${issueId} --status ${decision.status}${noteArg}`;
|
|
27624
27624
|
const nudge = `Your test verdict (${decision.status}) is already written to .pan/test/result.json. Your ONLY remaining task is to execute this Bash command immediately — do not analyze, do not summarize, do not ask questions, just run it:\n\n${cmd}\n\nRun this command NOW. Do not write any other response before executing it.`;
|
|
27625
27625
|
try {
|
|
27626
|
-
const { messageAgent } = await import("./agents-
|
|
27626
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
27627
27627
|
await messageAgent(testSession, nudge);
|
|
27628
27628
|
unsignaledTestNudges.set(testSession, now);
|
|
27629
27629
|
const msg = `Nudged ${testSession} to signal ${decision.status} (verdict artifact present)`;
|
|
@@ -27637,7 +27637,7 @@ async function checkCompletedButUnsignaledTests() {
|
|
|
27637
27637
|
case "nudge-write": {
|
|
27638
27638
|
const nudge = `Your test run for ${issueId} looks finished but no verdict was recorded. Decide the verdict from the gates/UAT you ran, then do BOTH of these now: (1) write the workspace file .pan/test/result.json as {"status":"passed"|"failed","notes":"<evidence>"}, and (2) run: pan admin specialists done test ${issueId} --status passed|failed. Do this immediately — do not summarize or ask questions, just write the file and run the command.`;
|
|
27639
27639
|
try {
|
|
27640
|
-
const { messageAgent } = await import("./agents-
|
|
27640
|
+
const { messageAgent } = await import("./agents-DAUyr_Z1.js");
|
|
27641
27641
|
await messageAgent(testSession, nudge);
|
|
27642
27642
|
unsignaledTestNudges.set(testSession, now);
|
|
27643
27643
|
const msg = `Nudged ${testSession} to write+signal a test verdict (no artifact yet)`;
|
|
@@ -27660,8 +27660,8 @@ async function checkCompletedButUnsignaledTests() {
|
|
|
27660
27660
|
async function checkVerificationReviewContradiction() {
|
|
27661
27661
|
const actions = [];
|
|
27662
27662
|
try {
|
|
27663
|
-
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-
|
|
27664
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
27663
|
+
const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-BoJdyvUQ.js");
|
|
27664
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
27665
27665
|
const statuses = loadReviewStatuses();
|
|
27666
27666
|
for (const [issueId, status] of Object.entries(statuses)) if (status.verificationStatus === "passed" && status.reviewStatus === "reviewing" && status.stuckReason === "review_infrastructure_failure") {
|
|
27667
27667
|
let reviewedAtCommit;
|
|
@@ -27710,7 +27710,7 @@ async function checkPostReviewCommits() {
|
|
|
27710
27710
|
const actions = [];
|
|
27711
27711
|
try {
|
|
27712
27712
|
const statuses = loadReviewStatuses();
|
|
27713
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
27713
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
27714
27714
|
for (const [issueId, status] of Object.entries(statuses)) {
|
|
27715
27715
|
if (status.mergeStatus === "merged") continue;
|
|
27716
27716
|
if (!status.reviewedAtCommit) continue;
|
|
@@ -27765,7 +27765,7 @@ async function checkPostReviewCommits() {
|
|
|
27765
27765
|
actions.push(`Deferred post-review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
|
|
27766
27766
|
logDeaconEventSync(`checkPostReviewCommits: deferred review for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
|
|
27767
27767
|
} else if (freshStatus?.reviewStatus === "pending") {
|
|
27768
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
27768
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
|
|
27769
27769
|
const branch = `feature/${issueId.toLowerCase()}`;
|
|
27770
27770
|
const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
27771
27771
|
issueId,
|
|
@@ -27865,7 +27865,7 @@ async function checkReadyForMergeStuck() {
|
|
|
27865
27865
|
const testStatusGreenCiReconcileCooldowns = /* @__PURE__ */ new Map();
|
|
27866
27866
|
const TEST_STATUS_GREEN_CI_RECONCILE_COOLDOWN_MS = 300 * 1e3;
|
|
27867
27867
|
async function reconcileTestStatusFromGreenCi() {
|
|
27868
|
-
const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-
|
|
27868
|
+
const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
|
|
27869
27869
|
return reconcileTestStatusFromGreenCiWithDeps({
|
|
27870
27870
|
isGitHubAppConfigured,
|
|
27871
27871
|
loadReviewStatuses,
|
|
@@ -27886,7 +27886,7 @@ async function reconcileTestStatusFromGreenCi() {
|
|
|
27886
27886
|
*/
|
|
27887
27887
|
async function clearStaleCiFeedback(issueId) {
|
|
27888
27888
|
const { readdir, rm } = await import("fs/promises");
|
|
27889
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
27889
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
27890
27890
|
const projectConfig = resolveProjectFromIssueSync(issueId);
|
|
27891
27891
|
if (!projectConfig) return;
|
|
27892
27892
|
const repoDir = projectConfig.projectPath;
|
|
@@ -28186,7 +28186,7 @@ async function checkWorkspaceContainerHealth(sharedState) {
|
|
|
28186
28186
|
}
|
|
28187
28187
|
}
|
|
28188
28188
|
try {
|
|
28189
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
28189
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
28190
28190
|
const resolved = resolveProjectFromIssueSync(issueLower.toUpperCase());
|
|
28191
28191
|
if (resolved) await killOrphanedWorkspaceProcesses(`${resolved.projectPath}/workspaces/feature-${issueLower}`);
|
|
28192
28192
|
} catch {}
|
|
@@ -28236,7 +28236,7 @@ async function checkMergedWorkSessions() {
|
|
|
28236
28236
|
const actions = [];
|
|
28237
28237
|
try {
|
|
28238
28238
|
const { selectMergedWorkSessions } = await import("./reap-terminal-sessions-BR39qflC.js");
|
|
28239
|
-
const { setAgentPaused } = await import("./agents-
|
|
28239
|
+
const { setAgentPaused } = await import("./agents-DAUyr_Z1.js");
|
|
28240
28240
|
const toKill = selectMergedWorkSessions(loadReviewStatuses(), [...await Effect.runPromise(listSessionNames())]);
|
|
28241
28241
|
for (const session of toKill) try {
|
|
28242
28242
|
await Effect.runPromise(setAgentPaused(session, "merged — awaiting close-out (verify on main)", true));
|
|
@@ -28329,14 +28329,14 @@ async function runPatrol() {
|
|
|
28329
28329
|
hasLoggedGlobalPauseSkip = false;
|
|
28330
28330
|
addLog("info", `Patrol cycle ${state.patrolCycle} — checking per-project specialists`, state.patrolCycle);
|
|
28331
28331
|
console.log(`[deacon] Patrol cycle ${state.patrolCycle} - checking per-project specialists`);
|
|
28332
|
-
for (const a of await (await import("./stale-task-claims-
|
|
28332
|
+
for (const a of await (await import("./stale-task-claims-DnCHCATD.js")).patrolStaleTaskClaims()) {
|
|
28333
28333
|
actions.push(a);
|
|
28334
28334
|
addLog("action", a, state.patrolCycle);
|
|
28335
28335
|
}
|
|
28336
28336
|
const stuckRemediationActions = await checkStuckAgentRemediation();
|
|
28337
28337
|
actions.push(...stuckRemediationActions);
|
|
28338
28338
|
for (const a of stuckRemediationActions) addLog("action", a, state.patrolCycle);
|
|
28339
|
-
const { reconcileInFlightJournals } = await import("./advancing-selfheal-
|
|
28339
|
+
const { reconcileInFlightJournals } = await import("./advancing-selfheal-BYidNkmp.js");
|
|
28340
28340
|
const reconciledJournalActions = await reconcileInFlightJournals();
|
|
28341
28341
|
actions.push(...reconciledJournalActions);
|
|
28342
28342
|
for (const a of reconciledJournalActions) addLog("action", a, state.patrolCycle);
|
|
@@ -28348,7 +28348,7 @@ async function runPatrol() {
|
|
|
28348
28348
|
const age = Date.now() - (pending.timestamp ?? 0);
|
|
28349
28349
|
if (age < 3600 * 1e3) {
|
|
28350
28350
|
console.log(`[deacon] Processing pending post-merge lifecycle for ${pending.issueId} (age: ${Math.round(age / 1e3)}s)`);
|
|
28351
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
28351
|
+
const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
|
|
28352
28352
|
const { unlinkSync } = await import("fs");
|
|
28353
28353
|
unlinkSync(pendingFile);
|
|
28354
28354
|
await postMergeLifecycle(pending.issueId, pending.projectPath, pending.sourceBranch, { skipDeploy: true });
|
|
@@ -28393,7 +28393,7 @@ async function runPatrol() {
|
|
|
28393
28393
|
actions.push(...suspendActions);
|
|
28394
28394
|
for (const a of suspendActions) addLog("action", a, state.patrolCycle);
|
|
28395
28395
|
try {
|
|
28396
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
28396
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
28397
28397
|
const allStatuses = loadReviewStatuses();
|
|
28398
28398
|
for (const [issueId, status] of Object.entries(allStatuses)) {
|
|
28399
28399
|
if (!status.readyForMerge || status.mergeStatus === "merged") continue;
|
|
@@ -28413,7 +28413,7 @@ async function runPatrol() {
|
|
|
28413
28413
|
} catch (err) {
|
|
28414
28414
|
console.warn(`[deacon] Failed to check workspace existence: ${err.message}`);
|
|
28415
28415
|
}
|
|
28416
|
-
const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-
|
|
28416
|
+
const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-BYidNkmp.js");
|
|
28417
28417
|
const reapedWorkActions = await checkMergedWorkSessions();
|
|
28418
28418
|
actions.push(...reapedWorkActions);
|
|
28419
28419
|
for (const a of reapedWorkActions) addLog("action", a, state.patrolCycle);
|
|
@@ -28421,7 +28421,7 @@ async function runPatrol() {
|
|
|
28421
28421
|
actions.push(...reapedMergedAdvancingActions);
|
|
28422
28422
|
for (const a of reapedMergedAdvancingActions) addLog("action", a, state.patrolCycle);
|
|
28423
28423
|
try {
|
|
28424
|
-
const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-
|
|
28424
|
+
const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-CH3igKY8.js");
|
|
28425
28425
|
const remoteCredentialActions = await refreshClaudeCredentialsForActiveRemoteAgents();
|
|
28426
28426
|
actions.push(...remoteCredentialActions);
|
|
28427
28427
|
for (const a of remoteCredentialActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
|
|
@@ -28429,7 +28429,7 @@ async function runPatrol() {
|
|
|
28429
28429
|
addLog("warn", `Remote credential refresh patrol failed: ${err.message}`, state.patrolCycle);
|
|
28430
28430
|
}
|
|
28431
28431
|
try {
|
|
28432
|
-
const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-
|
|
28432
|
+
const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-_Z1SAaSK.js");
|
|
28433
28433
|
const heartbeatActions = await refreshHostHeartbeatForEphemeralVms();
|
|
28434
28434
|
actions.push(...heartbeatActions);
|
|
28435
28435
|
for (const a of heartbeatActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
|
|
@@ -28437,7 +28437,7 @@ async function runPatrol() {
|
|
|
28437
28437
|
addLog("warn", `Remote heartbeat refresh patrol failed: ${err.message}`, state.patrolCycle);
|
|
28438
28438
|
}
|
|
28439
28439
|
try {
|
|
28440
|
-
const { reapCompletedRemoteAgents } = await import("./remote-completion-
|
|
28440
|
+
const { reapCompletedRemoteAgents } = await import("./remote-completion-CH3igKY8.js");
|
|
28441
28441
|
const remoteReap = await reapCompletedRemoteAgents();
|
|
28442
28442
|
for (const r of remoteReap) if (r.status === "handed-off" || r.status === "error") {
|
|
28443
28443
|
const msg = `Remote reap ${r.issueId}: ${r.status} (${r.details.join("; ")})`;
|
|
@@ -28618,7 +28618,7 @@ async function runPatrol() {
|
|
|
28618
28618
|
const issueId = runtimeState.currentIssue;
|
|
28619
28619
|
try {
|
|
28620
28620
|
if (getReviewStatusSync(issueId)?.mergeStatus === "merging") {
|
|
28621
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
28621
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
|
|
28622
28622
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
28623
28623
|
if (resolved) {
|
|
28624
28624
|
const branch = `feature/${issueId.toLowerCase()}`;
|
|
@@ -28632,7 +28632,7 @@ async function runPatrol() {
|
|
|
28632
28632
|
mergeStatus: "merged",
|
|
28633
28633
|
readyForMerge: false
|
|
28634
28634
|
});
|
|
28635
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
28635
|
+
const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
|
|
28636
28636
|
postMergeLifecycle(issueId, resolved.projectPath).catch((err) => console.warn(`[deacon] postMergeLifecycle failed for ${issueId}: ${err}`));
|
|
28637
28637
|
actions.push(`Auto-completed stale merge for ${issueId}`);
|
|
28638
28638
|
} else {
|
|
@@ -28812,7 +28812,7 @@ function startDeacon() {
|
|
|
28812
28812
|
logDeaconEventSync(`startDeacon: health monitor starting (patrol every ${config.patrolIntervalMs / 1e3}s)`);
|
|
28813
28813
|
(async () => {
|
|
28814
28814
|
await reconcileAgentLiveness();
|
|
28815
|
-
const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-
|
|
28815
|
+
const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-BYidNkmp.js");
|
|
28816
28816
|
await runBootAdvancingSelfHeal();
|
|
28817
28817
|
runScheduledPatrol("startup");
|
|
28818
28818
|
})().catch((err) => {
|
|
@@ -28884,4 +28884,4 @@ function assessDeaconPatrolFreshness(params) {
|
|
|
28884
28884
|
//#endregion
|
|
28885
28885
|
export { isPreKickoffLaunchDeath as $, reconcileAgentLiveness as A, stalledReviewConvoyRecoveryState as At, applyIssueBlocksMainLabel as B, formatUptime as Bt, getLastPatrolResult as C, isSynthesisForActiveReviewRun as Ct, isDeaconRunning as D, handleWorkCompleted as Dt, handleAgentStoppedForOrphanReviewerSessions as E, handleReviewCoordinatorDied as Et, setAgentStatusChangedNotifier as F, paneShowsClaudeBootBlockingScreen as Ft, applyIssueVetoedLabel as G, isSmeeConfiguredSync as Gt, applyIssueParkedLabel as H, getCurrentDockerStats as Ht, setAgentStoppedNotifier as I, INSPECT_TIMEOUT_MS as It, removeIssueParkedLabel as J, removeIssueBlocksMainLabel as K, startSmeeProcessSync as Kt, setMergeReadyNotifier as L, checkInspectAgentTimeouts as Lt, resetPatrolHeartbeatForStartup as M, contextOverflowRecoveryState as Mt, runPatrol as N, contextProactiveCompactState as Nt, loadConfig as O, recoverStalledReviewConvoys as Ot, saveState as P, stuckOverflowNativeRecoveryState as Pt, createInFlightGuard as Q, startDeacon as R, classifyMemoryPressure as Rt, getDeaconStatus as S, checkStuckReviewing as St, handleAgentStoppedEvent as T, checkOrphanedReviewStatuses as Tt, applyIssueReadyLabel as U, getResourceConfig as Ut, applyIssueObjectionLabel as V, getContainerHistory as Vt, applyIssueReleasedLabel as W, getSystemHealthSnapshot as Wt, removeIssueReleasedLabel as X, removeIssueReadyLabel as Y, removeIssueVetoedLabel as Z, cleanupOrphanReviewerSessions as _, withConcurrencyLimit as _t, checkCompletedButUnsignaledTests as a, listBootReconciliationCandidates as at, containerRestartBackoffMs as b, synthesizeReviewFromReports as bt, checkMergedWorkSessions as c, checkFailedMergeRetry as ct, checkPostReviewCommits as d, reconcileClosedPrReadyForMerge as dt, isRapidPostResumeDeath as et, checkReadyForMergeStuck as f, reconcileFalseMerged as ft, cleanupAbandonedFeedback as g, reconcileStuckReadyForMerge as gt, checkWorkspaceContainerHealth as h, reconcileStaleMergeStatus as ht, checkAwaitingTestWorkSessions as i, isBootReconciliationCandidate as it, reconcileTestStatusFromGreenCi as j, checkApiErrorAgents as jt, loadState as k, reviewConvoyLiveness as kt, checkOrphanedCompletions as l, checkFirstCompletionAgents as lt, checkVerificationReviewContradiction as m, reconcileStaleMergeBlockers as mt, assessDeaconPatrolFreshness as n, nudgeStalledResumeWorkAgents as nt, checkDeadEndAgents as o, startBootReconciliation as ot, checkStuckWorkAgents as p, reconcileMergedButReviewing as pt, removeIssueObjectionLabel as q, checkAndSuspendIdleAgents as r, redeliverUndeliveredKickoffs as rt, checkMassDeath as s, autoCloseOut as st, applyBootReconciliationDecision as t, nudgeIdleWorkAgentsWithOpenBeads as tt, checkPendingTestDispatch as u, ciRetryMap as ut, cleanupOrphanedPlanningSessions as v, cleanupOrphanedReviewSessions as vt, handleAgentHeartbeatDeadEvent as w, checkMissingReviewStatuses as wt, getDeaconLogs as x, checkCompletedButUnsignaledReviews as xt, cleanupStaleAgentState as y, monitorReviewConvoySignals as yt, stopDeacon as z, getResourceStacks as zt };
|
|
28886
28886
|
|
|
28887
|
-
//# sourceMappingURL=deacon-
|
|
28887
|
+
//# sourceMappingURL=deacon-D2-xTesT.js.map
|