@overdeck/core 0.45.10 → 0.45.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-state-KVbJEG5f.js → agent-state-RLhS7ckO.js} +1 -1
- package/dist/{agents-pp8FO7Uj.js → agents-By3u_fQ8.js} +1 -1
- package/dist/{agents-CQHK0CSA.js → agents-CgVr77Qq.js} +12 -12
- package/dist/{agents-CQHK0CSA.js.map → agents-CgVr77Qq.js.map} +1 -1
- package/dist/{backlog-auto-trigger-CyuoS0nl.js → backlog-auto-trigger-B_-1tk4e.js} +5 -5
- package/dist/{backlog-auto-trigger-CyuoS0nl.js.map → backlog-auto-trigger-B_-1tk4e.js.map} +1 -1
- package/dist/cli/index.js +45 -45
- package/dist/{cli-Cewlu3yU.js → cli-DGeSW85B.js} +2 -2
- package/dist/{cli-Cewlu3yU.js.map → cli-DGeSW85B.js.map} +1 -1
- package/dist/cli-MTB9IOoR.js +3 -0
- package/dist/{close-issue-BJGX9_z7.js → close-issue-Djajb6Sv.js} +2 -2
- package/dist/{close-issue-BJGX9_z7.js.map → close-issue-Djajb6Sv.js.map} +1 -1
- package/dist/{concurrency-Ca-fC7tA.js → concurrency-4rzjHAQA.js} +1 -1
- package/dist/{conversation-compaction-B_6s9EvM.js → conversation-compaction-BQvZh09I.js} +4 -4
- package/dist/{conversation-compaction-B_6s9EvM.js.map → conversation-compaction-BQvZh09I.js.map} +1 -1
- package/dist/dashboard/{advancing-selfheal-CMlGznKv.js → advancing-selfheal-BezNfM3P.js} +3 -3
- package/dist/dashboard/{advancing-selfheal-CMlGznKv.js.map → advancing-selfheal-BezNfM3P.js.map} +1 -1
- package/dist/dashboard/{agent-state-xk_G8t90.js → agent-state-BUANcaA7.js} +1 -1
- package/dist/dashboard/{agent-state-service-C1iUF9Ft.js → agent-state-service-DmFpIMbP.js} +1 -1
- package/dist/dashboard/{agent-state-service-5ge9xxhx.js → agent-state-service-tXUdp6UF.js} +2 -2
- package/dist/dashboard/{agent-state-service-5ge9xxhx.js.map → agent-state-service-tXUdp6UF.js.map} +1 -1
- package/dist/dashboard/{agents-BIggLvi_.js → agents-C-vqmKDi.js} +1 -1
- package/dist/dashboard/{agents-DHvsjsuP.js → agents-C7V4odQ6.js} +11 -11
- package/dist/dashboard/{agents-DHvsjsuP.js.map → agents-C7V4odQ6.js.map} +1 -1
- package/dist/dashboard/{backlog-auto-trigger-COm_R96V.js → backlog-auto-trigger-Cb8PR-5w.js} +2 -2
- package/dist/dashboard/{backlog-auto-trigger-COm_R96V.js.map → backlog-auto-trigger-Cb8PR-5w.js.map} +1 -1
- package/dist/dashboard/{cli-CvK9xuSS.js → cli-BgzbB6h3.js} +2 -2
- package/dist/dashboard/{cli-CvK9xuSS.js.map → cli-BgzbB6h3.js.map} +1 -1
- package/dist/dashboard/cli-DCqy_wFa.js +3 -0
- package/dist/dashboard/{close-issue-BnpErnD1.js → close-issue-BWf3pxn4.js} +2 -2
- package/dist/dashboard/{close-issue-BnpErnD1.js.map → close-issue-BWf3pxn4.js.map} +1 -1
- package/dist/dashboard/{closed-issue-reaper-DRqK5k39.js → closed-issue-reaper-D7XPq5pY.js} +4 -4
- package/dist/dashboard/{closed-issue-reaper-DRqK5k39.js.map → closed-issue-reaper-D7XPq5pY.js.map} +1 -1
- package/dist/dashboard/{closed-issue-reaper-BLCQwTpF.js → closed-issue-reaper-VSTSTROK.js} +1 -1
- package/dist/dashboard/{conflict-gate-JdFuhKuF.js → conflict-gate-DwOslTij.js} +1 -1
- package/dist/dashboard/{conflict-gate-BhKvrPxn.js → conflict-gate-FFEvTDVA.js} +3 -3
- package/dist/dashboard/{conflict-gate-BhKvrPxn.js.map → conflict-gate-FFEvTDVA.js.map} +1 -1
- package/dist/dashboard/{conversation-compaction-C5o_eKEm.js → conversation-compaction-CCqN4hWk.js} +4 -4
- package/dist/dashboard/{conversation-compaction-C5o_eKEm.js.map → conversation-compaction-CCqN4hWk.js.map} +1 -1
- package/dist/dashboard/{conversation-compaction-Ba5aZdrb.js → conversation-compaction-CL5Ti4j4.js} +1 -1
- package/dist/dashboard/{deacon-j3qSZ7--.js → deacon-CGHl90eC.js} +107 -50
- package/dist/dashboard/{deacon-j3qSZ7--.js.map → deacon-CGHl90eC.js.map} +1 -1
- package/dist/dashboard/{deacon-Cv2RMfHs.js → deacon-DMPh40Im.js} +2 -2
- package/dist/dashboard/deacon-swarm-CVTiNL0N.js +2 -0
- package/dist/dashboard/{deacon-swarm-DadWNi5J.js → deacon-swarm-aMMJTq6t.js} +4 -4
- package/dist/dashboard/{deacon-swarm-DadWNi5J.js.map → deacon-swarm-aMMJTq6t.js.map} +1 -1
- package/dist/dashboard/deacon.js +4 -4
- package/dist/dashboard/{feedback-target-oE4-Esxl.js → feedback-target-dJjFfITP.js} +4 -4
- package/dist/dashboard/{feedback-target-oE4-Esxl.js.map → feedback-target-dJjFfITP.js.map} +1 -1
- package/dist/dashboard/{feedback-target-C4DaDSZ8.js → feedback-target-nQSM6ygL.js} +1 -1
- package/dist/dashboard/{flywheel-ClMjGW_u.js → flywheel-BLoVNtJV.js} +6 -6
- package/dist/dashboard/{flywheel-ClMjGW_u.js.map → flywheel-BLoVNtJV.js.map} +1 -1
- package/dist/dashboard/{flywheel-DefHRzY4.js → flywheel-Cqf8vu7N.js} +6 -6
- package/dist/dashboard/{flywheel-DefHRzY4.js.map → flywheel-Cqf8vu7N.js.map} +1 -1
- package/dist/dashboard/{flywheel-BqDdGvrQ.js → flywheel-PJsbrXNY.js} +1 -1
- package/dist/dashboard/{flywheel-merge-order-CuDcqTRJ.js → flywheel-merge-order-B7BH8mZ3.js} +2 -2
- package/dist/dashboard/{flywheel-merge-order-CuDcqTRJ.js.map → flywheel-merge-order-B7BH8mZ3.js.map} +1 -1
- package/dist/dashboard/{flywheel-merge-order-B6YDSElh.js → flywheel-merge-order-CCwF60b-.js} +1 -1
- package/dist/dashboard/{harness-resolve-DKeSVsJL.js → harness-resolve-B3f9G1Kp.js} +2 -2
- package/dist/dashboard/{harness-resolve-DKeSVsJL.js.map → harness-resolve-B3f9G1Kp.js.map} +1 -1
- package/dist/dashboard/{inspect-agent-BKKc0XnB.js → inspect-agent-CKF5-SJr.js} +3 -3
- package/dist/dashboard/{inspect-agent-BKKc0XnB.js.map → inspect-agent-CKF5-SJr.js.map} +1 -1
- package/dist/dashboard/inspect-agent-CqpEWGWy.js +2 -0
- package/dist/dashboard/{issue-lifecycle-DnhQgddB.js → issue-lifecycle-5LbOcATP.js} +7 -7
- package/dist/dashboard/{issue-lifecycle-DnhQgddB.js.map → issue-lifecycle-5LbOcATP.js.map} +1 -1
- package/dist/dashboard/{issue-lifecycle-nY4esZn8.js → issue-lifecycle-CjYqQ669.js} +1 -1
- package/dist/dashboard/{issue-service-singleton-Bnqv1uaa.js → issue-service-singleton-B8iu_TKV.js} +1 -1
- package/dist/dashboard/{issue-service-singleton-_AquSBTl.js → issue-service-singleton-CDGt__oQ.js} +2 -2
- package/dist/dashboard/{issue-service-singleton-_AquSBTl.js.map → issue-service-singleton-CDGt__oQ.js.map} +1 -1
- package/dist/dashboard/{lifecycle-CGKm7doE.js → lifecycle-CEg4sHZH.js} +4 -4
- package/dist/dashboard/{lifecycle-CGKm7doE.js.map → lifecycle-CEg4sHZH.js.map} +1 -1
- package/dist/dashboard/{merge-agent-Dh8Y9PDO.js → merge-agent-7nBiCytp.js} +1 -1
- package/dist/dashboard/{merge-agent-BcgAYStl.js → merge-agent-C81xPIGd.js} +6 -6
- package/dist/dashboard/{merge-agent-BcgAYStl.js.map → merge-agent-C81xPIGd.js.map} +1 -1
- package/dist/dashboard/merge-ops-DE_6CnmZ.js +2 -0
- package/dist/dashboard/{merge-train-DmxlYbEo.js → merge-train-D3qzRccL.js} +2 -2
- package/dist/dashboard/{merge-train-DmxlYbEo.js.map → merge-train-D3qzRccL.js.map} +1 -1
- package/dist/dashboard/{merge-train-deps-DBHsOWt9.js → merge-train-deps-Be5ElC_P.js} +2 -2
- package/dist/dashboard/{merge-train-deps-DBHsOWt9.js.map → merge-train-deps-Be5ElC_P.js.map} +1 -1
- package/dist/dashboard/{orphan-proposed-reconciler-Db8tUhce.js → orphan-proposed-reconciler-Boq_XaRe.js} +3 -3
- package/dist/dashboard/{orphan-proposed-reconciler-Db8tUhce.js.map → orphan-proposed-reconciler-Boq_XaRe.js.map} +1 -1
- package/dist/dashboard/{orphan-proposed-reconciler-mXV--tcB.js → orphan-proposed-reconciler-C0sPnDq_.js} +1 -1
- package/dist/dashboard/{reconstruct-cache-_tDZ2D72.js → reconstruct-cache-C2pCltOq.js} +3 -3
- package/dist/dashboard/{reconstruct-cache-_tDZ2D72.js.map → reconstruct-cache-C2pCltOq.js.map} +1 -1
- package/dist/dashboard/{remote-completion-Bklh6loJ.js → remote-completion-BmxD5UMQ.js} +3 -3
- package/dist/dashboard/{remote-completion-Bklh6loJ.js.map → remote-completion-BmxD5UMQ.js.map} +1 -1
- package/dist/dashboard/resume-C-nxu9Y4.js +3 -0
- package/dist/dashboard/{review-agent-phzqNqIs.js → review-agent-D6P6d3pz.js} +26 -17
- package/dist/dashboard/review-agent-D6P6d3pz.js.map +1 -0
- package/dist/dashboard/review-agent-DTINEffB.js +3 -0
- package/dist/dashboard/{review-context-CCq56O_Y.js → review-context-Dyo0tsBa.js} +2 -2
- package/dist/dashboard/{review-context-CCq56O_Y.js.map → review-context-Dyo0tsBa.js.map} +1 -1
- package/dist/dashboard/{review-status-BQjqQXZG.js → review-status-B5ZASOo4.js} +18 -5
- package/dist/dashboard/review-status-B5ZASOo4.js.map +1 -0
- package/dist/dashboard/{review-status-bBkqUj5i.js → review-status-h7BXIA4z.js} +1 -1
- package/dist/dashboard/{review-verdict-feedback-wqnikhMK.js → review-verdict-feedback-B70VbfRL.js} +4 -4
- package/dist/dashboard/{review-verdict-feedback-wqnikhMK.js.map → review-verdict-feedback-B70VbfRL.js.map} +1 -1
- package/dist/dashboard/{review-verdict-feedback-cZh9Wi9G.js → review-verdict-feedback-CorgH49f.js} +1 -1
- package/dist/dashboard/{sequence-io-B2GmilSI.js → sequence-io-6YP8fVpH.js} +2 -2
- package/dist/dashboard/{sequence-io-B2GmilSI.js.map → sequence-io-6YP8fVpH.js.map} +1 -1
- package/dist/dashboard/{sequencer-agent-D8pW2aU_.js → sequencer-agent-ja-nkEc1.js} +5 -5
- package/dist/dashboard/{sequencer-agent-D8pW2aU_.js.map → sequencer-agent-ja-nkEc1.js.map} +1 -1
- package/dist/dashboard/server.js +66 -55
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/{service-CILd-uOt.js → service-HKDrIy0h.js} +24 -24
- package/dist/dashboard/{service-CILd-uOt.js.map → service-HKDrIy0h.js.map} +1 -1
- package/dist/dashboard/{smart-compaction-Bgp_gwcA.js → smart-compaction-L0LSnF0_.js} +1 -1
- package/dist/dashboard/{smart-compaction-CrP90OFE.js → smart-compaction-uke1npUz.js} +2 -2
- package/dist/dashboard/{smart-compaction-CrP90OFE.js.map → smart-compaction-uke1npUz.js.map} +1 -1
- package/dist/dashboard/{spawn-planning-session-D15KbPOy.js → spawn-planning-session-CSMWco8B.js} +1 -1
- package/dist/dashboard/{spawn-planning-session-BmJWHSCu.js → spawn-planning-session-CXc0NkwV.js} +3 -3
- package/dist/dashboard/{spawn-planning-session-BmJWHSCu.js.map → spawn-planning-session-CXc0NkwV.js.map} +1 -1
- package/dist/dashboard/{specialist-context-CwKkcXL9.js → specialist-context-BGCJ24LH.js} +3 -3
- package/dist/dashboard/{specialist-context-CwKkcXL9.js.map → specialist-context-BGCJ24LH.js.map} +1 -1
- package/dist/dashboard/{specialist-logs-CvDxquV_.js → specialist-logs--Uz-r8ia.js} +2 -2
- package/dist/dashboard/{specialist-logs-CvDxquV_.js.map → specialist-logs--Uz-r8ia.js.map} +1 -1
- package/dist/dashboard/{specialists-BCjcG4uE.js → specialists-Ca9XSBCS.js} +1 -1
- package/dist/dashboard/{specialists-D07ybnam.js → specialists-DEfrAbWs.js} +36 -36
- package/dist/dashboard/{specialists-D07ybnam.js.map → specialists-DEfrAbWs.js.map} +1 -1
- package/dist/dashboard/{specialists-F2uMO4QS.js → specialists-DeZx9xom.js} +1 -1
- package/dist/dashboard/{specialists-BYi0k8CZ.js → specialists-nZ0mRwpZ.js} +12 -12
- package/dist/dashboard/{specialists-BYi0k8CZ.js.map → specialists-nZ0mRwpZ.js.map} +1 -1
- package/dist/dashboard/{summary-fork-DedqguZb.js → summary-fork-2a1L2DIU.js} +2 -2
- package/dist/dashboard/{summary-fork-EjvOkEPl.js → summary-fork-Xn0QUNmb.js} +3 -3
- package/dist/dashboard/{summary-fork-EjvOkEPl.js.map → summary-fork-Xn0QUNmb.js.map} +1 -1
- package/dist/dashboard/{teardown-workspace-5LCVbjfq.js → teardown-workspace-DhA6oAIK.js} +2 -2
- package/dist/dashboard/{teardown-workspace-5LCVbjfq.js.map → teardown-workspace-DhA6oAIK.js.map} +1 -1
- package/dist/dashboard/{test-agent-queue-qfsq6uaC.js → test-agent-queue-B_ukPyIK.js} +3 -3
- package/dist/dashboard/{test-agent-queue-qfsq6uaC.js.map → test-agent-queue-B_ukPyIK.js.map} +1 -1
- package/dist/dashboard/{uat-train-CtNGgXxj.js → uat-train-BLBAbJ8Y.js} +10 -10
- package/dist/dashboard/{uat-train-CtNGgXxj.js.map → uat-train-BLBAbJ8Y.js.map} +1 -1
- package/dist/dashboard/{uat-train-C3hWXtip.js → uat-train-DPfGR9_I.js} +1 -1
- package/dist/dashboard/{verification-runner-DuZRHjPU.js → verification-runner-KTGTNugM.js} +1 -1
- package/dist/dashboard/{verification-runner-BPAhPWR7.js → verification-runner-R2-4XgMO.js} +4 -4
- package/dist/dashboard/{verification-runner-BPAhPWR7.js.map → verification-runner-R2-4XgMO.js.map} +1 -1
- package/dist/dashboard/{workflows-H-COJ84X.js → workflows-CSKX5MhC.js} +7 -7
- package/dist/dashboard/{workflows-H-COJ84X.js.map → workflows-CSKX5MhC.js.map} +1 -1
- package/dist/dashboard/workflows-DVwXauef.js +2 -0
- package/dist/dashboard/{workspaces-CRU9_vRn.js → workspaces-DXLDgXo2.js} +32 -32
- package/dist/dashboard/{workspaces-CRU9_vRn.js.map → workspaces-DXLDgXo2.js.map} +1 -1
- package/dist/docs-index.sqlite +0 -0
- package/dist/{feedback-target-DTGAhFkM.js → feedback-target-BsKN4Tr_.js} +4 -4
- package/dist/{feedback-target-DTGAhFkM.js.map → feedback-target-BsKN4Tr_.js.map} +1 -1
- package/dist/{feedback-target-DutF088V.js → feedback-target-DM1WzOKy.js} +1 -1
- package/dist/{harness-resolve-Bz1prk6B.js → harness-resolve-B-YDNwNW.js} +2 -2
- package/dist/{harness-resolve-Bz1prk6B.js.map → harness-resolve-B-YDNwNW.js.map} +1 -1
- package/dist/{issue-lifecycle-fVqvCdKM.js → issue-lifecycle-Bc1l3U9f.js} +7 -7
- package/dist/{issue-lifecycle-fVqvCdKM.js.map → issue-lifecycle-Bc1l3U9f.js.map} +1 -1
- package/dist/{issue-service-singleton-CZm8p6Rj.js → issue-service-singleton-D-8Q6tdT.js} +1 -1
- package/dist/{issue-service-singleton-Cr73JAaR.js → issue-service-singleton-D1433I7n.js} +2 -2
- package/dist/{issue-service-singleton-Cr73JAaR.js.map → issue-service-singleton-D1433I7n.js.map} +1 -1
- package/dist/{lifecycle-CR6tZfl1.js → lifecycle-SmrqysDf.js} +7 -7
- package/dist/{lifecycle-CR6tZfl1.js.map → lifecycle-SmrqysDf.js.map} +1 -1
- package/dist/{lifecycle-D_EWiUjk.js → lifecycle-mRMyiIXs.js} +2 -2
- package/dist/{merge-agent-LM4avOtA.js → merge-agent-B9hIZ6Z0.js} +6 -6
- package/dist/{merge-agent-LM4avOtA.js.map → merge-agent-B9hIZ6Z0.js.map} +1 -1
- package/dist/{merge-agent-Bj046HE1.js → merge-agent-DUj22cXL.js} +1 -1
- package/dist/{merge-fulfillment-DrnC1Kmg.js → merge-fulfillment-__P4WE-T.js} +3 -3
- package/dist/{merge-fulfillment-DrnC1Kmg.js.map → merge-fulfillment-__P4WE-T.js.map} +1 -1
- package/dist/{reconstruct-cache-NPqoAUg-.js → reconstruct-cache-9SWp82SQ.js} +3 -3
- package/dist/{reconstruct-cache-NPqoAUg-.js.map → reconstruct-cache-9SWp82SQ.js.map} +1 -1
- package/dist/{records-BIkN1LQ4.js → records-CTmvuRzz.js} +14 -1
- package/dist/{records-BIkN1LQ4.js.map → records-CTmvuRzz.js.map} +1 -1
- package/dist/records-backfill-BQcmTmwF.js +2 -0
- package/dist/{records-backfill-HM0Pln6N.js → records-backfill-BrNsv_zT.js} +2 -2
- package/dist/{records-backfill-HM0Pln6N.js.map → records-backfill-BrNsv_zT.js.map} +1 -1
- package/dist/resume-Bn4kDk9x.js +3 -0
- package/dist/{review-agent-DFosQzCG.js → review-agent-PhqOhpx3.js} +24 -16
- package/dist/{review-agent-DFosQzCG.js.map → review-agent-PhqOhpx3.js.map} +1 -1
- package/dist/review-agent-hLbRRxZF.js +3 -0
- package/dist/{review-status-iJwfEoNX.js → review-status-B_XXomV0.js} +6 -6
- package/dist/{review-status-iJwfEoNX.js.map → review-status-B_XXomV0.js.map} +1 -1
- package/dist/{review-status-BbNVlXh1.js → review-status-Bo-EFVKh.js} +1 -1
- package/dist/{review-verdict-feedback-BGPw3z1X.js → review-verdict-feedback-CXHkoiKZ.js} +1 -1
- package/dist/{review-verdict-feedback-CCZ05atV.js → review-verdict-feedback-DGV13LDb.js} +4 -4
- package/dist/{review-verdict-feedback-CCZ05atV.js.map → review-verdict-feedback-DGV13LDb.js.map} +1 -1
- package/dist/{sequence-io-CcxZNHcD.js → sequence-io-Cg4NHAco.js} +1 -1
- package/dist/{sequence-io-Cx1usxG3.js → sequence-io-CyxvNHfA.js} +2 -2
- package/dist/{sequence-io-Cx1usxG3.js.map → sequence-io-CyxvNHfA.js.map} +1 -1
- package/dist/{smart-compaction-ByUEgQkF.js → smart-compaction-ByKXTQNy.js} +2 -2
- package/dist/{smart-compaction-ByUEgQkF.js.map → smart-compaction-ByKXTQNy.js.map} +1 -1
- package/dist/{smart-compaction-DfLe_CtH.js → smart-compaction-U6e_uB1E.js} +1 -1
- package/dist/{specialist-context-McuGkaeR.js → specialist-context-BUTadO-U.js} +3 -3
- package/dist/{specialist-context-McuGkaeR.js.map → specialist-context-BUTadO-U.js.map} +1 -1
- package/dist/{specialist-logs-CUUJ4eiB.js → specialist-logs-pEMCTtGZ.js} +2 -2
- package/dist/{specialist-logs-CUUJ4eiB.js.map → specialist-logs-pEMCTtGZ.js.map} +1 -1
- package/dist/{specialists-BSrylD1S.js → specialists-BGFnrQ8n.js} +1 -1
- package/dist/{specialists-B0elgInc.js → specialists-DeTkkp8b.js} +12 -12
- package/dist/{specialists-B0elgInc.js.map → specialists-DeTkkp8b.js.map} +1 -1
- package/dist/{summary-fork-DskMRnyb.js → summary-fork-CgzThE2-.js} +2 -2
- package/dist/{summary-fork-CPUTKcAT.js → summary-fork-Dx1RMuvU.js} +3 -3
- package/dist/{summary-fork-CPUTKcAT.js.map → summary-fork-Dx1RMuvU.js.map} +1 -1
- package/dist/{sync-BiNVQHBf.js → sync-Bsww9tuj.js} +2 -2
- package/dist/{sync-BiNVQHBf.js.map → sync-Bsww9tuj.js.map} +1 -1
- package/dist/sync-CylE_SjB.js +2 -0
- package/dist/{verdict-restore-DQiV7_fe.js → verdict-restore-DGpX0ZOJ.js} +5 -5
- package/dist/{verdict-restore-DQiV7_fe.js.map → verdict-restore-DGpX0ZOJ.js.map} +1 -1
- package/dist/{webhook-handlers-DHBSEDEm.js → webhook-handlers-BjsfIL7u.js} +3 -3
- package/dist/{webhook-handlers-DHBSEDEm.js.map → webhook-handlers-BjsfIL7u.js.map} +1 -1
- package/dist/{workspace-migrate-duUsWNpd.js → workspace-migrate-BBQ8nAnP.js} +2 -2
- package/dist/{workspace-migrate-duUsWNpd.js.map → workspace-migrate-BBQ8nAnP.js.map} +1 -1
- package/dist/{workspace-reap-DLCIoJmn.js → workspace-reap-12O9354k.js} +2 -2
- package/dist/{workspace-reap-DLCIoJmn.js.map → workspace-reap-12O9354k.js.map} +1 -1
- package/package.json +1 -1
- package/scripts/file-size-baseline.txt +1 -1
- package/dist/cli-DBWG12XK.js +0 -3
- package/dist/dashboard/cli-CJDWXE_Y.js +0 -3
- package/dist/dashboard/deacon-swarm-D1iAUX-P.js +0 -2
- package/dist/dashboard/inspect-agent-vm88mLYr.js +0 -2
- package/dist/dashboard/merge-ops-QdBiQ8XB.js +0 -2
- package/dist/dashboard/resume-DnIsmIgC.js +0 -3
- package/dist/dashboard/review-agent-DgySDb-G.js +0 -3
- package/dist/dashboard/review-agent-phzqNqIs.js.map +0 -1
- package/dist/dashboard/review-status-BQjqQXZG.js.map +0 -1
- package/dist/dashboard/workflows-Cz8OtiB4.js +0 -2
- package/dist/records-backfill-DEgtRyKL.js +0 -2
- package/dist/resume-DGymuXZM.js +0 -3
- package/dist/review-agent-DjVadURa.js +0 -3
- package/dist/sync-4jqukkxz.js +0 -2
package/dist/docs-index.sqlite
CHANGED
|
Binary file
|
|
@@ -108,7 +108,7 @@ async function resolveIssueFeedbackTarget(issueId, opts = {}) {
|
|
|
108
108
|
*/
|
|
109
109
|
async function resurrectAgentForFeedback(agentId, issueId) {
|
|
110
110
|
try {
|
|
111
|
-
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-
|
|
111
|
+
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-RLhS7ckO.js");
|
|
112
112
|
const state = getAgentStateSync(agentId);
|
|
113
113
|
if (!state) return false;
|
|
114
114
|
if (state.paused === true) {
|
|
@@ -124,7 +124,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
|
|
|
124
124
|
console.warn(`[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`);
|
|
125
125
|
clearAgentTroubledSync(agentId);
|
|
126
126
|
}
|
|
127
|
-
const { resumeAgent } = await import("./resume-
|
|
127
|
+
const { resumeAgent } = await import("./resume-Bn4kDk9x.js");
|
|
128
128
|
const result = await resumeAgent(agentId);
|
|
129
129
|
if (!result.success) {
|
|
130
130
|
console.warn(`[feedback-target] Failed to resurrect ${agentId} for ${issueId} feedback: ${result.error}`);
|
|
@@ -138,7 +138,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
|
|
|
138
138
|
}
|
|
139
139
|
async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
|
|
140
140
|
try {
|
|
141
|
-
const { markWorkspaceStuck } = await import("./review-status-
|
|
141
|
+
const { markWorkspaceStuck } = await import("./review-status-Bo-EFVKh.js");
|
|
142
142
|
markWorkspaceStuck(issueId, "feedback_delivery_needs_you", {
|
|
143
143
|
reason,
|
|
144
144
|
...details
|
|
@@ -156,4 +156,4 @@ var init_feedback_target = __esmMin((() => {
|
|
|
156
156
|
//#endregion
|
|
157
157
|
export { resolveIssueFeedbackTarget as n, surfaceIssueFeedbackNeedsYou as r, init_feedback_target as t };
|
|
158
158
|
|
|
159
|
-
//# sourceMappingURL=feedback-target-
|
|
159
|
+
//# sourceMappingURL=feedback-target-BsKN4Tr_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-target-DTGAhFkM.js","names":[],"sources":["../src/lib/cloister/feedback-target.ts"],"sourcesContent":["import { Effect } from 'effect';\n\nimport { getProjectSync, resolveProjectFromIssueSync } from '../projects.js';\nimport { readIssueRecordSync, writeIssueRecordSync, type PanIssueRecord } from '../pan-dir/record.js';\nimport { listSessionNames, sessionExists } from '../tmux.js';\n\nexport type IssueFeedbackTarget =\n | { agentId: string }\n | { needsYou: true; reason: string };\n\nexport interface ResolveIssueFeedbackTargetOptions {\n itemId?: string;\n /** Test hook — replaces the default resurrection attempt for non-live targets. */\n revivePipelinePausedAgent?: (agentId: string, issueId: string) => Promise<boolean>;\n}\n\nasync function isLiveSession(agentId: string): Promise<boolean> {\n return Effect.runPromise(sessionExists(agentId));\n}\n\nfunction slotAgentId(issueId: string, slotIndex: number, assignedAgentId?: string): string {\n return assignedAgentId ?? `agent-${issueId.toLowerCase()}-slot-${slotIndex}`;\n}\n\nasync function findLiveUnregisteredSlot(issueId: string): Promise<{ agentId: string; slotIndex: number } | null> {\n const prefix = `agent-${issueId.toLowerCase()}-slot-`;\n const sessions = await Effect.runPromise(listSessionNames());\n for (const session of sessions) {\n if (!session.startsWith(prefix)) continue;\n const slotIndex = Number.parseInt(session.slice(prefix.length), 10);\n if (!Number.isInteger(slotIndex) || slotIndex < 1) continue;\n if (await isLiveSession(session)) return { agentId: session, slotIndex };\n }\n return null;\n}\n\nfunction selfHealSlotAssignment(record: PanIssueRecord, agentId: string, slotIndex: number, itemId?: string): PanIssueRecord {\n const assignments = record.swarm?.slotAssignments ?? [];\n const existing = assignments.find((assignment) => assignment.slotIndex === slotIndex || assignment.agentId === agentId);\n const assignedAt = new Date().toISOString();\n const slotAssignments = existing\n ? assignments.map((assignment) => assignment === existing\n ? { ...assignment, agentId, itemId: itemId ?? assignment.itemId, assignedAt: assignment.assignedAt ?? assignedAt }\n : assignment)\n : [\n ...assignments,\n {\n slotIndex,\n itemId: itemId ?? `slot-${slotIndex}`,\n agentId,\n assignedAt,\n },\n ];\n\n return {\n ...record,\n swarm: {\n ...record.swarm,\n slotAssignments,\n },\n };\n}\n\nexport async function resolveIssueFeedbackTarget(\n issueId: string,\n opts: ResolveIssueFeedbackTargetOptions = {},\n): Promise<IssueFeedbackTarget> {\n const normalizedIssue = issueId.toUpperCase();\n const issueLower = normalizedIssue.toLowerCase();\n const wholeIssueAgentId = `agent-${issueLower}`;\n\n if (await isLiveSession(wholeIssueAgentId)) {\n return { agentId: wholeIssueAgentId };\n }\n\n const resolved = resolveProjectFromIssueSync(normalizedIssue);\n const project = resolved ? getProjectSync(resolved.projectKey) : null;\n const record = project ? readIssueRecordSync(project, normalizedIssue) : null;\n const assignments = record?.swarm?.slotAssignments ?? [];\n\n const requestedItemId = opts.itemId?.trim();\n if (requestedItemId) {\n const assigned = assignments.find(a => a.itemId === requestedItemId);\n if (assigned) {\n const agentId = slotAgentId(normalizedIssue, assigned.slotIndex, assigned.agentId);\n if (await isLiveSession(agentId)) return { agentId };\n }\n }\n\n for (const assignment of assignments) {\n const agentId = slotAgentId(normalizedIssue, assignment.slotIndex, assignment.agentId);\n if (await isLiveSession(agentId)) return { agentId };\n }\n\n if (project && record) {\n const fallback = await findLiveUnregisteredSlot(normalizedIssue);\n if (fallback) {\n writeIssueRecordSync(project, normalizedIssue, selfHealSlotAssignment(record, fallback.agentId, fallback.slotIndex, requestedItemId));\n return { agentId: fallback.agentId };\n }\n }\n\n // PAN-2209 + PAN-2461 — resurrection-first delivery (operator directive 2026-07-11):\n // feedback with no live target is NOT an operator problem until resurrection has been\n // tried. The verification gate pausing the only delivery target (PAN-2461), a\n // governor/scheduler yield, a crash, or a plain stopped work agent after a BLOCKED\n // verdict (PAN-2209) must all self-heal by bringing the agent back and delivering.\n // Operator pauses are the one gate never overridden. Escalating to a human (or any\n // mailbox-style deferred delivery, PAN-2255) is strictly the last resort after\n // resurrection of every candidate has failed.\n const revive = opts.revivePipelinePausedAgent ?? resurrectAgentForFeedback;\n const candidates: string[] = [wholeIssueAgentId];\n if (requestedItemId) {\n const assigned = assignments.find(a => a.itemId === requestedItemId);\n if (assigned) candidates.push(slotAgentId(normalizedIssue, assigned.slotIndex, assigned.agentId));\n }\n for (const assignment of assignments) {\n candidates.push(slotAgentId(normalizedIssue, assignment.slotIndex, assignment.agentId));\n }\n const attempted = new Set<string>();\n for (const candidate of candidates) {\n if (attempted.has(candidate)) continue;\n attempted.add(candidate);\n if (await revive(candidate, normalizedIssue)) return { agentId: candidate };\n }\n\n const suffix = requestedItemId ? ` for item ${requestedItemId}` : '';\n return {\n needsYou: true,\n reason: `No live feedback target for ${normalizedIssue}${suffix}: ${wholeIssueAgentId} is not running, no assigned swarm slot has a live tmux session, and resurrection of ${attempted.size} candidate agent(s) failed.`,\n };\n}\n\n/**\n * PAN-2209 + PAN-2461: bring a non-running agent back to life so feedback can be\n * delivered to it. Returns true when the agent is live again. Gate handling:\n *\n * - Pipeline pauses (`needs-you:*`, `[governor-slot]*`, scheduler yields) → unpause +\n * resume. A gate the pipeline set must never deadlock the pipeline's own delivery\n * (PAN-2461); the operator explicitly prefers briefly exceeding memory targets over\n * undelivered work↔review feedback.\n * - Troubled / failure-backoff → clear the gate loudly and attempt ONE resume. The\n * failure-tracking machinery re-trips the gate if the agent crashes again, so this\n * cannot loop unboundedly.\n * - Plain stopped/completed/crashed → resume.\n * - OPERATOR pauses (pan pause, any non-pipeline pausedReason) are never overridden.\n */\nasync function resurrectAgentForFeedback(agentId: string, issueId: string): Promise<boolean> {\n try {\n const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import('../agents/agent-state.js');\n const state = getAgentStateSync(agentId);\n if (!state) return false;\n\n if (state.paused === true) {\n const reason = state.pausedReason ?? '';\n const pipelinePause = reason.startsWith('needs-you:')\n || reason.startsWith('[governor-slot]')\n || state.yieldedByScheduler === true;\n if (!pipelinePause) {\n console.log(`[feedback-target] ${agentId} is operator-paused (${reason || 'no reason'}) — not overriding to deliver ${issueId} feedback`);\n return false;\n }\n console.log(`[feedback-target] ${agentId} is pipeline-paused (${reason || 'scheduler yield'}) — unpausing to deliver feedback for ${issueId}`);\n clearAgentPausedSync(agentId);\n }\n\n if (state.troubled === true || (state.consecutiveFailures ?? 0) > 0) {\n console.warn(\n `[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, ` +\n `failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to ` +\n `deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`,\n );\n clearAgentTroubledSync(agentId);\n }\n\n const { resumeAgent } = await import('../agents/resume.js');\n const result = await resumeAgent(agentId);\n if (!result.success) {\n console.warn(`[feedback-target] Failed to resurrect ${agentId} for ${issueId} feedback: ${result.error}`);\n return false;\n }\n return isLiveSession(agentId);\n } catch (err) {\n console.warn(`[feedback-target] resurrectAgentForFeedback(${agentId}) failed: ${err instanceof Error ? err.message : String(err)}`);\n return false;\n }\n}\n\nexport async function surfaceIssueFeedbackNeedsYou(\n issueId: string,\n reason: string,\n details: Record<string, unknown> = {},\n): Promise<void> {\n try {\n const { markWorkspaceStuck } = await import('../review-status.js');\n markWorkspaceStuck(issueId, 'feedback_delivery_needs_you', {\n reason,\n ...details,\n });\n } catch (err) {\n console.warn(`[feedback-target] Failed to mark ${issueId} as needing human attention: ${err instanceof Error ? err.message : String(err)}`);\n }\n console.warn(`[feedback-target] ${reason}`);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feedback-target-BsKN4Tr_.js","names":[],"sources":["../src/lib/cloister/feedback-target.ts"],"sourcesContent":["import { Effect } from 'effect';\n\nimport { getProjectSync, resolveProjectFromIssueSync } from '../projects.js';\nimport { readIssueRecordSync, writeIssueRecordSync, type PanIssueRecord } from '../pan-dir/record.js';\nimport { listSessionNames, sessionExists } from '../tmux.js';\n\nexport type IssueFeedbackTarget =\n | { agentId: string }\n | { needsYou: true; reason: string };\n\nexport interface ResolveIssueFeedbackTargetOptions {\n itemId?: string;\n /** Test hook — replaces the default resurrection attempt for non-live targets. */\n revivePipelinePausedAgent?: (agentId: string, issueId: string) => Promise<boolean>;\n}\n\nasync function isLiveSession(agentId: string): Promise<boolean> {\n return Effect.runPromise(sessionExists(agentId));\n}\n\nfunction slotAgentId(issueId: string, slotIndex: number, assignedAgentId?: string): string {\n return assignedAgentId ?? `agent-${issueId.toLowerCase()}-slot-${slotIndex}`;\n}\n\nasync function findLiveUnregisteredSlot(issueId: string): Promise<{ agentId: string; slotIndex: number } | null> {\n const prefix = `agent-${issueId.toLowerCase()}-slot-`;\n const sessions = await Effect.runPromise(listSessionNames());\n for (const session of sessions) {\n if (!session.startsWith(prefix)) continue;\n const slotIndex = Number.parseInt(session.slice(prefix.length), 10);\n if (!Number.isInteger(slotIndex) || slotIndex < 1) continue;\n if (await isLiveSession(session)) return { agentId: session, slotIndex };\n }\n return null;\n}\n\nfunction selfHealSlotAssignment(record: PanIssueRecord, agentId: string, slotIndex: number, itemId?: string): PanIssueRecord {\n const assignments = record.swarm?.slotAssignments ?? [];\n const existing = assignments.find((assignment) => assignment.slotIndex === slotIndex || assignment.agentId === agentId);\n const assignedAt = new Date().toISOString();\n const slotAssignments = existing\n ? assignments.map((assignment) => assignment === existing\n ? { ...assignment, agentId, itemId: itemId ?? assignment.itemId, assignedAt: assignment.assignedAt ?? assignedAt }\n : assignment)\n : [\n ...assignments,\n {\n slotIndex,\n itemId: itemId ?? `slot-${slotIndex}`,\n agentId,\n assignedAt,\n },\n ];\n\n return {\n ...record,\n swarm: {\n ...record.swarm,\n slotAssignments,\n },\n };\n}\n\nexport async function resolveIssueFeedbackTarget(\n issueId: string,\n opts: ResolveIssueFeedbackTargetOptions = {},\n): Promise<IssueFeedbackTarget> {\n const normalizedIssue = issueId.toUpperCase();\n const issueLower = normalizedIssue.toLowerCase();\n const wholeIssueAgentId = `agent-${issueLower}`;\n\n if (await isLiveSession(wholeIssueAgentId)) {\n return { agentId: wholeIssueAgentId };\n }\n\n const resolved = resolveProjectFromIssueSync(normalizedIssue);\n const project = resolved ? getProjectSync(resolved.projectKey) : null;\n const record = project ? readIssueRecordSync(project, normalizedIssue) : null;\n const assignments = record?.swarm?.slotAssignments ?? [];\n\n const requestedItemId = opts.itemId?.trim();\n if (requestedItemId) {\n const assigned = assignments.find(a => a.itemId === requestedItemId);\n if (assigned) {\n const agentId = slotAgentId(normalizedIssue, assigned.slotIndex, assigned.agentId);\n if (await isLiveSession(agentId)) return { agentId };\n }\n }\n\n for (const assignment of assignments) {\n const agentId = slotAgentId(normalizedIssue, assignment.slotIndex, assignment.agentId);\n if (await isLiveSession(agentId)) return { agentId };\n }\n\n if (project && record) {\n const fallback = await findLiveUnregisteredSlot(normalizedIssue);\n if (fallback) {\n writeIssueRecordSync(project, normalizedIssue, selfHealSlotAssignment(record, fallback.agentId, fallback.slotIndex, requestedItemId));\n return { agentId: fallback.agentId };\n }\n }\n\n // PAN-2209 + PAN-2461 — resurrection-first delivery (operator directive 2026-07-11):\n // feedback with no live target is NOT an operator problem until resurrection has been\n // tried. The verification gate pausing the only delivery target (PAN-2461), a\n // governor/scheduler yield, a crash, or a plain stopped work agent after a BLOCKED\n // verdict (PAN-2209) must all self-heal by bringing the agent back and delivering.\n // Operator pauses are the one gate never overridden. Escalating to a human (or any\n // mailbox-style deferred delivery, PAN-2255) is strictly the last resort after\n // resurrection of every candidate has failed.\n const revive = opts.revivePipelinePausedAgent ?? resurrectAgentForFeedback;\n const candidates: string[] = [wholeIssueAgentId];\n if (requestedItemId) {\n const assigned = assignments.find(a => a.itemId === requestedItemId);\n if (assigned) candidates.push(slotAgentId(normalizedIssue, assigned.slotIndex, assigned.agentId));\n }\n for (const assignment of assignments) {\n candidates.push(slotAgentId(normalizedIssue, assignment.slotIndex, assignment.agentId));\n }\n const attempted = new Set<string>();\n for (const candidate of candidates) {\n if (attempted.has(candidate)) continue;\n attempted.add(candidate);\n if (await revive(candidate, normalizedIssue)) return { agentId: candidate };\n }\n\n const suffix = requestedItemId ? ` for item ${requestedItemId}` : '';\n return {\n needsYou: true,\n reason: `No live feedback target for ${normalizedIssue}${suffix}: ${wholeIssueAgentId} is not running, no assigned swarm slot has a live tmux session, and resurrection of ${attempted.size} candidate agent(s) failed.`,\n };\n}\n\n/**\n * PAN-2209 + PAN-2461: bring a non-running agent back to life so feedback can be\n * delivered to it. Returns true when the agent is live again. Gate handling:\n *\n * - Pipeline pauses (`needs-you:*`, `[governor-slot]*`, scheduler yields) → unpause +\n * resume. A gate the pipeline set must never deadlock the pipeline's own delivery\n * (PAN-2461); the operator explicitly prefers briefly exceeding memory targets over\n * undelivered work↔review feedback.\n * - Troubled / failure-backoff → clear the gate loudly and attempt ONE resume. The\n * failure-tracking machinery re-trips the gate if the agent crashes again, so this\n * cannot loop unboundedly.\n * - Plain stopped/completed/crashed → resume.\n * - OPERATOR pauses (pan pause, any non-pipeline pausedReason) are never overridden.\n */\nasync function resurrectAgentForFeedback(agentId: string, issueId: string): Promise<boolean> {\n try {\n const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import('../agents/agent-state.js');\n const state = getAgentStateSync(agentId);\n if (!state) return false;\n\n if (state.paused === true) {\n const reason = state.pausedReason ?? '';\n const pipelinePause = reason.startsWith('needs-you:')\n || reason.startsWith('[governor-slot]')\n || state.yieldedByScheduler === true;\n if (!pipelinePause) {\n console.log(`[feedback-target] ${agentId} is operator-paused (${reason || 'no reason'}) — not overriding to deliver ${issueId} feedback`);\n return false;\n }\n console.log(`[feedback-target] ${agentId} is pipeline-paused (${reason || 'scheduler yield'}) — unpausing to deliver feedback for ${issueId}`);\n clearAgentPausedSync(agentId);\n }\n\n if (state.troubled === true || (state.consecutiveFailures ?? 0) > 0) {\n console.warn(\n `[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, ` +\n `failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to ` +\n `deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`,\n );\n clearAgentTroubledSync(agentId);\n }\n\n const { resumeAgent } = await import('../agents/resume.js');\n const result = await resumeAgent(agentId);\n if (!result.success) {\n console.warn(`[feedback-target] Failed to resurrect ${agentId} for ${issueId} feedback: ${result.error}`);\n return false;\n }\n return isLiveSession(agentId);\n } catch (err) {\n console.warn(`[feedback-target] resurrectAgentForFeedback(${agentId}) failed: ${err instanceof Error ? err.message : String(err)}`);\n return false;\n }\n}\n\nexport async function surfaceIssueFeedbackNeedsYou(\n issueId: string,\n reason: string,\n details: Record<string, unknown> = {},\n): Promise<void> {\n try {\n const { markWorkspaceStuck } = await import('../review-status.js');\n markWorkspaceStuck(issueId, 'feedback_delivery_needs_you', {\n reason,\n ...details,\n });\n } catch (err) {\n console.warn(`[feedback-target] Failed to mark ${issueId} as needing human attention: ${err instanceof Error ? err.message : String(err)}`);\n }\n console.warn(`[feedback-target] ${reason}`);\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-
|
|
1
|
+
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-BsKN4Tr_.js";
|
|
2
2
|
init_feedback_target();
|
|
3
3
|
export { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou };
|
|
@@ -5,7 +5,7 @@ import { exec } from "child_process";
|
|
|
5
5
|
import { promisify } from "util";
|
|
6
6
|
//#region src/lib/harness-resolve.ts
|
|
7
7
|
async function getProviderAuthModeForModel(model) {
|
|
8
|
-
const { getProviderAuthMode } = await import("./agents-
|
|
8
|
+
const { getProviderAuthMode } = await import("./agents-By3u_fQ8.js");
|
|
9
9
|
return getProviderAuthMode(model);
|
|
10
10
|
}
|
|
11
11
|
async function hasHarnessBinary(harness) {
|
|
@@ -70,4 +70,4 @@ var init_harness_resolve = __esmMin((() => {
|
|
|
70
70
|
//#endregion
|
|
71
71
|
export { resolveHarness as n, init_harness_resolve as t };
|
|
72
72
|
|
|
73
|
-
//# sourceMappingURL=harness-resolve-
|
|
73
|
+
//# sourceMappingURL=harness-resolve-B-YDNwNW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-resolve-
|
|
1
|
+
{"version":3,"file":"harness-resolve-B-YDNwNW.js","names":["loadYamlConfig"],"sources":["../src/lib/harness-resolve.ts"],"sourcesContent":["import { exec } from 'child_process';\nimport { promisify } from 'util';\nimport { canUseHarnessSync, canUseModelWithAuthSync } from './harness-policy.js';\nimport { getBuiltInDefaultHarness, getProviderForModelSync } from './providers.js';\nimport type { RuntimeName } from './runtimes/types.js';\nimport type { Role } from './agents.js';\nimport { loadConfigSync as loadYamlConfig } from './config-yaml.js';\n\nconst execAsync = promisify(exec);\nconst BINARY_BY_HARNESS: Partial<Record<RuntimeName, string>> = {\n ohmypi: 'omp',\n codex: 'codex',\n};\nconst harnessAvailabilityCache = new Map<RuntimeName, Promise<boolean>>();\nconst builtInDefaultNoticeProviders = new Set<string>();\n\nexport function resetHarnessResolveCachesForTests(): void {\n if (process.env.NODE_ENV !== 'test') return;\n harnessAvailabilityCache.clear();\n builtInDefaultNoticeProviders.clear();\n}\n\nexport type ResolveHarnessInput = {\n explicit?: RuntimeName;\n role?: Role;\n model: string;\n};\n\nexport class HarnessResolutionError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'HarnessResolutionError';\n }\n}\n\nasync function getProviderAuthModeForModel(model: string) {\n const { getProviderAuthMode } = await import('./agents.js');\n return getProviderAuthMode(model);\n}\n\nasync function hasHarnessBinary(harness: RuntimeName): Promise<boolean> {\n const binary = BINARY_BY_HARNESS[harness];\n if (!binary) return true;\n\n const cached = harnessAvailabilityCache.get(harness);\n if (cached) return cached;\n\n const check = execAsync(`command -v ${binary}`).then(\n () => true,\n () => false\n );\n harnessAvailabilityCache.set(harness, check);\n return check;\n}\n\nfunction logBuiltInDefaultNotice(provider: string, harness: RuntimeName): void {\n if (builtInDefaultNoticeProviders.has(provider)) return;\n builtInDefaultNoticeProviders.add(provider);\n console.info(`harness ${harness} chosen by provider default — override in Settings → Providers`);\n}\n\nexport async function resolveHarness(input: ResolveHarnessInput): Promise<RuntimeName> {\n const provider = getProviderForModelSync(input.model).name;\n const { config } = loadYamlConfig();\n // Harness is PROVIDER-DEFAULT-ONLY (PAN-1984). It is derived solely from the model's\n // provider — the per-provider default (Settings → Providers) else the built-in default.\n // We no longer honor a per-spawn explicit override or a per-role harness:\n // `input.explicit` / `input.role` are accepted for signature compatibility but\n // INTENTIONALLY IGNORED. This removes the entire class of harness↔model mismatch bugs\n // (e.g. Pi+GPT-5.5 selected when Codex is GPT-5.5's real provider default) and the\n // stale-harness-on-resume bug — a provider/config change now always flows through\n // instead of a frozen state.json harness winning forever.\n const providerHarness = config.providerHarnesses?.[provider];\n const builtInHarness = getBuiltInDefaultHarness(provider);\n\n const winner = providerHarness ?? builtInHarness ?? 'claude-code';\n\n if (!providerHarness) {\n logBuiltInDefaultNotice(provider, winner);\n }\n\n const authMode = await getProviderAuthModeForModel(input.model);\n const modelDecision = canUseModelWithAuthSync(input.model, authMode);\n if (!modelDecision.allowed) {\n throw new HarnessResolutionError(modelDecision.reason ?? `Model ${input.model} is not allowed with the current auth mode`);\n }\n\n const decision = canUseHarnessSync(winner, input.model, authMode);\n if (!decision.allowed) {\n // PAN-1871 — only fall back to claude-code when it is the model's NATIVE\n // harness (Anthropic). For CLIProxy-routed models (kimi, gpt-5.5, …) the\n // provider default is pi/codex; claude-code would route them through\n // CLIProxy and hit the 200k-window-illusion deadlock. Silently degrading\n // there is worse than failing, so refuse it loudly.\n if (builtInHarness && builtInHarness !== 'claude-code') {\n throw new HarnessResolutionError(\n `Harness ${winner} denied for ${input.model} (${decision.reason ?? 'policy denied'}); ${input.model} is not native to claude-code (provider default is ${builtInHarness}), so refusing to silently fall back to claude-code/CLIProxy. Resolve ${winner} availability/auth and retry.`,\n );\n }\n\n const fallbackDecision = canUseHarnessSync('claude-code', input.model, authMode);\n if (!fallbackDecision.allowed) {\n throw new HarnessResolutionError(decision.reason ?? fallbackDecision.reason ?? `Harness ${winner} is not allowed for ${input.model}`);\n }\n\n console.warn(`harness ${winner} denied for ${provider}: ${decision.reason ?? 'policy denied'} — falling back to native claude-code`);\n return 'claude-code';\n }\n\n if (!(await hasHarnessBinary(winner))) {\n const binary = BINARY_BY_HARNESS[winner];\n // PAN-1871 — never silently fall back to claude-code from a non-native\n // (CLIProxy) model whose own binary is missing at spawn. Silently routing\n // kimi onto claude-code is what leaked PAN-1845. Fail loudly so the cause is\n // visible and recoverable.\n if (builtInHarness && builtInHarness !== 'claude-code') {\n throw new HarnessResolutionError(\n `Harness ${winner} (provider default for ${input.model}) has no installed ${binary} binary at spawn — refusing to silently fall back to claude-code. Install ${binary} (check its PATH) and retry.`,\n );\n }\n console.warn(`harness ${winner} requested for ${provider}, but ${binary} is not installed — falling back to native claude-code`);\n return 'claude-code';\n }\n\n return winner;\n}\n"],"mappings":";;;;;;AAmCA,eAAe,4BAA4B,OAAe;CACxD,MAAM,EAAE,wBAAwB,MAAM,OAAO;AAC7C,QAAO,oBAAoB,MAAM;;AAGnC,eAAe,iBAAiB,SAAwC;CACtE,MAAM,SAAS,kBAAkB;AACjC,KAAI,CAAC,OAAQ,QAAO;CAEpB,MAAM,SAAS,yBAAyB,IAAI,QAAQ;AACpD,KAAI,OAAQ,QAAO;CAEnB,MAAM,QAAQ,UAAU,cAAc,SAAS,CAAC,WACxC,YACA,MACP;AACD,0BAAyB,IAAI,SAAS,MAAM;AAC5C,QAAO;;AAGT,SAAS,wBAAwB,UAAkB,SAA4B;AAC7E,KAAI,8BAA8B,IAAI,SAAS,CAAE;AACjD,+BAA8B,IAAI,SAAS;AAC3C,SAAQ,KAAK,WAAW,QAAQ,gEAAgE;;AAGlG,eAAsB,eAAe,OAAkD;CACrF,MAAM,WAAW,wBAAwB,MAAM,MAAM,CAAC;CACtD,MAAM,EAAE,WAAWA,gBAAgB;CASnC,MAAM,kBAAkB,OAAO,oBAAoB;CACnD,MAAM,iBAAiB,yBAAyB,SAAS;CAEzD,MAAM,SAAS,mBAAmB,kBAAkB;AAEpD,KAAI,CAAC,gBACH,yBAAwB,UAAU,OAAO;CAG3C,MAAM,WAAW,MAAM,4BAA4B,MAAM,MAAM;CAC/D,MAAM,gBAAgB,wBAAwB,MAAM,OAAO,SAAS;AACpE,KAAI,CAAC,cAAc,QACjB,OAAM,IAAI,uBAAuB,cAAc,UAAU,SAAS,MAAM,MAAM,4CAA4C;CAG5H,MAAM,WAAW,kBAAkB,QAAQ,MAAM,OAAO,SAAS;AACjE,KAAI,CAAC,SAAS,SAAS;AAMrB,MAAI,kBAAkB,mBAAmB,cACvC,OAAM,IAAI,uBACR,WAAW,OAAO,cAAc,MAAM,MAAM,IAAI,SAAS,UAAU,gBAAgB,KAAK,MAAM,MAAM,qDAAqD,eAAe,wEAAwE,OAAO,+BACxP;EAGH,MAAM,mBAAmB,kBAAkB,eAAe,MAAM,OAAO,SAAS;AAChF,MAAI,CAAC,iBAAiB,QACpB,OAAM,IAAI,uBAAuB,SAAS,UAAU,iBAAiB,UAAU,WAAW,OAAO,sBAAsB,MAAM,QAAQ;AAGvI,UAAQ,KAAK,WAAW,OAAO,cAAc,SAAS,IAAI,SAAS,UAAU,gBAAgB,uCAAuC;AACpI,SAAO;;AAGT,KAAI,CAAE,MAAM,iBAAiB,OAAO,EAAG;EACrC,MAAM,SAAS,kBAAkB;AAKjC,MAAI,kBAAkB,mBAAmB,cACvC,OAAM,IAAI,uBACR,WAAW,OAAO,yBAAyB,MAAM,MAAM,qBAAqB,OAAO,4EAA4E,OAAO,8BACvK;AAEH,UAAQ,KAAK,WAAW,OAAO,iBAAiB,SAAS,QAAQ,OAAO,wDAAwD;AAChI,SAAO;;AAGT,QAAO;;;;sBA1HwE;iBACE;mBAGf;AAE9D,aAAY,UAAU,KAAK;AAC3B,qBAA0D;EAC9D,QAAQ;EACR,OAAO;EACR;AACK,4CAA2B,IAAI,KAAoC;AACnE,iDAAgC,IAAI,KAAa;AAc1C,0BAAb,cAA4C,MAAM;EAChD,YAAY,SAAiB;AAC3B,SAAM,QAAQ;AACd,QAAK,OAAO"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as __esmMin } from "./chunk-ruWRV7i3.js";
|
|
2
2
|
import { a as resolveGitHubIssueSync, n as init_tracker_utils, o as resolveTrackerTypeSync } from "./tracker-utils-D4-R_e1R.js";
|
|
3
|
-
import { _ as listOverdeckAgentStatesSync, g as init_agent_state_sync } from "./records-
|
|
3
|
+
import { _ as listOverdeckAgentStatesSync, g as init_agent_state_sync } from "./records-CTmvuRzz.js";
|
|
4
4
|
import { i as init_activity_logger, t as emitActivityDetailedSync } from "./activity-logger-DR4VJx-J.js";
|
|
5
5
|
import { a as init_event_store, i as initEventStore } from "./event-store-8BddVviQ.js";
|
|
6
6
|
import { K as getMaxTurnDiffSummariesPerAgent, U as INITIAL_READ_MODEL_STATE, W as applyEvent, X as trimTurnDiffSummaries, q as isTerminalTurnDiffSummaryStatus, t as init_src } from "./src-U_5LlV2C.js";
|
|
7
7
|
import { n as init_feature_registry_storage, r as listFeatureRegistryEntries } from "./feature-registry-storage-CMPXAv1V.js";
|
|
8
8
|
import { a as init_agents, d as init_briefing_freshness, f as resolveSessionContextBriefingPath, t as AgentsResolver } from "./agents-BURDseV4.js";
|
|
9
|
-
import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-
|
|
9
|
+
import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-D1433I7n.js";
|
|
10
10
|
import { n as init_briefing_assembler, t as assembleLiveBriefingMarkdown } from "./briefing-assembler-BdNcscQe.js";
|
|
11
11
|
import { c as TrackerNotConfigured, d as init_typed_errors } from "./typed-errors-DPR1BSLB.js";
|
|
12
12
|
import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-0ZQPqaYT.js";
|
|
@@ -222,7 +222,7 @@ var init_read_model = __esmMin((() => {
|
|
|
222
222
|
};
|
|
223
223
|
const getSnapshot = Effect.gen(function* () {
|
|
224
224
|
try {
|
|
225
|
-
const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-
|
|
225
|
+
const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-D-8Q6tdT.js"));
|
|
226
226
|
const currentIssues = cleanIssues(getSharedIssueService().getIssues());
|
|
227
227
|
if (currentIssues.length > 0 || state.issuesRaw.length === 0) state = {
|
|
228
228
|
...state,
|
|
@@ -247,7 +247,7 @@ var init_read_model = __esmMin((() => {
|
|
|
247
247
|
const getAgentIdBySessionId = (sessionId) => Effect.sync(() => state.agentIdBySessionId[sessionId] ?? null);
|
|
248
248
|
const agentsResolver = yield* AgentsResolver;
|
|
249
249
|
yield* Effect.gen(function* () {
|
|
250
|
-
const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-
|
|
250
|
+
const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-9SWp82SQ.js"));
|
|
251
251
|
const [overdeckAgents, result] = yield* Effect.all([agentsResolver.list({}), Effect.promise(() => reconstructCacheAuto())]);
|
|
252
252
|
const agentsById = Object.fromEntries(overdeckAgents.map((a) => [a.id, agentSnapshotFromOverdeck(a)]));
|
|
253
253
|
let sequence = 0;
|
|
@@ -326,7 +326,7 @@ var init_read_model = __esmMin((() => {
|
|
|
326
326
|
}
|
|
327
327
|
})();
|
|
328
328
|
try {
|
|
329
|
-
const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-
|
|
329
|
+
const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-D-8Q6tdT.js"));
|
|
330
330
|
const issueService = getSharedIssueService();
|
|
331
331
|
const mergeT0 = performance.now();
|
|
332
332
|
const currentIssues = cleanIssues(issueService.getIssues());
|
|
@@ -366,7 +366,7 @@ var init_read_model = __esmMin((() => {
|
|
|
366
366
|
payload: { issues: cleaned }
|
|
367
367
|
});
|
|
368
368
|
} catch {}
|
|
369
|
-
import("./backlog-auto-trigger-
|
|
369
|
+
import("./backlog-auto-trigger-B_-1tk4e.js").then(({ triggerDebouncedIncrementalPass }) => {
|
|
370
370
|
triggerDebouncedIncrementalPass(process.cwd());
|
|
371
371
|
}).catch(() => {});
|
|
372
372
|
});
|
|
@@ -1163,4 +1163,4 @@ __esmMin((() => {
|
|
|
1163
1163
|
}))();
|
|
1164
1164
|
export { IssueLifecycle, IssueLifecycleLive, IssueLifecycleWithClientLive };
|
|
1165
1165
|
|
|
1166
|
-
//# sourceMappingURL=issue-lifecycle-
|
|
1166
|
+
//# sourceMappingURL=issue-lifecycle-Bc1l3U9f.js.map
|