@overdeck/desktop 0.50.0 → 0.50.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/{acceptance-criteria-B_maCGZv.js → acceptance-criteria-D-OIjvuX.js} +2 -2
- package/server/{active-dashboard-bundle-CCqpFWiz.js → active-dashboard-bundle-C-Ars7eG.js} +2 -2
- package/server/{activity-logger-B0X2JJwM.js → activity-logger-BRASNITk.js} +1 -1
- package/server/{activity-logger-SlTXYCVf.js → activity-logger-DNYDzAOU.js} +3 -3
- package/server/{advancing-selfheal-BJAfiY-C.js → advancing-selfheal-Bq8V0QUa.js} +5 -5
- package/server/{agent-gc-bhikjoJ_.js → agent-gc-Coz8zQt_.js} +10 -10
- package/server/{agent-idle-D-UQ7gDv.js → agent-idle-CAwB-K6M.js} +182 -30
- package/server/{agent-state-BrUPf_7Z.js → agent-state-CbUEwUEQ.js} +1 -1
- package/server/{agent-state-FABw8neJ.js → agent-state-Ci6PhjOE.js} +1504 -245
- package/server/{agent-state-service-rDenYSlD.js → agent-state-service-D6IVrX3B.js} +5 -5
- package/server/{agent-state-service-BAQApt97.js → agent-state-service-DcN1j6eK.js} +1 -1
- package/server/agents-BVvL4o_4.js +3 -0
- package/server/{agents-DzpQidT8.js → agents-CkngXhQr.js} +4 -4
- package/server/archive-planning-CohTB7hg.js +2 -0
- package/server/{archive-planning-BL1ABtW0.js → archive-planning-CtdBSD1-.js} +5 -5
- package/server/{artifact-index-jobs-Cjdme0jS.js → artifact-index-jobs-9ZdXQ9zH.js} +2 -2
- package/server/{auto-spawn-consent-BesWchEi.js → auto-spawn-consent-CJeQM5e0.js} +281 -77
- package/server/{backlog-auto-trigger-COLq639j.js → backlog-auto-trigger-BuSBqG2V.js} +3 -3
- package/server/{behavior-DCg8CIWC.js → behavior-Bg3yC8jC.js} +93 -38
- package/server/{bridge-pool-patrol-BDohuMRt.js → bridge-pool-patrol-CkJ86c_r.js} +2 -2
- package/server/{briefing-freshness-ENa_hW_V.js → briefing-freshness-CEoe3yWS.js} +2 -2
- package/server/build-info-CYlxvZSQ.js +2 -0
- package/server/{build-info-WuZT6xyi.js → build-info-Cj3Y0K87.js} +3 -3
- package/server/{checkpoint-manager-CSZ7aVQF.js → checkpoint-manager-Bt4dnyyr.js} +2 -2
- package/server/{checkpoint-manager-DXhGRvg4.js → checkpoint-manager-C1-9CFcu.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-DUkUsPVS.js → checkpoints-3pyv5ikj.js} +2 -2
- package/server/{checkpoints-tm_w6Y4V.js → checkpoints-Dgtp8549.js} +1 -1
- package/server/{claude-hooks-provision-fRofvhTN.js → claude-hooks-provision-DWrqkc3x.js} +2 -2
- package/server/{claude-hooks-provision-CTh9zxEi.js → claude-hooks-provision-DXac_UDF.js} +1 -1
- package/server/{claude-permissions-DLrb9ovz.js → claude-permissions-DX5BSnMH.js} +2 -2
- package/server/{claude-settings-overlay-CMS5Jab5.js → claude-settings-overlay-ALboy05V.js} +1 -1
- package/server/{claude-settings-overlay-BYnXaTVc.js → claude-settings-overlay-CTkJUUHw.js} +2 -2
- package/server/{cli-CoQou1t_.js → cli-DIhQieif.js} +11 -11
- package/server/cli-ZAS502uC.js +2 -0
- package/server/{cliproxy-DdhFpcXU.js → cliproxy-Dz_zq_4H.js} +1 -1
- package/server/{cliproxy-DXDQcR3I.js → cliproxy-QTm2vdgx.js} +2 -2
- package/server/{close-issue-CpQ0BWg-.js → close-issue-CRlmrE5g.js} +5 -5
- package/server/{closed-issue-reaper-TymtZM37.js → closed-issue-reaper-DWlw2EtL.js} +1 -1
- package/server/{closed-issue-reaper-CdcJRvUx.js → closed-issue-reaper-DrHyYgJR.js} +13 -13
- package/server/{codex-BValsmtK.js → codex-DzLXjzbf.js} +1 -1
- package/server/{codex-DYyZL8JD.js → codex-pffr8qaN.js} +25 -18
- package/server/{compaction-continuation-CVjbdGKt.js → compaction-continuation-DhYgsXmF.js} +3 -3
- package/server/{config-_qaa1UXH.js → config-B-MLcKSo.js} +2 -2
- package/server/{config-NxI9Yl2f.js → config-BUjU7GZQ.js} +2 -2
- package/server/{config-CvKH7r7W.js → config-DN8ETZvK.js} +1 -1
- package/server/{config-yaml-D60AnTIu.js → config-yaml-Dce9VUd6.js} +440 -71
- package/server/{conflict-gate-hAUCL-un.js → conflict-gate-Bt-lLgYf.js} +4 -4
- package/server/{conflict-gate-0dD1kxjN.js → conflict-gate-vczgdVTa.js} +1 -1
- package/server/{continue-CnvrUfxw.js → continue-DvNIJ-73.js} +2 -2
- package/server/{control-settings-Db0uXgVM.js → control-settings-BkaVFRdm.js} +5 -5
- package/server/{conversation-compaction-B-1KETG9.js → conversation-compaction-CsdCbcQB.js} +8 -8
- package/server/{conversation-compaction-DzMXGRiJ.js → conversation-compaction-D0zgWM1f.js} +1 -1
- package/server/{conversation-service-BxIOd5ay.js → conversation-service-6LaymUV-.js} +224 -76
- package/server/conversation-service-Dlks_hSS.js +3 -0
- package/server/conversations-BunNL58s.js +3 -0
- package/server/{conversations-nS6QgYpD.js → conversations-CPXMv_JQ.js} +11 -9
- package/server/{scanner-BFKG3Gxv.js → conversations-search-DnWUghbM.js} +407 -51
- package/server/{cost-3FyqKK56.js → cost-PJXEAirJ.js} +8 -8
- package/server/{cost-DTuIRE4y.js → cost-ShD-G0cS.js} +52 -2
- package/server/{cost-Cctc-Q9M.js → cost-eaAmJTX9.js} +3 -3
- package/server/{cost-sync-DfmvLT9L.js → cost-sync-EFEkMYWz.js} +26 -56
- package/server/{dag-o-dUpw1L.js → dag-Drz6Nrnf.js} +2 -2
- package/server/dashboard-db-worker.js +52 -10
- package/server/{deacon-CsisLmPt.js → deacon-CU47dU7U.js} +169 -131
- package/server/{deacon-e6py3jkM.js → deacon-DYsOa_ss.js} +3 -3
- package/server/{deacon-canonical-state-DkdkQS5p.js → deacon-canonical-state-wi63RApC.js} +3 -3
- package/server/{deacon-event-client-CMQswEHX.js → deacon-event-client-DY8U1EbU.js} +2 -2
- package/server/{deacon-event-client-BCjHiGAY.js → deacon-event-client-uaGapjPL.js} +1 -1
- package/server/{deacon-nudge-log-pcliw8Dr.js → deacon-nudge-log-ZirGPRn1.js} +1 -1
- package/server/{deacon-pending-lifecycle-BzaE76Xo.js → deacon-pending-lifecycle-ijGX8wLb.js} +2 -2
- package/server/deacon.js +11 -11
- package/server/{dead-end-trip-Bs3hxIn6.js → dead-end-trip-B-zvz8Rw.js} +3 -3
- package/server/dead-end-trip-Caz9bf1A.js +2 -0
- package/server/delivery-DMYxIE0J.js +3 -0
- package/server/{deploy-patrol-B8sKkA8h.js → deploy-patrol-C4eXco1S.js} +8 -8
- package/server/deploy-queue-C3KIJizG.js +2 -0
- package/server/{deploy-queue-CCGWXFkp.js → deploy-queue-TDZ2tzRF.js} +2 -2
- package/server/{deploy-window-YuJewzmC.js → deploy-window-CdInEAuR.js} +4 -4
- package/server/{deploy-window-hgsvZ3UZ.js → deploy-window-DkjV-Haz.js} +1 -1
- package/server/{dev-supervisor-4SBloJHV.js → dev-supervisor-CrYlJS2n.js} +2 -2
- package/server/{devcontainer-renderer-BiJhwFNi.js → devcontainer-renderer-DL8lfn0Y.js} +4 -4
- package/server/{docker-DQzyMXkd.js → docker-DLIwccCS.js} +1 -1
- package/server/{docker-CWO7dcIP.js → docker-fz7ELYZ8.js} +3 -3
- package/server/{dod-BAk5arLF.js → dod-C9m0JqhG.js} +1 -1
- package/server/{done-preflight-Cx9JGznT.js → done-preflight-CaILZ394.js} +5 -5
- package/server/{done-preflight-CGFA0M1b.js → done-preflight-DAufsWqY.js} +1 -1
- package/server/{durable-review-pipeline-Djx_lvFd.js → durable-review-pipeline-CIkgDTla.js} +1 -1
- package/server/{durable-review-pipeline-BOEZ0chh.js → durable-review-pipeline-CYcUvz1_.js} +1 -1
- package/server/{ensure-devcontainer-DzYBBwnM.js → ensure-devcontainer-C2rKQXgr.js} +4 -4
- package/server/{ensure-devcontainer-Dk6ZMOUC.js → ensure-devcontainer-IQ_dNjjV.js} +1 -1
- package/server/{esm-shims-deFq5Hhl.js → esm-shims-CVzRn1Sa.js} +1 -1
- package/server/{event-store-DTns2XZP.js → event-store-BYOh686E.js} +5 -5
- package/server/{event-store-C50Qt-f1.js → event-store-Bw3YDOZ5.js} +1 -1
- package/server/{event-store-provider-Bu1Qrg6v.js → event-store-provider-B2PMoaap.js} +1 -1
- package/server/{events-B6xW8Cpm.js → events-BCPdiWG9.js} +3 -3
- package/server/{factory-CWVKwKFE.js → factory-BC18rvHD.js} +4 -4
- package/server/{feature-registry-storage-vaxRN3WO.js → feature-registry-storage-CASMzD0N.js} +2 -2
- package/server/{features-DXWwktJB.js → features-B1O5F33h.js} +2 -2
- package/server/{feedback-stuck-retirement-CXAYe2rU.js → feedback-stuck-retirement-Dd5XNrMr.js} +2 -2
- package/server/{feedback-target-yPD_wclF.js → feedback-target-BcsA_GRV.js} +10 -10
- package/server/{feedback-target-DSVpi0gT.js → feedback-target-BzdJ2wIR.js} +1 -1
- package/server/{feedback-writer-BzN4qvaP.js → feedback-writer-DfMoEtQc.js} +1 -1
- package/server/{feedback-writer-Ds1Wjsz4.js → feedback-writer-lbXBFycU.js} +5 -5
- package/server/{flywheel-BCZS-FlW.js → flywheel-B34cdfbd.js} +1 -1
- package/server/{flywheel-CC4gE_rx.js → flywheel-D0guNqkh.js} +14 -14
- package/server/{flywheel-DWKd7bMc.js → flywheel-Is3w2lcT.js} +16 -16
- package/server/{flywheel-merge-order-DDT3i57u.js → flywheel-merge-order-6HiPR2WG.js} +1 -1
- package/server/{flywheel-merge-order-DJwH2KpL.js → flywheel-merge-order-BsNPMu0S.js} +8 -8
- package/server/forge-B1cpL4SY.js +2 -0
- package/server/{forge-CHADjOFs.js → forge-CEe3eFjh.js} +2 -2
- package/server/{fs-lock-DQ_gUxfq.js → fs-lock-VCGoXZI5.js} +2 -2
- package/server/{fts-operations-asZo2fh1.js → fts-operations-BNRxGCU_.js} +2 -2
- package/server/{git-info-DMOSfJ9I.js → git-info-BZYdINlU.js} +1 -1
- package/server/{git-utils-BdHk8y7g.js → git-utils-D96xW28f.js} +4 -4
- package/server/{git-utils-BAMwn9Nf.js → git-utils-DvcWLgGS.js} +1 -1
- package/server/{github-app-BlMSzSTw.js → github-app-BINlfWAA.js} +3 -2
- package/server/{github-app-BWziYCf3.js → github-app-BxM1U38q.js} +1 -1
- package/server/{github-client-w6j5nVlz.js → github-client-DJVl4iDm.js} +3 -3
- package/server/{github-client-OK24qpol.js → github-client-oJHo9dyA.js} +1 -1
- package/server/{github-pr-lookup-bGcsEvLE.js → github-pr-lookup-DQEtdiyR.js} +2 -2
- package/server/{harness-binary-DChiynaB.js → harness-binary-DnRGvN6T.js} +6 -3
- package/server/{harness-resolve-BplBEbwn.js → harness-resolve-CzTFVZ5l.js} +4 -4
- package/server/{health-events-Bk3LjaJ9.js → health-events-CF2WMNkI.js} +2 -2
- package/server/{health-events-BTqsmunw.js → health-events-Dv7rzyit.js} +1 -1
- package/server/{hooks-EndRNrx9.js → hooks-DKzqJ4HF.js} +1 -1
- package/server/{hooks-DJR1yR9w.js → hooks-lPAsUc20.js} +2 -2
- package/server/hume-51rYfjzX.js +3 -0
- package/server/{hume-1FJmNDTq.js → hume-CxfI2cg-.js} +2 -2
- package/server/{identity-C3s8lyp0.js → identity-Dc7rQLln.js} +3 -3
- package/server/{idle-stack-reaper-DtoI4al6.js → idle-stack-reaper-C0NYGCVq.js} +4 -4
- package/server/{idle-stack-reaper-CBelVOE3.js → idle-stack-reaper-CNLvCrg9.js} +1 -1
- package/server/{in-flight-guard-B7khcBdQ.js → in-flight-guard-HoToxzGt.js} +1 -1
- package/server/{infra-CJRi_5Wu.js → infra-B05o-e2g.js} +4 -4
- package/server/{injection-BWsgHvrL.js → injection-Bk_pw2Ei.js} +1 -1
- package/server/{injection-ADWQ3D0s.js → injection-DkaIMCnX.js} +8 -8
- package/server/{inspect-agent-CCfNJjKr.js → inspect-agent-CP7Bu47O.js} +14 -12
- package/server/inspect-agent-DTuSg95i.js +2 -0
- package/server/{internal-token-BCTEqUCX.js → internal-token-CWcdG-Kw.js} +1 -1
- package/server/{internal-token-BeIWG_kT.js → internal-token-Ci0LxMIq.js} +2 -2
- package/server/{io-BCtZoXHo.js → io-Cm4Sf_6P.js} +4 -4
- package/server/{issue-closed-CiYAa6bX.js → issue-closed-D7aMUeMq.js} +7 -7
- package/server/{issue-lifecycle-BETNVVLq.js → issue-lifecycle-BPbczKyy.js} +32 -30
- package/server/{issue-lifecycle-DaKN57sx.js → issue-lifecycle-FaugTi39.js} +1 -1
- package/server/{issue-service-singleton-C_sZ0HjP.js → issue-service-singleton-BrZQJLRI.js} +11 -11
- package/server/{issue-service-singleton-1Q0ER8Yc.js → issue-service-singleton-Dsad9NTt.js} +1 -1
- package/server/{issue-title-fallback-B91iD66g.js → issue-title-fallback-BDxHa3-u.js} +3 -3
- package/server/{issues-RGHQUKhB.js → issues-Q62MKOV_.js} +2 -2
- package/server/{jsonl-parser-Dfs1dlYE.js → jsonl-parser-DSJisyfy.js} +5 -4
- package/server/{jsonl-resolver-bFtftCDd.js → jsonl-resolver-DQEe0DHM.js} +12 -9
- package/server/kimi-code-Cx5YUJpS.js +3 -0
- package/server/{kimi-parser-OcWwmOqF.js → kimi-parser-5VpMzIDq.js} +2 -2
- package/server/{label-cleanup-CefxK9tL.js → label-cleanup-DjQGmcZQ.js} +3 -3
- package/server/{lifecycle-DVXyUil2.js → lifecycle-BSQIQ1Sq.js} +2 -2
- package/server/{lifecycle-DDZ7w-BY.js → lifecycle-DZFHmpGI.js} +6 -6
- package/server/{lifecycle-io-D1oBiMce.js → lifecycle-io-Bv4XQMRi.js} +1 -1
- package/server/{lifecycle-io-D7N0vQNj.js → lifecycle-io-CW__VX8s.js} +5 -5
- package/server/{linear-client-TL32snOy.js → linear-client-DnX3CcAL.js} +1 -1
- package/server/{linear-client-DUN7zCeb.js → linear-client-DrRZ3We7.js} +4 -7
- package/server/{linear-mcp-auth-bB0CPyjh.js → linear-mcp-auth-BFlpMvWh.js} +5 -5
- package/server/{linear-mcp-auth-CtRKSHy5.js → linear-mcp-auth-DylPJABZ.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{memory-governor-Cvv_9K0M.js → memory-governor-B7uDWRo9.js} +29 -22
- package/server/{merge-FTk4LsnM.js → merge-BGozpxFt.js} +3 -3
- package/server/{merge-DOCR6pHi.js → merge-CphMVME2.js} +1 -1
- package/server/{merge-agent-D-4_iQgy.js → merge-agent-ddEcZDZD.js} +2 -2
- package/server/{merge-agent-C-dsN9se.js → merge-agent-ttRY053V.js} +32 -32
- package/server/{merge-batch-BJjzUUL7.js → merge-batch-CBQ2YYuy.js} +1 -1
- package/server/{merge-completeness-CoLJxfUY.js → merge-completeness-CsSvQJxw.js} +1 -1
- package/server/{merge-completeness-BOtBUwTU.js → merge-completeness-YQbhKLPk.js} +4 -4
- package/server/{merge-eligibility-C4rTS97F.js → merge-eligibility-BGqmx_bG.js} +1 -1
- package/server/{merge-eligibility-D7wRnJbj.js → merge-eligibility-CvQBc_9D.js} +4 -4
- package/server/merge-ops-Bgc-EScO.js +2 -0
- package/server/{merge-rebase-KBw4rdh3.js → merge-rebase-BbLnMyfQ.js} +2 -2
- package/server/merge-rebase-BgYoyMul.js +2 -0
- package/server/{merge-set-CyW-xSn4.js → merge-set-DRPWriK9.js} +4 -4
- package/server/{merge-set-CVfEM57p.js → merge-set-DaU9Ruxy.js} +1 -1
- package/server/{merge-sync-CYGsJy0u.js → merge-sync-BRKJM70R.js} +1 -1
- package/server/{merge-sync-YLvOPAry.js → merge-sync-CTGkR1_m.js} +2 -2
- package/server/{merge-train-deps-D0y4hBB9.js → merge-train-deps-GPlHOjK6.js} +4 -4
- package/server/{merge-train-VxLn8Ms4.js → merge-train-f_un38UJ.js} +4 -4
- package/server/{merge-verification-BfJRNMiD.js → merge-verification-BPBW3Hu3.js} +6 -6
- package/server/{merged-docker-cleanup-worker-Ci9oeFAe.js → merged-docker-cleanup-worker-By0YSsIP.js} +1 -1
- package/server/{merged-docker-cleanup-worker-Bh5fKG_b.js → merged-docker-cleanup-worker-zMzGriKp.js} +3 -3
- package/server/messaging-BasbftDu.js +3 -0
- package/server/muse-parser-CFchR2vh.js +89 -0
- package/server/muse-session-CrSRuauJ.js +56 -0
- package/server/{no-resume-mode-DjMQRkId.js → no-resume-mode-BsvYzqbB.js} +1 -1
- package/server/node_modules/.package-lock.json +17 -17
- package/server/node_modules/@types/node/README.md +3 -3
- package/server/node_modules/@types/node/assert/strict.d.ts +56 -13
- package/server/node_modules/@types/node/assert.d.ts +190 -189
- package/server/node_modules/@types/node/async_hooks.d.ts +43 -151
- package/server/node_modules/@types/node/buffer.buffer.d.ts +13 -7
- package/server/node_modules/@types/node/buffer.d.ts +237 -102
- package/server/node_modules/@types/node/child_process.d.ts +154 -39
- package/server/node_modules/@types/node/cluster.d.ts +384 -238
- package/server/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
- package/server/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/server/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/server/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
- package/server/node_modules/@types/node/console.d.ts +404 -45
- package/server/node_modules/@types/node/constants.d.ts +10 -3
- package/server/node_modules/@types/node/crypto.d.ts +1600 -1009
- package/server/node_modules/@types/node/dgram.d.ts +77 -14
- package/server/node_modules/@types/node/diagnostics_channel.d.ts +59 -277
- package/server/node_modules/@types/node/dns/promises.d.ts +15 -9
- package/server/node_modules/@types/node/dns.d.ts +183 -136
- package/server/node_modules/@types/node/domain.d.ts +32 -12
- package/server/node_modules/@types/node/events.d.ts +696 -728
- package/server/node_modules/@types/node/fs/promises.d.ts +21 -196
- package/server/node_modules/@types/node/fs.d.ts +450 -780
- package/server/node_modules/@types/node/globals.d.ts +34 -12
- package/server/node_modules/@types/node/globals.typedarray.d.ts +0 -63
- package/server/node_modules/@types/node/http.d.ts +310 -431
- package/server/node_modules/@types/node/http2.d.ts +889 -543
- package/server/node_modules/@types/node/https.d.ts +243 -64
- package/server/node_modules/@types/node/index.d.ts +7 -24
- package/server/node_modules/@types/node/inspector.d.ts +57 -68
- package/server/node_modules/@types/node/inspector.generated.d.ts +411 -765
- package/server/node_modules/@types/node/module.d.ts +219 -54
- package/server/node_modules/@types/node/net.d.ts +207 -101
- package/server/node_modules/@types/node/os.d.ts +49 -41
- package/server/node_modules/@types/node/package.json +3 -13
- package/server/node_modules/@types/node/path.d.ts +141 -119
- package/server/node_modules/@types/node/perf_hooks.d.ts +673 -310
- package/server/node_modules/@types/node/process.d.ts +205 -389
- package/server/node_modules/@types/node/punycode.d.ts +31 -3
- package/server/node_modules/@types/node/querystring.d.ts +16 -3
- package/server/node_modules/@types/node/readline/promises.d.ts +6 -3
- package/server/node_modules/@types/node/readline.d.ts +152 -66
- package/server/node_modules/@types/node/repl.d.ts +109 -101
- package/server/node_modules/@types/node/sea.d.ts +116 -1
- package/server/node_modules/@types/node/sqlite.d.ts +68 -486
- package/server/node_modules/@types/node/stream/consumers.d.ts +15 -91
- package/server/node_modules/@types/node/stream/promises.d.ts +15 -136
- package/server/node_modules/@types/node/stream/web.d.ts +456 -179
- package/server/node_modules/@types/node/stream.d.ts +491 -603
- package/server/node_modules/@types/node/string_decoder.d.ts +43 -3
- package/server/node_modules/@types/node/test.d.ts +292 -513
- package/server/node_modules/@types/node/timers/promises.d.ts +18 -3
- package/server/node_modules/@types/node/timers.d.ts +141 -3
- package/server/node_modules/@types/node/tls.d.ts +242 -116
- package/server/node_modules/@types/node/trace_events.d.ts +97 -3
- package/server/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +8 -2
- package/server/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -2
- package/server/node_modules/@types/node/ts5.6/index.d.ts +6 -25
- package/server/node_modules/@types/node/tty.d.ts +40 -57
- package/server/node_modules/@types/node/url.d.ts +584 -156
- package/server/node_modules/@types/node/util.d.ts +1110 -181
- package/server/node_modules/@types/node/v8.d.ts +36 -175
- package/server/node_modules/@types/node/vm.d.ts +209 -292
- package/server/node_modules/@types/node/wasi.d.ts +74 -24
- package/server/node_modules/@types/node/web-globals/abortcontroller.d.ts +2 -27
- package/server/node_modules/@types/node/web-globals/domexception.d.ts +0 -15
- package/server/node_modules/@types/node/web-globals/events.d.ts +0 -9
- package/server/node_modules/@types/node/web-globals/fetch.d.ts +0 -14
- package/server/node_modules/@types/node/web-globals/navigator.d.ts +0 -3
- package/server/node_modules/@types/node/web-globals/streams.d.ts +0 -93
- package/server/node_modules/@types/node/worker_threads.d.ts +407 -257
- package/server/node_modules/@types/node/zlib.d.ts +165 -7
- package/server/node_modules/msgpackr/README.md +1 -0
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs +2 -2
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.js +2 -2
- package/server/node_modules/msgpackr/dist/index.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/node.cjs +2 -2
- package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/test.js +52 -2
- package/server/node_modules/msgpackr/dist/test.js.map +1 -1
- package/server/node_modules/msgpackr/index.d.cts +1 -0
- package/server/node_modules/msgpackr/index.d.ts +1 -0
- package/server/node_modules/msgpackr/pack.js +2 -2
- package/server/node_modules/msgpackr/package.json +1 -1
- package/server/node_modules/protobufjs/dist/light/protobuf.js +59 -6
- package/server/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/server/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/server/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/server/node_modules/protobufjs/dist/minimal/protobuf.js +22 -2
- package/server/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/server/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/server/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/server/node_modules/protobufjs/dist/protobuf.js +59 -6
- package/server/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/server/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/server/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/server/node_modules/protobufjs/package.json +1 -1
- package/server/node_modules/protobufjs/src/decoder.js +32 -3
- package/server/node_modules/protobufjs/src/reader.js +20 -0
- package/server/node_modules/protobufjs/src/wrappers.js +5 -1
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +3 -2
- package/server/node_modules/undici/docs/docs/api/EventSource.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
- package/server/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
- package/server/node_modules/undici/lib/core/symbols.js +2 -0
- package/server/node_modules/undici/lib/dispatcher/agent.js +7 -2
- package/server/node_modules/undici/lib/dispatcher/balanced-pool.js +7 -4
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +43 -3
- package/server/node_modules/undici/lib/dispatcher/client.js +3 -2
- package/server/node_modules/undici/lib/dispatcher/dispatcher-base.js +13 -1
- package/server/node_modules/undici/lib/dispatcher/dispatcher.js +15 -1
- package/server/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
- package/server/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +10 -3
- package/server/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -1
- package/server/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/server/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
- package/server/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +91 -21
- package/server/node_modules/undici/lib/handler/cache-handler.js +29 -5
- package/server/node_modules/undici/lib/handler/decorator-handler.js +7 -1
- package/server/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/server/node_modules/undici/lib/handler/redirect-handler.js +21 -4
- package/server/node_modules/undici/lib/handler/retry-handler.js +148 -30
- package/server/node_modules/undici/lib/interceptor/cache.js +65 -12
- package/server/node_modules/undici/lib/interceptor/decompress.js +115 -13
- package/server/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/server/node_modules/undici/lib/interceptor/dns.js +7 -0
- package/server/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/server/node_modules/undici/lib/mock/mock-agent.js +13 -1
- package/server/node_modules/undici/lib/mock/mock-utils.js +11 -10
- package/server/node_modules/undici/lib/util/cache.js +45 -3
- package/server/node_modules/undici/lib/web/cookies/parse.js +150 -147
- package/server/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/server/node_modules/undici/lib/web/eventsource/eventsource.js +13 -3
- package/server/node_modules/undici/lib/web/fetch/index.js +6 -0
- package/server/node_modules/undici/lib/web/fetch/request.js +2 -3
- package/server/node_modules/undici/lib/web/fetch/util.js +6 -1
- package/server/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/server/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/server/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/server/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/server/node_modules/undici/package.json +3 -3
- package/server/node_modules/undici/types/client.d.ts +10 -0
- package/server/node_modules/undici/types/interceptors.d.ts +2 -0
- package/server/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/server/node_modules/undici/types/socks5-proxy-agent.d.ts +2 -0
- package/server/node_modules/undici-types/agent.d.ts +13 -12
- package/server/node_modules/undici-types/api.d.ts +26 -26
- package/server/node_modules/undici-types/balanced-pool.d.ts +12 -13
- package/server/node_modules/undici-types/client.d.ts +34 -55
- package/server/node_modules/undici-types/connector.d.ts +2 -4
- package/server/node_modules/undici-types/cookies.d.ts +0 -2
- package/server/node_modules/undici-types/diagnostics-channel.d.ts +10 -18
- package/server/node_modules/undici-types/dispatcher.d.ts +137 -134
- package/server/node_modules/undici-types/env-http-proxy-agent.d.ts +3 -4
- package/server/node_modules/undici-types/errors.d.ts +54 -82
- package/server/node_modules/undici-types/eventsource.d.ts +4 -9
- package/server/node_modules/undici-types/fetch.d.ts +24 -46
- package/server/node_modules/undici-types/file.d.ts +39 -0
- package/server/node_modules/undici-types/filereader.d.ts +54 -0
- package/server/node_modules/undici-types/formdata.d.ts +7 -7
- package/server/node_modules/undici-types/global-dispatcher.d.ts +4 -4
- package/server/node_modules/undici-types/global-origin.d.ts +5 -5
- package/server/node_modules/undici-types/handlers.d.ts +9 -8
- package/server/node_modules/undici-types/header.d.ts +1 -162
- package/server/node_modules/undici-types/index.d.ts +47 -69
- package/server/node_modules/undici-types/interceptors.d.ts +9 -72
- package/server/node_modules/undici-types/mock-agent.d.ts +18 -36
- package/server/node_modules/undici-types/mock-client.d.ts +4 -6
- package/server/node_modules/undici-types/mock-errors.d.ts +3 -3
- package/server/node_modules/undici-types/mock-interceptor.d.ts +20 -21
- package/server/node_modules/undici-types/mock-pool.d.ts +4 -6
- package/server/node_modules/undici-types/package.json +1 -1
- package/server/node_modules/undici-types/patch.d.ts +4 -0
- package/server/node_modules/undici-types/pool-stats.d.ts +8 -8
- package/server/node_modules/undici-types/pool.d.ts +14 -14
- package/server/node_modules/undici-types/proxy-agent.d.ts +6 -7
- package/server/node_modules/undici-types/readable.d.ts +16 -19
- package/server/node_modules/undici-types/retry-agent.d.ts +1 -1
- package/server/node_modules/undici-types/retry-handler.d.ts +10 -19
- package/server/node_modules/undici-types/util.d.ts +3 -3
- package/server/node_modules/undici-types/webidl.d.ts +30 -148
- package/server/node_modules/undici-types/websocket.d.ts +10 -48
- package/server/{orphan-proposed-reconciler-nFUlquZt.js → orphan-proposed-reconciler-DFHdQSEg.js} +21 -21
- package/server/{orphan-proposed-reconciler-CnP0K2v3.js → orphan-proposed-reconciler-DzAxrM99.js} +2 -2
- package/server/package-lock.json +18 -18
- package/server/package.json +1 -1
- package/server/{pan-dir-B4NfzOf3.js → pan-dir-Bs9fme2I.js} +4 -4
- package/server/{parked-residue-8WbU0y1z.js → parked-residue-DMtbxJml.js} +31 -31
- package/server/{paths-rETQhTF2.js → paths-eTg2jV4C.js} +2 -2
- package/server/{pickup-Dle6k9Xt.js → pickup-TwHZNJn4.js} +1 -1
- package/server/{pipeline-agent-reader-CeWhQzXC.js → pipeline-agent-reader-CHugmNSx.js} +3 -3
- package/server/{pipeline-membership-C9ykcjsn.js → pipeline-membership-BvkkuVml.js} +1 -1
- package/server/{pipeline-membership-BV4hdkHm.js → pipeline-membership-DxJOJOjn.js} +1 -1
- package/server/{pipeline-membership-gather-Ba0wJNCR.js → pipeline-membership-gather-QYMqf_Wf.js} +10 -10
- package/server/{pipeline-membership-gather-C9E22B2W.js → pipeline-membership-gather-fivITe13.js} +1 -1
- package/server/{pipeline-notifier-B5DPXvnr.js → pipeline-notifier-DUxiacft.js} +1 -1
- package/server/{pipeline-notifier-p190L97e.js → pipeline-notifier-vZqcB2Ts.js} +2 -2
- package/server/{post-merge-lifecycle-worker-OQoK8Ckg.js → post-merge-lifecycle-worker-jzN2g_EY.js} +2 -2
- package/server/{post-merge-state-DFaf7OI1.js → post-merge-state-DGlkiVIO.js} +4 -4
- package/server/{prd-locations-F2oLSAhy.js → prd-locations-Chcvxzle.js} +3 -3
- package/server/{project-pipelines-CUsa6U59.js → project-pipelines-BXB5FlFs.js} +2 -2
- package/server/{project-repos-BVdi9-ch.js → project-repos-BVSXziAz.js} +1 -1
- package/server/{project-repos-CsfvLtmr.js → project-repos-J6jc42uD.js} +2 -2
- package/server/{project-resource-refresh-queue-BehrH4Ai.js → project-resource-refresh-queue-DebwjPPA.js} +17 -17
- package/server/{project-resource-refresh-queue-D2110Guc.js → project-resource-refresh-queue-cqOeJ0fB.js} +1 -1
- package/server/{projects-BMuEf14J.js → projects-DXgHD2Xl.js} +1 -1
- package/server/{prompts-CKpDt8Jn.js → prompts-BJ8Twvtl.js} +2 -2
- package/server/{providers-Buv2wmFU.js → providers-Bx-PKo3d.js} +1 -1
- package/server/{providers-CxPKmyif.js → providers-DQogCKG0.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-DZOQVqV1.js → chunk-BO2N2NFS-CefmGH8f.js} +4 -4
- package/server/public/assets/{chunk-K2UTITRG-CopEAH22.js → chunk-K2UTITRG-DS0TExnd.js} +2 -2
- package/server/public/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/server/public/assets/{diagram-OG6HWLK6-oKeXcbO1.js → diagram-OG6HWLK6-DYPEQqOy.js} +1 -1
- package/server/public/assets/{dist-ClBlE-Nm.js → dist-D0_QiSJD.js} +1 -1
- package/server/public/assets/{dist-2qPmeRzT.js → dist-DVcb72hI.js} +3 -3
- package/server/public/assets/editor.worker-Bd9IXS8d.js +26 -0
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BwdG9fQv.js → ganttDiagram-6RSMTGT7-C0TVczXo.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-BzGNdskQ.js → highlighted-body-OFNGDK62-DqOVJX4H.js} +1 -1
- package/server/public/assets/image-GAAHSSAO-DQ2ivYhs.js +1 -0
- package/server/public/assets/index-CFZuwq0-.css +1 -0
- package/server/public/assets/index-CWCooHwg.js +1732 -0
- package/server/public/assets/{linear-DpEt1TJb.js → linear-45MX5LeL.js} +1 -1
- package/server/public/assets/markdown-Budfoo9I.js +1 -0
- package/server/public/assets/mermaid-GHXKKRXX-71HgceZK.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-9BpM4oRJ.js → pieDiagram-4H26LBE5-BSyYJciD.js} +1 -1
- package/server/public/assets/{prod-CzJiNNEG.js → prod-CcWF3Ag1.js} +5 -5
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-BXWVAoZx.js → quadrantDiagram-W4KKPZXB-DyPGNivi.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-5oxodGEw.js → sankeyDiagram-5OEKKPKP-CdiSWvwI.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-BChDrHxZ.js → xychartDiagram-2RQKCTM6-BZeywmN2.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/pull-requests-DLiyKC8q.js +2 -0
- package/server/{pull-requests-T0OV0Vn4.js → pull-requests-EBvcAtZO.js} +3 -3
- package/server/{rally-api-BFPb2oSq.js → rally-api-2KW2hJUT.js} +2 -2
- package/server/{rally-api-BoucQG1u.js → rally-api-BtWOXNna.js} +1 -1
- package/server/{rally-client-16iObny7.js → rally-client-CAQtSqJJ.js} +5 -5
- package/server/{rally-client-CsqLjLLa.js → rally-client-DK8Ac35q.js} +1 -1
- package/server/{rally-CUqj2oIN.js → rally-k5qOLHHK.js} +3 -3
- package/server/rally-vmQx9f0C.js +3 -0
- package/server/{rebuild-stack-BcBVFJp3.js → rebuild-stack-DSQSgPCI.js} +2 -2
- package/server/rebuild-stack-xdGFthJn.js +370 -0
- package/server/{reconciler-caYiRnPy.js → reconciler-xH7d13Wo.js} +6 -6
- package/server/{reconstruct-cache-3JzPOune.js → reconstruct-cache-Bb2Jg2DZ.js} +7 -7
- package/server/{record-DYOg97Iv.js → record-Dsceq536.js} +1 -1
- package/server/{record-update-CDPEX7BH.js → record-update-CLtgirnZ.js} +1 -1
- package/server/{record-update-BPqpBu3O.js → record-update-T3PMrwE-.js} +4 -4
- package/server/{recovery-trip-CpfW6LCJ.js → recovery-trip-7JFHFjeo.js} +3 -3
- package/server/{recovery-trip-xqKC07Gy.js → recovery-trip-B7UdNXjP.js} +1 -1
- package/server/{release-engine-C_OOhCaK.js → release-engine-78iCajIc.js} +5 -5
- package/server/{release-set-DOIDz2vw.js → release-set-B_sH_Mud.js} +3 -3
- package/server/{remote-xY0B43Ho.js → remote-C9eYHTqn.js} +3 -3
- package/server/{remote-agents-MuXx2gWm.js → remote-agents-CEOvYsvK.js} +1 -1
- package/server/{remote-agents-DbbN7vSm.js → remote-agents-CthcZHnO.js} +6 -6
- package/server/{remote-completion-LcWCpAm2.js → remote-completion-D5wzZCte.js} +12 -12
- package/server/{remote-BTh-sjpX.js → remote-gWXJyhJK.js} +3 -3
- package/server/{resolver-D4nsxfGo.js → resolver-BGZh3lXA.js} +7 -7
- package/server/{resolver-C2QKOf09.js → resolver-ChLZFIjB.js} +2 -2
- package/server/{memory-pressure-patrol-C6DJJQRA.js → resource-pressure-patrol-Bg23rPV-.js} +110 -9
- package/server/{resume-ByUrJUNX.js → resume-BKyB4hA1.js} +1 -1
- package/server/{review-agent-BRBTm1qE.js → review-agent-DHs-JngN.js} +52 -35
- package/server/{review-agent-Caodi0PX.js → review-agent-ZdP-HmwY.js} +2 -2
- package/server/{review-artifacts-DgaDlbO4.js → review-artifacts-DExSp5Lh.js} +6 -6
- package/server/{review-convoy-liveness-BBvyuRLC.js → review-convoy-liveness-BTMvU4CA.js} +8 -8
- package/server/{review-run-recovery-DCzWMMvE.js → review-run-recovery-BYalQzbh.js} +1 -1
- package/server/{review-run-recovery-THHMKlXJ.js → review-run-recovery-BvVG3oUr.js} +2 -2
- package/server/{review-status-DpniqzPT.js → review-status-BegAr86G.js} +33 -31
- package/server/{review-status-Bge_3XTR.js → review-status-DXTFzCmR.js} +1 -1
- package/server/{review-status-emit-D7sM720S.js → review-status-emit-C9YW6SQL.js} +3 -3
- package/server/{review-status-enrichment-PDI4-faj.js → review-status-enrichment-DRJKuIwU.js} +3 -3
- package/server/{review-status-sync-C6ZKTI8f.js → review-status-sync-CHt0oq_3.js} +2 -2
- package/server/{review-status-sync-CvpHWyvR.js → review-status-sync-DEGnJMfG.js} +1 -1
- package/server/{review-verdict-feedback-tyMoLT2L.js → review-verdict-feedback-Dp139Lmv.js} +1 -1
- package/server/{review-verdict-feedback-B2ojHFH5.js → review-verdict-feedback-qlVBi19-.js} +7 -7
- package/server/{review-verdict-writer-DjrJ64eS.js → review-verdict-writer-BVco3WoI.js} +1 -1
- package/server/{review-verdict-writer-Cy_1pnIj.js → review-verdict-writer-CJr_Ob0Y.js} +7 -7
- package/server/{rollup-DU3xBQu2.js → rollup-H2NWuNhX.js} +8 -8
- package/server/{rollup-Cp0KEoOu.js → rollup-iPhJvI-2.js} +1 -1
- package/server/{search-DhtKwbBC.js → search-BtgzCB2W.js} +2 -2
- package/server/{secret-redaction-DLZ-VqHq.js → secret-redaction-EqpTK7R6.js} +1 -1
- package/server/{sequence-io-C-Q19Jez.js → sequence-io-iljWlslY.js} +4 -4
- package/server/{sequencer-agent-eN2P2lDz.js → sequencer-agent-BGGVKxtw.js} +11 -6
- package/server/server.js +1536 -1244
- package/server/{service-CThO0Sar.js → service-kzhN0DLg.js} +58 -58
- package/server/{session-fork-ZYTHtpBh.js → session-fork-B3hkpes1.js} +2 -2
- package/server/{settings-nAT-eK56.js → settings-BpM0Ergn.js} +3 -3
- package/server/settings-CW_lAaJv.js +2 -0
- package/server/{settings-CTywpFw5.js → settings-aBz_GpBq.js} +9 -2
- package/server/{shadow-engineering-BHZKPJhq.js → shadow-engineering-C7kypoM-.js} +2 -2
- package/server/{shadow-state-CZ_LnPsi.js → shadow-state-Db5ExiBP.js} +1 -1
- package/server/{shadow-state-BTLi4Axs.js → shadow-state-IG8JSXgD.js} +2 -2
- package/server/{shadow-utils-CPLlPHdn.js → shadow-utils-DSDsJXLD.js} +2 -2
- package/server/{ship-record-BaBla0l_.js → ship-record-80n1CYp9.js} +6 -6
- package/server/{ship-record-BlvX8-xv.js → ship-record-DN8voLiQ.js} +1 -1
- package/server/{ship-status-rQbPQBsF.js → ship-status-CJvaa4QB.js} +2 -2
- package/server/{smart-compaction-D1CNGdZx.js → smart-compaction-C96F2aFQ.js} +7 -7
- package/server/{smart-compaction-CUXn8mfX.js → smart-compaction-owKHJDbL.js} +1 -1
- package/server/{spawn-planning-session-DfEWyrVV.js → spawn-planning-session-CiJdOHTD.js} +2 -2
- package/server/{spawn-planning-session-DCmO6COk.js → spawn-planning-session-FmJa6PCS.js} +41 -50
- package/server/{specialist-context-C1-CfYQb.js → specialist-context-_ootmzn2.js} +5 -5
- package/server/{specialist-handoff-logger-BDKoz5Z9.js → specialist-handoff-logger-4QCjIBPO.js} +2 -2
- package/server/{specialist-logs-BJQFkpdG.js → specialist-logs-BbAX221-.js} +3 -3
- package/server/{specialists-DhS79T9v.js → specialists-COZoYaiz.js} +266 -173
- package/server/{specialists-CYt1U3Zm.js → specialists-D8sYZnPb.js} +2 -2
- package/server/{specialists-Dx0zRTxX.js → specialists-DTAOVZpU.js} +1 -1
- package/server/{specialists-D6MUU31Q.js → specialists-RPLJnYc1.js} +19 -19
- package/server/{specialists-registry-Bng0OFGH.js → specialists-registry-CNbvfOcy.js} +2 -2
- package/server/{specialists-registry-BRLCi61y.js → specialists-registry-DqgQIxpu.js} +1 -1
- package/server/specs-ChqOBhAF.js +3 -0
- package/server/{src-C7gGe4KU.js → src-Cz63twgJ.js} +2 -2
- package/server/{src-CdwN6WY6.js → src-tnFSfiXX.js} +126 -18
- package/server/{stack-health-Bz711z1Y.js → stack-health-D0j1RhAj.js} +1 -1
- package/server/{stack-health-BKfNaqMm.js → stack-health-Y8O3UuPe.js} +3 -3
- package/server/{stale-task-claims-DMRLb5R2.js → stale-task-claims-Db6yxeFz.js} +5 -5
- package/server/{staleness-CxZaIhrn.js → staleness-CyM7ACHv.js} +1 -1
- package/server/{staleness-r_dkMyMG.js → staleness-akWxgpIu.js} +1 -1
- package/server/{stall-sweeper-CBWqSWV2.js → stall-sweeper-9bRBZhrQ.js} +8 -8
- package/server/{state-home-DhsMqg8W.js → state-home-CWu1dx9L.js} +2 -2
- package/server/{state-mapping-D2yC81Vy.js → state-mapping-CdvWOIhv.js} +1 -1
- package/server/{state-migrate-C2Ouyd6e.js → state-migrate-J3tFJnbd.js} +6 -6
- package/server/{state-mirror-BPXciz84.js → state-mirror-DQKpsskH.js} +3 -3
- package/server/{stuck-remediation-kta3KN7c.js → stuck-remediation-4Rf_xMEb.js} +13 -13
- package/server/{stuck-remediation-DALieAkx.js → stuck-remediation-BvTK_NYN.js} +1 -1
- package/server/{substrate-bug-weights-service-D_ICP7TI.js → substrate-bug-weights-service-9nrkZcaP.js} +3 -3
- package/server/{summary-fork-DhhaFhxZ.js → summary-fork-D-cylknJ.js} +54 -17
- package/server/{summary-fork-CojrFKb6.js → summary-fork-PLcckTRE.js} +2 -2
- package/server/supervisor/{injection-budget-BOH-EiFB.js → injection-budget-DfPSjiS7.js} +1 -1
- package/server/supervisor/pty-supervisor.js +1 -1
- package/server/{supervisor-DqH-laVL.js → supervisor-B2_uXxHQ.js} +4 -4
- package/server/supervisor-DSSr9_E4.js +2 -0
- package/server/{swarm-readiness-LF8ZF_hc.js → swarm-readiness-BkVvnCdr.js} +3 -3
- package/server/{synthesis-verdict-CGFF8uQI.js → synthesis-verdict-BtJAwMS3.js} +2 -2
- package/server/{synthesis-verdict-DSoOFUIV.js → synthesis-verdict-b1uY2m9Q.js} +1 -1
- package/server/{system-prerequisites-Lsx0jUUV.js → system-prerequisites-zlmZiJzn.js} +14 -2
- package/server/{teardown-workspace-DMwomEG1.js → teardown-workspace-CTL16rnG.js} +16 -16
- package/server/{test-agent-queue-Cu0D6BYe.js → test-agent-queue-CMgYZiR_.js} +6 -6
- package/server/{test-verdict-9mvl7pQn.js → test-verdict-BaiFCApG.js} +1 -1
- package/server/{test-verdict-oNSv1rVr.js → test-verdict-DhjFE4Go.js} +2 -2
- package/server/{tldr-daemon-CRSAkhBx.js → tldr-daemon-CW1MhBkM.js} +1 -1
- package/server/{tldr-daemon-McqCk2X7.js → tldr-daemon-CYr67NdC.js} +2 -2
- package/server/{tmux-CYucGrTl.js → tmux-aj9rscol.js} +2 -2
- package/server/{tmux-wnT_hg-s.js → tmux-l-yvNWhg.js} +2 -2
- package/server/{token-BdfZLRg1.js → token-BO7DAEyM.js} +2 -2
- package/server/{token-util-Crcay9j_.js → token-util-C_1EI72O.js} +1 -1
- package/server/token-util-msNwng7E.js +3 -0
- package/server/{tracker-config-tfAOWgng.js → tracker-config-Qq_kEwYh.js} +2 -2
- package/server/{tracker-utils-Dbg_pVZg.js → tracker-utils-McMENyKj.js} +2 -2
- package/server/{traefik-connect-DoQvQ6oJ.js → traefik-connect-BZWNRHOd.js} +1 -1
- package/server/{tunnel-B1MNIgkL.js → tunnel-BElVxdZw.js} +1 -1
- package/server/{tunnel-skW68j9B.js → tunnel-D01HhYX5.js} +3 -3
- package/server/{typed-errors-CZ3GFBvo.js → typed-errors-CKb5wNaG.js} +1 -1
- package/server/{typed-errors-DXqf3RnP.js → typed-errors-uJ-V6edU.js} +1 -1
- package/server/{types-PW4zkxCM.js → types-JR7ZOtpL.js} +1 -1
- package/server/{uat-failure-feedback-ly8ZwtfC.js → uat-failure-feedback-DS6W9X3I.js} +5 -5
- package/server/{uat-promote-verification-BBaMwfdc.js → uat-promote-verification-CRsIHE_q.js} +5 -5
- package/server/{uat-train-D7Ran2FB.js → uat-train-BoA9r6_I.js} +1 -1
- package/server/{uat-train-BBEiYSep.js → uat-train-Cd8CJeNe.js} +22 -22
- package/server/{validate-BYcBcBwg.js → validate-BdmvTIym.js} +3 -3
- package/server/{validation-nSrYiYvA.js → validation-ApKDjkLH.js} +1 -1
- package/server/{validation-BfG2jW5C.js → validation-Dxdai-37.js} +14 -4
- package/server/{verification-artifact-DglwaHke.js → verification-artifact-DhIkPgrP.js} +1 -1
- package/server/{verification-artifact-Cmhgq4b_.js → verification-artifact-olosZdZU.js} +1 -1
- package/server/{verification-runner-CFjAuv9u.js → verification-runner-BO0K3xNA.js} +1 -1
- package/server/{verification-runner-BEq5ZF-h.js → verification-runner-fEY1Qj-l.js} +31 -23
- package/server/{work-agent-prompt-CaD2ue8m.js → work-agent-prompt-BEpIuqw1.js} +10 -10
- package/server/{work-agent-prompt-BnhKNAg7.js → work-agent-prompt-Csr4vMbl.js} +1 -1
- package/server/{work-agent-start-0nJ-6UeA.js → work-agent-start-DA3P_ABv.js} +2 -2
- package/server/{work-agent-start-D8NEN5KD.js → work-agent-start-DWBmIRlg.js} +1 -1
- package/server/workflows-CgGNyl1z.js +2 -0
- package/server/{workflows-C7mxM1qc.js → workflows-CxVnygYU.js} +28 -28
- package/server/{workspace-Dbqv9ehn.js → workspace-BO8fIfW9.js} +1 -1
- package/server/{workspace-BAhMgMaO.js → workspace-BWYfzfPV.js} +3 -3
- package/server/{workspace-anchor-drift-Bpa3xoni.js → workspace-anchor-drift-BMSxf9wp.js} +1 -1
- package/server/{workspace-anchor-drift-B_3kyyxJ.js → workspace-anchor-drift-RJcMD1EV.js} +4 -4
- package/server/{workspace-config-D-bNq2CF.js → workspace-config-CoAaYx_w.js} +1 -1
- package/server/{workspace-manager-CM8RCrSc.js → workspace-manager-CnAyRh3v.js} +45 -380
- package/server/workspace-manager-D0jJ7StJ.js +4 -0
- package/server/{workspace-metadata-Cu6yfxBS.js → workspace-metadata-Copcoih9.js} +2 -2
- package/server/{workspace-metadata-BEOwJSdK.js → workspace-metadata-ILlbk8AX.js} +1 -1
- package/server/{workspaces-C7LAuZfe.js → workspaces-Cpz0xJWQ.js} +112 -112
- package/server/worktree-ops-CV-pRvyW.js +3 -0
- package/server/worktree-ops-Cnk1voFY.js +369 -0
- package/sync-sources/rules/context-nomenclature.md +4 -3
- package/sync-sources/rules/rule-authoring.md +3 -3
- package/sync-sources/skills/knowledge-capture/SKILL.md +13 -13
- package/sync-sources/skills/pan-new-project/SKILL.md +2 -2
- package/sync-sources/skills/pan-projects/SKILL.md +3 -3
- package/sync-sources/skills/pan-sync/SKILL.md +8 -10
- package/sync-sources/skills/refactor-radar/SKILL.md +12 -12
- package/server/agents-DixZjXWm.js +0 -3
- package/server/archive-planning-D3gw32U9.js +0 -2
- package/server/assemble-B_JgnCbG.js +0 -365
- package/server/build-info-Dx2qrVhb.js +0 -2
- package/server/cli-BflmtEFM.js +0 -2
- package/server/context-layers-CdpabJj0.js +0 -37
- package/server/context-layers-Ds1MnEFI.js +0 -4
- package/server/conversation-service-BL-asWPX.js +0 -3
- package/server/conversations-CEMfwMt-.js +0 -3
- package/server/dead-end-trip-DUbiRMtT.js +0 -2
- package/server/delivery-DhZGRShH.js +0 -3
- package/server/deploy-queue--smqHLhe.js +0 -2
- package/server/forge-4VVCRcF7.js +0 -2
- package/server/hume-gXLmRhmN.js +0 -3
- package/server/inspect-agent-Dhp3hCGp.js +0 -2
- package/server/kimi-code-BxkDgaj4.js +0 -3
- package/server/kimi-code-CNYRA8Dd.js +0 -581
- package/server/merge-ops-Cf02szJ5.js +0 -2
- package/server/merge-rebase-Bj7eJAG4.js +0 -2
- package/server/messaging-Dfbhgjd6.js +0 -3
- package/server/node_modules/@types/node/ffi.d.ts +0 -486
- package/server/node_modules/@types/node/inspector/promises.d.ts +0 -35
- package/server/node_modules/@types/node/path/posix.d.ts +0 -8
- package/server/node_modules/@types/node/path/win32.d.ts +0 -8
- package/server/node_modules/@types/node/quic.d.ts +0 -2125
- package/server/node_modules/@types/node/stream/iter.d.ts +0 -452
- package/server/node_modules/@types/node/test/reporters.d.ts +0 -59
- package/server/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
- package/server/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
- package/server/node_modules/@types/node/ts5.7/index.d.ts +0 -117
- package/server/node_modules/@types/node/util/types.d.ts +0 -558
- package/server/node_modules/@types/node/web-globals/blob.d.ts +0 -23
- package/server/node_modules/@types/node/web-globals/console.d.ts +0 -9
- package/server/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
- package/server/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
- package/server/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
- package/server/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
- package/server/node_modules/@types/node/web-globals/performance.d.ts +0 -45
- package/server/node_modules/@types/node/web-globals/timers.d.ts +0 -44
- package/server/node_modules/@types/node/web-globals/url.d.ts +0 -24
- package/server/node_modules/@types/node/zlib/iter.d.ts +0 -131
- package/server/node_modules/undici-types/cache-interceptor.d.ts +0 -179
- package/server/node_modules/undici-types/client-stats.d.ts +0 -15
- package/server/node_modules/undici-types/dispatcher1-wrapper.d.ts +0 -7
- package/server/node_modules/undici-types/h2c-client.d.ts +0 -73
- package/server/node_modules/undici-types/mock-call-history.d.ts +0 -111
- package/server/node_modules/undici-types/round-robin-pool.d.ts +0 -39
- package/server/node_modules/undici-types/snapshot-agent.d.ts +0 -113
- package/server/node_modules/undici-types/socks5-proxy-agent.d.ts +0 -25
- package/server/node_modules/undici-types/utility.d.ts +0 -7
- package/server/public/assets/image-GAAHSSAO-rafcvWHh.js +0 -1
- package/server/public/assets/index-CdPveU3M.css +0 -1
- package/server/public/assets/index-Cg6tdZoY.js +0 -860
- package/server/public/assets/mermaid-GHXKKRXX-6KBD_3T_.js +0 -1
- package/server/pull-requests-CmlandI7.js +0 -2
- package/server/rally-DYIn9R2U.js +0 -3
- package/server/rebuild-stack-CyXMrj6K.js +0 -197
- package/server/settings-ByDRfuuE.js +0 -2
- package/server/specs-oRGyfz6C.js +0 -3
- package/server/supervisor-DSSWo4M2.js +0 -2
- package/server/token-util-DfUS3Lpp.js +0 -3
- package/server/workflows-BtHRlFIm.js +0 -2
- package/server/workspace-manager-BrbX90Rm.js +0 -3
- /package/server/public/assets/{pica-CgYEdS5s.js → pica-DPvnTcFS.js} +0 -0
- /package/server/public/assets/{wasm-DNrvLWf-.js → wasm-Ca_Unakq.js} +0 -0
|
@@ -1,54 +1,53 @@
|
|
|
1
1
|
import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { $t as findProjectByPathSync,
|
|
3
|
-
import { c as getDashboardLoopbackApiUrlSync, p as init_config } from "./config-
|
|
4
|
-
import { l as init_activity_logger, o as emitActivityEntrySync, r as emitActivityEntryDurable } from "./activity-logger-
|
|
5
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
6
|
-
import { $ as init_pane_choice_menu, C as init_tmux, E as killSession, G as setOption, H as sendRawKeystroke, K as tmuxExecAsync, N as listSessions, U as sessionExists, V as sendKeysAsync, W as sessionExistsSync, a as capturePaneText, ct as BLANKED_PROVIDER_ENV, dt as init_child_env, h as findManagedServerPidSync, j as listSessionNames, p as exactPaneTarget, r as capturePane, s as createSession, tt as paneHasBlockingChoiceMenu, ut as buildChildEnvWithoutTmuxSync, w as isHarnessProcessAlive } from "./tmux-
|
|
7
|
-
import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-
|
|
8
|
-
import { a as init_event_store, n as getEventStore } from "./event-store-
|
|
9
|
-
import {
|
|
10
|
-
import { f as init_agent_state_sync, h as stateToOverdeckParamsForDb, u as AGENT_COLUMNS_FOR_DB } from "./pipeline-agent-reader-
|
|
11
|
-
import { c as ReadModelService, d as getClosedIssueIdsForReadSource, i as EventStoreService, t as IssueLifecycle } from "./issue-lifecycle-
|
|
12
|
-
import { c as init_agents, g as logAgentLifecycleSync, h as init_persistent_logger, m as isTerminalIssueStage, p as getIssueStageSync } from "./agents-
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { t as
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { A as
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { c as init_stack_health, o as getWorkspaceStackHealth } from "./stack-health-BKfNaqMm.js";
|
|
2
|
+
import { $t as findProjectByPathSync, E as init_tier_table, Ft as isOverdeckWorkspaceRuntimePath, Gt as shouldCommitLegacyWorkspaceArtifacts, Hi as resolveOhmypiExtensionPath, Ht as init_state_read_home, Kn as extractPrefixSync, Li as getOverdeckHome, Mt as init_state_plane, Nt as isGeneratedGitHookPath, O as resolveTieredExecutionEnabled, Oi as claudeSessionTranscriptExists, On as resolveProjectFromIssueSync, Ri as init_paths, Rt as parsePorcelainStatusPaths, Vi as packageRoot, Wt as resolveStateReadHomeSync, Yn as parseIssueIdSync, _n as listProjectsAsync, fn as init_projects, fr as getProviderForModelSync, g as jsYaml, h as init_js_yaml, k as resolveTieredExecutionEnabledForIssue, ki as encodeClaudeProjectDir, kr as resolveModel, l as isClaudeCodeChannelsEnabled, mr as piProviderForModel, on as getProjectSync, p as loadConfigSync, pr as init_providers, qn as init_issue_id, rr as init_harness_policy, sr as UnknownModelError, t as init_config_yaml, tr as canUseHarnessSync } from "./config-yaml-Dce9VUd6.js";
|
|
3
|
+
import { c as getDashboardLoopbackApiUrlSync, p as init_config } from "./config-BUjU7GZQ.js";
|
|
4
|
+
import { l as init_activity_logger, o as emitActivityEntrySync, r as emitActivityEntryDurable } from "./activity-logger-DNYDzAOU.js";
|
|
5
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-B05o-e2g.js";
|
|
6
|
+
import { $ as init_pane_choice_menu, C as init_tmux, E as killSession, G as setOption, H as sendRawKeystroke, K as tmuxExecAsync, N as listSessions, U as sessionExists, V as sendKeysAsync, W as sessionExistsSync, a as capturePaneText, ct as BLANKED_PROVIDER_ENV, dt as init_child_env, h as findManagedServerPidSync, j as listSessionNames, p as exactPaneTarget, r as capturePane, s as createSession, tt as paneHasBlockingChoiceMenu, ut as buildChildEnvWithoutTmuxSync, w as isHarnessProcessAlive } from "./tmux-l-yvNWhg.js";
|
|
7
|
+
import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-ChLZFIjB.js";
|
|
8
|
+
import { a as init_event_store, n as getEventStore } from "./event-store-BYOh686E.js";
|
|
9
|
+
import { E as DomainEvent, P as normalizeChannelReplyPayload, n as COMPOSER_COMMAND_MANIFEST, s as getHarnessBehavior, t as init_src } from "./src-tnFSfiXX.js";
|
|
10
|
+
import { f as init_agent_state_sync, h as stateToOverdeckParamsForDb, u as AGENT_COLUMNS_FOR_DB } from "./pipeline-agent-reader-CHugmNSx.js";
|
|
11
|
+
import { c as ReadModelService, d as getClosedIssueIdsForReadSource, i as EventStoreService, t as IssueLifecycle } from "./issue-lifecycle-BPbczKyy.js";
|
|
12
|
+
import { c as init_agents, g as logAgentLifecycleSync, h as init_persistent_logger, m as isTerminalIssueStage, p as getIssueStageSync } from "./agents-CkngXhQr.js";
|
|
13
|
+
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-ShD-G0cS.js";
|
|
14
|
+
import { t as init_behavior } from "./behavior-Bg3yC8jC.js";
|
|
15
|
+
import { $r as resolveStaffing, $t as getLatestSessionIdSync, A as saveAgentStateSync, At as init_agent_input_detection, Br as init_codex_auth, Bt as init_session_pane_choice, Ci as ohmypiFifoPaths, Ct as getAgentWorkspace$1, Dt as scanPendingInputsPromise, F as writeAgentStateJsonSync, Fr as BRIDGE_TOKEN_HEADER, Ft as resumeAgent, Gt as messageAgent, H as waitForReadySignal, In as listAgentStates, Ir as init_bridge_token, Jr as transitionIssueToInProgress, Jt as init_operator_interventions, K as saveAgentRuntimeState, Kr as init_spawn_prep, L as clearReadySignal, Ln as listRunningAgents, Lr as writeBridgeTokenSync, Mn as stopAgent, Mt as parseCodexApprovalPrompt, Ot as detectAwaitingInputForAgent, P as wipeAgentStateDirs, Qi as validateProviderHealth, Qr as resolveIssueWorkModel, Qt as getLatestSessionId, Rt as answerSessionPaneChoice, S as markAgentStoppedState, Si as init_ohmypi_fifo, St as getAgentPendingQuestions$1, Tr as deliverAgentPermissionDecision, Tt as isBlockedOnPendingInput, U as getAgentRuntimeState, Ur as assertWorkspaceStackHealthyForSpawn, W as getAgentRuntimeStateSync, Xr as init_staffing, Yi as getProviderExportsForModel, Yt as operatorInterventionEvent, Zi as init_provider_health, Zt as getActivity, _i as waitForAcpHostReady, _t as init_pending_decision_gate, aa as dismissDevChannelsDialog, bi as init_pi_fifo, c as clearAgentTroubled, ca as writeChannelsBridgeMcpConfig, ct as init_tier_escalation, da as init_pty_token, di as getProviderAuthMode, en as getSessionId, f as getAgentDir, fa as writePtyToken, g as getAgentStateSync, gt as detectPendingOperatorDecision, ht as restartAgent, j as setAgentPaused, jr as setAgentDeliveryMethod, jt as normalizeAwaitingInputPrompt, k as saveAgentState, la as buildResumeContract, m as getAgentState, ma as resolvePtySupervisorScriptPath, mi as init_runtime_command, mt as recoverAgent, ni as init_muse_context, o as clearAgentPaused, oa as hasCompletionMarkerForAgent, oi as getAcpLauncherFields, pa as init_pty_supervisor_locate, q as init_agents$1, qi as determineModel, ri as materializeMuseContext, rn as saveSessionId, sa as init_supervisor_channels, si as getAgentRuntimeBaseCommand, st as decideEscalation, ua as init_resume_contract, vi as waitForPromptReady, vt as computeAgentEnrichment, wr as deliverAgentMessage, wt as init_agent_enrichment, xi as piFifoPaths, xt as getAgentJsonlPath$1, yi as claudeSystemPromptFiles, z as normalizeAgentId, zr as checkCodexAuthStatus, zt as captureSessionPaneChoice } from "./agent-state-Ci6PhjOE.js";
|
|
16
|
+
import { a as init_feature_registry_population, o as recordFeatureRegistryLifecycle } from "./post-merge-state-DGlkiVIO.js";
|
|
17
|
+
import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-Ci0LxMIq.js";
|
|
18
|
+
import { A as init_conversations, C as getConversationByName, D as hasOtherActiveConversationOnTmuxSession, H as removeFavorite, I as markConversationActive, J as setConversationModel, K as setConversationEffort, L as markConversationEnded, P as listConversations, S as getConversationById, at as updateLastAttached, b as createConversation, g as backfillConversationModel, h as archiveConversation, ot as updateSpawnError, q as setConversationHarness, tt as updateConversationDeliveryMethod, y as clearConversationFailureState } from "./conversations-CPXMv_JQ.js";
|
|
19
|
+
import { A as init_model_validation, C as generateLauncherScriptSync, M as requireModelOverrideSync, S as normalizeFlywheelRunId, b as init_provenance, j as normalizeModelOverrideSync, k as MODEL_ID_PATTERN, w as init_launcher_generator } from "./auto-spawn-consent-CJeQM5e0.js";
|
|
20
|
+
import { a as init_claude_permissions, n as ensureClaudePermissionFlagSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-DX5BSnMH.js";
|
|
21
|
+
import { i as prepareHarnessLaunch, r as init_harness_binary } from "./harness-binary-DnRGvN6T.js";
|
|
22
|
+
import { a as resolveMuseSessionPath, i as museSessionId, t as init_muse_session } from "./muse-session-CrSRuauJ.js";
|
|
23
|
+
import { c as init_stack_health, o as getWorkspaceStackHealth } from "./stack-health-Y8O3UuPe.js";
|
|
25
24
|
import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, m as init_types } from "./types-pLpbsNto.js";
|
|
26
|
-
import { a as generateXBriefFilename, o as init_lifecycle } from "./lifecycle-
|
|
27
|
-
import { C as init_specs, O as writeSpecForIssue, d as readPlan, g as recordTierPromotion, h as readWorkspacePlanSync, p as readTierOverrides, r as findPlan, s as init_io } from "./io-
|
|
28
|
-
import { a as getDispatchableItems, c as init_dag } from "./dag-
|
|
29
|
-
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-
|
|
30
|
-
import { a as loadCloisterConfigSync, r as init_config$1 } from "./config-
|
|
31
|
-
import { a as init_state_home, c as isStateMigrated } from "./state-home-
|
|
32
|
-
import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos, s as resolvePrimaryWorkspaceRepoDirSync } from "./project-repos-
|
|
33
|
-
import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionXBriefOnMain } from "./lifecycle-io-
|
|
34
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
35
|
-
import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-
|
|
36
|
-
import { d as getReviewStatusSync, h as loadReviewStatuses, o as clearWorkspaceStuck, p as init_review_status, w as setReviewStatusSync } from "./review-status-
|
|
37
|
-
import {
|
|
38
|
-
import { i as resolveAgentHarness, l as resolvePiSessionPath, n as readLauncherPinnedSessionId, o as resolveCodexRolloutPath, r as resolveAcpTranscriptPath, t as init_jsonl_resolver } from "./jsonl-resolver-
|
|
39
|
-
import { G as liveOrderIssueLookup, H as getBook, T as resolveLiveFlywheelRunId, w as readFlywheelLaunchMetadata, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-
|
|
40
|
-
import { t as resolveAgentGitInfo } from "./git-info-
|
|
41
|
-
import { f as getResourceConfig, m as getSystemHealthSnapshot, n as classifyMemoryPressure } from "./memory-governor-
|
|
42
|
-
import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-
|
|
43
|
-
import "./deacon-
|
|
44
|
-
import { i as performHandoff, o as getAgentHealth, r as checkAllTriggers, t as getCloisterService } from "./service-
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import { t as recordReviewVerdict } from "./review-verdict-writer-
|
|
48
|
-
import { r as REVIEW_SUB_ROLES } from "./review-convoy-liveness-
|
|
49
|
-
import { t as createInFlightGuard } from "./in-flight-guard-
|
|
50
|
-
import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-
|
|
51
|
-
import { t as resolveReviewParentRunState } from "./review-run-recovery-
|
|
25
|
+
import { a as generateXBriefFilename, o as init_lifecycle } from "./lifecycle-BSQIQ1Sq.js";
|
|
26
|
+
import { C as init_specs, O as writeSpecForIssue, d as readPlan, g as recordTierPromotion, h as readWorkspacePlanSync, p as readTierOverrides, r as findPlan, s as init_io } from "./io-Cm4Sf_6P.js";
|
|
27
|
+
import { a as getDispatchableItems, c as init_dag } from "./dag-Drz6Nrnf.js";
|
|
28
|
+
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-CzTFVZ5l.js";
|
|
29
|
+
import { a as loadCloisterConfigSync, r as init_config$1 } from "./config-B-MLcKSo.js";
|
|
30
|
+
import { a as init_state_home, c as isStateMigrated } from "./state-home-CWu1dx9L.js";
|
|
31
|
+
import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos, s as resolvePrimaryWorkspaceRepoDirSync } from "./project-repos-J6jc42uD.js";
|
|
32
|
+
import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionXBriefOnMain } from "./lifecycle-io-CW__VX8s.js";
|
|
33
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-Qq_kEwYh.js";
|
|
34
|
+
import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-BrZQJLRI.js";
|
|
35
|
+
import { d as getReviewStatusSync, h as loadReviewStatuses, o as clearWorkspaceStuck, p as init_review_status, w as setReviewStatusSync } from "./review-status-BegAr86G.js";
|
|
36
|
+
import { C as parseAcpConversationMessages, S as init_acp_conversation_parser, _ as init_ohmypi_conversation_parser, b as init_codex_conversation_parser, g as parsePiConversationMessages, l as parseEntireConversation, m as init_pi_conversation_parser, t as init_conversation_service, x as parseCodexConversationMessages, y as parseOhmypiConversationMessages } from "./conversation-service-6LaymUV-.js";
|
|
37
|
+
import { i as resolveAgentHarness, l as resolvePiSessionPath, n as readLauncherPinnedSessionId, o as resolveCodexRolloutPath, r as resolveAcpTranscriptPath, t as init_jsonl_resolver } from "./jsonl-resolver-DQEe0DHM.js";
|
|
38
|
+
import { G as liveOrderIssueLookup, H as getBook, T as resolveLiveFlywheelRunId, w as readFlywheelLaunchMetadata, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-Is3w2lcT.js";
|
|
39
|
+
import { t as resolveAgentGitInfo } from "./git-info-BZYdINlU.js";
|
|
40
|
+
import { f as getResourceConfig, m as getSystemHealthSnapshot, n as classifyMemoryPressure } from "./memory-governor-B7uDWRo9.js";
|
|
41
|
+
import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-CnAyRh3v.js";
|
|
42
|
+
import "./deacon-CU47dU7U.js";
|
|
43
|
+
import { i as performHandoff, o as getAgentHealth, r as checkAllTriggers, t as getCloisterService } from "./service-kzhN0DLg.js";
|
|
44
|
+
import { i as getRuntimeForAgent } from "./agent-idle-CAwB-K6M.js";
|
|
45
|
+
import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-DSJisyfy.js";
|
|
46
|
+
import { t as recordReviewVerdict } from "./review-verdict-writer-CJr_Ob0Y.js";
|
|
47
|
+
import { r as REVIEW_SUB_ROLES } from "./review-convoy-liveness-BTMvU4CA.js";
|
|
48
|
+
import { t as createInFlightGuard } from "./in-flight-guard-HoToxzGt.js";
|
|
49
|
+
import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-Copcoih9.js";
|
|
50
|
+
import { t as resolveReviewParentRunState } from "./review-run-recovery-BvVG3oUr.js";
|
|
52
51
|
import { basename, delimiter, dirname, isAbsolute, join, resolve, sep } from "node:path";
|
|
53
52
|
import { Cause, Data, Effect, Layer, Option, Schema, Stream } from "effect";
|
|
54
53
|
import { homedir, networkInterfaces, tmpdir } from "node:os";
|
|
@@ -104,7 +103,6 @@ init_event_store();
|
|
|
104
103
|
init_src();
|
|
105
104
|
init_agent_state_sync();
|
|
106
105
|
init_persistent_logger();
|
|
107
|
-
init_briefing_freshness();
|
|
108
106
|
init_cost();
|
|
109
107
|
init_feature_registry_population();
|
|
110
108
|
init_conversations();
|
|
@@ -116,11 +114,12 @@ init_supervisor_channels();
|
|
|
116
114
|
init_model_validation();
|
|
117
115
|
init_provider_health();
|
|
118
116
|
init_claude_permissions();
|
|
119
|
-
init_layers();
|
|
120
117
|
init_harness_binary();
|
|
121
118
|
init_ohmypi_fifo();
|
|
122
119
|
init_pi_fifo();
|
|
123
120
|
init_runtime_command();
|
|
121
|
+
init_muse_session();
|
|
122
|
+
init_muse_context();
|
|
124
123
|
init_stack_health();
|
|
125
124
|
init_launcher_generator();
|
|
126
125
|
init_types();
|
|
@@ -1893,7 +1892,7 @@ const getAgentOutputRoute = HttpRouter.add("GET", "/api/agents/:id/output", http
|
|
|
1893
1892
|
} catch {}
|
|
1894
1893
|
let stdout;
|
|
1895
1894
|
if (isRemote && vmName) {
|
|
1896
|
-
const { getRemoteAgentOutput } = await import("./remote-agents-
|
|
1895
|
+
const { getRemoteAgentOutput } = await import("./remote-agents-CEOvYsvK.js");
|
|
1897
1896
|
stdout = await getRemoteAgentOutput(id, vmName, parseInt(String(lines), 10) || 100);
|
|
1898
1897
|
} else stdout = await Effect.runPromise(capturePane(id, parseInt(String(lines), 10) || 100));
|
|
1899
1898
|
if (!stdout || stdout.trim() === "" || stdout.trim() === "Session not found") {
|
|
@@ -1958,7 +1957,7 @@ async function buildConversationResponse(id) {
|
|
|
1958
1957
|
streaming: false
|
|
1959
1958
|
};
|
|
1960
1959
|
}
|
|
1961
|
-
if (harness === "acp") {
|
|
1960
|
+
if (harness === "acp" || harness === "opencode") {
|
|
1962
1961
|
const sessionFile = await resolveAcpTranscriptPath(id);
|
|
1963
1962
|
if (!sessionFile || !existsSync(sessionFile)) return EMPTY_CONVERSATION;
|
|
1964
1963
|
const result = await parseAcpConversationMessages(sessionFile);
|
|
@@ -2262,6 +2261,63 @@ function parseOverdeckComposerCommand(message) {
|
|
|
2262
2261
|
};
|
|
2263
2262
|
}
|
|
2264
2263
|
//#endregion
|
|
2264
|
+
//#region ../../lib/composer-commands/reload.ts
|
|
2265
|
+
/** Composer reloads outlive the dashboard they restart. The CLI owns progress. */
|
|
2266
|
+
init_activity_logger();
|
|
2267
|
+
init_config();
|
|
2268
|
+
init_paths();
|
|
2269
|
+
async function runComposerReload(argv, dependencies = {}) {
|
|
2270
|
+
const activityId = `composer-reload-${randomUUID$1()}`;
|
|
2271
|
+
const logDir = join(dependencies.overdeckHome ?? getOverdeckHome(), "logs");
|
|
2272
|
+
await mkdir(logDir, { recursive: true });
|
|
2273
|
+
const logPath = join(logDir, `${activityId}.log`);
|
|
2274
|
+
const log = await open(logPath, "a", 384);
|
|
2275
|
+
const env = { ...process.env };
|
|
2276
|
+
delete env.OVERDECK_AGENT_ID;
|
|
2277
|
+
delete env.OVERDECK_ISSUE_ID;
|
|
2278
|
+
delete env.DASHBOARD_URL;
|
|
2279
|
+
env.OVERDECK_DASHBOARD_URL = getDashboardLoopbackApiUrlSync();
|
|
2280
|
+
env.OVERDECK_RESTART_INITIATOR = "operator:composer";
|
|
2281
|
+
env.OVERDECK_COMPOSER_RELOAD_ACTIVITY = activityId;
|
|
2282
|
+
env.OVERDECK_COMPOSER_RELOAD_LOG = logPath;
|
|
2283
|
+
const args = [...argv];
|
|
2284
|
+
if (!args.some((arg) => arg === "--health-timeout" || arg.startsWith("--health-timeout="))) args.push("--health-timeout", "120s");
|
|
2285
|
+
try {
|
|
2286
|
+
const child = (dependencies.spawnPanCli ?? spawnPanCli)(args, {
|
|
2287
|
+
cwd: process.cwd(),
|
|
2288
|
+
detached: true,
|
|
2289
|
+
stdio: [
|
|
2290
|
+
"ignore",
|
|
2291
|
+
log.fd,
|
|
2292
|
+
log.fd
|
|
2293
|
+
],
|
|
2294
|
+
env
|
|
2295
|
+
});
|
|
2296
|
+
await new Promise((resolve, reject) => {
|
|
2297
|
+
child.once("spawn", resolve);
|
|
2298
|
+
child.once("error", reject);
|
|
2299
|
+
});
|
|
2300
|
+
child.unref();
|
|
2301
|
+
} catch (error) {
|
|
2302
|
+
return {
|
|
2303
|
+
kind: "captured",
|
|
2304
|
+
status: "failed",
|
|
2305
|
+
command: `/pan ${argv.join(" ")}`,
|
|
2306
|
+
output: `Reload could not start: ${error instanceof Error ? error.message : String(error)}`,
|
|
2307
|
+
truncated: false
|
|
2308
|
+
};
|
|
2309
|
+
} finally {
|
|
2310
|
+
await log.close();
|
|
2311
|
+
}
|
|
2312
|
+
return {
|
|
2313
|
+
kind: "activity",
|
|
2314
|
+
status: "accepted",
|
|
2315
|
+
command: `/pan ${argv.join(" ")}`,
|
|
2316
|
+
activityId,
|
|
2317
|
+
message: "Reload started. Watch the Activity feed for build progress. When the build is ready, use the restart banner to put it live."
|
|
2318
|
+
};
|
|
2319
|
+
}
|
|
2320
|
+
//#endregion
|
|
2265
2321
|
//#region ../../lib/composer-commands/policy.ts
|
|
2266
2322
|
init_src();
|
|
2267
2323
|
const COMPOSER_COMMAND_POLICIES = {
|
|
@@ -2273,6 +2329,10 @@ const COMPOSER_COMMAND_POLICIES = {
|
|
|
2273
2329
|
mode: "detached",
|
|
2274
2330
|
safety: "safe"
|
|
2275
2331
|
},
|
|
2332
|
+
reload: {
|
|
2333
|
+
mode: "detached",
|
|
2334
|
+
safety: "safe"
|
|
2335
|
+
},
|
|
2276
2336
|
show: {
|
|
2277
2337
|
mode: "captured",
|
|
2278
2338
|
safety: "safe"
|
|
@@ -2364,7 +2424,7 @@ async function handleComposerCommand({ parsed, target, confirmation }, dependenc
|
|
|
2364
2424
|
});
|
|
2365
2425
|
}
|
|
2366
2426
|
if (policy.mode === "captured") return runCapturedCommand(parsed.argv);
|
|
2367
|
-
if (policy.mode === "detached") return runDetachedCommand(parsed.argv);
|
|
2427
|
+
if (policy.mode === "detached") return parsed.entry.path[0] === "reload" ? runComposerReload(parsed.argv) : runDetachedCommand(parsed.argv);
|
|
2368
2428
|
if (policy.mode === "ui" && policy.uiAction) return uiCommandResult(policy.uiAction, parsed.argv.slice(parsed.entry.path.length).join(" ") || void 0);
|
|
2369
2429
|
if (policy.mode === "terminal-only") return {
|
|
2370
2430
|
kind: "terminal-only",
|
|
@@ -2724,7 +2784,7 @@ async function cleanupConversationAttachments(name) {
|
|
|
2724
2784
|
* sessions that the lifecycle poller missed. */
|
|
2725
2785
|
async function cleanupOrphanedConversationAttachments() {
|
|
2726
2786
|
try {
|
|
2727
|
-
const { listConversations } = await import("./conversations-
|
|
2787
|
+
const { listConversations } = await import("./conversations-BunNL58s.js");
|
|
2728
2788
|
const convNames = new Set(listConversations().map((c) => c.name));
|
|
2729
2789
|
const root = getConversationAttachmentsRoot();
|
|
2730
2790
|
await runInBatches((await readdir(root, { withFileTypes: true })).filter((entry) => entry.isDirectory() && !convNames.has(entry.name)).map((entry) => join(root, entry.name)), 10, (path) => rm(path, {
|
|
@@ -2908,7 +2968,18 @@ async function removeConversationAttachment(name, attachmentPath) {
|
|
|
2908
2968
|
//#region ../../lib/overdeck/resume-contract-delivery.ts
|
|
2909
2969
|
init_agents$1();
|
|
2910
2970
|
init_tmux();
|
|
2911
|
-
|
|
2971
|
+
/** Native Kimi must receive managed context even when the operator opts out of resume prose. */
|
|
2972
|
+
async function deliverMandatoryKimiResumeContext(tmuxSession, workspace, method) {
|
|
2973
|
+
const resumeGatePane = await capturePaneText(tmuxSession, 90).catch(() => "");
|
|
2974
|
+
if (resumeGatePane && paneHasBlockingChoiceMenu(resumeGatePane)) throw new Error(`Managed Kimi resume blocked for ${tmuxSession}: the native resume choice gate must be answered before context delivery.`);
|
|
2975
|
+
const delivery = await deliverAgentMessage(tmuxSession, "", "conversation-resume-context", method, { kimiContext: { workspace } });
|
|
2976
|
+
if (!delivery.ok) throw new Error(`Managed Kimi resume context delivery failed for ${tmuxSession}: ` + (delivery.failure ?? `delivery returned ok=false via ${delivery.path}`));
|
|
2977
|
+
}
|
|
2978
|
+
/** A Kimi session is not healthy when requested resume text failed or became gated. */
|
|
2979
|
+
function assertKimiResumeContractResult(result) {
|
|
2980
|
+
if (result === "failed" || result === "skipped-gated") throw new Error(`Managed Kimi resume contract was not delivered (${result}).`);
|
|
2981
|
+
}
|
|
2982
|
+
async function deliverResumeContractUnlessGated(tmuxSession, contract, caller, method, requested = true, options = {}) {
|
|
2912
2983
|
if (!requested) return "skipped-user";
|
|
2913
2984
|
const resumeGatePane = await capturePaneText(tmuxSession, 90).catch(() => "");
|
|
2914
2985
|
if (resumeGatePane && paneHasBlockingChoiceMenu(resumeGatePane)) {
|
|
@@ -2916,7 +2987,7 @@ async function deliverResumeContractUnlessGated(tmuxSession, contract, caller, m
|
|
|
2916
2987
|
return "skipped-gated";
|
|
2917
2988
|
}
|
|
2918
2989
|
try {
|
|
2919
|
-
await deliverAgentMessage(tmuxSession, contract, caller, method);
|
|
2990
|
+
if (!(Object.keys(options).length > 0 ? await deliverAgentMessage(tmuxSession, contract, caller, method, options) : await deliverAgentMessage(tmuxSession, contract, caller, method)).ok) return "failed";
|
|
2920
2991
|
return "delivered";
|
|
2921
2992
|
} catch (err) {
|
|
2922
2993
|
console.error(`[conversations] resume contract delivery failed for ${tmuxSession}:`, err instanceof Error ? err.message : String(err));
|
|
@@ -3033,7 +3104,7 @@ async function resolveAllowedHarness(requested, model) {
|
|
|
3033
3104
|
if (!model) return "claude-code";
|
|
3034
3105
|
return resolveHarness({
|
|
3035
3106
|
model,
|
|
3036
|
-
explicit: requested === "ohmypi" || requested === "claude-code" || requested === "codex" || requested === "acp" || requested === "kimi-code" ? requested : void 0
|
|
3107
|
+
explicit: requested === "ohmypi" || requested === "claude-code" || requested === "codex" || requested === "acp" || requested === "kimi-code" || requested === "opencode" || requested === "muse" ? requested : void 0
|
|
3037
3108
|
});
|
|
3038
3109
|
}
|
|
3039
3110
|
async function isInsideGitWorkTree(dir) {
|
|
@@ -3119,7 +3190,11 @@ function shouldUseSupervisorForConversation(harness, options = {}) {
|
|
|
3119
3190
|
return getHarnessBehavior(harness).supportsPtySupervisor && process.env.OVERDECK_DOCKER_WORKSPACE !== "1" && process.env.PAN_DOCKER !== "1";
|
|
3120
3191
|
}
|
|
3121
3192
|
async function waitForConversationRuntimeReady(tmuxSession, harness, mode) {
|
|
3122
|
-
if (harness === "
|
|
3193
|
+
if (harness === "muse") {
|
|
3194
|
+
if (!await waitForPromptReady(tmuxSession, harness, 60)) throw new Error("Muse Code did not become interactive within 60 seconds");
|
|
3195
|
+
return;
|
|
3196
|
+
}
|
|
3197
|
+
if (harness === "acp" || harness === "opencode") {
|
|
3123
3198
|
await waitForAcpHostReady(tmuxSession);
|
|
3124
3199
|
return;
|
|
3125
3200
|
}
|
|
@@ -3140,7 +3215,7 @@ async function handleConversationSwitchModel(name, body) {
|
|
|
3140
3215
|
const currentHarness = conv.harness ?? "claude-code";
|
|
3141
3216
|
const requestedHarness = body["harness"];
|
|
3142
3217
|
let harness = currentHarness;
|
|
3143
|
-
if (requestedHarness === "ohmypi" || requestedHarness === "pi" || requestedHarness === "claude-code" || requestedHarness === "codex" || requestedHarness === "acp" || requestedHarness === "kimi-code") {
|
|
3218
|
+
if (requestedHarness === "ohmypi" || requestedHarness === "pi" || requestedHarness === "claude-code" || requestedHarness === "codex" || requestedHarness === "acp" || requestedHarness === "kimi-code" || requestedHarness === "opencode" || requestedHarness === "muse") {
|
|
3144
3219
|
const requestedRuntime = requestedHarness === "pi" ? "ohmypi" : requestedHarness;
|
|
3145
3220
|
if (requestedRuntime !== currentHarness) {
|
|
3146
3221
|
const policyModel = model ?? conv.model ?? "";
|
|
@@ -3264,16 +3339,10 @@ function startConversationModelBackfill(resolveSessionFile) {
|
|
|
3264
3339
|
});
|
|
3265
3340
|
}
|
|
3266
3341
|
async function claudeConversationSystemPromptFiles(cwd) {
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
files.push(contextFile);
|
|
3272
|
-
} catch (error) {
|
|
3273
|
-
if (!isNotFound(error)) throw error;
|
|
3274
|
-
}
|
|
3275
|
-
files.push(await ensureSessionContextBriefingFile());
|
|
3276
|
-
return files;
|
|
3342
|
+
return claudeSystemPromptFiles(cwd, "claude-code");
|
|
3343
|
+
}
|
|
3344
|
+
async function codexConversationSystemPromptFiles(cwd) {
|
|
3345
|
+
return claudeSystemPromptFiles(cwd, "codex");
|
|
3277
3346
|
}
|
|
3278
3347
|
async function ensurePiConversationSourceContractFile() {
|
|
3279
3348
|
const contextDir = join(getOverdeckHome(), "context");
|
|
@@ -3283,29 +3352,11 @@ async function ensurePiConversationSourceContractFile() {
|
|
|
3283
3352
|
return path;
|
|
3284
3353
|
}
|
|
3285
3354
|
async function piConversationSystemPromptFiles(cwd) {
|
|
3286
|
-
const files =
|
|
3287
|
-
const globalFile = piGlobalContextFile();
|
|
3288
|
-
try {
|
|
3289
|
-
await stat(globalFile);
|
|
3290
|
-
files.push(globalFile);
|
|
3291
|
-
} catch (error) {
|
|
3292
|
-
if (!isNotFound(error)) throw error;
|
|
3293
|
-
}
|
|
3355
|
+
const files = await claudeSystemPromptFiles(cwd, "ohmypi");
|
|
3294
3356
|
files.push(await ensurePiConversationSourceContractFile());
|
|
3295
|
-
const contextFile = workspaceContextFile(cwd);
|
|
3296
|
-
try {
|
|
3297
|
-
await stat(contextFile);
|
|
3298
|
-
files.push(contextFile);
|
|
3299
|
-
} catch (error) {
|
|
3300
|
-
if (!isNotFound(error)) throw error;
|
|
3301
|
-
}
|
|
3302
|
-
files.push(await ensureSessionContextBriefingFile());
|
|
3303
3357
|
return files;
|
|
3304
3358
|
}
|
|
3305
|
-
function
|
|
3306
|
-
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
3307
|
-
}
|
|
3308
|
-
async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort, issueId, resume = false, harness = "claude-code", plainFork = false) {
|
|
3359
|
+
async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort = "high", issueId, resume = false, harness = "claude-code", plainFork = false) {
|
|
3309
3360
|
const behavior = getHarnessBehavior(harness);
|
|
3310
3361
|
const harnessLaunch = await prepareHarnessLaunch(harness);
|
|
3311
3362
|
const stateDir = join(getOverdeckHome(), "conversations", tmuxSession);
|
|
@@ -3317,6 +3368,14 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3317
3368
|
let piFields;
|
|
3318
3369
|
let codexFields;
|
|
3319
3370
|
let acpFields;
|
|
3371
|
+
const museSavedSession = harness === "muse" && resume ? await resolveMuseSessionPath(tmuxSession) : null;
|
|
3372
|
+
const museFields = harness === "muse" ? {
|
|
3373
|
+
harness: "muse",
|
|
3374
|
+
museModel: model,
|
|
3375
|
+
museEffort: effort,
|
|
3376
|
+
museContextFile: await materializeMuseContext(tmuxSession, cwd),
|
|
3377
|
+
museResumeSessionId: museSavedSession ? museSessionId(museSavedSession) : void 0
|
|
3378
|
+
} : void 0;
|
|
3320
3379
|
let kimiCodeFields;
|
|
3321
3380
|
let codexTransport;
|
|
3322
3381
|
if (behavior.launchCommandKind === "acp-host") {
|
|
@@ -3326,7 +3385,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3326
3385
|
const resumeSessionId = resume ? await readFile(sessionIdPath, "utf-8").then((value) => value.trim() || void 0).catch(() => void 0) : void 0;
|
|
3327
3386
|
await rm(sessionIdPath, { force: true });
|
|
3328
3387
|
acpFields = {
|
|
3329
|
-
...getAcpLauncherFields(tmuxSession, model, cwd, harnessLaunch.binaryPath, "work"),
|
|
3388
|
+
...getAcpLauncherFields(tmuxSession, model, cwd, harnessLaunch.binaryPath, "work", effort),
|
|
3330
3389
|
resumeSessionId
|
|
3331
3390
|
};
|
|
3332
3391
|
runtimeCommand = "acp-host";
|
|
@@ -3353,22 +3412,25 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3353
3412
|
const storedPiSessionId = resume ? await readFile(join(paths.agentDir, "session.id"), "utf-8").then((s) => s.trim()).catch(() => void 0) : void 0;
|
|
3354
3413
|
piFields = {
|
|
3355
3414
|
harness: "ohmypi",
|
|
3415
|
+
piEffort: effort ?? "high",
|
|
3356
3416
|
piMode: "tui",
|
|
3357
3417
|
piExtensionPath: resolveOhmypiExtensionPath() ?? resolve(process.cwd(), "packages/ohmypi-extension/dist/index.js"),
|
|
3358
3418
|
piSessionDir,
|
|
3359
3419
|
resumeSessionId: storedPiSessionId || void 0
|
|
3360
3420
|
};
|
|
3361
3421
|
} else if (behavior.usesCodexHome) {
|
|
3362
|
-
const codexHome = join(getOverdeckHome(), "agents", tmuxSession, "codex-home");
|
|
3422
|
+
const codexHome = join(getOverdeckHome(), "agents", tmuxSession, "codex-home-v2");
|
|
3363
3423
|
const codexConfig = loadConfigSync().config.codex;
|
|
3364
3424
|
const codexPermMode = codexConfig?.permissionMode ?? "workspace";
|
|
3365
3425
|
codexTransport = codexConfig?.transport ?? "app-server";
|
|
3366
3426
|
const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
|
|
3367
3427
|
const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
|
|
3368
3428
|
const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
|
|
3369
|
-
const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-
|
|
3429
|
+
const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-DzLXjzbf.js");
|
|
3370
3430
|
initCodexHome(codexHome, {
|
|
3371
3431
|
trustedDir: cwd,
|
|
3432
|
+
model,
|
|
3433
|
+
effort,
|
|
3372
3434
|
approvalPolicy: codexApprovalPolicy,
|
|
3373
3435
|
sandboxMode: codexSandboxMode,
|
|
3374
3436
|
approvalsReviewer: codexApprovalsReviewer
|
|
@@ -3377,6 +3439,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3377
3439
|
codexFields = {
|
|
3378
3440
|
harness: "codex",
|
|
3379
3441
|
codexMode: codexTransport,
|
|
3442
|
+
codexEffort: effort ?? "high",
|
|
3380
3443
|
codexHome,
|
|
3381
3444
|
codexSessionDir: join(codexHome, "sessions"),
|
|
3382
3445
|
resumeSessionId
|
|
@@ -3386,7 +3449,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3386
3449
|
if (resume) {
|
|
3387
3450
|
const pinnedId = await readFile(join(getOverdeckHome(), "agents", tmuxSession, "kimi-session-id"), "utf-8").then((value) => value.trim() || void 0).catch(() => void 0);
|
|
3388
3451
|
if (pinnedId) {
|
|
3389
|
-
const { kimiSessionsRoot } = await import("./kimi-code-
|
|
3452
|
+
const { kimiSessionsRoot } = await import("./kimi-code-Cx5YUJpS.js");
|
|
3390
3453
|
if (await stat(join(kimiSessionsRoot(join(homedir(), ".kimi-code"), cwd), pinnedId, "agents", "main", "wire.jsonl")).then(() => true, () => false)) kimiResumeSessionId = pinnedId;
|
|
3391
3454
|
}
|
|
3392
3455
|
}
|
|
@@ -3394,6 +3457,8 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3394
3457
|
harness: "kimi-code",
|
|
3395
3458
|
kimiCodeModel: model,
|
|
3396
3459
|
kimiCodeYolo: true,
|
|
3460
|
+
kimiContextDelivery: "initial-message",
|
|
3461
|
+
kimiCodeEffort: effort ?? "high",
|
|
3397
3462
|
...kimiResumeSessionId ? { resumeSessionId: kimiResumeSessionId } : {}
|
|
3398
3463
|
};
|
|
3399
3464
|
}
|
|
@@ -3403,7 +3468,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3403
3468
|
const piProvider = piProviderForModel(model);
|
|
3404
3469
|
if (piProvider) launcherModel = `${piProvider}/${model}`;
|
|
3405
3470
|
}
|
|
3406
|
-
if (effort && !SAFE_EFFORT_PATTERN.test(effort)) throw new Error("Invalid effort level");
|
|
3471
|
+
if (effort && !(harness === "opencode" ? /^[a-z][a-z0-9_-]*$/ : SAFE_EFFORT_PATTERN).test(effort)) throw new Error("Invalid effort level");
|
|
3407
3472
|
const useSupervisor = shouldUseSupervisorForConversation(harness, { codexTransport });
|
|
3408
3473
|
let supervisorScriptPath;
|
|
3409
3474
|
if (useSupervisor) {
|
|
@@ -3411,7 +3476,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3411
3476
|
await writePtyToken(tmuxSession);
|
|
3412
3477
|
}
|
|
3413
3478
|
let channelsBridgeMcpConfig;
|
|
3414
|
-
if (!piFields && !codexFields && !acpFields && !kimiCodeFields && !plainFork && isClaudeCodeChannelsEnabled() && (!model || getProviderForModelSync(model).name === "anthropic") && process.env.CLAUDE_CODE_USE_BEDROCK !== "1" && process.env.CLAUDE_CODE_USE_VERTEX !== "1" && process.env.CLAUDE_CODE_USE_FOUNDRY !== "1" && process.env.OVERDECK_DOCKER_WORKSPACE !== "1" && process.env.PAN_DOCKER !== "1") {
|
|
3479
|
+
if (!piFields && !codexFields && !acpFields && !kimiCodeFields && !museFields && !plainFork && isClaudeCodeChannelsEnabled() && (!model || getProviderForModelSync(model).name === "anthropic") && process.env.CLAUDE_CODE_USE_BEDROCK !== "1" && process.env.CLAUDE_CODE_USE_VERTEX !== "1" && process.env.CLAUDE_CODE_USE_FOUNDRY !== "1" && process.env.OVERDECK_DOCKER_WORKSPACE !== "1" && process.env.PAN_DOCKER !== "1") {
|
|
3415
3480
|
channelsBridgeMcpConfig = join(stateDir, "agent-mcp.json");
|
|
3416
3481
|
writeBridgeTokenSync(tmuxSession);
|
|
3417
3482
|
await writeChannelsBridgeMcpConfig(channelsBridgeMcpConfig, tmuxSession);
|
|
@@ -3419,7 +3484,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3419
3484
|
const launchTmuxAndCaptureSession = async () => {
|
|
3420
3485
|
let kimiExistingSessionsBefore;
|
|
3421
3486
|
if (kimiCodeFields && !kimiCodeFields.resumeSessionId) try {
|
|
3422
|
-
const { kimiSessionsRoot } = await import("./kimi-code-
|
|
3487
|
+
const { kimiSessionsRoot } = await import("./kimi-code-Cx5YUJpS.js");
|
|
3423
3488
|
kimiExistingSessionsBefore = new Set(await readdir(kimiSessionsRoot(join(homedir(), ".kimi-code"), cwd)));
|
|
3424
3489
|
} catch {
|
|
3425
3490
|
kimiExistingSessionsBefore = /* @__PURE__ */ new Set();
|
|
@@ -3431,6 +3496,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3431
3496
|
workingDir: cwd,
|
|
3432
3497
|
setTerminalEnv: true,
|
|
3433
3498
|
unsetProviderEnv: true,
|
|
3499
|
+
managedStateKey: tmuxSession,
|
|
3434
3500
|
overdeckEnv: {
|
|
3435
3501
|
...issueId ? { issueId } : {},
|
|
3436
3502
|
...piFields || codexFields || acpFields || useSupervisor ? { agentId: tmuxSession } : {}
|
|
@@ -3439,13 +3505,13 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3439
3505
|
providerExports: providerExportsStr || void 0,
|
|
3440
3506
|
trapHup: true,
|
|
3441
3507
|
baseCommand: runtimeCommand,
|
|
3442
|
-
appendSystemPromptFiles: piFields ? await piConversationSystemPromptFiles(cwd) : codexFields
|
|
3508
|
+
appendSystemPromptFiles: piFields ? await piConversationSystemPromptFiles(cwd) : codexFields ? await codexConversationSystemPromptFiles(cwd) : acpFields || museFields ? [] : kimiCodeFields ? await claudeSystemPromptFiles(cwd, "kimi-code") : await claudeConversationSystemPromptFiles(cwd),
|
|
3443
3509
|
model: launcherModel,
|
|
3444
|
-
...piFields ?? codexFields ?? acpFields ?? kimiCodeFields ?? {
|
|
3510
|
+
...piFields ?? codexFields ?? acpFields ?? kimiCodeFields ?? museFields ?? {
|
|
3445
3511
|
resumeSessionId: resume ? claudeSessionId : void 0,
|
|
3446
3512
|
sessionId: resume ? void 0 : claudeSessionId
|
|
3447
3513
|
},
|
|
3448
|
-
extraArgs: !piFields && !acpFields && !kimiCodeFields && effort ? `--effort "${effort}"` : void 0,
|
|
3514
|
+
extraArgs: !piFields && !acpFields && !kimiCodeFields && !museFields && effort ? `--effort "${effort}"` : void 0,
|
|
3449
3515
|
keepAlive: true,
|
|
3450
3516
|
fileMode: 448,
|
|
3451
3517
|
channelsBridgeMcpConfig,
|
|
@@ -3458,7 +3524,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3458
3524
|
} catch {}
|
|
3459
3525
|
console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
|
|
3460
3526
|
try {
|
|
3461
|
-
const { preTrustDirectory } = await import("./workspace-manager-
|
|
3527
|
+
const { preTrustDirectory } = await import("./workspace-manager-D0jJ7StJ.js");
|
|
3462
3528
|
preTrustDirectory(cwd);
|
|
3463
3529
|
} catch {}
|
|
3464
3530
|
try {
|
|
@@ -3475,7 +3541,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3475
3541
|
const codexHomeDir = codexFields.codexHome;
|
|
3476
3542
|
(async () => {
|
|
3477
3543
|
try {
|
|
3478
|
-
const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-
|
|
3544
|
+
const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-DzLXjzbf.js");
|
|
3479
3545
|
const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
|
|
3480
3546
|
if (rollout) {
|
|
3481
3547
|
const threadId = extractThreadIdFromRollout(rollout);
|
|
@@ -3485,14 +3551,14 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
|
|
|
3485
3551
|
})();
|
|
3486
3552
|
}
|
|
3487
3553
|
if (kimiCodeFields && kimiExistingSessionsBefore) {
|
|
3488
|
-
const { waitForNewKimiSessionAsync, writeKimiSessionId } = await import("./kimi-code-
|
|
3554
|
+
const { waitForNewKimiSessionAsync, writeKimiSessionId } = await import("./kimi-code-Cx5YUJpS.js");
|
|
3489
3555
|
const sessionId = await waitForNewKimiSessionAsync(join(homedir(), ".kimi-code"), cwd, kimiExistingSessionsBefore);
|
|
3490
3556
|
if (!sessionId) throw new Error(`kimi-code session capture timed out for ${tmuxSession} — no new session directory appeared under the workspace bucket`);
|
|
3491
3557
|
writeKimiSessionId(tmuxSession, sessionId);
|
|
3492
3558
|
}
|
|
3493
3559
|
};
|
|
3494
3560
|
if (kimiCodeFields) {
|
|
3495
|
-
const { withKimiSessionCaptureLock } = await import("./kimi-code-
|
|
3561
|
+
const { withKimiSessionCaptureLock } = await import("./kimi-code-Cx5YUJpS.js");
|
|
3496
3562
|
await withKimiSessionCaptureLock(join(homedir(), ".kimi-code"), cwd, launchTmuxAndCaptureSession);
|
|
3497
3563
|
} else await launchTmuxAndCaptureSession();
|
|
3498
3564
|
if (channelsBridgeMcpConfig) dismissDevChannelsDialog(tmuxSession).catch((err) => {
|
|
@@ -3538,7 +3604,7 @@ async function handleConversationCreate(body, deps) {
|
|
|
3538
3604
|
const projectKey = typeof body["projectKey"] === "string" ? body["projectKey"].trim() : void 0;
|
|
3539
3605
|
if (issueId && !SAFE_ISSUE_ID_PATTERN.test(issueId)) return jsonResponse({ error: "Invalid issueId" }, { status: 400 });
|
|
3540
3606
|
if (model && !SAFE_MODEL_PATTERN.test(model)) return jsonResponse({ error: "Invalid model" }, { status: 400 });
|
|
3541
|
-
if (effort && !SAFE_EFFORT_PATTERN.test(effort)) return jsonResponse({ error: "Invalid effort" }, { status: 400 });
|
|
3607
|
+
if (effort && !(harness === "opencode" ? /^[a-z][a-z0-9_-]*$/ : SAFE_EFFORT_PATTERN).test(effort)) return jsonResponse({ error: "Invalid effort" }, { status: 400 });
|
|
3542
3608
|
let cwd = getDefaultCwd();
|
|
3543
3609
|
let canonicalProjectKey;
|
|
3544
3610
|
if (projectKey) {
|
|
@@ -3579,14 +3645,15 @@ async function handleConversationCreate(body, deps) {
|
|
|
3579
3645
|
await spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort, issueId, false, harness);
|
|
3580
3646
|
console.log(`[conversations] tmux session ${tmuxSession} spawned, sessionId: ${claudeSessionId}`);
|
|
3581
3647
|
await waitForConversationRuntimeReady(tmuxSession, harness, "spawn");
|
|
3582
|
-
if (message) {
|
|
3583
|
-
const
|
|
3584
|
-
|
|
3648
|
+
if (message || harness === "kimi-code") {
|
|
3649
|
+
const method = resolveConversationDeliveryMethod(conv);
|
|
3650
|
+
const delivery = harness === "kimi-code" ? await deliverAgentMessage(tmuxSession, message, "conversation-message", method, { kimiContext: { workspace: cwd } }) : await deliverAgentMessage(tmuxSession, message, "conversation-message", method);
|
|
3651
|
+
if ((harness === "acp" || harness === "opencode" || harness === "kimi-code") && !delivery.ok) throw new Error(`${getHarnessBehavior(harness).displayName} initial prompt did not land: ${delivery.failure ?? "unknown failure"}`);
|
|
3585
3652
|
}
|
|
3586
3653
|
} catch (spawnErr) {
|
|
3587
3654
|
const msg = spawnErr instanceof Error ? spawnErr.message : String(spawnErr);
|
|
3588
3655
|
console.error(`[conversations] background spawn failed for ${tmuxSession}: ${msg}`);
|
|
3589
|
-
if (harness === "acp" || harness === "kimi-code") await stopConversationRuntime(conv, name);
|
|
3656
|
+
if (harness === "acp" || harness === "opencode" || harness === "kimi-code" || harness === "muse") await stopConversationRuntime(conv, name);
|
|
3590
3657
|
updateSpawnError(name, msg);
|
|
3591
3658
|
getEventStore().emitOnly({
|
|
3592
3659
|
type: "conversation.created",
|
|
@@ -3673,7 +3740,10 @@ async function handleConversationResume(name, body, deps) {
|
|
|
3673
3740
|
await spawnConversationSession(conv.tmuxSession, conv.cwd, oldSessionId ?? randomUUID$1(), model, effort, conv.issueId ?? void 0, canResume, harness);
|
|
3674
3741
|
await waitForTmuxSession(conv.tmuxSession);
|
|
3675
3742
|
await waitForConversationRuntimeReady(conv.tmuxSession, harness, "respawn");
|
|
3676
|
-
|
|
3743
|
+
const method = resolveConversationDeliveryMethod(conv);
|
|
3744
|
+
if (harness === "kimi-code") await deliverMandatoryKimiResumeContext(conv.tmuxSession, conv.cwd, method);
|
|
3745
|
+
const resumeContractResult = await deliverResumeContractUnlessGated(conv.tmuxSession, `CONVERSATION RESUME: ${buildResumeContract(resumeCause)}`, "conversation-resume", method, sendResumeContract);
|
|
3746
|
+
if (harness === "kimi-code") assertKimiResumeContractResult(resumeContractResult);
|
|
3677
3747
|
markConversationActive(name);
|
|
3678
3748
|
return jsonResponse({
|
|
3679
3749
|
...conv,
|
|
@@ -3684,7 +3754,7 @@ async function handleConversationResume(name, body, deps) {
|
|
|
3684
3754
|
sessionAlive: true
|
|
3685
3755
|
});
|
|
3686
3756
|
} catch (error) {
|
|
3687
|
-
if (harness === "acp" || harness === "kimi-code") await stopConversationRuntime(conv, name);
|
|
3757
|
+
if (harness === "acp" || harness === "opencode" || harness === "kimi-code" || harness === "muse") await stopConversationRuntime(conv, name);
|
|
3688
3758
|
throw error;
|
|
3689
3759
|
} finally {
|
|
3690
3760
|
respawn.done();
|
|
@@ -3729,7 +3799,8 @@ async function handleConversationRestartAll(deps) {
|
|
|
3729
3799
|
const harness = await resolveAllowedHarness(conv.harness, conv.model);
|
|
3730
3800
|
attemptedHarness = harness;
|
|
3731
3801
|
await spawnConversationSession(conv.tmuxSession, conv.cwd, oldSessionId ?? randomUUID$1(), conv.model ?? void 0, conv.effort ?? void 0, conv.issueId ?? void 0, canResume, harness);
|
|
3732
|
-
if (harness === "acp") await waitForConversationRuntimeReady(conv.tmuxSession, harness, "respawn");
|
|
3802
|
+
if (harness === "acp" || harness === "opencode" || harness === "kimi-code" || harness === "muse") await waitForConversationRuntimeReady(conv.tmuxSession, harness, "respawn");
|
|
3803
|
+
if (harness === "kimi-code") await deliverMandatoryKimiResumeContext(conv.tmuxSession, conv.cwd, resolveConversationDeliveryMethod(conv));
|
|
3733
3804
|
setConversationHarness(conv.name, harness);
|
|
3734
3805
|
markConversationActive(conv.name);
|
|
3735
3806
|
results.push({
|
|
@@ -3740,7 +3811,7 @@ async function handleConversationRestartAll(deps) {
|
|
|
3740
3811
|
} catch (err) {
|
|
3741
3812
|
const msg = err instanceof Error ? err.message : String(err);
|
|
3742
3813
|
console.error(`[conversations] Failed to restart ${conv.name}:`, msg);
|
|
3743
|
-
if (attemptedHarness === "acp" || attemptedHarness === "kimi-code") await stopConversationRuntime(conv, conv.name);
|
|
3814
|
+
if (attemptedHarness === "acp" || attemptedHarness === "kimi-code" || attemptedHarness === "opencode" || attemptedHarness === "muse") await stopConversationRuntime(conv, conv.name);
|
|
3744
3815
|
results.push({
|
|
3745
3816
|
name: conv.name,
|
|
3746
3817
|
model: conv.model,
|
|
@@ -4123,7 +4194,7 @@ function pickDeliverAs(bodyDeliverAs) {
|
|
|
4123
4194
|
}
|
|
4124
4195
|
function resolveConversationDeliveryMethod(conv) {
|
|
4125
4196
|
const harness = conv.harness ?? "claude-code";
|
|
4126
|
-
if (harness === "acp") return "auto";
|
|
4197
|
+
if (harness === "acp" || harness === "opencode") return "auto";
|
|
4127
4198
|
if (isPiControlChannelHarness(harness)) return "auto";
|
|
4128
4199
|
if (harness === "codex" && loadConfigSync().config.codex?.transport !== "tui") return "auto";
|
|
4129
4200
|
return conv.deliveryMethod ?? (getHarnessBehavior(harness).deliveryKind === "rpc-fifo" ? "tmux" : "auto");
|
|
@@ -4190,11 +4261,33 @@ async function handleConversationPiAskAnswer(rawId, body, deps = {}) {
|
|
|
4190
4261
|
async function handleConversationThinkingLevel(name, body) {
|
|
4191
4262
|
const conv = getConversationByName(name);
|
|
4192
4263
|
if (!conv) return jsonResponse({ error: "Conversation not found" }, { status: 404 });
|
|
4193
|
-
|
|
4264
|
+
const harness = conv.harness ?? "claude-code";
|
|
4265
|
+
if (harness !== "codex" && harness !== "acp" && harness !== "opencode" && !isPiControlChannelHarness(harness)) return jsonResponse({ error: "Thinking level control is supported for Codex, ACP, OpenCode, and Pi conversations" }, { status: 400 });
|
|
4194
4266
|
if (conv.status === "ended") return jsonResponse({ error: "Session has ended — start a new run to interact" }, { status: 422 });
|
|
4195
|
-
const level =
|
|
4267
|
+
const level = harness === "codex" || harness === "acp" || harness === "opencode" ? typeof body["level"] === "string" && [
|
|
4268
|
+
"low",
|
|
4269
|
+
"medium",
|
|
4270
|
+
"high",
|
|
4271
|
+
"xhigh",
|
|
4272
|
+
"max"
|
|
4273
|
+
].includes(body["level"]) ? body["level"] : null : parseThinkingLevel(body["level"]);
|
|
4196
4274
|
if (!level) return jsonResponse({ error: "Invalid thinking level" }, { status: 400 });
|
|
4197
|
-
|
|
4275
|
+
if (harness === "acp" || harness === "opencode") {
|
|
4276
|
+
const result = await postCodexAppServerOp(conv.tmuxSession, {
|
|
4277
|
+
op: "set-effort",
|
|
4278
|
+
effort: level
|
|
4279
|
+
}, "acp");
|
|
4280
|
+
setConversationEffort(name, result.effort);
|
|
4281
|
+
return jsonResponse({
|
|
4282
|
+
ok: true,
|
|
4283
|
+
effort: result.effort
|
|
4284
|
+
});
|
|
4285
|
+
}
|
|
4286
|
+
if (harness === "codex") await postCodexAppServerOp(conv.tmuxSession, {
|
|
4287
|
+
op: "set-effort",
|
|
4288
|
+
effort: level
|
|
4289
|
+
});
|
|
4290
|
+
else await sendConversationControlCommand(conv, {
|
|
4198
4291
|
type: "set_thinking_level",
|
|
4199
4292
|
level
|
|
4200
4293
|
});
|
|
@@ -4302,9 +4395,9 @@ function formatAppServerApprovalQuestion(request) {
|
|
|
4302
4395
|
if (path) return `Codex requests approval for:\n\n${path}`;
|
|
4303
4396
|
return `Codex requests approval for ${request.method}`;
|
|
4304
4397
|
}
|
|
4305
|
-
async function postCodexAppServerOp(tmuxSession, body) {
|
|
4306
|
-
const socketPath = join(getOverdeckHome(), "sockets",
|
|
4307
|
-
const tokenPath = join(getOverdeckHome(), "agents", tmuxSession,
|
|
4398
|
+
async function postCodexAppServerOp(tmuxSession, body, transport = "appserver") {
|
|
4399
|
+
const socketPath = join(getOverdeckHome(), "sockets", `${transport}-${tmuxSession}.sock`);
|
|
4400
|
+
const tokenPath = join(getOverdeckHome(), "agents", tmuxSession, `${transport}-token`);
|
|
4308
4401
|
if (!existsSync(socketPath)) throw new Error(`app-server socket missing for ${tmuxSession}`);
|
|
4309
4402
|
if (!existsSync(tokenPath)) throw new Error(`app-server token missing for ${tmuxSession}`);
|
|
4310
4403
|
const token = readFileSync(tokenPath, "utf-8").trim();
|
|
@@ -4662,7 +4755,7 @@ const postInternalAgentPermissionRequestRoute = HttpRouter.add("POST", "/api/int
|
|
|
4662
4755
|
error: "missing agent id"
|
|
4663
4756
|
}, { status: 400 });
|
|
4664
4757
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
4665
|
-
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-
|
|
4758
|
+
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-CWcdG-Kw.js"));
|
|
4666
4759
|
const expected = getInternalTokenSync();
|
|
4667
4760
|
if (!expected) return jsonResponse({
|
|
4668
4761
|
ok: false,
|
|
@@ -4959,7 +5052,7 @@ const getAgentHealthHistoryRoute = HttpRouter.add("GET", "/api/agents/:id/health
|
|
|
4959
5052
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
4960
5053
|
const urlOpt = HttpServerRequest.toURL(request);
|
|
4961
5054
|
const hours = Option.isSome(urlOpt) ? urlOpt.value.searchParams.get("hours") ?? "24" : "24";
|
|
4962
|
-
const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-
|
|
5055
|
+
const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-Dv7rzyit.js"));
|
|
4963
5056
|
const endTime = /* @__PURE__ */ new Date();
|
|
4964
5057
|
const startTime = /* @__PURE__ */ new Date(endTime.getTime() - parseInt(hours) * 60 * 60 * 1e3);
|
|
4965
5058
|
const events = getHealthHistory(id, startTime.toISOString(), endTime.toISOString());
|
|
@@ -4974,7 +5067,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
|
|
|
4974
5067
|
return Effect.gen(function* () {
|
|
4975
5068
|
let eventBody = body;
|
|
4976
5069
|
if (body["kind"] === "linear_mcp_auth_required" || body["kind"] === "linear_mcp_auth_healthy") {
|
|
4977
|
-
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-
|
|
5070
|
+
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DcN1j6eK.js"));
|
|
4978
5071
|
const snapshot = yield* (yield* AgentStateService).get(id);
|
|
4979
5072
|
eventBody = {
|
|
4980
5073
|
...body,
|
|
@@ -5009,7 +5102,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
|
|
|
5009
5102
|
detail: String(decoded.failure)
|
|
5010
5103
|
}, { status: 400 })
|
|
5011
5104
|
};
|
|
5012
|
-
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-
|
|
5105
|
+
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DcN1j6eK.js"));
|
|
5013
5106
|
yield* (yield* AgentStateService).emit(decoded.success);
|
|
5014
5107
|
return {
|
|
5015
5108
|
ok: true,
|
|
@@ -5090,13 +5183,13 @@ const postAgentPlanChecklistRoute = HttpRouter.add("POST", "/api/agents/:id/plan
|
|
|
5090
5183
|
const auth = yield* Effect.promise(() => validateAgentRuntimeEventAuth(request));
|
|
5091
5184
|
if (!auth.ok) return auth.response;
|
|
5092
5185
|
const id = (yield* HttpRouter.params)["id"] ?? "";
|
|
5093
|
-
const { getAgentState } = yield* Effect.promise(() => import("./agents-
|
|
5186
|
+
const { getAgentState } = yield* Effect.promise(() => import("./agents-BVvL4o_4.js"));
|
|
5094
5187
|
const state = yield* getAgentState(id);
|
|
5095
5188
|
if (!state?.workspace || !state.issueId) return jsonResponse({
|
|
5096
5189
|
success: false,
|
|
5097
5190
|
error: "agent has no resolvable workspace or issue id"
|
|
5098
5191
|
}, { status: 422 });
|
|
5099
|
-
const { checkIncompletePlanItemsPromise } = yield* Effect.promise(() => import("./done-preflight-
|
|
5192
|
+
const { checkIncompletePlanItemsPromise } = yield* Effect.promise(() => import("./done-preflight-DAufsWqY.js"));
|
|
5100
5193
|
const incomplete = yield* Effect.promise(() => checkIncompletePlanItemsPromise(state.workspace, state.issueId));
|
|
5101
5194
|
return jsonResponse({
|
|
5102
5195
|
success: true,
|
|
@@ -5110,7 +5203,7 @@ const getAgentRuntimeRoute = HttpRouter.add("GET", "/api/agents/:id/runtime", ht
|
|
|
5110
5203
|
success: false,
|
|
5111
5204
|
error: "missing agent id"
|
|
5112
5205
|
}, { status: 400 });
|
|
5113
|
-
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-
|
|
5206
|
+
const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DcN1j6eK.js"));
|
|
5114
5207
|
const snapshot = yield* (yield* AgentStateService).get(id);
|
|
5115
5208
|
if (!snapshot) return jsonResponse({
|
|
5116
5209
|
success: false,
|
|
@@ -5301,8 +5394,8 @@ function createAgentStopHandler(lifecycleEvent) {
|
|
|
5301
5394
|
yield* stopAgent(id, "operator");
|
|
5302
5395
|
if (stateBeforeStop?.issueId) yield* Effect.promise(async () => {
|
|
5303
5396
|
try {
|
|
5304
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
5305
|
-
const { findWorkspacePath } = await import("./archive-planning-
|
|
5397
|
+
const { resolveProjectFromIssueSync } = await import("./projects-DXgHD2Xl.js");
|
|
5398
|
+
const { findWorkspacePath } = await import("./archive-planning-CohTB7hg.js");
|
|
5306
5399
|
const issueLower = stateBeforeStop.issueId.toLowerCase();
|
|
5307
5400
|
const workspacePath = findWorkspacePath(resolveProjectFromIssueSync(stateBeforeStop.issueId)?.projectPath ?? process.cwd(), issueLower);
|
|
5308
5401
|
if (workspacePath) {
|
|
@@ -5442,7 +5535,7 @@ const postAgentUnpauseRoute = HttpRouter.add("POST", "/api/agents/:id/unpause",
|
|
|
5442
5535
|
if ((yield* getWorkAgentLifecycleState(id)).canResumeSession && updatedState.troubled !== true) {
|
|
5443
5536
|
resumeTriggered = true;
|
|
5444
5537
|
yield* Effect.promise(() => appendAgentLifecycleLog(id, "agent.unpause_immediate_resume_triggered"));
|
|
5445
|
-
import("./resume-
|
|
5538
|
+
import("./resume-BKyB4hA1.js").then(({ resumeAgent }) => resumeAgent(id)).then((result) => {
|
|
5446
5539
|
if (!result.success) console.warn(`[agents] immediate resume after unpause failed for ${id}: ${result.error}`);
|
|
5447
5540
|
}).catch((err) => console.warn(`[agents] immediate resume after unpause errored for ${id}:`, err));
|
|
5448
5541
|
}
|
|
@@ -6855,15 +6948,15 @@ async function requestWorkStartAfterContainers(input) {
|
|
|
6855
6948
|
function handleRemoteAgentSpawn(input) {
|
|
6856
6949
|
return Effect.gen(function* () {
|
|
6857
6950
|
const { issueId, workspacePath, workspaceMetadata, spawnModel, startedBy, autoSpawnConsentRequired, projectPath, spawnGuardrails, lifecycle } = input;
|
|
6858
|
-
const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-
|
|
6859
|
-
const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-
|
|
6860
|
-
const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-
|
|
6951
|
+
const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-CEOvYsvK.js"));
|
|
6952
|
+
const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-gWXJyhJK.js"));
|
|
6953
|
+
const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-DN8ETZvK.js"));
|
|
6861
6954
|
const panConfig = loadPanConfig();
|
|
6862
6955
|
const spendCap = checkRemoteSpendCap(panConfig);
|
|
6863
6956
|
if (!spendCap.allowed) return jsonResponse({ error: spendCap.message }, { status: 429 });
|
|
6864
6957
|
const fly = createFlyProviderFromConfig(panConfig.remote);
|
|
6865
6958
|
yield* Effect.promise(() => fly.syncAllCredentials(workspaceMetadata.vmName));
|
|
6866
|
-
const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-
|
|
6959
|
+
const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-Csr4vMbl.js"));
|
|
6867
6960
|
const trackerContext = yield* Effect.promise(() => getTrackerContext(issueId, workspacePath));
|
|
6868
6961
|
const agentPrompt = yield* Effect.promise(() => buildWorkAgentPrompt({
|
|
6869
6962
|
issueId,
|
|
@@ -7597,7 +7690,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
|
|
|
7597
7690
|
console.warn(`[start-agent] Failed to set plan.status=running (non-fatal): ${planStatusErr?.message ?? planStatusErr}`);
|
|
7598
7691
|
}
|
|
7599
7692
|
try {
|
|
7600
|
-
const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-
|
|
7693
|
+
const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-Dsceq536.js");
|
|
7601
7694
|
await appendSessionEntry(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId, {
|
|
7602
7695
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
7603
7696
|
reason: "start",
|
|
@@ -7700,7 +7793,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
|
|
|
7700
7793
|
console.warn(`[start-agent] Failed to check workspace status for ${issueId}: ${message}`);
|
|
7701
7794
|
}
|
|
7702
7795
|
const bodyHarness = body.harness;
|
|
7703
|
-
const userPickedHarness = bodyHarness === "ohmypi" || bodyHarness === "claude-code" || bodyHarness === "codex" || bodyHarness === "acp" || bodyHarness === "kimi-code" ? bodyHarness : null;
|
|
7796
|
+
const userPickedHarness = bodyHarness === "ohmypi" || bodyHarness === "claude-code" || bodyHarness === "codex" || bodyHarness === "acp" || bodyHarness === "kimi-code" || bodyHarness === "opencode" || bodyHarness === "muse" ? bodyHarness : null;
|
|
7704
7797
|
let effectiveHarness = null;
|
|
7705
7798
|
if (userPickedHarness !== null) {
|
|
7706
7799
|
const harnessDecision = yield* Effect.promise(async () => canUseHarnessSync(userPickedHarness, spawnModel, await getProviderAuthMode(spawnModel)));
|
|
@@ -8045,14 +8138,14 @@ function firePostMergeLifecycle(issueId, options) {
|
|
|
8045
8138
|
const normalizedIssueId = parsedIssueId.normalized.toUpperCase();
|
|
8046
8139
|
const started = postMergeGuard.run(normalizedIssueId, async () => {
|
|
8047
8140
|
const projectPath = getProjectPathForIssue(parsedIssueId.prefix);
|
|
8048
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
8141
|
+
const { postMergeLifecycle } = await import("./merge-agent-ddEcZDZD.js");
|
|
8049
8142
|
const lifecycleOptions = {
|
|
8050
8143
|
...options?.verifiedMergedRef ? { verifiedMergedRef: options.verifiedMergedRef } : {},
|
|
8051
8144
|
...options?.verifiedMergedRepos?.length ? { verifiedMergedRepos: options.verifiedMergedRepos } : {}
|
|
8052
8145
|
};
|
|
8053
8146
|
await postMergeLifecycle(normalizedIssueId, projectPath, options?.sourceBranch, Object.keys(lifecycleOptions).length > 0 ? lifecycleOptions : void 0);
|
|
8054
8147
|
console.log(`[merge] post-merge lifecycle completed for ${normalizedIssueId}`);
|
|
8055
|
-
const { runMergeTrainReconcile } = await import("./merge-train-
|
|
8148
|
+
const { runMergeTrainReconcile } = await import("./merge-train-f_un38UJ.js");
|
|
8056
8149
|
const outcomes = await runMergeTrainReconcile(normalizedIssueId);
|
|
8057
8150
|
if (outcomes.length > 0) console.log(`[merge-train] reconciled ${outcomes.length} sibling(s) after ${normalizedIssueId}: ` + outcomes.map((o) => `${o.issueId}=${o.result}`).join(", "));
|
|
8058
8151
|
}, (err) => console.error(`[merge] post-merge lifecycle failed for ${normalizedIssueId}:`, err));
|
|
@@ -8072,15 +8165,15 @@ init_review_status();
|
|
|
8072
8165
|
init_io();
|
|
8073
8166
|
init_tmux();
|
|
8074
8167
|
const getSpecialistsRoute = HttpRouter.add("GET", "/api/specialists", httpHandler(Effect.gen(function* () {
|
|
8075
|
-
const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-
|
|
8168
|
+
const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8076
8169
|
return jsonResponse({
|
|
8077
8170
|
specialists: yield* Effect.promise(() => getAllSpecialistStatus()),
|
|
8078
8171
|
projects: yield* Effect.promise(() => getAllProjectSpecialistStatuses())
|
|
8079
8172
|
});
|
|
8080
8173
|
})));
|
|
8081
8174
|
const postSpecialistsResetAllRoute = HttpRouter.add("POST", "/api/specialists/reset-all", httpHandler(Effect.gen(function* () {
|
|
8082
|
-
const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
8083
|
-
const { clearHookSync } = yield* Effect.promise(() => import("./hooks-
|
|
8175
|
+
const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8176
|
+
const { clearHookSync } = yield* Effect.promise(() => import("./hooks-DKzqJ4HF.js"));
|
|
8084
8177
|
const specialists = getAllSpecialists();
|
|
8085
8178
|
const results = [];
|
|
8086
8179
|
for (const specialist of specialists) {
|
|
@@ -8166,7 +8259,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8166
8259
|
if (project) {
|
|
8167
8260
|
const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
|
|
8168
8261
|
if (existsSync(workspacePath)) {
|
|
8169
|
-
const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-
|
|
8262
|
+
const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-DvcWLgGS.js");
|
|
8170
8263
|
reviewEvidenceHead = await snapshotWorkspaceHeadsPromise(normalizedIssueId, workspacePath);
|
|
8171
8264
|
}
|
|
8172
8265
|
}
|
|
@@ -8215,7 +8308,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8215
8308
|
if (project && failedItemId) {
|
|
8216
8309
|
const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
|
|
8217
8310
|
if (existsSync(workspacePath)) {
|
|
8218
|
-
const { onInspectComplete } = await import("./inspect-agent-
|
|
8311
|
+
const { onInspectComplete } = await import("./inspect-agent-DTuSg95i.js");
|
|
8219
8312
|
await Effect.runPromise(onInspectComplete(project.projectKey, normalizedIssueId, failedItemId, "failed", workspacePath, notes));
|
|
8220
8313
|
}
|
|
8221
8314
|
}
|
|
@@ -8226,7 +8319,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8226
8319
|
}
|
|
8227
8320
|
yield* Effect.promise(async () => {
|
|
8228
8321
|
try {
|
|
8229
|
-
const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-
|
|
8322
|
+
const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-D8sYZnPb.js");
|
|
8230
8323
|
const projectKey = resolveProjectFromIssueSync(normalizedIssueId)?.projectKey;
|
|
8231
8324
|
const tmuxSession = projectKey ? getTmuxSessionName(`${specialist}-agent`, projectKey, normalizedIssueId) : getTmuxSessionName(`${specialist}-agent`);
|
|
8232
8325
|
saveAgentRuntimeState(tmuxSession, {
|
|
@@ -8245,7 +8338,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8245
8338
|
});
|
|
8246
8339
|
console.log(`[specialists/done] Cleared registry lock for ${registryKey} (${projectKey})`);
|
|
8247
8340
|
}
|
|
8248
|
-
const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-
|
|
8341
|
+
const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-4QCjIBPO.js");
|
|
8249
8342
|
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}`);
|
|
8250
8343
|
} catch (err) {
|
|
8251
8344
|
console.error(`[specialists/done] Error managing specialist state:`, err);
|
|
@@ -8257,7 +8350,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8257
8350
|
if (project) {
|
|
8258
8351
|
const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
|
|
8259
8352
|
if (existsSync(workspacePath)) {
|
|
8260
|
-
const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-
|
|
8353
|
+
const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-DvcWLgGS.js");
|
|
8261
8354
|
const headAnchor = await snapshotWorkspaceHeadsPromise(normalizedIssueId, workspacePath);
|
|
8262
8355
|
if (headAnchor) {
|
|
8263
8356
|
setReviewStatusSync(normalizedIssueId, { reviewedAtCommit: headAnchor });
|
|
@@ -8271,7 +8364,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8271
8364
|
});
|
|
8272
8365
|
if (specialist === "inspect" && status === "passed") yield* Effect.promise(async () => {
|
|
8273
8366
|
try {
|
|
8274
|
-
const { onInspectComplete } = await import("./inspect-agent-
|
|
8367
|
+
const { onInspectComplete } = await import("./inspect-agent-DTuSg95i.js");
|
|
8275
8368
|
const project = resolveProjectFromIssueSync(normalizedIssueId);
|
|
8276
8369
|
if (project) {
|
|
8277
8370
|
const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
|
|
@@ -8287,7 +8380,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8287
8380
|
if (project) {
|
|
8288
8381
|
if (existsSync(join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`))) {
|
|
8289
8382
|
setReviewStatusSync(normalizedIssueId, { testStatus: "passed" });
|
|
8290
|
-
const { initEventStore } = await import("./event-store-
|
|
8383
|
+
const { initEventStore } = await import("./event-store-Bw3YDOZ5.js");
|
|
8291
8384
|
await (await initEventStore()).appendAsync({
|
|
8292
8385
|
type: "test.passed",
|
|
8293
8386
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -8340,8 +8433,8 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8340
8433
|
if (notes?.toLowerCase().includes("conflict")) yield* Effect.promise(async () => {
|
|
8341
8434
|
try {
|
|
8342
8435
|
const workAgentId = `agent-${normalizedIssueId.toLowerCase()}`;
|
|
8343
|
-
const { sessionExists } = await import("./tmux-
|
|
8344
|
-
const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-
|
|
8436
|
+
const { sessionExists } = await import("./tmux-aj9rscol.js");
|
|
8437
|
+
const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-BVvL4o_4.js");
|
|
8345
8438
|
if (await Effect.runPromise(sessionExists(workAgentId))) {
|
|
8346
8439
|
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}`);
|
|
8347
8440
|
console.log(`[specialists/done] Sent rebase instructions to ${workAgentId}`);
|
|
@@ -8355,7 +8448,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8355
8448
|
try {
|
|
8356
8449
|
const project = resolveProjectFromIssueSync(normalizedIssueId);
|
|
8357
8450
|
const workspacePath = project ? join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`) : void 0;
|
|
8358
|
-
const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-
|
|
8451
|
+
const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-Dp139Lmv.js");
|
|
8359
8452
|
const result = await Effect.runPromise(deliverReviewVerdictFeedback({
|
|
8360
8453
|
issueId: normalizedIssueId,
|
|
8361
8454
|
verdict: status === "failed" ? "failed" : "blocked",
|
|
@@ -8375,7 +8468,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8375
8468
|
if (project) {
|
|
8376
8469
|
const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
|
|
8377
8470
|
if (existsSync(workspacePath)) {
|
|
8378
|
-
const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-
|
|
8471
|
+
const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-DvcWLgGS.js");
|
|
8379
8472
|
const reviewedAtCommit = await snapshotWorkspaceHeadsPromise(normalizedIssueId, workspacePath);
|
|
8380
8473
|
if (reviewedAtCommit) {
|
|
8381
8474
|
setReviewStatusSync(normalizedIssueId, { reviewedAtCommit });
|
|
@@ -8415,7 +8508,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
|
|
|
8415
8508
|
});
|
|
8416
8509
|
})));
|
|
8417
8510
|
const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/specialists/logs/cleanup-all", httpHandler(Effect.gen(function* () {
|
|
8418
|
-
const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-
|
|
8511
|
+
const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
|
|
8419
8512
|
const results = cleanupAllLogsSync();
|
|
8420
8513
|
return jsonResponse({
|
|
8421
8514
|
success: true,
|
|
@@ -8425,7 +8518,7 @@ const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/speciali
|
|
|
8425
8518
|
});
|
|
8426
8519
|
})));
|
|
8427
8520
|
const getSpecialistsProjectsRoute = HttpRouter.add("GET", "/api/specialists/projects", httpHandler(Effect.gen(function* () {
|
|
8428
|
-
const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-
|
|
8521
|
+
const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8429
8522
|
return jsonResponse(yield* Effect.promise(() => getAllProjectSpecialistStatuses()));
|
|
8430
8523
|
})));
|
|
8431
8524
|
const postSpecialistWakeRoute = HttpRouter.add("POST", "/api/specialists/:name/wake", httpHandler(Effect.gen(function* () {
|
|
@@ -8469,7 +8562,7 @@ const postSpecialistReportStatusRoute = HttpRouter.add("POST", "/api/specialists
|
|
|
8469
8562
|
"blocked",
|
|
8470
8563
|
"failed"
|
|
8471
8564
|
].includes(status)) {
|
|
8472
|
-
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
8565
|
+
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8473
8566
|
saveAgentRuntimeState(getTmuxSessionName(name), {
|
|
8474
8567
|
state: "idle",
|
|
8475
8568
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString()
|
|
@@ -8591,7 +8684,7 @@ const postProjectSpecialistKillRoute = HttpRouter.add("POST", "/api/specialists/
|
|
|
8591
8684
|
const issueId = params["issueId"];
|
|
8592
8685
|
const type = params["type"];
|
|
8593
8686
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8594
|
-
const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-
|
|
8687
|
+
const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8595
8688
|
const tmuxSession = getRunMetadata(project, makeSpecialistRegistryKey(type, issueId)).tmuxSession ?? getTmuxSessionName(type, project, issueId);
|
|
8596
8689
|
yield* Effect.promise(() => Effect.runPromise(killSession(tmuxSession)).catch(() => {}));
|
|
8597
8690
|
saveAgentRuntimeState(tmuxSession, {
|
|
@@ -8618,7 +8711,7 @@ const getProjectSpecialistRunsRoute = HttpRouter.add("GET", "/api/specialists/:p
|
|
|
8618
8711
|
if (limitParam) limit = parseInt(limitParam, 10);
|
|
8619
8712
|
if (offsetParam) offset = parseInt(offsetParam, 10);
|
|
8620
8713
|
}
|
|
8621
|
-
const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-
|
|
8714
|
+
const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
|
|
8622
8715
|
return jsonResponse(listRunLogsSync(project, type, {
|
|
8623
8716
|
limit,
|
|
8624
8717
|
offset
|
|
@@ -8629,7 +8722,7 @@ const getProjectSpecialistRunStreamRoute = HttpRouter.add("GET", "/api/specialis
|
|
|
8629
8722
|
const project = params["project"];
|
|
8630
8723
|
const type = params["type"];
|
|
8631
8724
|
const runId = params["runId"];
|
|
8632
|
-
const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-
|
|
8725
|
+
const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
|
|
8633
8726
|
const logPath = getRunLogPath(project, type, runId);
|
|
8634
8727
|
if (!existsSync(logPath)) return jsonResponse({ error: "Run log not found" }, { status: 404 });
|
|
8635
8728
|
const encoder = new TextEncoder();
|
|
@@ -8688,7 +8781,7 @@ const getProjectSpecialistRunRoute = HttpRouter.add("GET", "/api/specialists/:pr
|
|
|
8688
8781
|
const project = params["project"];
|
|
8689
8782
|
const type = params["type"];
|
|
8690
8783
|
const runId = params["runId"];
|
|
8691
|
-
const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-
|
|
8784
|
+
const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
|
|
8692
8785
|
const content = getRunLogSync(project, type, runId);
|
|
8693
8786
|
if (!content) return jsonResponse({ error: "Run log not found" }, { status: 404 });
|
|
8694
8787
|
return jsonResponse({
|
|
@@ -8702,7 +8795,7 @@ const postProjectSpecialistRunTerminateRoute = HttpRouter.add("POST", "/api/spec
|
|
|
8702
8795
|
const project = params["project"];
|
|
8703
8796
|
const type = params["type"];
|
|
8704
8797
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8705
|
-
const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-
|
|
8798
|
+
const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8706
8799
|
yield* Effect.promise(() => terminateSpecialist(project, type));
|
|
8707
8800
|
return jsonResponse({
|
|
8708
8801
|
success: true,
|
|
@@ -8714,7 +8807,7 @@ const postProjectSpecialistGracePauseRoute = HttpRouter.add("POST", "/api/specia
|
|
|
8714
8807
|
const project = params["project"];
|
|
8715
8808
|
const type = params["type"];
|
|
8716
8809
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8717
|
-
const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-
|
|
8810
|
+
const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8718
8811
|
if (pauseGracePeriod(project, type)) return jsonResponse({
|
|
8719
8812
|
success: true,
|
|
8720
8813
|
message: "Grace period paused"
|
|
@@ -8726,7 +8819,7 @@ const postProjectSpecialistGraceResumeRoute = HttpRouter.add("POST", "/api/speci
|
|
|
8726
8819
|
const project = params["project"];
|
|
8727
8820
|
const type = params["type"];
|
|
8728
8821
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8729
|
-
const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-
|
|
8822
|
+
const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8730
8823
|
if (resumeGracePeriod(project, type)) return jsonResponse({
|
|
8731
8824
|
success: true,
|
|
8732
8825
|
message: "Grace period resumed"
|
|
@@ -8738,7 +8831,7 @@ const postProjectSpecialistGraceExitRoute = HttpRouter.add("POST", "/api/special
|
|
|
8738
8831
|
const project = params["project"];
|
|
8739
8832
|
const type = params["type"];
|
|
8740
8833
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8741
|
-
const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-
|
|
8834
|
+
const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8742
8835
|
exitGracePeriod(project, type);
|
|
8743
8836
|
return jsonResponse({
|
|
8744
8837
|
success: true,
|
|
@@ -8750,7 +8843,7 @@ const getProjectSpecialistGraceRoute = HttpRouter.add("GET", "/api/specialists/:
|
|
|
8750
8843
|
const project = params["project"];
|
|
8751
8844
|
const type = params["type"];
|
|
8752
8845
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8753
|
-
const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-
|
|
8846
|
+
const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8754
8847
|
const state = getGracePeriodState(project, type);
|
|
8755
8848
|
if (state) return jsonResponse(state);
|
|
8756
8849
|
else return jsonResponse({ error: "No active grace period" }, { status: 404 });
|
|
@@ -8759,7 +8852,7 @@ const getProjectSpecialistContextRoute = HttpRouter.add("GET", "/api/specialists
|
|
|
8759
8852
|
const params = yield* HttpRouter.params;
|
|
8760
8853
|
const project = params["project"];
|
|
8761
8854
|
const type = params["type"];
|
|
8762
|
-
const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-
|
|
8855
|
+
const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-_ootmzn2.js"));
|
|
8763
8856
|
const digest = loadContextDigest(project, type);
|
|
8764
8857
|
if (digest) return jsonResponse({ digest });
|
|
8765
8858
|
else return jsonResponse({ error: "No context digest found" }, { status: 404 });
|
|
@@ -8768,7 +8861,7 @@ const postProjectSpecialistContextRegenerateRoute = HttpRouter.add("POST", "/api
|
|
|
8768
8861
|
const params = yield* HttpRouter.params;
|
|
8769
8862
|
const project = params["project"];
|
|
8770
8863
|
const type = params["type"];
|
|
8771
|
-
const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-
|
|
8864
|
+
const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-_ootmzn2.js"));
|
|
8772
8865
|
const digest = yield* regenerateContextDigest(project, type);
|
|
8773
8866
|
if (digest) return jsonResponse({
|
|
8774
8867
|
digest,
|
|
@@ -8787,7 +8880,7 @@ const postProjectSpecialistCompleteRoute = HttpRouter.add("POST", "/api/speciali
|
|
|
8787
8880
|
"blocked"
|
|
8788
8881
|
].includes(status)) return jsonResponse({ error: "Valid status (passed/failed/blocked) is required" }, { status: 400 });
|
|
8789
8882
|
if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
|
|
8790
|
-
const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-
|
|
8883
|
+
const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
|
|
8791
8884
|
signalSpecialistCompletion(project, type, {
|
|
8792
8885
|
status,
|
|
8793
8886
|
notes
|
|
@@ -8821,8 +8914,8 @@ const postProjectSpecialistLogsCleanupRoute = HttpRouter.add("POST", "/api/speci
|
|
|
8821
8914
|
const params = yield* HttpRouter.params;
|
|
8822
8915
|
const project = params["project"];
|
|
8823
8916
|
const type = params["type"];
|
|
8824
|
-
const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-
|
|
8825
|
-
const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-
|
|
8917
|
+
const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
|
|
8918
|
+
const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-DXgHD2Xl.js"));
|
|
8826
8919
|
const retention = getSpecialistRetention(project);
|
|
8827
8920
|
const deleted = cleanupOldLogsSync(project, type, {
|
|
8828
8921
|
maxDays: retention.max_days,
|
|
@@ -8843,7 +8936,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
|
|
|
8843
8936
|
const project = params["project"];
|
|
8844
8937
|
const issueId = params["issueId"];
|
|
8845
8938
|
const { model, harness } = yield* readJsonBody;
|
|
8846
|
-
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-
|
|
8939
|
+
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-ZdP-HmwY.js"));
|
|
8847
8940
|
const killResult = yield* killAllReviewerSessions(project, issueId);
|
|
8848
8941
|
const projectConfig = resolveProjectFromIssueSync(issueId);
|
|
8849
8942
|
if (!projectConfig) return jsonResponse({ error: `Cannot resolve project for ${issueId}` }, { status: 404 });
|
|
@@ -8859,7 +8952,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
|
|
|
8859
8952
|
}));
|
|
8860
8953
|
branch = stdout.trim() || primaryRepo.sourceBranch;
|
|
8861
8954
|
} catch {}
|
|
8862
|
-
const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-
|
|
8955
|
+
const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-ZdP-HmwY.js"));
|
|
8863
8956
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
8864
8957
|
const result = yield* spawnReviewRoleForIssue({
|
|
8865
8958
|
issueId,
|
|
@@ -8903,7 +8996,7 @@ const postProjectReviewerRoleRestartRoute = HttpRouter.add("POST", "/api/special
|
|
|
8903
8996
|
const { model } = yield* readJsonBody;
|
|
8904
8997
|
const reviewer = getAgentStateSync(reviewerId);
|
|
8905
8998
|
yield* Effect.promise(() => Effect.runPromise(killSession(reviewerId)).catch(() => void 0));
|
|
8906
|
-
const { spawnReviewSubRoleForIssue } = yield* Effect.promise(() => import("./review-agent-
|
|
8999
|
+
const { spawnReviewSubRoleForIssue } = yield* Effect.promise(() => import("./review-agent-ZdP-HmwY.js"));
|
|
8907
9000
|
const result = yield* spawnReviewSubRoleForIssue({
|
|
8908
9001
|
issueId,
|
|
8909
9002
|
workspace: parent.workspace,
|
|
@@ -9033,4 +9126,4 @@ const specialistsRouteLayer = Layer.mergeAll(specialistsLegacyRouteLayer, specia
|
|
|
9033
9126
|
//#endregion
|
|
9034
9127
|
export { resolvePolicy as $, handleConversationSwitchModel as A, waitForTmuxSession as B, conversationSessionAliveFromState as C, getDefaultCwd as Ct, handleConversationRestartAll as D, handleConversationDelete as E, spawnConversationSession as F, extractConversationAttachmentPaths as G, cleanupOrphanedConversationAttachments as H, startConversationModelBackfill as I, isManagedConversationAttachmentPath as J, getConversationAttachmentsRoot as K, stopConversationRuntime as L, resolveAllowedHarness as M, resolveRegisteredProject as N, handleConversationResume as O, shouldReportUnresolvedLiveSession as P, handleComposerCommandMessage as Q, tmuxSessionExists as R, conversationNeedsRunningRepair as S, httpHandler as St, handleConversationCreate as T, jsonStringResponse as Tt, cleanupUnreferencedConversationAttachments as U, cleanupConversationAttachments as V, ensureConversationAttachmentDir as W, runInBatches as X, removeConversationAttachment as Y, composerCommandResultHttpStatus as Z, handleConversationThinkingLevel as _, waitForSessionRespawn as _t, agentsRouteLayer as a, isInternalAgentRequest as at, resolveConversationDeliveryMethod as b, validateOrigin as bt, codexConversationPendingInput as c, panCliInvocation as ct, handleConversationCodexApproval as d, dashboardSessionCookieHeader as dt, ComposerCommandParseError as et, handleConversationCompact as f, hasDashboardInternalToken as ft, handleConversationPlanAction as g, isRespawnPending as gt, handleConversationPiAskAnswer as h, rejectUnsafeDashboardMutationRequest as ht, validateSpecialistAutoCompleteMetadata as i, invalidateAgentsCache as it, isInsideGitWorkTree as j, handleConversationStop as k, deliverConversationViaControlChannel as l, spawnPanCli as lt, handleConversationDeliveryMethod as m, rejectUnauthorizedDashboardSessionMintRequest as mt, _serverManagedMerges as n, composerCommandConfirmationFromBody as nt, saveAgentStateAndEmitEvent as o, resolveRequestedStartedBy as ot, handleConversationControlAck as p, rejectUnauthorizedDashboardRequest as pt, hasConversationAttachment as q, firePostMergeLifecycle as r, evaluateSpawnGuardrails as rt, saveAgentStateAndEmitEventProgram as s, getWorkAgentLifecycleStateSync as st, specialistsRouteLayer as t, ComposerCommandConfirmationError as tt, handleConversationAbort as u, dashboardCsrfToken as ut, isPiControlChannelHarness as v, getHeaderFromMap as vt, handleConversationClearForkState as w, jsonResponse as wt, validateConversationControlAckOrigin as x, validateOriginHeaders as xt, pickDeliverAs as y, isTrustedOriginForHost as yt, waitForPiTuiReady as z };
|
|
9035
9128
|
|
|
9036
|
-
//# sourceMappingURL=specialists-
|
|
9129
|
+
//# sourceMappingURL=specialists-COZoYaiz.js.map
|