@overdeck/desktop 0.45.7 → 0.45.8
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 +10 -3
- package/server/{acceptance-criteria-DYffaKI9.js → acceptance-criteria-l0DSvFFS.js} +2 -2
- package/server/{activity-logger-DO27GsPa.js → activity-logger-DvYvFhwZ.js} +1 -1
- package/server/{activity-logger-Dm95Ua07.js → activity-logger-pcbf-e30.js} +3 -2
- package/server/{advancing-selfheal-n8tAeFwE.js → advancing-selfheal-CMlGznKv.js} +11 -66
- package/server/{agent-gc-CIFaa2vJ.js → agent-gc-BtAzj8QN.js} +3 -3
- package/server/{agent-state-service-BqVDA9b8.js → agent-state-service-5ge9xxhx.js} +5 -5
- package/server/{agent-state-service-CLifyinO.js → agent-state-service-C1iUF9Ft.js} +1 -1
- package/server/agent-state-xk_G8t90.js +3 -0
- package/server/{agents-KaEsWZ8D.js → agents-BIggLvi_.js} +1 -1
- package/server/{agents-D_x5BSZM.js → agents-DHvsjsuP.js} +129 -61
- package/server/{archive-planning-CFxmeFKh.js → archive-planning-B4Qi02bk.js} +1 -1
- package/server/{archive-planning-DVUXlRBs.js → archive-planning-zTvWWHG_.js} +4 -4
- package/server/{artifact-index-jobs-ChUgzZah.js → artifact-index-jobs-BrByqVkB.js} +2 -2
- package/server/{auto-commit-2KiBFh-K.js → auto-commit-DoIPFoEs.js} +1 -1
- package/server/{backlog-auto-trigger-DoTEMZMl.js → backlog-auto-trigger-COm_R96V.js} +3 -3
- package/server/{bd-mutex-CE6P_MlD.js → bd-mutex-BItGvLQ8.js} +2 -2
- package/server/{bd-process-lock-Ch3WNHS9.js → bd-process-lock-CJkoG7hW.js} +2 -2
- package/server/{beads-B43pgBIy.js → beads-AmCXEv_E.js} +1 -1
- package/server/{beads-BugPvtWp.js → beads-DlZm-vrG.js} +5 -5
- package/server/{beads-query-CtqWakL6.js → beads-query-BrVNWoSL.js} +2 -2
- package/server/{beads-restore-BqTMSQi-.js → beads-restore-CMbDSB5R.js} +1 -1
- package/server/{behavior-vk1sixby.js → behavior-By-2Wipv.js} +3 -3
- package/server/{briefing-freshness-B3YxHQ-L.js → briefing-freshness-CXhZdnB8.js} +4 -4
- package/server/{checkpoint-manager-CdrwLsQh.js → checkpoint-manager-CPw51H2n.js} +1 -1
- package/server/{checkpoint-manager-Dg6cWZz3.js → checkpoint-manager-CfNpHOp4.js} +11 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-DDd-0doa.js → checkpoints-BbfH1EIy.js} +2 -2
- package/server/{checkpoints-dBCJr0dC.js → checkpoints-BjlBWOA8.js} +1 -1
- package/server/{claude-permissions-BpwIcIR7.js → claude-permissions-DrRAs_0F.js} +3 -3
- package/server/{claude-settings-overlay-DnraWcz6.js → claude-settings-overlay-BSeS7Ki3.js} +2 -2
- package/server/{claude-settings-overlay-xD_Vu420.js → claude-settings-overlay-CEWlIFL-.js} +1 -1
- package/server/cli-CJDWXE_Y.js +3 -0
- package/server/{cli-BmzYZZKi.js → cli-CvK9xuSS.js} +9 -9
- package/server/{cliproxy-DYWdJKZ1.js → cliproxy-BOcmOK6l.js} +1 -1
- package/server/{cliproxy-CE2GDY7x.js → cliproxy-J-_1iIXe.js} +2 -2
- package/server/{close-issue-CpJd4SOL.js → close-issue-BnpErnD1.js} +5 -5
- package/server/{closed-issue-reaper-QpcvCDeE.js → closed-issue-reaper-BLCQwTpF.js} +1 -1
- package/server/{closed-issue-reaper-DubXY9Zg.js → closed-issue-reaper-DRqK5k39.js} +10 -10
- package/server/{codex-j8aVgRou.js → codex-BUZjrnqH.js} +1 -1
- package/server/{codex-B3J1TXo7.js → codex-DcInrhok.js} +5 -5
- package/server/{compact-beads-CqhLqG-k.js → compact-beads-RFwdZFPA.js} +4 -4
- package/server/{compact-beads-BeilHCdj.js → compact-beads-omhUgj5b.js} +1 -1
- package/server/{config-DHU0j_pS.js → config-CzcWQ24p.js} +1 -1
- package/server/{config-DkEhJM0h.js → config-oWoKf5jO.js} +4 -4
- package/server/{config-yaml-DbdN9Fuq.js → config-yaml-DPAieL_G.js} +3 -2
- package/server/{conflict-gate-CgOtMo8i.js → conflict-gate-BhKvrPxn.js} +4 -4
- package/server/{conflict-gate-D00zFjeu.js → conflict-gate-JdFuhKuF.js} +1 -1
- package/server/{context-layers-BHEjT8Cn.js → context-layers-CTjQwcEQ.js} +3 -3
- package/server/{context-layers-0Lgq-SE_.js → context-layers-DxKsseHI.js} +2 -2
- package/server/{control-settings-CYv732Gs.js → control-settings-BMqUkXmR.js} +4 -4
- package/server/{conversation-compaction-Dbw03b-X.js → conversation-compaction-Ba5aZdrb.js} +1 -1
- package/server/{conversation-compaction-DKXvmX50.js → conversation-compaction-C5o_eKEm.js} +8 -8
- package/server/{conversation-service-BwKUeEvn.js → conversation-service-DvG8vZSV.js} +5 -5
- package/server/{conversation-service-kYYeRp9B.js → conversation-service-WKl-sw58.js} +1 -1
- package/server/{conversations-Dwr1jHrO.js → conversations-DL_BAWVk.js} +4 -4
- package/server/{conversations-D-uOnA8T.js → conversations-Dcx6LeIh.js} +1 -1
- package/server/{cost-DiSDkYe7.js → cost-C2CuA66z.js} +2 -2
- package/server/{cost-DNIyZH1X.js → cost-DaOG8sUB.js} +3 -3
- package/server/{cost-sync-CfXu-3TF.js → cost-sync-8lkDeL9g.js} +3 -3
- package/server/{dag-DZBowTd2.js → dag-jH8ZkewR.js} +3 -3
- package/server/{dangerous-git-ops-Pongxg2d.js → dangerous-git-ops-Dcw7PbYo.js} +1 -1
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-DT0BsVyE.js → deacon-Cv2RMfHs.js} +3 -3
- package/server/{deacon-f0yvsG5S.js → deacon-j3qSZ7--.js} +222 -110
- package/server/{deacon-nudge-log-Cmcch2Av.js → deacon-nudge-log-CJGA6aSQ.js} +1 -1
- package/server/deacon-swarm-D1iAUX-P.js +2 -0
- package/server/{deacon-swarm-BBGnhvD2.js → deacon-swarm-DadWNi5J.js} +88 -43
- package/server/deacon.js +8 -8
- package/server/{devcontainer-renderer-Cpz7XBj0.js → devcontainer-renderer-DUJYYRQB.js} +3 -3
- package/server/{dist-DypOkJv9.js → dist-BIC8spJ0.js} +1 -1
- package/server/dist-BUplB3Od.js +3 -0
- package/server/{docker-DARVx0OZ.js → docker-Q4bphryk.js} +2 -2
- package/server/{ensure-devcontainer-Dmdw4BxF.js → ensure-devcontainer-BCB6fHp9.js} +1 -1
- package/server/{ensure-devcontainer-BJssuBG6.js → ensure-devcontainer-XLL0vtgV.js} +4 -4
- package/server/{esm-shims-Crmvo9Ln.js → esm-shims-DiV9jHa_.js} +1 -1
- package/server/{event-store-BeEE8pW5.js → event-store-DIk9wvnS.js} +1 -1
- package/server/{event-store-DrfTJZ1_.js → event-store-DTJXZjCl.js} +4 -4
- package/server/events-BlzVUyTx.js +3 -0
- package/server/{events-BbClwoM-.js → events-DGWZzye2.js} +4 -4
- package/server/{factory-DVv9cpG5.js → factory-rG4T40su.js} +4 -4
- package/server/{feature-registry-population-C6eVdq4J.js → feature-registry-population-Dwyj9gEM.js} +4 -4
- package/server/{feature-registry-storage-ByBosRId.js → feature-registry-storage-CnGyNgAq.js} +2 -2
- package/server/{features-EZfSwuqq.js → features-CYY2_Eeh.js} +2 -2
- package/server/{feedback-target-DENaINE6.js → feedback-target-C4DaDSZ8.js} +1 -1
- package/server/{feedback-target-Dv4VnbQl.js → feedback-target-oE4-Esxl.js} +48 -17
- package/server/{feedback-writer-Dxg8qM8i.js → feedback-writer-DMaO0XXa.js} +4 -4
- package/server/{feedback-writer-BvHE1I-3.js → feedback-writer-thrdxYpK.js} +1 -1
- package/server/{flywheel-Akbd9VNM.js → flywheel-BqDdGvrQ.js} +1 -1
- package/server/{flywheel-B4KN9BmW.js → flywheel-ClMjGW_u.js} +11 -11
- package/server/{flywheel-ByZyAv3P.js → flywheel-DefHRzY4.js} +13 -13
- package/server/{flywheel-merge-order-DPFZbt-w.js → flywheel-merge-order-B6YDSElh.js} +1 -1
- package/server/{flywheel-merge-order-BYUPxqgx.js → flywheel-merge-order-CuDcqTRJ.js} +7 -7
- package/server/forge-BfP7OJwK.js +2 -0
- package/server/{forge-BnTExkbK.js → forge-BixzckB0.js} +2 -2
- package/server/{from-B2i_NgIH.js → from-D4xmArTA.js} +1 -1
- package/server/{fts-db-dnCj-PD3.js → fts-db-DPtxOAjp.js} +2 -2
- package/server/{fts-operations-CAAofsTQ.js → fts-operations-VrGjsT0w.js} +2 -2
- package/server/{git-utils-CB3gDSM-.js → git-utils-D_cax3fD.js} +2 -2
- package/server/{git-utils-Bk7sJZru.js → git-utils-RAmTwjFB.js} +1 -1
- package/server/{github-app-CIhMNI4C.js → github-app-B5PDHMyn.js} +1 -1
- package/server/{github-app-BIU8a93o.js → github-app-FMXgo3vK.js} +2 -2
- package/server/{github-client-DmZgsnYP.js → github-client-VRiB6N-4.js} +1 -1
- package/server/{github-client-zREpj5HA.js → github-client-yjbXaqpR.js} +2 -2
- package/server/{github-pr-lookup-CPri6JR1.js → github-pr-lookup-t8X8R0c0.js} +2 -2
- package/server/{harness-resolve-TzYAiXzZ.js → harness-resolve-DKeSVsJL.js} +3 -3
- package/server/{health-events-CDWk8Oz4.js → health-events-CD6q47ub.js} +1 -1
- package/server/{health-events-Dd0FuKrE.js → health-events-DaLX4-0a.js} +2 -2
- package/server/{hooks-C6HBXlVm.js → hooks-CmHFSj_Z.js} +2 -2
- package/server/{hooks-DRLzoFof.js → hooks-D-cbMUzQ.js} +1 -1
- package/server/{hume-Bb91r_2I.js → hume-DkVOs1Qi.js} +2 -2
- package/server/hume-x9voULey.js +3 -0
- package/server/{idle-stack-reaper-BPHnItVj.js → idle-stack-reaper-DBKQ9SKu.js} +3 -3
- package/server/{idle-stack-reaper-D5bwmuwX.js → idle-stack-reaper-DdnERp3G.js} +1 -1
- package/server/{infra-CCTzpcuJ.js → infra-CpKlYZA9.js} +3 -3
- package/server/{injection-D6L7D_w0.js → injection-CszhePD2.js} +7 -7
- package/server/{injection-CBrN8UxB.js → injection-DKzL2Axk.js} +1 -1
- package/server/{inspect-agent-CSYyFWqP.js → inspect-agent-BKKc0XnB.js} +9 -9
- package/server/inspect-agent-vm88mLYr.js +2 -0
- package/server/{internal-token-DWhBqgIk.js → internal-token-CQUx9YLc.js} +2 -2
- package/server/{internal-token-DCrCAG_M.js → internal-token-DrGdpLFo.js} +1 -1
- package/server/{io-DtAQ_2hp.js → io-Wy8YpFeP.js} +2 -2
- package/server/{issue-closed-0Zx72zXf.js → issue-closed-BO84g03t.js} +4 -4
- package/server/{issue-lifecycle-ZTt6kP_K.js → issue-lifecycle-DnhQgddB.js} +22 -22
- package/server/{issue-lifecycle-CJ7-D4XX.js → issue-lifecycle-nY4esZn8.js} +1 -1
- package/server/{issue-service-singleton-DNh4RRI7.js → issue-service-singleton-Bnqv1uaa.js} +1 -1
- package/server/{issue-service-singleton-DRE7S-Zg.js → issue-service-singleton-_AquSBTl.js} +8 -8
- package/server/{issues-CGc8Aaxm.js → issues-ChNcfHta.js} +2 -2
- package/server/{label-cleanup-CNsPlXy6.js → label-cleanup-bVXCGWBM.js} +3 -3
- package/server/{layers-CO_VLcSv.js → layers-vdvlpFki.js} +2 -2
- package/server/{lifecycle-B_NFvTj9.js → lifecycle-CGKm7doE.js} +7 -7
- package/server/{lifecycle-io-D0FftBLy.js → lifecycle-io-CdqPkCyk.js} +1 -1
- package/server/{lifecycle-io-WDGwa1vV.js → lifecycle-io-DSrv9xGh.js} +4 -4
- package/server/{linear-client-MvjflCXs.js → linear-client-BxKvL6U8.js} +1 -1
- package/server/{linear-client-CSgH24Ym.js → linear-client-E0HdXtWs.js} +2 -2
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-DltB-RGV.js → merge-D3wEbmUJ.js} +1 -1
- package/server/{merge-Ce9DHBXM.js → merge-UlAwCk80.js} +4 -4
- package/server/{merge-agent-Rv0bNQNU.js → merge-agent-BcgAYStl.js} +27 -27
- package/server/{merge-agent-DRXwKxmb.js → merge-agent-Dh8Y9PDO.js} +1 -1
- package/server/{merge-batch-LLp_cXUR.js → merge-batch-BwhGdlh4.js} +1 -1
- package/server/{merge-blockers-BqYUtLBd.js → merge-blockers-DwdQNsYD.js} +2 -2
- package/server/merge-ops-QdBiQ8XB.js +2 -0
- package/server/{merge-rebase-AiSEs4QB.js → merge-rebase-CH12_ufi.js} +2 -2
- package/server/{merge-set-CUY9msG9.js → merge-set-TRxJwR-w.js} +3 -3
- package/server/{merge-set-CSJoIpKB.js → merge-set-rXK3ehnB.js} +1 -1
- package/server/{merge-sync-CAjbJeTp.js → merge-sync-BKLKu9kz.js} +1 -1
- package/server/{merge-sync-CuyWzzZK.js → merge-sync-CaLRt2cB.js} +2 -2
- package/server/{merge-train-DndZCAiv.js → merge-train-DmxlYbEo.js} +3 -3
- package/server/{merge-train-deps-Bsy90Q7t.js → merge-train-deps-DBHsOWt9.js} +4 -4
- package/server/{merge-verification-Kvh4WViS.js → merge-verification-DA9rvqsE.js} +4 -4
- package/server/{multipart-parser-BWnfyoyz.js → multipart-parser-DtIEUW2B.js} +2 -2
- package/server/{no-resume-mode-CKy2bwZL.js → no-resume-mode-yrPEQ_pC.js} +1 -1
- package/server/{orphan-proposed-reconciler-Cg5_uVy1.js → orphan-proposed-reconciler-Db8tUhce.js} +10 -10
- package/server/{orphan-proposed-reconciler-CjUuBs6J.js → orphan-proposed-reconciler-mXV--tcB.js} +1 -1
- package/server/{pan-dir-Cn3NUnxU.js → pan-dir-BgBeeZDX.js} +3 -3
- package/server/{paths-Bo-kA9ta.js → paths-TE1GOZDr.js} +2 -2
- package/server/{pickup-DRn-XNXS.js → pickup-KLRUhThD.js} +1 -1
- package/server/{pipeline-notifier-BbGQtvKM.js → pipeline-notifier-aX_5EqQO.js} +2 -2
- package/server/{pipeline-notifier-DQsOtdjZ.js → pipeline-notifier-lwMa--Gz.js} +1 -1
- package/server/{projects-CKTA6Klk.js → projects-BNmVxnNt.js} +1 -1
- package/server/{prompts-CVncQg4P.js → prompts-CelsUdrx.js} +2 -2
- package/server/{providers-uPI9uU7Q.js → providers-4-xOzHQu.js} +7 -7
- package/server/{providers-CapuDkKX.js → providers-BOnRq5XK.js} +1 -1
- package/server/public/assets/{chunk-BO2N2NFS-CaAvtgHW.js → chunk-BO2N2NFS-jJsbVwoD.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-C4flU2X9.js → diagram-OG6HWLK6-Cp1aNi3v.js} +1 -1
- package/server/public/assets/{dist-DXAnG2e9.js → dist-B2-Oc7J1.js} +1 -1
- package/server/public/assets/{dist-DygIHsen.js → dist-Dbb8vdyE.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BJY25etK.js → ganttDiagram-6RSMTGT7-rujV2mSn.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-DIEQLSG_.js → highlighted-body-OFNGDK62-Df3Exbbt.js} +1 -1
- package/server/public/assets/{index-BsKNi2y5.js → index-rQPa7qlV.js} +88 -88
- package/server/public/assets/{linear-CRa2o9KP.js → linear-Ctp3LAJ5.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BnC2HrDq.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-Cb6OrK_c.js → pieDiagram-4H26LBE5-K-m6VCum.js} +1 -1
- package/server/public/assets/{prod-DWpuiL-y.js → prod-jqZ3zqVg.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-DhZzzcAO.js → quadrantDiagram-W4KKPZXB-DXcFax_1.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CVe6lE5A.js → sankeyDiagram-5OEKKPKP-DnD_J_rB.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-zukUz5pI.js → xychartDiagram-2RQKCTM6-Dx25iKVp.js} +1 -1
- package/server/public/index.html +1 -1
- package/server/{pull-requests-C3csHJsc.js → pull-requests-CH4iBFLl.js} +3 -3
- package/server/{pull-requests-MeAgb3Ax.js → pull-requests-DL_4klIb.js} +1 -1
- package/server/{rally-nalS21zz.js → rally-D0mKv2t8.js} +3 -3
- package/server/rally-DffLLIdl.js +3 -0
- package/server/{rally-api-DzQryQi8.js → rally-api-CcCdecF-.js} +1 -1
- package/server/{rally-api-DdY4ebu3.js → rally-api-DgAt6FbN.js} +2 -2
- package/server/{rally-client-9duSds1_.js → rally-client-DYjtgTOu.js} +4 -4
- package/server/{rally-client-B16-bZk9.js → rally-client-X0bEEN2B.js} +1 -1
- package/server/reap-terminal-sessions-BwJb2DLJ.js +3 -0
- package/server/{reap-terminal-sessions-C6rD1pDT.js → reap-terminal-sessions-CAmURC2h.js} +12 -62
- package/server/{rebuild-stack-D9qBmVcM.js → rebuild-stack-BLG3rlWa.js} +6 -6
- package/server/{rebuild-stack-DrWMHxoY.js → rebuild-stack-ByFCMqTK.js} +1 -1
- package/server/{reconstruct-cache--H2QBooC.js → reconstruct-cache-_tDZ2D72.js} +6 -6
- package/server/{record-fn7uPjsl.js → record-DjPikotp.js} +1 -1
- package/server/{remote-BEkHf2HO.js → remote-B1Trmr0N.js} +3 -3
- package/server/{remote-Dl6Hn0zz.js → remote-TN0cV8k-.js} +3 -3
- package/server/{remote-agents-DNdP4sew.js → remote-agents-CmbIKw7E.js} +5 -5
- package/server/{remote-agents-OB4zwVHz.js → remote-agents-DNuaAgU6.js} +1 -1
- package/server/{remote-completion-BINc1Y8c.js → remote-completion-Bklh6loJ.js} +12 -12
- package/server/resume-DnIsmIgC.js +3 -0
- package/server/review-agent-DgySDb-G.js +3 -0
- package/server/{review-agent-C-A6IgXc.js → review-agent-phzqNqIs.js} +599 -197
- package/server/{review-artifacts-DTTdAYsU.js → review-artifacts-BGc69epg.js} +7 -7
- package/server/{review-context-De14xPtc.js → review-context-CCq56O_Y.js} +7 -7
- package/server/{review-monitor-BNV3kjLq.js → review-monitor-BKG2ubt5.js} +2 -2
- package/server/{review-status-DWAsTqfJ.js → review-status-BQjqQXZG.js} +160 -52
- package/server/{review-status-mo3tyc8L.js → review-status-bBkqUj5i.js} +1 -1
- package/server/{review-status-enrichment-C6sr9wOI.js → review-status-enrichment-CGlcApSn.js} +3 -3
- package/server/{review-status-sync-D-p7TQit.js → review-status-sync-BWHnrq-k.js} +3 -3
- package/server/{review-status-sync-MvYGQLDD.js → review-status-sync-BxHBVH8s.js} +1 -1
- package/server/{review-verdict-feedback-BbIfN5Vg.js → review-verdict-feedback-cZh9Wi9G.js} +1 -1
- package/server/{review-verdict-feedback-Cfc-THvz.js → review-verdict-feedback-wqnikhMK.js} +16 -36
- package/server/{rollup-DgWlrSBc.js → rollup-BJE-Vc7H.js} +8 -8
- package/server/{rollup-CxR6GMTe.js → rollup-DBNy1yFB.js} +1 -1
- package/server/{scanner-6OmIn5XE.js → scanner-CUGpdp4i.js} +7 -7
- package/server/{sequence-io-CxiPMMKM.js → sequence-io-B2GmilSI.js} +4 -4
- package/server/{sequencer-agent--xPlSfR2.js → sequencer-agent-D8pW2aU_.js} +5 -5
- package/server/server.js +166 -162
- package/server/{service-CXje28KS.js → service-CILd-uOt.js} +46 -45
- package/server/session-fork-DDSDVoIK.js +99 -0
- package/server/{settings-ChvoXExM.js → settings-CBrei_kx.js} +2 -2
- package/server/{settings-DZq_bi-B.js → settings-D2wt4nku.js} +3 -3
- package/server/settings-vLoKyghx.js +2 -0
- package/server/{shadow-engineering-BHeyD5bL.js → shadow-engineering-Ba1D0QUN.js} +2 -2
- package/server/{shadow-state-p3YTxrJ5.js → shadow-state-BOaq8BrD.js} +1 -1
- package/server/{shadow-state-3L0eHQNE.js → shadow-state-DTC7AMHc.js} +2 -2
- package/server/{ship-log-B2EEH__n.js → ship-log-CMWH3H5-.js} +1 -1
- package/server/{smart-compaction-DRXK5_io.js → smart-compaction-Bgp_gwcA.js} +1 -1
- package/server/{smart-compaction-DMB4hv07.js → smart-compaction-CrP90OFE.js} +7 -7
- package/server/{spawn-planning-session-BZfVvIi3.js → spawn-planning-session-BmJWHSCu.js} +15 -15
- package/server/{spawn-planning-session-BBUzeHJQ.js → spawn-planning-session-D15KbPOy.js} +1 -1
- package/server/{specialist-completion-BAZHHbmp.js → specialist-completion-BiEXUHfD.js} +1 -1
- package/server/{specialist-context-DgdhI7rm.js → specialist-context-CwKkcXL9.js} +5 -5
- package/server/{specialist-handoff-logger-CH1nC8fq.js → specialist-handoff-logger-B_2VsWli.js} +2 -2
- package/server/{specialist-logs-DynFhFXg.js → specialist-logs-CvDxquV_.js} +3 -3
- package/server/{specialists-LJ9MZMCz.js → specialists-BCjcG4uE.js} +1 -1
- package/server/{specialists-BUKBHtmQ.js → specialists-BYi0k8CZ.js} +18 -18
- package/server/{specialists-e0Jmecc1.js → specialists-D07ybnam.js} +78 -85
- package/server/{specialists-CF02f9p2.js → specialists-F2uMO4QS.js} +1 -1
- package/server/specs-DeS98l_p.js +3 -0
- package/server/{src-CNLON0co.js → src-BswtmojL.js} +6 -6
- package/server/{src-DhJeCV1p.js → src-Dp0WHgDZ.js} +3 -3
- package/server/{src-AXK4mjue.js → src-fgbU-jJ-.js} +6 -3
- package/server/{stack-health-8jZH0Lgk.js → stack-health-BJVh1TCg.js} +3 -3
- package/server/{stack-health-CXYHwv5D.js → stack-health-Deel1mSW.js} +1 -1
- package/server/{state-home-XkLSsJCD.js → state-home-Bgj7i-C7.js} +8 -7
- package/server/{summary-fork-shfA2XOf.js → summary-fork-DedqguZb.js} +2 -2
- package/server/{summary-fork-BWa0ECGL.js → summary-fork-EjvOkEPl.js} +12 -91
- package/server/{supervisor-owMkHcx8.js → supervisor-0oXvLwyC.js} +3 -3
- package/server/supervisor-D1-XwmZ7.js +2 -0
- package/server/{swarm-readiness-BACUsKOx.js → swarm-readiness-OBgamRql.js} +3 -3
- package/server/{teardown-workspace-CYt_PBaq.js → teardown-workspace-5LCVbjfq.js} +14 -14
- package/server/{test-agent-queue-C1s6mB8C.js → test-agent-queue-qfsq6uaC.js} +6 -6
- package/server/{test-verdict-CmxX3KEf.js → test-verdict-BkubHtti.js} +1 -1
- package/server/{test-verdict-njEv9ZY2.js → test-verdict-D3Il7cBK.js} +1 -1
- package/server/{tldr-daemon-CEUflKr2.js → tldr-daemon-CJW_P4On.js} +2 -2
- package/server/{tldr-daemon-HIo0dwDB.js → tldr-daemon-CJqGsDFh.js} +1 -1
- package/server/tmux-CeDD14p1.js +3 -0
- package/server/{tmux-CBYZ5lKF.js → tmux-ePNhMIMU.js} +2 -2
- package/server/{token-CiS3w6Ma.js → token-_qujO3JZ.js} +1 -1
- package/server/{tracker-config-CVCoeaaL.js → tracker-config-C3hiPVAM.js} +2 -2
- package/server/{tracker-config-Bx50plWp.js → tracker-config-Drt_tx4D.js} +1 -1
- package/server/{tracker-utils-C2Lg4RoB.js → tracker-utils-D6B8scEw.js} +1 -1
- package/server/{tracker-utils-mI4d-vh8.js → tracker-utils-bpWs7Xyx.js} +2 -2
- package/server/{traefik-connect-D21-YEyX.js → traefik-connect-5EP1WS_Z.js} +1 -1
- package/server/{tunnel-BK4PVyb0.js → tunnel-3Ve8BS4H.js} +3 -3
- package/server/{tunnel-CcHkuRIS.js → tunnel-AporWhoi.js} +1 -1
- package/server/{types-DoPMvws2.js → types-B5u3NxMl.js} +1 -1
- package/server/{uat-train-BLFPxqLx.js → uat-train-C3hWXtip.js} +1 -1
- package/server/{uat-train-CQ_E-2ei.js → uat-train-CtNGgXxj.js} +27 -27
- package/server/{validation-Dab3bnSN.js → validation-BmUB-26g.js} +4 -4
- package/server/{validation-1QnjDMc0.js → validation-CbqP_dze.js} +1 -1
- package/server/{verification-runner-BO8TgZWA.js → verification-runner-BPAhPWR7.js} +11 -11
- package/server/{verification-runner-UhAAqOio.js → verification-runner-DuZRHjPU.js} +1 -1
- package/server/{vtt-parser-D-q5-8il.js → vtt-parser-CKc-smWM.js} +1 -1
- package/server/{work-agent-prompt-D_7T1xw5.js → work-agent-prompt-DCdHsm-V.js} +11 -11
- package/server/workflows-Cz8OtiB4.js +2 -0
- package/server/{workflows-CB5SWd0B.js → workflows-H-COJ84X.js} +14 -14
- package/server/{workspace-C4Avf_Tp.js → workspace-4ZufqeMe.js} +3 -3
- package/server/{workspace--XWYPbn1.js → workspace-DYv9kBg6.js} +1 -1
- package/server/{workspace-config-BwJB-bLH.js → workspace-config-DA8U97k9.js} +1 -1
- package/server/{workspace-manager-_6zbrhNF.js → workspace-manager-B3PqQQSM.js} +1 -1
- package/server/{workspace-manager-BE3OznLY.js → workspace-manager-CEWK-OXd.js} +12 -12
- package/server/{workspace-metadata-BCgODi1j.js → workspace-metadata-1eu1RvAT.js} +2 -2
- package/server/{workspace-metadata-wKPgY8PN.js → workspace-metadata-C0I-nIDL.js} +1 -1
- package/server/{workspaces-DpMiZ9BP.js → workspaces-CRU9_vRn.js} +154 -106
- package/server/agent-state-DTZCqWx5.js +0 -3
- package/server/cli-wyiCmp7b.js +0 -3
- package/server/deacon-swarm-jDiQ0kKk.js +0 -2
- package/server/dist-CnkaBMG-.js +0 -3
- package/server/forge-D2QLGWK9.js +0 -2
- package/server/hume-sCsuupWb.js +0 -3
- package/server/inspect-agent-DnspoIls.js +0 -2
- package/server/merge-ops-B6xc_Irj.js +0 -2
- package/server/public/assets/mermaid-GHXKKRXX-uIkd-n0c.js +0 -1
- package/server/rally-BJiyvz3w.js +0 -3
- package/server/reap-terminal-sessions-mW7SPDtP.js +0 -2
- package/server/resume-Pur3Z2e8.js +0 -3
- package/server/review-agent-BRSSFv7e.js +0 -3
- package/server/settings-D0XXIUQ0.js +0 -2
- package/server/specs-COn3zZ2Q.js +0 -3
- package/server/supervisor-DwGIhpXk.js +0 -2
- package/server/tmux-DNmHGMEv.js +0 -3
- package/server/workflows-Plo_VxeO.js +0 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { Lr as encodeClaudeProjectDir, Or as OVERDECK_HOME, Vr as init_paths, vr as init_errors, yr as AGENTS_DIR } from "./config-yaml-
|
|
3
|
-
import { E as listPaneValues, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-
|
|
4
|
-
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-
|
|
5
|
-
import { a as readCavemanVariant, n as init_workspace } from "./workspace-
|
|
6
|
-
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-
|
|
2
|
+
import { Lr as encodeClaudeProjectDir, Or as OVERDECK_HOME, Vr as init_paths, vr as init_errors, yr as AGENTS_DIR } from "./config-yaml-DPAieL_G.js";
|
|
3
|
+
import { E as listPaneValues, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-ePNhMIMU.js";
|
|
4
|
+
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-C2CuA66z.js";
|
|
5
|
+
import { a as readCavemanVariant, n as init_workspace } from "./workspace-4ZufqeMe.js";
|
|
6
|
+
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DKeSVsJL.js";
|
|
7
7
|
import { Effect } from "effect";
|
|
8
8
|
import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
|
|
9
9
|
import { basename, join } from "path";
|
|
@@ -325,7 +325,7 @@ function roleForSpecialistModel(specialistType) {
|
|
|
325
325
|
return { role: "work" };
|
|
326
326
|
}
|
|
327
327
|
async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
|
|
328
|
-
const { getAgentRuntimeBaseCommand } = await import("./agents-
|
|
328
|
+
const { getAgentRuntimeBaseCommand } = await import("./agents-BIggLvi_.js");
|
|
329
329
|
const role = roleForSpecialistModel(specialistType).role;
|
|
330
330
|
const harness = await resolveHarness({
|
|
331
331
|
model,
|
|
@@ -724,7 +724,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
|
|
|
724
724
|
const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
|
|
725
725
|
updateRunStatus(projectKey, registryKey, result.status);
|
|
726
726
|
if (metadata.currentRun) try {
|
|
727
|
-
const { finalizeRunLogSync } = await import("./specialist-logs-
|
|
727
|
+
const { finalizeRunLogSync } = await import("./specialist-logs-CvDxquV_.js");
|
|
728
728
|
finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
|
|
729
729
|
status: result.status,
|
|
730
730
|
notes: result.notes
|
|
@@ -734,7 +734,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
|
|
|
734
734
|
}
|
|
735
735
|
setCurrentRun(projectKey, registryKey, null);
|
|
736
736
|
updateRunMetadata(projectKey, registryKey, { currentActivity: null });
|
|
737
|
-
import("./agents-
|
|
737
|
+
import("./agents-BIggLvi_.js").then(({ saveAgentRuntimeState }) => {
|
|
738
738
|
saveAgentRuntimeState(resolvedTmuxSession, {
|
|
739
739
|
state: "idle",
|
|
740
740
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -765,7 +765,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
|
|
|
765
765
|
console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
|
|
766
766
|
}
|
|
767
767
|
if (metadata.currentRun) {
|
|
768
|
-
const { finalizeRunLogSync } = await import("./specialist-logs-
|
|
768
|
+
const { finalizeRunLogSync } = await import("./specialist-logs-CvDxquV_.js");
|
|
769
769
|
try {
|
|
770
770
|
finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
|
|
771
771
|
status: metadata.lastRunStatus || "incomplete",
|
|
@@ -779,12 +779,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
|
|
|
779
779
|
updateRunMetadata(projectKey, registryKey, { currentActivity: null });
|
|
780
780
|
const key = `${projectKey}-${specialistType}`;
|
|
781
781
|
gracePeriodStates.delete(key);
|
|
782
|
-
const { saveAgentRuntimeState } = await import("./agents-
|
|
782
|
+
const { saveAgentRuntimeState } = await import("./agents-BIggLvi_.js");
|
|
783
783
|
saveAgentRuntimeState(tmuxSession, {
|
|
784
784
|
state: "suspended",
|
|
785
785
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString()
|
|
786
786
|
});
|
|
787
|
-
const { scheduleDigestGeneration } = await import("./specialist-context-
|
|
787
|
+
const { scheduleDigestGeneration } = await import("./specialist-context-CwKkcXL9.js");
|
|
788
788
|
scheduleDigestGeneration(projectKey, specialistType);
|
|
789
789
|
scheduleLogCleanup(projectKey, specialistType);
|
|
790
790
|
}
|
|
@@ -797,8 +797,8 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
|
|
|
797
797
|
function scheduleLogCleanup(projectKey, specialistType) {
|
|
798
798
|
Promise.resolve().then(async () => {
|
|
799
799
|
try {
|
|
800
|
-
const { cleanupOldLogsSync } = await import("./specialist-logs-
|
|
801
|
-
const { getSpecialistRetention } = await import("./projects-
|
|
800
|
+
const { cleanupOldLogsSync } = await import("./specialist-logs-CvDxquV_.js");
|
|
801
|
+
const { getSpecialistRetention } = await import("./projects-BNmVxnNt.js");
|
|
802
802
|
const retention = getSpecialistRetention(projectKey);
|
|
803
803
|
const deleted = cleanupOldLogsSync(projectKey, specialistType, {
|
|
804
804
|
maxDays: retention.max_days,
|
|
@@ -952,7 +952,7 @@ function listSpecialistsForProject(projectKey) {
|
|
|
952
952
|
*/
|
|
953
953
|
async function getAllProjectSpecialistStatuses() {
|
|
954
954
|
const registry = loadRegistry();
|
|
955
|
-
const { getAgentRuntimeStateSync } = await import("./agents-
|
|
955
|
+
const { getAgentRuntimeStateSync } = await import("./agents-BIggLvi_.js");
|
|
956
956
|
const results = [];
|
|
957
957
|
for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
|
|
958
958
|
const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
|
|
@@ -1089,7 +1089,7 @@ async function getSpecialistStatus(name, projectKey) {
|
|
|
1089
1089
|
const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
|
|
1090
1090
|
const running = await isRunning(name, projectKey);
|
|
1091
1091
|
const contextTokens = countContextTokens(name);
|
|
1092
|
-
const { getAgentRuntimeStateSync } = await import("./agents-
|
|
1092
|
+
const { getAgentRuntimeStateSync } = await import("./agents-BIggLvi_.js");
|
|
1093
1093
|
const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
|
|
1094
1094
|
let state;
|
|
1095
1095
|
if (runtimeState) switch (runtimeState.state) {
|
|
@@ -1169,7 +1169,7 @@ async function sendFeedbackToAgent(feedback) {
|
|
|
1169
1169
|
}
|
|
1170
1170
|
const agentSession = `agent-${toIssueId.toLowerCase()}`;
|
|
1171
1171
|
const feedbackMessage = formatFeedbackForAgent(fullFeedback);
|
|
1172
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
1172
|
+
const { writeFeedbackFile } = await import("./feedback-writer-thrdxYpK.js");
|
|
1173
1173
|
const specialist = {
|
|
1174
1174
|
"review-agent": "review-agent",
|
|
1175
1175
|
"test-agent": "test-agent",
|
|
@@ -1188,7 +1188,7 @@ async function sendFeedbackToAgent(feedback) {
|
|
|
1188
1188
|
return false;
|
|
1189
1189
|
}
|
|
1190
1190
|
try {
|
|
1191
|
-
const { messageAgent } = await import("./agents-
|
|
1191
|
+
const { messageAgent } = await import("./agents-BIggLvi_.js");
|
|
1192
1192
|
await messageAgent(agentSession, `SPECIALIST FEEDBACK: ${fromSpecialist} reported ${feedback.feedbackType.toUpperCase()} for ${toIssueId}.\n\nMUST READ: ${fileResult.filePath}\n\nUse your Read tool to open this file, read every line, then address the feedback and continue working. Do NOT stop at the prompt.`);
|
|
1193
1193
|
console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
|
|
1194
1194
|
return true;
|
|
@@ -1307,4 +1307,4 @@ var init_specialists = __esmMin((() => {
|
|
|
1307
1307
|
//#endregion
|
|
1308
1308
|
export { updateRunMetadata as $, isEnabled as A, pauseGracePeriod as B, getSpecialistState as C, initSpecialistsDirectory as D, incrementProjectRunCount as E, listSpecialistsForProject as F, sendFeedbackToAgent as G, recordWake as H, loadRegistry as I, specialists_exports as J, setCurrentRun as K, makeSpecialistRegistryKey as L, isProjectSpecialistActivelyRunning as M, isRunning as N, init_specialists as O, listProjectsWithSpecialists as P, updateProjectSpecialistMetadata as Q, parseReviewerSessionName as R, getSpecialistMetadata as S, getTmuxSessionName as T, resumeGracePeriod as U, pruneSpecialistRegistryEntriesForIssue as V, saveRegistry as W, terminateSpecialist as X, startGracePeriod as Y, updateContextTokens as Z, getPendingFeedback as _, disableSpecialist as a, init_jsonl_parser as at, getReviewerSessionName as b, exitGracePeriod as c, getAllProjectSpecialistStatuses as d, updateRunStatus as et, getAllSpecialistStatus as f, getGracePeriodState as g, getFeedbackStats as h, countContextTokens as i, getSessionFilesSync as it, isInitialized as j, initializeEnabledSpecialists as k, findActiveRegistryKey as l, getEnabledSpecialists as m, buildSpecialistBaseCommand as n, getActiveSessionModelSync as nt, enableSpecialist as o, normalizeModelName as ot, getAllSpecialists as p, signalSpecialistCompletion as q, buildSpecialistCavemanExports as r, getProjectDirsSync as rt, ensureProjectSpecialistDir as s, parseClaudeSessionSync as st, REVIEWER_ROLES as t, updateSpecialistMetadata as tt, findSessionFile as u, getProjectSpecialistDir as v, getSpecialistStatus as w, getRunMetadata as x, getProjectSpecialistMetadata as y, parseSpecialistRegistryKey as z };
|
|
1309
1309
|
|
|
1310
|
-
//# sourceMappingURL=specialists-
|
|
1310
|
+
//# sourceMappingURL=specialists-BYi0k8CZ.js.map
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { $n as extractPrefixSync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, E as canUseHarnessSync, Gn as resolveProjectFromIssueSync, Lr as encodeClaudeProjectDir, Nn as init_projects, O as init_harness_policy, S as init_tier_table, Vr as init_paths, X as resolveModel, cr as FsError, er as init_issue_id, f as loadConfigSync, fn as init_state_read_home, mn as shouldCommitLegacyWorkspaceArtifacts, nr as parseIssueIdSync, t as init_config_yaml, vr as init_errors, w as resolveTieredExecutionEnabledForIssue } from "./config-yaml-
|
|
3
|
-
import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-
|
|
4
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
5
|
-
import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, R as sessionExistsSync, i as capturePane, k as listSessions, q as init_child_env, w as killSession, x as init_tmux } from "./tmux-
|
|
6
|
-
import { a as init_event_store, n as getEventStore } from "./event-store-
|
|
7
|
-
import { C as normalizeChannelReplyPayload, a as getHarnessBehavior, b as DomainEvent, t as init_src } from "./src-
|
|
8
|
-
import {
|
|
9
|
-
import { a as EventStoreService, c as ReadModelService, d as init_read_model, i as init_issue_lifecycle, s as init_domain_services, t as IssueLifecycle, u as getClosedIssueIdsForReadSource } from "./issue-lifecycle-
|
|
10
|
-
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-
|
|
11
|
-
import { $n as writeAgentStateJsonSync, An as getAgentDir, Bt as resolveStaffing, C as restartAgent, Ct as deliverAgentPermissionDecision, E as resumeAgent, En as clearAgentTroubled, Et as setAgentDeliveryMethod, F as getActivity, I as getLatestSessionId, Jn as saveAgentStateSync, Jt as getProviderAuthMode, K as stopAgent, L as getLatestSessionIdSync, Lt as transitionIssueToInProgress, M as init_operator_interventions, Mn as getAgentState, N as operatorInterventionEvent, Pn as getAgentStateSync, Qn as wipeAgentStateDirs, R as getSessionId, S as recoverAgent, St as deliverAgentMessage, Vn as markAgentStoppedState, X as listAgentStates, Yn as setAgentPaused, Z as listRunningAgents, _t as init_config, cn as determineModel, er as init_persistent_logger, fn as init_provider_health, g as init_tier_escalation, gr as saveAgentRuntimeState, h as decideEscalation, j as messageAgent, lr as normalizeAgentId, mr as getAgentRuntimeStateSync, pn as validateProviderHealth, pr as getAgentRuntimeState, qn as saveAgentState, t as init_agents, tr as logAgentLifecycleSync, wn as clearAgentPaused, yt as loadCloisterConfigSync, z as saveSessionId, zt as init_staffing } from "./agents-
|
|
12
|
-
import { t as init_behavior } from "./behavior-
|
|
13
|
-
import { a as performHandoff, i as checkAllTriggers, s as getAgentHealth, t as getCloisterService } from "./service-
|
|
14
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
15
|
-
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-
|
|
2
|
+
import { $n as extractPrefixSync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, E as canUseHarnessSync, Gn as resolveProjectFromIssueSync, Lr as encodeClaudeProjectDir, Nn as init_projects, O as init_harness_policy, S as init_tier_table, Vr as init_paths, X as resolveModel, cr as FsError, er as init_issue_id, f as loadConfigSync, fn as init_state_read_home, mn as shouldCommitLegacyWorkspaceArtifacts, nr as parseIssueIdSync, t as init_config_yaml, vr as init_errors, w as resolveTieredExecutionEnabledForIssue } from "./config-yaml-DPAieL_G.js";
|
|
3
|
+
import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
|
|
4
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CpKlYZA9.js";
|
|
5
|
+
import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, R as sessionExistsSync, i as capturePane, k as listSessions, q as init_child_env, w as killSession, x as init_tmux } from "./tmux-ePNhMIMU.js";
|
|
6
|
+
import { a as init_event_store, n as getEventStore } from "./event-store-DTJXZjCl.js";
|
|
7
|
+
import { C as normalizeChannelReplyPayload, a as getHarnessBehavior, b as DomainEvent, t as init_src } from "./src-fgbU-jJ-.js";
|
|
8
|
+
import { D as AGENT_COLUMNS_FOR_DB, M as stateToOverdeckParamsForDb, c as init_review_status, k as init_agent_state_sync, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-BQjqQXZG.js";
|
|
9
|
+
import { a as EventStoreService, c as ReadModelService, d as init_read_model, i as init_issue_lifecycle, s as init_domain_services, t as IssueLifecycle, u as getClosedIssueIdsForReadSource } from "./issue-lifecycle-DnhQgddB.js";
|
|
10
|
+
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-C2CuA66z.js";
|
|
11
|
+
import { $n as writeAgentStateJsonSync, An as getAgentDir, Bt as resolveStaffing, C as restartAgent, Ct as deliverAgentPermissionDecision, E as resumeAgent, En as clearAgentTroubled, Et as setAgentDeliveryMethod, F as getActivity, I as getLatestSessionId, Jn as saveAgentStateSync, Jt as getProviderAuthMode, K as stopAgent, L as getLatestSessionIdSync, Lt as transitionIssueToInProgress, M as init_operator_interventions, Mn as getAgentState, N as operatorInterventionEvent, Pn as getAgentStateSync, Qn as wipeAgentStateDirs, R as getSessionId, S as recoverAgent, St as deliverAgentMessage, Vn as markAgentStoppedState, X as listAgentStates, Yn as setAgentPaused, Z as listRunningAgents, _t as init_config, cn as determineModel, er as init_persistent_logger, fn as init_provider_health, g as init_tier_escalation, gr as saveAgentRuntimeState, h as decideEscalation, j as messageAgent, lr as normalizeAgentId, mr as getAgentRuntimeStateSync, pn as validateProviderHealth, pr as getAgentRuntimeState, qn as saveAgentState, t as init_agents, tr as logAgentLifecycleSync, wn as clearAgentPaused, yt as loadCloisterConfigSync, z as saveSessionId, zt as init_staffing } from "./agents-DHvsjsuP.js";
|
|
12
|
+
import { t as init_behavior } from "./behavior-By-2Wipv.js";
|
|
13
|
+
import { a as performHandoff, i as checkAllTriggers, s as getAgentHealth, t as getCloisterService } from "./service-CILd-uOt.js";
|
|
14
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-C3hiPVAM.js";
|
|
15
|
+
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-_AquSBTl.js";
|
|
16
16
|
import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-CE1m_daD.js";
|
|
17
|
-
import { I as generateVBriefFilename, L as init_lifecycle, f as readTierOverrides, g as serializeVBriefDocument, h as recordTierPromotion, m as readWorkspacePlanSync, o as init_io, r as findPlan, u as readPlan } from "./io-
|
|
18
|
-
import { d as getCliproxyAuthDir, g as getCliproxyLogPath, l as decodeJwtPayload, v as init_cliproxy } from "./cliproxy-
|
|
19
|
-
import { _ as init_codex_conversation_parser, c as parseEntireConversation, d as init_pi_conversation_parser, g as parseOhmypiConversationMessages, m as init_ohmypi_conversation_parser, p as parsePiConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-
|
|
20
|
-
import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-
|
|
21
|
-
import { c as requireModelOverrideSync, n as init_state_home, o as init_model_validation, r as isStateMigrated, s as normalizeModelOverrideSync } from "./state-home-
|
|
22
|
-
import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-
|
|
23
|
-
import { s as getDispatchableItems, u as init_dag } from "./dag-
|
|
24
|
-
import { i as queryBeadById, r as init_beads_query } from "./beads-query-
|
|
25
|
-
import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionVBriefOnMain } from "./lifecycle-io-
|
|
26
|
-
import { Lt as getRuntimeForAgent, Q as createInFlightGuard, Qt as getAgentWorkspace$1, Rt as classifyMemoryPressure, Ut as getResourceConfig, Wt as getSystemHealthSnapshot, Xt as getAgentJsonlPath$1, Zt as getAgentPendingQuestions$1, nn as normalizeAwaitingInputPrompt, qt as computeAgentEnrichment } from "./deacon-
|
|
27
|
-
import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-
|
|
28
|
-
import { at as init_jsonl_parser, ot as normalizeModelName } from "./specialists-
|
|
29
|
-
import { t as withBdMutex } from "./bd-mutex-
|
|
30
|
-
import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-
|
|
31
|
-
import { c as syncBeadStatusToVBrief } from "./beads-
|
|
17
|
+
import { I as generateVBriefFilename, L as init_lifecycle, f as readTierOverrides, g as serializeVBriefDocument, h as recordTierPromotion, m as readWorkspacePlanSync, o as init_io, r as findPlan, u as readPlan } from "./io-Wy8YpFeP.js";
|
|
18
|
+
import { d as getCliproxyAuthDir, g as getCliproxyLogPath, l as decodeJwtPayload, v as init_cliproxy } from "./cliproxy-J-_1iIXe.js";
|
|
19
|
+
import { _ as init_codex_conversation_parser, c as parseEntireConversation, d as init_pi_conversation_parser, g as parseOhmypiConversationMessages, m as init_ohmypi_conversation_parser, p as parsePiConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-DvG8vZSV.js";
|
|
20
|
+
import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-Dwyj9gEM.js";
|
|
21
|
+
import { c as requireModelOverrideSync, n as init_state_home, o as init_model_validation, r as isStateMigrated, s as normalizeModelOverrideSync } from "./state-home-Bgj7i-C7.js";
|
|
22
|
+
import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-BJVh1TCg.js";
|
|
23
|
+
import { s as getDispatchableItems, u as init_dag } from "./dag-jH8ZkewR.js";
|
|
24
|
+
import { i as queryBeadById, r as init_beads_query } from "./beads-query-BrVNWoSL.js";
|
|
25
|
+
import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionVBriefOnMain } from "./lifecycle-io-DSrv9xGh.js";
|
|
26
|
+
import { Lt as getRuntimeForAgent, Q as createInFlightGuard, Qt as getAgentWorkspace$1, Rt as classifyMemoryPressure, Ut as getResourceConfig, Wt as getSystemHealthSnapshot, Xt as getAgentJsonlPath$1, Zt as getAgentPendingQuestions$1, nn as normalizeAwaitingInputPrompt, qt as computeAgentEnrichment } from "./deacon-j3qSZ7--.js";
|
|
27
|
+
import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-CEWK-OXd.js";
|
|
28
|
+
import { at as init_jsonl_parser, ot as normalizeModelName } from "./specialists-BYi0k8CZ.js";
|
|
29
|
+
import { t as withBdMutex } from "./bd-mutex-BItGvLQ8.js";
|
|
30
|
+
import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-1eu1RvAT.js";
|
|
31
|
+
import { c as syncBeadStatusToVBrief } from "./beads-DlZm-vrG.js";
|
|
32
32
|
import { Cause, Data, Effect, Layer, Option, Schema, Stream } from "effect";
|
|
33
33
|
import { join } from "path";
|
|
34
34
|
import { homedir } from "node:os";
|
|
@@ -629,7 +629,7 @@ async function resolveCodexRolloutPath(agentId, opts = {}) {
|
|
|
629
629
|
const agentDir = join$1(opts.agentsDirOverride ?? join$1(getOverdeckHome(), "agents"), agentId);
|
|
630
630
|
const codexHome = join$1(agentDir, "codex-home");
|
|
631
631
|
if (!await pathExists$1(codexHome)) return null;
|
|
632
|
-
const { findRolloutPath, findLatestRollout } = await import("./codex-
|
|
632
|
+
const { findRolloutPath, findLatestRollout } = await import("./codex-BUZjrnqH.js");
|
|
633
633
|
const threadId = (await readOptional(join$1(agentDir, "codex-thread-id")))?.trim();
|
|
634
634
|
if (threadId) {
|
|
635
635
|
const rollout = findRolloutPath(codexHome, threadId);
|
|
@@ -1720,7 +1720,7 @@ const getAgentOutputRoute = HttpRouter.add("GET", "/api/agents/:id/output", http
|
|
|
1720
1720
|
} catch {}
|
|
1721
1721
|
let stdout;
|
|
1722
1722
|
if (isRemote && vmName) {
|
|
1723
|
-
const { getRemoteAgentOutput } = await import("./remote-agents-
|
|
1723
|
+
const { getRemoteAgentOutput } = await import("./remote-agents-DNuaAgU6.js");
|
|
1724
1724
|
stdout = await getRemoteAgentOutput(id, vmName, parseInt(String(lines), 10) || 100);
|
|
1725
1725
|
} else stdout = await Effect.runPromise(capturePane(id, parseInt(String(lines), 10) || 100));
|
|
1726
1726
|
if (!stdout || stdout.trim() === "" || stdout.trim() === "Session not found") {
|
|
@@ -2134,7 +2134,7 @@ const postInternalAgentPermissionRequestRoute = HttpRouter.add("POST", "/api/int
|
|
|
2134
2134
|
error: "missing agent id"
|
|
2135
2135
|
}, { status: 400 });
|
|
2136
2136
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
2137
|
-
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-
|
|
2137
|
+
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-DrGdpLFo.js"));
|
|
2138
2138
|
const expected = getInternalTokenSync();
|
|
2139
2139
|
if (!expected) return jsonResponse({
|
|
2140
2140
|
ok: false,
|
|
@@ -2401,7 +2401,7 @@ const getAgentHealthHistoryRoute = HttpRouter.add("GET", "/api/agents/:id/health
|
|
|
2401
2401
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
2402
2402
|
const urlOpt = HttpServerRequest.toURL(request);
|
|
2403
2403
|
const hours = Option.isSome(urlOpt) ? urlOpt.value.searchParams.get("hours") ?? "24" : "24";
|
|
2404
|
-
const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-
|
|
2404
|
+
const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-CD6q47ub.js"));
|
|
2405
2405
|
const endTime = /* @__PURE__ */ new Date();
|
|
2406
2406
|
const startTime = /* @__PURE__ */ new Date(endTime.getTime() - parseInt(hours) * 60 * 60 * 1e3);
|
|
2407
2407
|
const events = getHealthHistory(id, startTime.toISOString(), endTime.toISOString());
|
|
@@ -2442,7 +2442,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
|
|
|
2442
2442
|
detail: String(decoded.failure)
|
|
2443
2443
|
}, { status: 400 })
|
|
2444
2444
|
};
|
|
2445
|
-
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-
|
|
2445
|
+
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-C1iUF9Ft.js"));
|
|
2446
2446
|
yield* (yield* AgentStateService).emit(decoded.success);
|
|
2447
2447
|
return {
|
|
2448
2448
|
ok: true,
|
|
@@ -2524,7 +2524,7 @@ const getAgentRuntimeRoute = HttpRouter.add("GET", "/api/agents/:id/runtime", ht
|
|
|
2524
2524
|
success: false,
|
|
2525
2525
|
error: "missing agent id"
|
|
2526
2526
|
}, { status: 400 });
|
|
2527
|
-
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-
|
|
2527
|
+
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-C1iUF9Ft.js"));
|
|
2528
2528
|
const snapshot = yield* (yield* AgentStateService).get(id);
|
|
2529
2529
|
if (!snapshot) return jsonResponse({
|
|
2530
2530
|
success: false,
|
|
@@ -2635,8 +2635,8 @@ function createAgentStopHandler(lifecycleEvent) {
|
|
|
2635
2635
|
yield* stopAgent(id);
|
|
2636
2636
|
if (stateBeforeStop?.issueId) yield* Effect.promise(async () => {
|
|
2637
2637
|
try {
|
|
2638
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
2639
|
-
const { findWorkspacePath } = await import("./archive-planning-
|
|
2638
|
+
const { resolveProjectFromIssueSync } = await import("./projects-BNmVxnNt.js");
|
|
2639
|
+
const { findWorkspacePath } = await import("./archive-planning-B4Qi02bk.js");
|
|
2640
2640
|
const issueLower = stateBeforeStop.issueId.toLowerCase();
|
|
2641
2641
|
const workspacePath = findWorkspacePath(resolveProjectFromIssueSync(stateBeforeStop.issueId)?.projectPath ?? process.cwd(), issueLower);
|
|
2642
2642
|
if (workspacePath) {
|
|
@@ -3715,15 +3715,15 @@ init_agents();
|
|
|
3715
3715
|
function handleRemoteAgentSpawn(input) {
|
|
3716
3716
|
return Effect.gen(function* () {
|
|
3717
3717
|
const { issueId, workspacePath, workspaceMetadata, spawnModel, projectPath, spawnGuardrails, lifecycle } = input;
|
|
3718
|
-
const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-
|
|
3719
|
-
const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-
|
|
3720
|
-
const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-
|
|
3718
|
+
const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-DNuaAgU6.js"));
|
|
3719
|
+
const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-B1Trmr0N.js"));
|
|
3720
|
+
const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-CzcWQ24p.js"));
|
|
3721
3721
|
const panConfig = loadPanConfig();
|
|
3722
3722
|
const spendCap = checkRemoteSpendCap(panConfig);
|
|
3723
3723
|
if (!spendCap.allowed) return jsonResponse({ error: spendCap.message }, { status: 429 });
|
|
3724
3724
|
const fly = createFlyProviderFromConfig(panConfig.remote);
|
|
3725
3725
|
yield* Effect.promise(() => fly.syncAllCredentials(workspaceMetadata.vmName));
|
|
3726
|
-
const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-
|
|
3726
|
+
const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-DCdHsm-V.js"));
|
|
3727
3727
|
const trackerContext = yield* Effect.promise(() => getTrackerContext(issueId, workspacePath));
|
|
3728
3728
|
const agentPrompt = yield* Effect.promise(() => buildWorkAgentPrompt({
|
|
3729
3729
|
issueId,
|
|
@@ -4252,7 +4252,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
|
|
|
4252
4252
|
if (!hasBeads) {
|
|
4253
4253
|
console.log(`[agents] No beads for ${issueId} — attempting auto-recovery via createBeadsFromVBrief`);
|
|
4254
4254
|
try {
|
|
4255
|
-
const { createBeadsFromVBrief } = yield* Effect.promise(() => import("./beads-
|
|
4255
|
+
const { createBeadsFromVBrief } = yield* Effect.promise(() => import("./beads-AmCXEv_E.js"));
|
|
4256
4256
|
const recovery = yield* createBeadsFromVBrief(workspacePath);
|
|
4257
4257
|
beadCount = recovery.created.length;
|
|
4258
4258
|
hasBeads = recovery.created.length > 0 && (planItemCount === null || recovery.created.length === planItemCount);
|
|
@@ -4442,7 +4442,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
|
|
|
4442
4442
|
console.warn(`[start-agent] Failed to set plan.status=running (non-fatal): ${planStatusErr?.message ?? planStatusErr}`);
|
|
4443
4443
|
}
|
|
4444
4444
|
try {
|
|
4445
|
-
const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = yield* Effect.promise(() => import("./record-
|
|
4445
|
+
const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = yield* Effect.promise(() => import("./record-DjPikotp.js"));
|
|
4446
4446
|
const recordProject = resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath);
|
|
4447
4447
|
yield* Effect.promise(() => appendSessionEntry(recordProject, issueId, {
|
|
4448
4448
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -4860,10 +4860,10 @@ const _serverManagedMerges = /* @__PURE__ */ new Set();
|
|
|
4860
4860
|
function firePostMergeLifecycle(issueId, options) {
|
|
4861
4861
|
const started = postMergeGuard.run(issueId, async () => {
|
|
4862
4862
|
const projectPath = getProjectPathForIssue(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
4863
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
4863
|
+
const { postMergeLifecycle } = await import("./merge-agent-Dh8Y9PDO.js");
|
|
4864
4864
|
await postMergeLifecycle(issueId, projectPath, options?.sourceBranch, options?.verifiedMergedRef ? { verifiedMergedRef: options.verifiedMergedRef } : void 0);
|
|
4865
4865
|
console.log(`[merge] post-merge lifecycle completed for ${issueId}`);
|
|
4866
|
-
const { runMergeTrainReconcile } = await import("./merge-train-
|
|
4866
|
+
const { runMergeTrainReconcile } = await import("./merge-train-DmxlYbEo.js");
|
|
4867
4867
|
const outcomes = await runMergeTrainReconcile(issueId);
|
|
4868
4868
|
if (outcomes.length > 0) console.log(`[merge-train] reconciled ${outcomes.length} sibling(s) after ${issueId}: ` + outcomes.map((o) => `${o.issueId}=${o.result}`).join(", "));
|
|
4869
4869
|
}, (err) => console.error(`[merge] post-merge lifecycle failed for ${issueId}:`, err));
|
|
@@ -4884,15 +4884,15 @@ init_io();
|
|
|
4884
4884
|
init_domain_services();
|
|
4885
4885
|
init_tmux();
|
|
4886
4886
|
const getSpecialistsRoute = HttpRouter.add("GET", "/api/specialists", httpHandler(Effect.gen(function* () {
|
|
4887
|
-
const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-
|
|
4887
|
+
const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
4888
4888
|
return jsonResponse({
|
|
4889
4889
|
specialists: yield* Effect.promise(() => getAllSpecialistStatus()),
|
|
4890
4890
|
projects: yield* Effect.promise(() => getAllProjectSpecialistStatuses())
|
|
4891
4891
|
});
|
|
4892
4892
|
})));
|
|
4893
4893
|
const postSpecialistsResetAllRoute = HttpRouter.add("POST", "/api/specialists/reset-all", httpHandler(Effect.gen(function* () {
|
|
4894
|
-
const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
4895
|
-
const { clearHookSync } = yield* Effect.promise(() => import("./hooks-
|
|
4894
|
+
const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
4895
|
+
const { clearHookSync } = yield* Effect.promise(() => import("./hooks-D-cbMUzQ.js"));
|
|
4896
4896
|
const specialists = getAllSpecialists();
|
|
4897
4897
|
const results = [];
|
|
4898
4898
|
for (const specialist of specialists) {
|
|
@@ -4942,7 +4942,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
4942
4942
|
const normalizedIssueId = issueId.toUpperCase();
|
|
4943
4943
|
console.log(`[specialists/done] ${specialist} signaling ${status} for ${normalizedIssueId}`);
|
|
4944
4944
|
if (specialist === "merge") {
|
|
4945
|
-
const { reportSpecialistCompletion } = yield* Effect.promise(() => import("./specialist-completion-
|
|
4945
|
+
const { reportSpecialistCompletion } = yield* Effect.promise(() => import("./specialist-completion-BiEXUHfD.js"));
|
|
4946
4946
|
if (yield* reportSpecialistCompletion(normalizedIssueId, {
|
|
4947
4947
|
status,
|
|
4948
4948
|
notes
|
|
@@ -4989,7 +4989,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
4989
4989
|
if (specialist === "inspect" && status === "failed") yield* Effect.promise(() => reportTieredInspectFailureEscalation(normalizedIssueId, notes));
|
|
4990
4990
|
yield* Effect.promise(async () => {
|
|
4991
4991
|
try {
|
|
4992
|
-
const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-
|
|
4992
|
+
const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-F2uMO4QS.js");
|
|
4993
4993
|
const projectKey = resolveProjectFromIssueSync(normalizedIssueId)?.projectKey;
|
|
4994
4994
|
const tmuxSession = projectKey ? getTmuxSessionName(`${specialist}-agent`, projectKey, normalizedIssueId) : getTmuxSessionName(`${specialist}-agent`);
|
|
4995
4995
|
saveAgentRuntimeState(tmuxSession, {
|
|
@@ -4997,14 +4997,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
4997
4997
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString()
|
|
4998
4998
|
});
|
|
4999
4999
|
console.log(`[specialists/done] Set ${tmuxSession} to idle`);
|
|
5000
|
-
|
|
5001
|
-
if (KEEP_SPECIALIST_SESSIONS_ALIVE) console.log(`[specialists/done] PAN-2007 keep-alive: verdict recorded, leaving ${tmuxSession} running`);
|
|
5002
|
-
else try {
|
|
5003
|
-
await Effect.runPromise(killSession(tmuxSession));
|
|
5004
|
-
console.log(`[specialists/done] Killed specialist session ${tmuxSession}`);
|
|
5005
|
-
} catch (err) {
|
|
5006
|
-
console.log(`[specialists/done] Session ${tmuxSession} already gone or failed to kill: ${err instanceof Error ? err.message : String(err)}`);
|
|
5007
|
-
}
|
|
5000
|
+
console.log(`[specialists/done] Warm lifecycle: verdict recorded, leaving ${tmuxSession} running (PAN-2579)`);
|
|
5008
5001
|
if (projectKey) {
|
|
5009
5002
|
const registryKey = makeSpecialistRegistryKey(`${specialist}-agent`, normalizedIssueId);
|
|
5010
5003
|
updateRunMetadata(projectKey, registryKey, {
|
|
@@ -5015,7 +5008,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5015
5008
|
});
|
|
5016
5009
|
console.log(`[specialists/done] Cleared registry lock for ${registryKey} (${projectKey})`);
|
|
5017
5010
|
}
|
|
5018
|
-
const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-
|
|
5011
|
+
const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-B_2VsWli.js");
|
|
5019
5012
|
if (await Effect.runPromise(updateSpecialistHandoffStatus(normalizedIssueId, `${specialist}-agent`, status === "passed" ? "completed" : "failed", status === "passed" ? "success" : "failure"))) console.log(`[specialists/done] Updated handoff log: ${specialist}-agent ${normalizedIssueId} → ${status}`);
|
|
5020
5013
|
} catch (err) {
|
|
5021
5014
|
console.error(`[specialists/done] Error managing specialist state:`, err);
|
|
@@ -5027,7 +5020,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5027
5020
|
if (project) {
|
|
5028
5021
|
const workspacePath = join$1(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
|
|
5029
5022
|
if (existsSync(workspacePath)) {
|
|
5030
|
-
const { getWorkspaceGitInfo } = await import("./git-utils-
|
|
5023
|
+
const { getWorkspaceGitInfo } = await import("./git-utils-RAmTwjFB.js");
|
|
5031
5024
|
const { HEAD } = await Effect.runPromise(getWorkspaceGitInfo(workspacePath));
|
|
5032
5025
|
setReviewStatusSync(normalizedIssueId, { reviewedAtCommit: HEAD });
|
|
5033
5026
|
console.log(`[specialists/done] Snapshotted reviewedAtCommit=${HEAD.substring(0, 8)} for ${normalizedIssueId}`);
|
|
@@ -5039,7 +5032,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5039
5032
|
});
|
|
5040
5033
|
if (specialist === "inspect" && status === "passed") yield* Effect.promise(async () => {
|
|
5041
5034
|
try {
|
|
5042
|
-
const { onInspectComplete } = await import("./inspect-agent-
|
|
5035
|
+
const { onInspectComplete } = await import("./inspect-agent-vm88mLYr.js");
|
|
5043
5036
|
const beadId = (notes?.match(/[Bb]ead\s+(\S+)/))?.[1] || "unknown";
|
|
5044
5037
|
const project = resolveProjectFromIssueSync(normalizedIssueId);
|
|
5045
5038
|
if (project) {
|
|
@@ -5084,7 +5077,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5084
5077
|
if (project) {
|
|
5085
5078
|
if (existsSync(join$1(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`))) {
|
|
5086
5079
|
setReviewStatusSync(normalizedIssueId, { testStatus: "passed" });
|
|
5087
|
-
const { initEventStore } = await import("./event-store-
|
|
5080
|
+
const { initEventStore } = await import("./event-store-DIk9wvnS.js");
|
|
5088
5081
|
await (await initEventStore()).appendAsync({
|
|
5089
5082
|
type: "test.passed",
|
|
5090
5083
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -5137,8 +5130,8 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5137
5130
|
if (notes?.toLowerCase().includes("conflict")) yield* Effect.promise(async () => {
|
|
5138
5131
|
try {
|
|
5139
5132
|
const workAgentId = `agent-${normalizedIssueId.toLowerCase()}`;
|
|
5140
|
-
const { sessionExists } = await import("./tmux-
|
|
5141
|
-
const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-
|
|
5133
|
+
const { sessionExists } = await import("./tmux-CeDD14p1.js");
|
|
5134
|
+
const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-BIggLvi_.js");
|
|
5142
5135
|
if (await Effect.runPromise(sessionExists(workAgentId))) {
|
|
5143
5136
|
await messageAgent(workAgentId, `MERGE CONFLICT: The merge-agent could not rebase your branch onto main due to conflicts. Please fix this now:\n\n1. git fetch origin main\n2. git rebase origin/main\n3. Resolve any conflicts (git add <file> && git rebase --continue)\n4. git push --force-with-lease\n5. Resubmit: curl -s -X POST http://localhost:3011/api/review/${normalizedIssueId}/request -H "Content-Type: application/json" -d "{}"\n\nConflict details: ${notes}`);
|
|
5144
5137
|
console.log(`[specialists/done] Sent rebase instructions to ${workAgentId}`);
|
|
@@ -5152,7 +5145,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5152
5145
|
try {
|
|
5153
5146
|
const project = resolveProjectFromIssueSync(normalizedIssueId);
|
|
5154
5147
|
const workspacePath = project ? join$1(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`) : void 0;
|
|
5155
|
-
const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-
|
|
5148
|
+
const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-cZh9Wi9G.js");
|
|
5156
5149
|
const result = await Effect.runPromise(deliverReviewVerdictFeedback({
|
|
5157
5150
|
issueId: normalizedIssueId,
|
|
5158
5151
|
verdict: status === "failed" ? "failed" : "blocked",
|
|
@@ -5193,7 +5186,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
5193
5186
|
});
|
|
5194
5187
|
})));
|
|
5195
5188
|
const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/specialists/logs/cleanup-all", httpHandler(Effect.gen(function* () {
|
|
5196
|
-
const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-
|
|
5189
|
+
const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CvDxquV_.js"));
|
|
5197
5190
|
const results = cleanupAllLogsSync();
|
|
5198
5191
|
return jsonResponse({
|
|
5199
5192
|
success: true,
|
|
@@ -5203,7 +5196,7 @@ const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/speciali
|
|
|
5203
5196
|
});
|
|
5204
5197
|
})));
|
|
5205
5198
|
const getSpecialistsProjectsRoute = HttpRouter.add("GET", "/api/specialists/projects", httpHandler(Effect.gen(function* () {
|
|
5206
|
-
const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-
|
|
5199
|
+
const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5207
5200
|
return jsonResponse(yield* Effect.promise(() => getAllProjectSpecialistStatuses()));
|
|
5208
5201
|
})));
|
|
5209
5202
|
const postSpecialistWakeRoute = HttpRouter.add("POST", "/api/specialists/:name/wake", httpHandler(Effect.gen(function* () {
|
|
@@ -5247,7 +5240,7 @@ const postSpecialistReportStatusRoute = HttpRouter.add("POST", "/api/specialists
|
|
|
5247
5240
|
"blocked",
|
|
5248
5241
|
"failed"
|
|
5249
5242
|
].includes(status)) {
|
|
5250
|
-
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
5243
|
+
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5251
5244
|
saveAgentRuntimeState(getTmuxSessionName(name), {
|
|
5252
5245
|
state: "idle",
|
|
5253
5246
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString()
|
|
@@ -5368,7 +5361,7 @@ const postProjectSpecialistKillRoute = HttpRouter.add("POST", "/api/specialists/
|
|
|
5368
5361
|
const issueId = params["issueId"];
|
|
5369
5362
|
const type = params["type"];
|
|
5370
5363
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5371
|
-
const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-
|
|
5364
|
+
const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5372
5365
|
const tmuxSession = getRunMetadata(project, makeSpecialistRegistryKey(type, issueId)).tmuxSession ?? getTmuxSessionName(type, project, issueId);
|
|
5373
5366
|
yield* Effect.promise(() => Effect.runPromise(killSession(tmuxSession)).catch(() => {}));
|
|
5374
5367
|
saveAgentRuntimeState(tmuxSession, {
|
|
@@ -5395,7 +5388,7 @@ const getProjectSpecialistRunsRoute = HttpRouter.add("GET", "/api/specialists/:p
|
|
|
5395
5388
|
if (limitParam) limit = parseInt(limitParam, 10);
|
|
5396
5389
|
if (offsetParam) offset = parseInt(offsetParam, 10);
|
|
5397
5390
|
}
|
|
5398
|
-
const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-
|
|
5391
|
+
const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CvDxquV_.js"));
|
|
5399
5392
|
return jsonResponse(listRunLogsSync(project, type, {
|
|
5400
5393
|
limit,
|
|
5401
5394
|
offset
|
|
@@ -5406,7 +5399,7 @@ const getProjectSpecialistRunStreamRoute = HttpRouter.add("GET", "/api/specialis
|
|
|
5406
5399
|
const project = params["project"];
|
|
5407
5400
|
const type = params["type"];
|
|
5408
5401
|
const runId = params["runId"];
|
|
5409
|
-
const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-
|
|
5402
|
+
const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-CvDxquV_.js"));
|
|
5410
5403
|
const logPath = getRunLogPath(project, type, runId);
|
|
5411
5404
|
if (!existsSync(logPath)) return jsonResponse({ error: "Run log not found" }, { status: 404 });
|
|
5412
5405
|
const encoder = new TextEncoder();
|
|
@@ -5465,7 +5458,7 @@ const getProjectSpecialistRunRoute = HttpRouter.add("GET", "/api/specialists/:pr
|
|
|
5465
5458
|
const project = params["project"];
|
|
5466
5459
|
const type = params["type"];
|
|
5467
5460
|
const runId = params["runId"];
|
|
5468
|
-
const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-
|
|
5461
|
+
const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-CvDxquV_.js"));
|
|
5469
5462
|
const content = getRunLogSync(project, type, runId);
|
|
5470
5463
|
if (!content) return jsonResponse({ error: "Run log not found" }, { status: 404 });
|
|
5471
5464
|
return jsonResponse({
|
|
@@ -5479,7 +5472,7 @@ const postProjectSpecialistRunTerminateRoute = HttpRouter.add("POST", "/api/spec
|
|
|
5479
5472
|
const project = params["project"];
|
|
5480
5473
|
const type = params["type"];
|
|
5481
5474
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5482
|
-
const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-
|
|
5475
|
+
const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5483
5476
|
yield* Effect.promise(() => terminateSpecialist(project, type));
|
|
5484
5477
|
return jsonResponse({
|
|
5485
5478
|
success: true,
|
|
@@ -5491,7 +5484,7 @@ const postProjectSpecialistGracePauseRoute = HttpRouter.add("POST", "/api/specia
|
|
|
5491
5484
|
const project = params["project"];
|
|
5492
5485
|
const type = params["type"];
|
|
5493
5486
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5494
|
-
const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-
|
|
5487
|
+
const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5495
5488
|
if (pauseGracePeriod(project, type)) return jsonResponse({
|
|
5496
5489
|
success: true,
|
|
5497
5490
|
message: "Grace period paused"
|
|
@@ -5503,7 +5496,7 @@ const postProjectSpecialistGraceResumeRoute = HttpRouter.add("POST", "/api/speci
|
|
|
5503
5496
|
const project = params["project"];
|
|
5504
5497
|
const type = params["type"];
|
|
5505
5498
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5506
|
-
const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-
|
|
5499
|
+
const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5507
5500
|
if (resumeGracePeriod(project, type)) return jsonResponse({
|
|
5508
5501
|
success: true,
|
|
5509
5502
|
message: "Grace period resumed"
|
|
@@ -5515,7 +5508,7 @@ const postProjectSpecialistGraceExitRoute = HttpRouter.add("POST", "/api/special
|
|
|
5515
5508
|
const project = params["project"];
|
|
5516
5509
|
const type = params["type"];
|
|
5517
5510
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5518
|
-
const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-
|
|
5511
|
+
const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5519
5512
|
exitGracePeriod(project, type);
|
|
5520
5513
|
return jsonResponse({
|
|
5521
5514
|
success: true,
|
|
@@ -5527,7 +5520,7 @@ const getProjectSpecialistGraceRoute = HttpRouter.add("GET", "/api/specialists/:
|
|
|
5527
5520
|
const project = params["project"];
|
|
5528
5521
|
const type = params["type"];
|
|
5529
5522
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5530
|
-
const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-
|
|
5523
|
+
const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5531
5524
|
const state = getGracePeriodState(project, type);
|
|
5532
5525
|
if (state) return jsonResponse(state);
|
|
5533
5526
|
else return jsonResponse({ error: "No active grace period" }, { status: 404 });
|
|
@@ -5536,7 +5529,7 @@ const getProjectSpecialistContextRoute = HttpRouter.add("GET", "/api/specialists
|
|
|
5536
5529
|
const params = yield* HttpRouter.params;
|
|
5537
5530
|
const project = params["project"];
|
|
5538
5531
|
const type = params["type"];
|
|
5539
|
-
const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-
|
|
5532
|
+
const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-CwKkcXL9.js"));
|
|
5540
5533
|
const digest = loadContextDigest(project, type);
|
|
5541
5534
|
if (digest) return jsonResponse({ digest });
|
|
5542
5535
|
else return jsonResponse({ error: "No context digest found" }, { status: 404 });
|
|
@@ -5545,7 +5538,7 @@ const postProjectSpecialistContextRegenerateRoute = HttpRouter.add("POST", "/api
|
|
|
5545
5538
|
const params = yield* HttpRouter.params;
|
|
5546
5539
|
const project = params["project"];
|
|
5547
5540
|
const type = params["type"];
|
|
5548
|
-
const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-
|
|
5541
|
+
const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-CwKkcXL9.js"));
|
|
5549
5542
|
const digest = yield* Effect.promise(() => regenerateContextDigest(project, type));
|
|
5550
5543
|
if (digest) return jsonResponse({
|
|
5551
5544
|
digest,
|
|
@@ -5564,7 +5557,7 @@ const postProjectSpecialistCompleteRoute = HttpRouter.add("POST", "/api/speciali
|
|
|
5564
5557
|
"blocked"
|
|
5565
5558
|
].includes(status)) return jsonResponse({ error: "Valid status (passed/failed/blocked) is required" }, { status: 400 });
|
|
5566
5559
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
5567
|
-
const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-
|
|
5560
|
+
const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
|
|
5568
5561
|
signalSpecialistCompletion(project, type, {
|
|
5569
5562
|
status,
|
|
5570
5563
|
notes
|
|
@@ -5598,8 +5591,8 @@ const postProjectSpecialistLogsCleanupRoute = HttpRouter.add("POST", "/api/speci
|
|
|
5598
5591
|
const params = yield* HttpRouter.params;
|
|
5599
5592
|
const project = params["project"];
|
|
5600
5593
|
const type = params["type"];
|
|
5601
|
-
const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-
|
|
5602
|
-
const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-
|
|
5594
|
+
const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CvDxquV_.js"));
|
|
5595
|
+
const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-BNmVxnNt.js"));
|
|
5603
5596
|
const retention = getSpecialistRetention(project);
|
|
5604
5597
|
const deleted = cleanupOldLogsSync(project, type, {
|
|
5605
5598
|
maxDays: retention.max_days,
|
|
@@ -5620,7 +5613,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
|
|
|
5620
5613
|
const project = params["project"];
|
|
5621
5614
|
const issueId = params["issueId"];
|
|
5622
5615
|
const { model, harness } = yield* readJsonBody;
|
|
5623
|
-
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-
|
|
5616
|
+
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-DgySDb-G.js"));
|
|
5624
5617
|
const killResult = yield* killAllReviewerSessions(project, issueId);
|
|
5625
5618
|
const projectConfig = resolveProjectFromIssueSync(issueId);
|
|
5626
5619
|
if (!projectConfig) return jsonResponse({ error: `Cannot resolve project for ${issueId}` }, { status: 404 });
|
|
@@ -5634,7 +5627,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
|
|
|
5634
5627
|
}));
|
|
5635
5628
|
branch = stdout.trim() || "unknown";
|
|
5636
5629
|
} catch {}
|
|
5637
|
-
const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-
|
|
5630
|
+
const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-DgySDb-G.js"));
|
|
5638
5631
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5639
5632
|
const result = yield* spawnReviewRoleForIssue({
|
|
5640
5633
|
issueId,
|
|
@@ -5785,4 +5778,4 @@ const specialistsRouteLayer = Layer.mergeAll(specialistsLegacyRouteLayer, specia
|
|
|
5785
5778
|
//#endregion
|
|
5786
5779
|
export { validateOrigin as C, jsonResponse as D, httpHandler as E, jsonStringResponse as O, normalizeOrigin as S, checkCodexAuthStatus as T, resolveJsonlPath as _, agentsRouteLayer as a, getTrustedOrigins as b, evaluateSpawnGuardrails as c, resolveConversationGitInfo as d, getWorkAgentLifecycleStateSync as f, resolveCodexRolloutPath as g, resolveClaudeSessionId as h, validateSpecialistAutoCompleteMetadata as i, invalidateAgentsCache as l, resolveAgentHarness as m, _serverManagedMerges as n, saveAgentStateAndEmitEvent as o, readLauncherPinnedSessionId as p, firePostMergeLifecycle as r, saveAgentStateAndEmitEventProgram as s, specialistsRouteLayer as t, resolveAgentGitInfo as u, resolvePiSessionPath as v, validateOriginHeaders as w, isTrustedOriginForHost as x, getHeaderFromMap as y };
|
|
5787
5780
|
|
|
5788
|
-
//# sourceMappingURL=specialists-
|
|
5781
|
+
//# sourceMappingURL=specialists-D07ybnam.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as updateRunMetadata, A as isEnabled, B as pauseGracePeriod, C as getSpecialistState, D as initSpecialistsDirectory, E as incrementProjectRunCount, F as listSpecialistsForProject, G as sendFeedbackToAgent, H as recordWake, I as loadRegistry, K as setCurrentRun, L as makeSpecialistRegistryKey, M as isProjectSpecialistActivelyRunning, N as isRunning, O as init_specialists, P as listProjectsWithSpecialists, Q as updateProjectSpecialistMetadata, R as parseReviewerSessionName, S as getSpecialistMetadata, T as getTmuxSessionName, U as resumeGracePeriod, V as pruneSpecialistRegistryEntriesForIssue, W as saveRegistry, X as terminateSpecialist, Y as startGracePeriod, Z as updateContextTokens, _ as getPendingFeedback, a as disableSpecialist, b as getReviewerSessionName, c as exitGracePeriod, d as getAllProjectSpecialistStatuses, et as updateRunStatus, f as getAllSpecialistStatus, g as getGracePeriodState, h as getFeedbackStats, i as countContextTokens, j as isInitialized, k as initializeEnabledSpecialists, l as findActiveRegistryKey, m as getEnabledSpecialists, n as buildSpecialistBaseCommand, o as enableSpecialist, p as getAllSpecialists, q as signalSpecialistCompletion, r as buildSpecialistCavemanExports, s as ensureProjectSpecialistDir, t as REVIEWER_ROLES, tt as updateSpecialistMetadata, u as findSessionFile, v as getProjectSpecialistDir, w as getSpecialistStatus, x as getRunMetadata, y as getProjectSpecialistMetadata, z as parseSpecialistRegistryKey } from "./specialists-
|
|
1
|
+
import { $ as updateRunMetadata, A as isEnabled, B as pauseGracePeriod, C as getSpecialistState, D as initSpecialistsDirectory, E as incrementProjectRunCount, F as listSpecialistsForProject, G as sendFeedbackToAgent, H as recordWake, I as loadRegistry, K as setCurrentRun, L as makeSpecialistRegistryKey, M as isProjectSpecialistActivelyRunning, N as isRunning, O as init_specialists, P as listProjectsWithSpecialists, Q as updateProjectSpecialistMetadata, R as parseReviewerSessionName, S as getSpecialistMetadata, T as getTmuxSessionName, U as resumeGracePeriod, V as pruneSpecialistRegistryEntriesForIssue, W as saveRegistry, X as terminateSpecialist, Y as startGracePeriod, Z as updateContextTokens, _ as getPendingFeedback, a as disableSpecialist, b as getReviewerSessionName, c as exitGracePeriod, d as getAllProjectSpecialistStatuses, et as updateRunStatus, f as getAllSpecialistStatus, g as getGracePeriodState, h as getFeedbackStats, i as countContextTokens, j as isInitialized, k as initializeEnabledSpecialists, l as findActiveRegistryKey, m as getEnabledSpecialists, n as buildSpecialistBaseCommand, o as enableSpecialist, p as getAllSpecialists, q as signalSpecialistCompletion, r as buildSpecialistCavemanExports, s as ensureProjectSpecialistDir, t as REVIEWER_ROLES, tt as updateSpecialistMetadata, u as findSessionFile, v as getProjectSpecialistDir, w as getSpecialistStatus, x as getRunMetadata, y as getProjectSpecialistMetadata, z as parseSpecialistRegistryKey } from "./specialists-BYi0k8CZ.js";
|
|
2
2
|
init_specialists();
|
|
3
3
|
export { REVIEWER_ROLES, buildSpecialistBaseCommand, buildSpecialistCavemanExports, countContextTokens, disableSpecialist, enableSpecialist, ensureProjectSpecialistDir, exitGracePeriod, findActiveRegistryKey, findSessionFile, getAllProjectSpecialistStatuses, getAllSpecialistStatus, getAllSpecialists, getEnabledSpecialists, getFeedbackStats, getGracePeriodState, getPendingFeedback, getProjectSpecialistDir, getProjectSpecialistMetadata, getReviewerSessionName, getRunMetadata, getSpecialistMetadata, getSpecialistState, getSpecialistStatus, getTmuxSessionName, incrementProjectRunCount, initSpecialistsDirectory, initializeEnabledSpecialists, isEnabled, isInitialized, isProjectSpecialistActivelyRunning, isRunning, listProjectsWithSpecialists, listSpecialistsForProject, loadRegistry, makeSpecialistRegistryKey, parseReviewerSessionName, parseSpecialistRegistryKey, pauseGracePeriod, pruneSpecialistRegistryEntriesForIssue, recordWake, resumeGracePeriod, saveRegistry, sendFeedbackToAgent, setCurrentRun, signalSpecialistCompletion, startGracePeriod, terminateSpecialist, updateContextTokens, updateProjectSpecialistMetadata, updateRunMetadata, updateRunStatus, updateSpecialistMetadata };
|