@overdeck/desktop 0.49.1 → 0.49.2
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-Crw-xSJ3.js → acceptance-criteria-CHtDkHEL.js} +2 -2
- package/server/{active-dashboard-bundle-CLwfD-Om.js → active-dashboard-bundle-Byh6sP-q.js} +2 -2
- package/server/{activity-logger-BAVLrkR7.js → activity-logger-BWZhVphb.js} +22 -4
- package/server/activity-logger-Ck8qoluj.js +3 -0
- package/server/{advancing-selfheal-BQiJ7mIH.js → advancing-selfheal-65W4yUQi.js} +6 -6
- package/server/{agent-gc-5E0lgxI1.js → agent-gc-BNUudFnt.js} +10 -10
- package/server/agent-idle-ONBssBN_.js +745 -0
- package/server/{agent-state-Bb3UUxQm.js → agent-state-BJhGIJZe.js} +421 -135
- package/server/agent-state-CM8iVw5B.js +3 -0
- package/server/{agent-state-service-BFbttwRA.js → agent-state-service-CiIuwzIs.js} +5 -5
- package/server/{agent-state-service-keg-x1bT.js → agent-state-service-CzHfoqKQ.js} +1 -1
- package/server/agents-DpCuoF65.js +3 -0
- package/server/{agents-CqQJW75N.js → agents-jXgqpHca.js} +8 -8
- package/server/archive-planning-BW4MKNI7.js +2 -0
- package/server/{archive-planning-BwEhu9Oq.js → archive-planning-CGkU6UeL.js} +20 -135
- package/server/{artifact-index-jobs-C6Lg2rKm.js → artifact-index-jobs-Ck4NRRkY.js} +3 -3
- package/server/{assemble-DyTp2gSB.js → assemble-CyvEBmmq.js} +28 -9
- package/server/{auto-spawn-consent-BDfe4qz0.js → auto-spawn-consent-Dc4mtM-B.js} +8 -7
- package/server/{backlog-auto-trigger-DuOGpdDW.js → backlog-auto-trigger-CCEpr4YT.js} +3 -3
- package/server/{behavior-Bitko0mD.js → behavior-BiCQzqyT.js} +3 -3
- package/server/{bridge-pool-patrol-DiHEd13O.js → bridge-pool-patrol-Ce8rNPym.js} +2 -2
- package/server/{briefing-freshness-CDJcmHHZ.js → briefing-freshness-e_OEYZEe.js} +2 -2
- package/server/{build-info-DTX8JwVP.js → build-info-BRw4QlYO.js} +3 -3
- package/server/build-info-Bj2vQEMh.js +2 -0
- package/server/{checkpoint-manager-CKg1tn34.js → checkpoint-manager-CKr42Usw.js} +1 -1
- package/server/{checkpoint-manager-BlOOdzLF.js → checkpoint-manager-DOwRGFff.js} +26 -9
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-DRALkfDS.js → checkpoints-Cb6CWT4S.js} +1 -1
- package/server/{checkpoints-BGfl0cHM.js → checkpoints-Cszp_0Np.js} +2 -2
- package/server/{claude-hooks-provision-B_tv3wzE.js → claude-hooks-provision-C5JHpxTS.js} +1 -1
- package/server/{claude-hooks-provision-BlGv6twJ.js → claude-hooks-provision-Cer2eFfj.js} +2 -2
- package/server/{claude-permissions-aHgDcZi5.js → claude-permissions-Bc5kjX1q.js} +2 -2
- package/server/{claude-settings-overlay-CYOvFE3A.js → claude-settings-overlay-C7rWsnya.js} +1 -1
- package/server/{claude-settings-overlay-T2LWLteV.js → claude-settings-overlay-m-VVZej1.js} +2 -2
- package/server/cli-BRuzUT_I.js +2 -0
- package/server/{cli-Do8UpLoI.js → cli-BmczsfD6.js} +11 -11
- package/server/{cliproxy-CX6jHRDP.js → cliproxy-BpYpkogS.js} +52 -17
- package/server/cliproxy-_yUU0HRY.js +3 -0
- package/server/{close-issue-J0_eWYT1.js → close-issue-CxvRD0UI.js} +5 -5
- package/server/{closed-issue-reaper-bFppuk6F.js → closed-issue-reaper-nMLRi5de.js} +13 -12
- package/server/{closed-issue-reaper-Cl2h9AfT.js → closed-issue-reaper-omOcUDBl.js} +1 -1
- package/server/{codex-icapA4om.js → codex-DZhFfcWu.js} +1 -1
- package/server/{codex-OOea7lXs.js → codex-KaSKE-R3.js} +16 -10
- package/server/{compaction-continuation-D5voR1ME.js → compaction-continuation-Bjfi70G-.js} +3 -3
- package/server/{config-Cjleh3_U.js → config-CH1AqqIQ.js} +1 -1
- package/server/{config-DC75T4Mr.js → config-Doq_tF-f.js} +2 -2
- package/server/{config-tucKBCCc.js → config-ZGjvuR6J.js} +2 -2
- package/server/{config-yaml-BwOEANMr.js → config-yaml-D9nfpEx1.js} +33 -8
- package/server/{conflict-gate-DlpWCMd7.js → conflict-gate-D4XCtrm2.js} +1 -1
- package/server/{conflict-gate-D2L1kZeL.js → conflict-gate-DcUTY4Gb.js} +4 -4
- package/server/{context-layers-CSPGc2Hb.js → context-layers-BBTKP-Y4.js} +3 -3
- package/server/context-layers-BGj2Y9l3.js +4 -0
- package/server/{continue-U3Af0jUq.js → continue-i7Revg8D.js} +3 -3
- package/server/{control-settings-5k6ixdFW.js → control-settings-BMoDHY1G.js} +6 -6
- package/server/{conversation-compaction-CSpVpxN6.js → conversation-compaction-D4VOmF7p.js} +8 -8
- package/server/{conversation-compaction-Ciit9O6k.js → conversation-compaction-DzIjYMfg.js} +1 -1
- package/server/{conversation-service-BxrB5lUT.js → conversation-service-CzZUJFEx.js} +1 -1
- package/server/{conversation-service-BteE4ELK.js → conversation-service-tQCIbBVZ.js} +6 -6
- package/server/{conversations-DhwxsOru.js → conversations-C75EFFjf.js} +12 -7
- package/server/conversations-bFDaD5YN.js +3 -0
- package/server/{cost-Bnf9NUC5.js → cost-BCWEkvro.js} +3 -3
- package/server/{cost-CQKI6OCu.js → cost-CiIwxH1D.js} +2 -2
- package/server/{cost-sync-B-ADeXKY.js → cost-sync-DOkdE_yB.js} +3 -3
- package/server/{dag-DI9LaK_q.js → dag-BPc74hwj.js} +6 -19
- package/server/{dangerous-git-ops-akhA3iyF.js → dangerous-git-ops-By9iguTP.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-TPYssFYt.js → deacon-B24dNzr8.js} +1774 -171
- package/server/deacon-CzSZMtb-.js +4 -0
- package/server/{deacon-canonical-state-DFYymrDw.js → deacon-canonical-state-CkvxRPck.js} +3 -3
- package/server/{deacon-event-client-Te5v10-b.js → deacon-event-client-BYIQBu0T.js} +1 -1
- package/server/{deacon-event-client-BKOL4AcL.js → deacon-event-client-Do6Z2gKl.js} +2 -2
- package/server/{deacon-nudge-log-BtlTWgWu.js → deacon-nudge-log-CzM9JA9t.js} +1 -1
- package/server/{deacon-pending-lifecycle-DVHjOLje.js → deacon-pending-lifecycle-BObEdT-L.js} +3 -3
- package/server/deacon.js +11 -11
- package/server/dead-end-trip-6V_CwveT.js +2 -0
- package/server/{dead-end-trip-P0IF1O0E.js → dead-end-trip-CnVmjnya.js} +3 -3
- package/server/delivery-gyce0vQ7.js +3 -0
- package/server/{deploy-patrol-BXjlvoV3.js → deploy-patrol-CEwwEYDM.js} +8 -8
- package/server/deploy-queue-CjLErpgw.js +2 -0
- package/server/{deploy-queue-o7shYg1j.js → deploy-queue-r96ojDI3.js} +2 -2
- package/server/{deploy-window-CNT6fOff.js → deploy-window-D_3hhfxt.js} +4 -4
- package/server/{deploy-window-BMk5_oX6.js → deploy-window-DeJK8mTK.js} +1 -1
- package/server/{dev-supervisor-SR1CLOAK.js → dev-supervisor-DZWwpENk.js} +2 -2
- package/server/{devcontainer-renderer-enMmNDFa.js → devcontainer-renderer-d-9dCV_2.js} +3 -3
- package/server/{dist-CPTO_zMR.js → dist-DsLAsFSh.js} +1 -1
- package/server/dist-fCA6y2bH.js +3 -0
- package/server/{docker-B7qUZptz.js → docker-B2mUBzGk.js} +3 -3
- package/server/{docker-KR3zSFKY.js → docker-CRPHBylA.js} +1 -1
- package/server/{dod-gK835UMf.js → dod-DWtilRLx.js} +1 -1
- package/server/{done-preflight-CksRvh49.js → done-preflight-BDVdWed5.js} +1 -1
- package/server/{done-preflight-Bk8aExAL.js → done-preflight-D4ukUf-S.js} +5 -5
- package/server/{driver-CmsY2RLl.js → driver-BtcFz-qu.js} +14 -3
- package/server/{durable-review-pipeline-DgYHucN2.js → durable-review-pipeline-B3OS2_He.js} +11 -2
- package/server/durable-review-pipeline-CaCbEJSt.js +3 -0
- package/server/{ensure-devcontainer-ojerEqQg.js → ensure-devcontainer-BUeBRjmm.js} +4 -4
- package/server/{ensure-devcontainer-BQ4YizSH.js → ensure-devcontainer-rGSh0JHK.js} +1 -1
- package/server/{esm-shims-1htPASWs.js → esm-shims-oAaKIa-a.js} +1 -1
- package/server/{event-store-D7qcJXuZ.js → event-store-BCSgMubf.js} +5 -5
- package/server/{event-store-BgEjNsvk.js → event-store-Db4w4YIY.js} +1 -1
- package/server/{event-store-provider-BKvk2rDj.js → event-store-provider-DlSQND3V.js} +1 -1
- package/server/{events-BIKGJZOT.js → events-B6zioJA_.js} +3 -3
- package/server/{dist-src-BM9eudEd.js → factory-BrdqXBeK.js} +714 -2
- package/server/{feature-registry-storage-ewNSIVsQ.js → feature-registry-storage-zh3ZXW6f.js} +3 -3
- package/server/{features-CGopJXdU.js → features-BGntOWdy.js} +2 -2
- package/server/{feedback-stuck-retirement-B8-fX7NA.js → feedback-stuck-retirement-DpA5u1kt.js} +2 -2
- package/server/{feedback-target-Ci6N5p4G.js → feedback-target-D7GxdUYG.js} +10 -10
- package/server/{feedback-target-CkyLYohm.js → feedback-target-Ddqk93NF.js} +1 -1
- package/server/{feedback-writer-D4ULO4qG.js → feedback-writer-C1gCLFmp.js} +5 -5
- package/server/{feedback-writer-DfuVjvH0.js → feedback-writer-CH2846DP.js} +1 -1
- package/server/{flywheel-C7yek87O.js → flywheel-CjW2L7BS.js} +79 -29
- package/server/{flywheel-DXI_WITn.js → flywheel-HJt7QdWP.js} +1 -1
- package/server/{flywheel-merge-order-C5m5bYBc.js → flywheel-merge-order-4fNRN2F2.js} +1 -1
- package/server/{flywheel-merge-order-CXfU4M6l.js → flywheel-merge-order-D_yyAlND.js} +7 -7
- package/server/{flywheel-BwYPDlhK.js → flywheel-v1cCOBx-.js} +14 -14
- package/server/{forge-DYX9sKzG.js → forge-RVTCK_5X.js} +2 -2
- package/server/forge-bvak6vXJ.js +2 -0
- package/server/{from-DAdMxC29.js → from-BnLgKYvw.js} +1 -1
- package/server/{fs-lock-cw25uO_E.js → fs-lock-C7J-ugIf.js} +2 -2
- package/server/{fts-operations-D_rzLxX5.js → fts-operations-CU0B5WUx.js} +3 -3
- package/server/git-info-BSrI9owC.js +148 -0
- package/server/{git-utils-Y0zG25ez.js → git-utils-CsKV0Dis.js} +1 -1
- package/server/{git-utils-DV4B9TRl.js → git-utils-DW8-jIUJ.js} +4 -4
- package/server/{github-app-4UX8VIr8.js → github-app-7ywLhuZO.js} +2 -2
- package/server/{github-app-C33lDk9Z.js → github-app-Oi5hdn1n.js} +1 -1
- package/server/{github-client-nPj5ckZO.js → github-client-Cy0fSj1a.js} +1 -1
- package/server/{github-client-DkJVR908.js → github-client-DAbuXLuk.js} +3 -3
- package/server/{github-pr-lookup-C9Vokb0W.js → github-pr-lookup-Dhh3ec1V.js} +2 -2
- package/server/{harness-binary-BgXYDo2Z.js → harness-binary-tMmgJfC1.js} +2 -2
- package/server/{harness-resolve-1NZcVx7n.js → harness-resolve-DusNpVEe.js} +4 -4
- package/server/{health-events-jMfxrElt.js → health-events-BYDZ9n2i.js} +1 -1
- package/server/{health-events-DlX_FVAB.js → health-events-DNw9Mzw9.js} +2 -2
- package/server/{hooks-W3REcb3h.js → hooks-B4wj32l2.js} +1 -1
- package/server/{hooks-NQ19vvlB.js → hooks-BjBjxqNh.js} +2 -2
- package/server/{hume-BFkid2PO.js → hume-BP9YbxaE.js} +2 -2
- package/server/hume-TYTb6fDU.js +3 -0
- package/server/{identity-Bwh6VGeL.js → identity-C23uY8dZ.js} +3 -3
- package/server/{idle-stack-reaper-BeU_KxWx.js → idle-stack-reaper-BSxb1bln.js} +4 -4
- package/server/{idle-stack-reaper-CHtCNpvd.js → idle-stack-reaper-Bw0rU9GC.js} +1 -1
- package/server/{in-flight-guard-pcwXKLGz.js → in-flight-guard-DuxabAHT.js} +1 -1
- package/server/{infra-KTp9KV9u.js → infra-CHIvOb9q.js} +30 -7
- package/server/{injection-67YyU6SC.js → injection-BYUt8ml1.js} +8 -8
- package/server/{injection-BxbZKPDh.js → injection-BviePcm3.js} +1 -1
- package/server/inspect-agent-JFEaYTRa.js +2 -0
- package/server/{inspect-agent-VHSihlb7.js → inspect-agent-sV_19NxZ.js} +12 -12
- package/server/{internal-token-B-z-sGBH.js → internal-token-BOtIRJU7.js} +1 -1
- package/server/{internal-token-zY75jrRJ.js → internal-token-DoVzb4b7.js} +2 -2
- package/server/{io-DfvO2xyh.js → io-DKrWd3gX.js} +5 -5
- package/server/{issue-closed-dvEWKO7Q.js → issue-closed-6RQsAjDX.js} +7 -7
- package/server/{issue-lifecycle-3N8XF7lP.js → issue-lifecycle-D9nLErvS.js} +206 -29
- package/server/{issue-lifecycle-BI6jAfp8.js → issue-lifecycle-DOPVv7xz.js} +1 -1
- package/server/{issue-service-singleton-BN_2MXp4.js → issue-service-singleton-B2xy-IS9.js} +124 -11
- package/server/{issue-service-singleton-CL6hESX2.js → issue-service-singleton-CvgNAWqK.js} +1 -1
- package/server/issue-title-fallback-DTSCQVu0.js +120 -0
- package/server/{issues-CkvUoAnq.js → issues-e_Ck1Ln2.js} +2 -2
- package/server/{jsonl-parser-CrEb2PWr.js → jsonl-parser-DqxVCZ1k.js} +3 -3
- package/server/jsonl-resolver-07OS3qOr.js +324 -0
- package/server/{kimi-code-C26gmGxM.js → kimi-code-BjtAHIz1.js} +14 -12
- package/server/{kimi-code-DoMoGqIu.js → kimi-code-vtXl2DR5.js} +1 -1
- package/server/{kimi-parser-Dmhy3UlR.js → kimi-parser-B1lgy2Vt.js} +2 -2
- package/server/{label-cleanup-X2lWfghH.js → label-cleanup-D2zUMasf.js} +3 -3
- package/server/{lifecycle-Bg44O-9x.js → lifecycle-0NOEzomy.js} +2 -2
- package/server/{lifecycle-B0rL38D3.js → lifecycle-DaCovZwn.js} +6 -6
- package/server/{lifecycle-io-CCBpRv5m.js → lifecycle-io-6WL46dsB.js} +5 -5
- package/server/{lifecycle-io-DQDU0apV.js → lifecycle-io-BBMTaP7S.js} +1 -1
- package/server/{linear-client-B0cIkTs4.js → linear-client-7fQThJTc.js} +3 -3
- package/server/{linear-client-6V2E-DSa.js → linear-client-BTGApNLo.js} +1 -1
- package/server/{linear-mcp-auth-LCo9AWUd.js → linear-mcp-auth-B8pYRsiU.js} +1 -1
- package/server/{linear-mcp-auth-Dsu9Io9r.js → linear-mcp-auth-Nk5s3L9M.js} +5 -5
- package/server/memory-fts-worker.js +1 -1
- package/server/{memory-governor-A4O6vI9d.js → memory-governor-Cqvbusr4.js} +14 -14
- package/server/{memory-pressure-patrol-BWlWywmA.js → memory-pressure-patrol-DPb8foam.js} +5 -5
- package/server/{merge-BGWcBxku.js → merge-BB_bjJ9a.js} +1 -1
- package/server/{merge-vz80RvSE.js → merge-FZ78_cEz.js} +3 -3
- package/server/{merge-agent-GWhmnxFk.js → merge-agent-B3jRrlS1.js} +37 -33
- package/server/{merge-agent-BRSz26Oh.js → merge-agent-BuoC_PRZ.js} +2 -2
- package/server/{merge-batch-CFMEtTxv.js → merge-batch-B8bVjFWS.js} +1 -1
- package/server/{merge-completeness-CP347umA.js → merge-completeness-DQt7Qa7i.js} +4 -4
- package/server/{merge-completeness-7ajHAIR-.js → merge-completeness-DkdabVch.js} +1 -1
- package/server/merge-ops-DabXHp2i.js +2 -0
- package/server/merge-rebase-CXq0qsgR.js +2 -0
- package/server/{merge-rebase-C5htyEEH.js → merge-rebase-qq40s91P.js} +2 -2
- package/server/{merge-set-DsGW8fmc.js → merge-set-BTNYvxM3.js} +1 -1
- package/server/{merge-set-eiE2nC6C.js → merge-set-BmRRflt0.js} +4 -4
- package/server/{merge-sync-CM2-myXu.js → merge-sync-0m2Q087q.js} +1 -1
- package/server/{merge-sync-Ct0-cxMX.js → merge-sync-CJpOa0cZ.js} +2 -2
- package/server/{merge-train-deps-LXHGK61n.js → merge-train-deps-CH5Mr3vN.js} +4 -4
- package/server/{merge-train-BOu3fN7O.js → merge-train-iwKqjtCF.js} +4 -4
- package/server/{merge-verification-BRp08IzI.js → merge-verification-JJc5GC2t.js} +6 -6
- package/server/{merged-docker-cleanup-worker-CwldDjHV.js → merged-docker-cleanup-worker-BOqWA373.js} +4 -4
- package/server/{merged-docker-cleanup-worker-C8eGn78a.js → merged-docker-cleanup-worker-CrhTdxZV.js} +1 -1
- package/server/messaging-nuwStbdQ.js +3 -0
- package/server/{multipart-parser-OAuW7824.js → multipart-parser-DxuW_rZV.js} +2 -2
- package/server/{no-resume-mode-MWI6pnrK.js → no-resume-mode-xuYLFhLw.js} +1 -1
- package/server/node_modules/.package-lock.json +11 -11
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/AGENTS.md +14 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/CLAUDE.md +14 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +10 -3
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/10_basics.ts +175 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/index.md +6 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/10_basics.ts +3 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/20_testing.ts +100 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/api/Users.ts +30 -14
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/domain/User.ts +15 -6
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +11 -10
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +41 -32
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users.ts +141 -20
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +27 -3
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +10 -9
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js +10 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts +4 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts.map +1 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js +10 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js.map +1 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +16 -11
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocketServer.ts +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeStream.ts +10 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/internal/nodeChildProcessSpawner.ts +16 -0
- package/server/node_modules/ansi-regex/index.js +3 -2
- package/server/node_modules/ansi-regex/package.json +1 -1
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +3 -3
- package/server/{orphan-proposed-reconciler-cV3URUqk.js → orphan-proposed-reconciler-Dmk0kO_p.js} +24 -23
- package/server/{orphan-proposed-reconciler-BAE5AZ_e.js → orphan-proposed-reconciler-gf4TxfZb.js} +2 -2
- package/server/package-lock.json +12 -12
- package/server/package.json +1 -1
- package/server/{pan-dir-DDd91kMb.js → pan-dir-BMda7tQj.js} +5 -5
- package/server/{deacon-merge-BOGFEV8_.js → parked-residue-BiHb8cD7.js} +150 -35
- package/server/{paths-CRLnDgcI.js → paths-DEe9j-kw.js} +2 -2
- package/server/{pending-lifecycle-claim-CYgMiDAP.js → pending-lifecycle-claim-J5uIIJPu.js} +2 -2
- package/server/{pickup-BjJsSX12.js → pickup-D1UbSDPd.js} +1 -1
- package/server/{pipeline-agent-reader-BLc43dVJ.js → pipeline-agent-reader-D-6okryb.js} +5 -5
- package/server/{pipeline-membership-5qlRz5Qg.js → pipeline-membership-CCbgBzNC.js} +1 -1
- package/server/{pipeline-membership-BHZp_ShY.js → pipeline-membership-PGX3Pe8V.js} +1 -1
- package/server/{pipeline-membership-gather-CGFY1v-y.js → pipeline-membership-gather-BK4dzh0X.js} +17 -12
- package/server/{pipeline-membership-gather-WhRc1yke.js → pipeline-membership-gather-BRhU7XPx.js} +1 -1
- package/server/{pipeline-notifier-BmsLWM_2.js → pipeline-notifier-BNAV9kpa.js} +2 -2
- package/server/{pipeline-notifier-C4fZ2ito.js → pipeline-notifier-DvHLaXKb.js} +1 -1
- package/server/{post-merge-lifecycle-worker-KK1RTKRE.js → post-merge-lifecycle-worker-DAWgzXQA.js} +3 -3
- package/server/{post-merge-state-_Lj3LDLh.js → post-merge-state-DC2_0t12.js} +4 -4
- package/server/prd-locations-BbAvqQmT.js +124 -0
- package/server/{project-pipelines-CCkebHOu.js → project-pipelines-By_5WcT4.js} +2 -2
- package/server/{project-repos-B4MK48j4.js → project-repos--QeCg7yQ.js} +29 -3
- package/server/project-repos-3bI6t4fO.js +3 -0
- package/server/project-resource-refresh-queue-BaZC79S3.js +2 -0
- package/server/project-resource-refresh-queue-x-K9mvpP.js +865 -0
- package/server/{projects-DvPEAP18.js → projects-LftaVK99.js} +1 -1
- package/server/{prompts-BiS5I2tZ.js → prompts-BotGu-6W.js} +2 -2
- package/server/{providers-DrfK0Ip8.js → providers-BL1I66sM.js} +7 -7
- package/server/providers-Dqgz3MY5.js +3 -0
- package/server/public/assets/{chunk-BO2N2NFS-GtVe_o56.js → chunk-BO2N2NFS-D5Fz5jND.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-BvhcYYHc.js → diagram-OG6HWLK6-Eux0gWFq.js} +1 -1
- package/server/public/assets/{dist-D0ryefak.js → dist-C3zShwhA.js} +1 -1
- package/server/public/assets/{dist-CSmUXazd.js → dist-D-JX_u7m.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BXA51DzM.js → ganttDiagram-6RSMTGT7-UH3aweia.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-mlV4EpWt.js → highlighted-body-OFNGDK62-ccIQ-WXS.js} +1 -1
- package/server/public/assets/index-2wV4ipy_.css +1 -0
- package/server/public/assets/index-BTVcdPve.js +860 -0
- package/server/public/assets/{linear-BPE7oswm.js → linear-Cnnu4YQy.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-Bjto8iJh.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BguGGV3S.js → pieDiagram-4H26LBE5-BD8-Tye6.js} +1 -1
- package/server/public/assets/{prod-aKDYUrXQ.js → prod-Ca6aKMts.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Bx3i4B6H.js → quadrantDiagram-W4KKPZXB-BmSrVyFD.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-B5vuLjA4.js → sankeyDiagram-5OEKKPKP-CEGy8Das.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-HPlpkqsN.js → xychartDiagram-2RQKCTM6-VnQ8iY8s.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-BcHIsFJv.js → pull-requests-Cp_FDT8-.js} +3 -3
- package/server/pull-requests-jVGcVq5G.js +2 -0
- package/server/rally-CxhVgIQ6.js +3 -0
- package/server/{rally-api-ShZ4kvn0.js → rally-api-CqAIJ8RX.js} +2 -2
- package/server/{rally-api-u_vkr5c_.js → rally-api-Ij1Zt0NI.js} +1 -1
- package/server/{rally-B1OMtzch.js → rally-bQpBzUNf.js} +3 -3
- package/server/{rally-client-DgZvUZqX.js → rally-client-CN5vh4Ac.js} +1 -1
- package/server/{rally-client-D6Feq1Ka.js → rally-client-qKbCNRVW.js} +5 -5
- package/server/{reap-terminal-sessions-CRfiXLY0.js → reap-terminal-sessions-BaDSNR-k.js} +2 -2
- package/server/{reap-terminal-sessions-D7f3zSE9.js → reap-terminal-sessions-DgEIKMhH.js} +2 -2
- package/server/{rebuild-stack-DKxOnkpE.js → rebuild-stack-BNOMVh7C.js} +7 -7
- package/server/{rebuild-stack-CCwKHZb6.js → rebuild-stack-DrMyA_mA.js} +2 -2
- package/server/{reconstruct-cache-BP8UIKt7.js → reconstruct-cache-mxIYCnqs.js} +7 -7
- package/server/{record-By-wp6pg.js → record-Ug18Cp4V.js} +1 -1
- package/server/{record-update-ByGtIlUK.js → record-update-WyhsREoH.js} +1 -1
- package/server/{record-update-D23jPU6b.js → record-update-dBGxL9OC.js} +8 -6
- package/server/{recovery-trip-C4dTl8DO.js → recovery-trip-BKLrL6NX.js} +43 -10
- package/server/{recovery-trip-qloOYOFz.js → recovery-trip-wFAixKsg.js} +1 -1
- package/server/{release-engine-Crc0Tjx-.js → release-engine-D9gaCBn9.js} +5 -5
- package/server/{release-set-DDXwbIK7.js → release-set-DPHHzEGx.js} +3 -3
- package/server/{remote-CBpLi4Yy.js → remote-BU6ONLpv.js} +3 -3
- package/server/{remote-oEMfXlwT.js → remote-BUEeUic6.js} +3 -3
- package/server/{remote-agents-DQVGZVQ9.js → remote-agents-BVtASiOF.js} +1 -1
- package/server/{remote-agents-Bgtc2nOO.js → remote-agents-CSaTLi3u.js} +6 -6
- package/server/{remote-completion-DxUJ5HKR.js → remote-completion-CBV3b9TI.js} +13 -13
- package/server/{resolver-C8rooxoz.js → resolver-DvSMXty7.js} +31 -8
- package/server/{resolver-CuAULbLs.js → resolver-gxv97jsQ.js} +2 -2
- package/server/resume-DvHuF-bm.js +3 -0
- package/server/review-agent-DgkUPRx0.js +3 -0
- package/server/{review-agent-7C2w5CzU.js → review-agent-esZ0QXdY.js} +43 -55
- package/server/{review-artifacts-BJeEfm2r.js → review-artifacts-DGGEobLp.js} +6 -6
- package/server/{review-convoy-liveness-DfF9eXjI.js → review-convoy-liveness-DmO8dIBH.js} +20 -11
- package/server/{review-run-recovery-7BKt2Es0.js → review-run-recovery-Ct0q7FkE.js} +3 -3
- package/server/{review-run-recovery-ZjuDTNhZ.js → review-run-recovery-DHiiw7d8.js} +1 -1
- package/server/{review-status-CUnjjOUu.js → review-status-C_kQeeX0.js} +1 -1
- package/server/{review-status-emit-Cg4tOb8U.js → review-status-emit-BZz1Y_22.js} +3 -3
- package/server/{review-status-enrichment-D-rQshu6.js → review-status-enrichment-BWH0XW_m.js} +3 -3
- package/server/{review-status-source-DSn0glLa.js → review-status-source-D2PCWS6E.js} +1 -1
- package/server/{review-status-source-Ct912fv_.js → review-status-source-Jq0BXmn3.js} +1 -1
- package/server/{review-status-sync-B7V_Gg51.js → review-status-sync-2C9lk85r.js} +2 -2
- package/server/{review-status-sync-YthpOH_q.js → review-status-sync-Bq00Loey.js} +1 -1
- package/server/{review-status-DBnR5t4z.js → review-status-yOGD2MuK.js} +86 -27
- package/server/{review-verdict-feedback-DqXTuJk8.js → review-verdict-feedback-Brjaxoda.js} +1 -1
- package/server/{review-verdict-feedback-C-dBon_-.js → review-verdict-feedback-CE_tr2iQ.js} +8 -8
- package/server/{review-verdict-writer-jldSh3Bm.js → review-verdict-writer-CD-4kDVx.js} +1 -1
- package/server/{review-verdict-writer-CKaJWp75.js → review-verdict-writer-Ca2V7QSY.js} +7 -7
- package/server/{rollup-DZwH4CLs.js → rollup--g9ik1XQ.js} +1 -1
- package/server/{rollup-QCwYcBdP.js → rollup-B6g9Nr6L.js} +8 -8
- package/server/{scanner-2aHeLC3W.js → scanner-YxIv-fG1.js} +8 -8
- package/server/{search-DwHYaj66.js → search-DqMN4__-.js} +2 -2
- package/server/{secret-redaction-B5G1xZ3k.js → secret-redaction-DLZ-VqHq.js} +1 -1
- package/server/{sequence-io-POKWdusG.js → sequence-io--b3_PsWq.js} +4 -4
- package/server/{sequencer-agent-DS00KHVm.js → sequencer-agent-CqouKVZG.js} +6 -6
- package/server/server.js +1115 -1269
- package/server/{service-BLb_CyPL.js → service-CEp-3iow.js} +64 -63
- package/server/{session-fork-DcTzVwex.js → session-fork-GtoeCh2H.js} +2 -2
- package/server/{settings-Clw8UVNs.js → settings-CLQcdkoD.js} +2 -2
- package/server/{settings-B9-H2K_E.js → settings-Ch2pCVtt.js} +3 -3
- package/server/settings-DhtPDmmI.js +2 -0
- package/server/{shadow-engineering-C6oO_PiR.js → shadow-engineering-BxiFrIKv.js} +3 -3
- package/server/{shadow-state-CEGrrECe.js → shadow-state-CSA1vtxr.js} +2 -2
- package/server/{shadow-state-e7250VUx.js → shadow-state-nGhCNXT2.js} +1 -1
- package/server/{shadow-utils-xFk2Wusb.js → shadow-utils-7q5QDmMj.js} +2 -2
- package/server/{ship-log-7BnQHuKU.js → ship-log-ie0A_SqV.js} +1 -1
- package/server/{ship-record-CwUX6Afo.js → ship-record-BM3oVvnL.js} +7 -7
- package/server/{ship-record-BgUPnpT0.js → ship-record-DHWH1hLz.js} +1 -1
- package/server/{ship-status-Ce3_3edi.js → ship-status-BEkddXMT.js} +2 -2
- package/server/{smart-compaction-BmfIi3oL.js → smart-compaction-BkzjVpWL.js} +1 -1
- package/server/{smart-compaction-Dy0gw1VH.js → smart-compaction-D0TE1lBD.js} +7 -7
- package/server/{spawn-planning-session-nH3b4Drz.js → spawn-planning-session-CkGweSCC.js} +19 -19
- package/server/{spawn-planning-session-CfhxRJoY.js → spawn-planning-session-s406rw1N.js} +2 -2
- package/server/{specialist-completion-CC1XJbTx.js → specialist-completion-CTAjwH5j.js} +1 -1
- package/server/{specialist-context-cHwpcXSh.js → specialist-context-CKasRfYu.js} +5 -5
- package/server/{specialist-handoff-logger-GqnGSYoJ.js → specialist-handoff-logger-DrjrOmmn.js} +2 -2
- package/server/{specialist-logs-5OTnrV91.js → specialist-logs-Du6quZ0_.js} +3 -3
- package/server/{specialists-xXcJHAyg.js → specialists-B-4zyE4Y.js} +1 -1
- package/server/{specialists-8LcQi9Np.js → specialists-CuDWiNdB.js} +21 -272
- package/server/{specialists-DocAK-7A.js → specialists-b0dMMjWq.js} +148 -685
- package/server/specialists-registry-1y6Rt_F1.js +3 -0
- package/server/specialists-registry-BYjs04iK.js +277 -0
- package/server/specialists-x-kPMhrL.js +4 -0
- package/server/specs-IYsFlM-L.js +3 -0
- package/server/{src-DudQNYVw.js → src-CY2Wl8IX.js} +337 -6
- package/server/{src-C2TAxwki.js → src-CZsPs61V.js} +6 -6
- package/server/{src-DUVvEA8Q.js → src-DeQwpuh6.js} +3 -3
- package/server/{stack-health-DKT4ySnA.js → stack-health-BQFSJc0l.js} +3 -3
- package/server/{stack-health-CbyiYS9H.js → stack-health-ypIKtkbE.js} +1 -1
- package/server/{stale-task-claims-PzFee70R.js → stale-task-claims-C2e1zdMT.js} +5 -5
- package/server/{staleness-BjOAq9-d.js → staleness-CRDK6LFG.js} +1 -1
- package/server/{staleness-D8UTEXV5.js → staleness-Fzx_3_Hr.js} +1 -1
- package/server/{stall-sweeper-DOyIfeLR.js → stall-sweeper-QNk4h9m6.js} +8 -8
- package/server/{state-home-DhAZlk5k.js → state-home-DdG8erBI.js} +2 -2
- package/server/{state-mapping-BVSs84bO.js → state-mapping-D2yC81Vy.js} +1 -1
- package/server/{state-migrate-CJKEwpB0.js → state-migrate-C6H3jfHE.js} +6 -6
- package/server/{state-mirror-Do7pag7W.js → state-mirror-DF4Lfxm0.js} +3 -3
- package/server/stuck-remediation-BDa_tXgB.js +774 -0
- package/server/stuck-remediation-BVNd9txd.js +2 -0
- package/server/{substrate-bug-weights-service-BTNjHBnl.js → substrate-bug-weights-service-BbbCZEtJ.js} +3 -3
- package/server/{summary-fork-CZ88rhVx.js → summary-fork-BvcW6bq0.js} +113 -30
- package/server/{summary-fork-CvB7Oyq9.js → summary-fork-DIQmtOuV.js} +2 -2
- package/server/supervisor/{pane-composer-BaLLspSj.js → pane-composer-CoiVkGIt.js} +8 -1
- package/server/supervisor/{paths-D6XUcR_g.js → paths-DTGbtcaP.js} +8 -4
- package/server/supervisor/pty-supervisor.js +3 -3
- package/server/supervisor/{pty-token-DjjHxoCq.js → pty-token-GVqnvU3U.js} +2 -2
- package/server/{supervisor-D4v0WfiQ.js → supervisor-D3jC2c7A.js} +4 -4
- package/server/supervisor-v0cYN2Vp.js +2 -0
- package/server/{swarm-readiness-D8R-LWX5.js → swarm-readiness-CMWAQuWM.js} +3 -3
- package/server/{synthesis-verdict-B6wvLGcA.js → synthesis-verdict-C-pJOPsn.js} +1 -1
- package/server/{synthesis-verdict-N5Z11pg7.js → synthesis-verdict-DVlrLF9A.js} +2 -2
- package/server/{system-prerequisites-BbGZ_WHF.js → system-prerequisites-QKtIYXI2.js} +2 -2
- package/server/{teardown-workspace-CYend-KY.js → teardown-workspace-cJea1OLo.js} +16 -16
- package/server/{test-agent-queue-BUtWhNcc.js → test-agent-queue-C5DI_gWX.js} +6 -6
- package/server/{test-verdict-BWm3hgDj.js → test-verdict-C7kmd2_Y.js} +1 -1
- package/server/{test-verdict-BWtRmdiR.js → test-verdict-DUbDHqeD.js} +2 -2
- package/server/{tldr-daemon-CneJ24eL.js → tldr-daemon-BNQHwblU.js} +1 -1
- package/server/{tldr-daemon-CMVBT4kT.js → tldr-daemon-CO08YlfQ.js} +2 -2
- package/server/tmux-B8zsqD_6.js +4 -0
- package/server/{tmux-BqXzRuaH.js → tmux-DWEc4Ld9.js} +91 -19
- package/server/{token-CO3INKbh.js → token-Bez-qCB2.js} +2 -2
- package/server/{token-util-DyJJyX_B.js → token-util-Crcay9j_.js} +1 -1
- package/server/token-util-DfUS3Lpp.js +3 -0
- package/server/{tracker-config-DVzhaUxO.js → tracker-config-CJzPhSHv.js} +2 -2
- package/server/{tracker-utils-xnVJVrrO.js → tracker-utils-DJAOAuMN.js} +2 -2
- package/server/{traefik-connect-A5k54mCv.js → traefik-connect-D3H5I6b9.js} +1 -1
- package/server/{tunnel-DauSR-rs.js → tunnel-BSdKnW0U.js} +1 -1
- package/server/{tunnel-CwOnS-PB.js → tunnel-Cr3ctqxp.js} +3 -3
- package/server/{typed-errors-B-gfU2RB.js → typed-errors-CZ3GFBvo.js} +1 -1
- package/server/{typed-errors-DzC4zXbI.js → typed-errors-DXqf3RnP.js} +1 -1
- package/server/{types-DjpLVpsj.js → types-fzBp9cYi.js} +1 -1
- package/server/{types-DbxY2QB6.js → types-pLpbsNto.js} +1 -1
- package/server/{uat-failure-feedback-BVqsWlrr.js → uat-failure-feedback-IZQ-J8jt.js} +5 -5
- package/server/{uat-promote-verification-DmG097QS.js → uat-promote-verification-DXApKcc2.js} +5 -5
- package/server/{uat-train-COSy-vEX.js → uat-train-CycEzpbE.js} +1 -1
- package/server/{uat-train-DVUNW03P.js → uat-train-IIZlz7r3.js} +0 -0
- package/server/{validate-Dvv83iBx.js → validate-Ur4xH5bN.js} +3 -3
- package/server/{validation-BdCjzWLN.js → validation-CHovCoTT.js} +1 -1
- package/server/{validation-DlHafKzu.js → validation-Dr6V4PXx.js} +9 -6
- package/server/{verification-artifact-CaSbxUVg.js → verification-artifact-D3viYe_t.js} +1 -1
- package/server/{verification-artifact-0Zku8N-W.js → verification-artifact-k5Ftpg0c.js} +1 -1
- package/server/{verification-runner-C6wdZda2.js → verification-runner-BuqGwm2t.js} +1 -1
- package/server/{verification-runner-DwP2fUEF.js → verification-runner-Dl13mmsI.js} +53 -27
- package/server/{vtt-parser-luerJpYT.js → vtt-parser-BSnAB-Og.js} +1 -1
- package/server/work-agent-prompt-CJJ4tXci.js +3 -0
- package/server/{work-agent-prompt--9AWNYwZ.js → work-agent-prompt-CioeOuM4.js} +14 -14
- package/server/{work-agent-start-BNQO65W7.js → work-agent-start-B65Gqn9N.js} +2 -2
- package/server/{work-agent-start-DkzseQFl.js → work-agent-start-Ct1HVh6z.js} +1 -1
- package/server/{workflows-BYwR2aIN.js → workflows-AgFul1xc.js} +114 -41
- package/server/workflows-CfHm8lVd.js +2 -0
- package/server/{workspace-B-QJa3Ps.js → workspace-Cu3XlMXt.js} +1 -1
- package/server/{workspace-iTnTycOB.js → workspace-Cy4sDd3q.js} +3 -3
- package/server/{workspace-anchor-drift-DTt6h2Em.js → workspace-anchor-drift-BI0Hz6zI.js} +1 -1
- package/server/{workspace-anchor-drift-CHiGg8iu.js → workspace-anchor-drift-CMaqvizr.js} +4 -4
- package/server/{workspace-config-D0CavVtz.js → workspace-config-DRYDO7Zr.js} +1 -1
- package/server/{workspace-manager-W1OnbvU5.js → workspace-manager-CgovxDrO.js} +17 -17
- package/server/{workspace-manager-5BKPV6SY.js → workspace-manager-jfkKAEuO.js} +1 -1
- package/server/{workspace-metadata-tbbevEmP.js → workspace-metadata-BDqXzGGK.js} +1 -1
- package/server/{workspace-metadata-dJhXvZGQ.js → workspace-metadata-BNzODIv6.js} +2 -2
- package/server/{workspaces-BlpbOPZ7.js → workspaces-BJdPqx_J.js} +131 -127
- package/sync-sources/dev-skills/pan-style-guide/SKILL.md +90 -15
- package/sync-sources/hooks/linear-mcp-auth-hook +6 -1
- package/sync-sources/rules/handoff-isolate-cwd.md +4 -4
- package/sync-sources/rules/pan-handoff-focus-limit.md +12 -5
- package/sync-sources/rules/ste-writing.md +17 -0
- package/sync-sources/rules/work-agents-via-pan.md +2 -1
- package/sync-sources/rules/writing-style.md +3 -2
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/SKILL.md +1 -1
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/init_skill.py +1 -1
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/package_skill.py +1 -1
- package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +182 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/PROMPT.template.md +92 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/REFERENCE-BAR.template.md +53 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/STYLE.template.md +41 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/gauntlet-index.html +237 -0
- package/sync-sources/skills/pan-gauntlet-loop/references/domains.md +106 -0
- package/sync-sources/skills/pan-gauntlet-loop/references/lessons.md +60 -0
- package/sync-sources/skills/pan-handoff/SKILL.md +13 -6
- package/sync-sources/skills/pan-help/SKILL.md +1 -1
- package/sync-sources/skills/pan-peer-review/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +6 -3
- package/sync-sources/skills/pan-start/SKILL.md +3 -0
- package/sync-sources/skills/pan-swarm/SKILL.md +32 -44
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/server/activity-logger-BejO16Am.js +0 -3
- package/server/agent-state-DH_-Jkua.js +0 -3
- package/server/agents-megfmQHM.js +0 -3
- package/server/archive-planning-C-H9cM_J.js +0 -2
- package/server/build-info-PQlh_Rhb.js +0 -2
- package/server/cli-TaZspPHS.js +0 -2
- package/server/cliproxy-36ncAXlu.js +0 -3
- package/server/context-layers-CF6zHws4.js +0 -4
- package/server/conversations-AnGJ5rtX.js +0 -3
- package/server/deacon-BEH-IY0v.js +0 -5
- package/server/deacon-swarm-BHX-kR1b.js +0 -2
- package/server/deacon-swarm-BiLfNm_v.js +0 -1522
- package/server/dead-end-trip-BWpDg1Qd.js +0 -2
- package/server/delivery-cJM6zRjJ.js +0 -3
- package/server/deploy-queue-CmVBZEja.js +0 -2
- package/server/dist-VKBfkdi7.js +0 -3
- package/server/durable-review-pipeline-DgcVCYDL.js +0 -3
- package/server/factory-D4V2wd_V.js +0 -717
- package/server/forge-CrP1L3i6.js +0 -2
- package/server/hume-1ubD_6O7.js +0 -3
- package/server/inspect-agent-CfxERkNt.js +0 -2
- package/server/merge-ops-DtHx17Vd.js +0 -2
- package/server/merge-rebase-BvB4UuNS.js +0 -2
- package/server/project-repos-BJiShUsN.js +0 -3
- package/server/providers-CStNGwze.js +0 -3
- package/server/public/assets/index-BFEwfmqX.js +0 -860
- package/server/public/assets/index-_USwyTAT.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-Dsln95SK.js +0 -1
- package/server/pull-requests-C1Cqp2yo.js +0 -2
- package/server/rally-CjayjUIl.js +0 -3
- package/server/resume-D7JuMCRQ.js +0 -3
- package/server/review-agent-BUNTVJK2.js +0 -2
- package/server/settings-DBWB1gsG.js +0 -2
- package/server/specialists-D8gsOCwh.js +0 -3
- package/server/specs-BqkrRnU9.js +0 -3
- package/server/stuck-remediation-Di5JYkoo.js +0 -1164
- package/server/stuck-remediation-TNM1VhZb.js +0 -2
- package/server/supervisor-DX8VsPnb.js +0 -2
- package/server/tmux-CqNapnrr.js +0 -4
- package/server/token-util-Bu8bPF9f.js +0 -3
- package/server/workflows-Cf4LAnhg.js +0 -2
package/server/{feature-registry-storage-ewNSIVsQ.js → feature-registry-storage-zh3ZXW6f.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as openDatabase, t as init_driver } from "./driver-
|
|
2
|
+
import { Li as getOverdeckHome, Ri as init_paths } from "./config-yaml-D9nfpEx1.js";
|
|
3
|
+
import { n as openDatabase, t as init_driver } from "./driver-BtcFz-qu.js";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { mkdirSync } from "node:fs";
|
|
6
6
|
import { randomUUID } from "node:crypto";
|
|
@@ -263,4 +263,4 @@ var init_feature_registry_storage = __esmMin((() => {
|
|
|
263
263
|
//#endregion
|
|
264
264
|
export { listFeatureRegistryEntries as n, updateFeatureRegistryOwnership as r, init_feature_registry_storage as t };
|
|
265
265
|
|
|
266
|
-
//# sourceMappingURL=feature-registry-storage-
|
|
266
|
+
//# sourceMappingURL=feature-registry-storage-zh3ZXW6f.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { p as loadConfigSync, t as init_config_yaml } from "./config-yaml-
|
|
2
|
+
import { p as loadConfigSync, t as init_config_yaml } from "./config-yaml-D9nfpEx1.js";
|
|
3
3
|
//#region ../../lib/background-ai/features.ts
|
|
4
4
|
/**
|
|
5
5
|
* The single gate every background AI caller must consult before invoking a
|
|
@@ -18,4 +18,4 @@ var init_features = __esmMin((() => {
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { isBackgroundFeatureEnabled as n, init_features as t };
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=features-
|
|
21
|
+
//# sourceMappingURL=features-BGntOWdy.js.map
|
package/server/{feedback-stuck-retirement-B8-fX7NA.js → feedback-stuck-retirement-DpA5u1kt.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as loadReviewStatuses, o as clearWorkspaceStuck, p as init_review_status } from "./review-status-
|
|
1
|
+
import { h as loadReviewStatuses, o as clearWorkspaceStuck, p as init_review_status } from "./review-status-yOGD2MuK.js";
|
|
2
2
|
//#region ../../lib/cloister/feedback-stuck-retirement.ts
|
|
3
3
|
init_review_status();
|
|
4
4
|
/**
|
|
@@ -18,4 +18,4 @@ function retireResolvedFeedbackDeliveryStuckFlags() {
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { retireResolvedFeedbackDeliveryStuckFlags };
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=feedback-stuck-retirement-
|
|
21
|
+
//# sourceMappingURL=feedback-stuck-retirement-DpA5u1kt.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { On as resolveProjectFromIssueSync, Y as init_record, fn as init_projects, on as getProjectSync, tt as readIssueRecordSync } from "./config-yaml-
|
|
3
|
-
import { a as updateIssueRecord, i as init_record_update } from "./record-update-
|
|
4
|
-
import {
|
|
2
|
+
import { On as resolveProjectFromIssueSync, Y as init_record, fn as init_projects, on as getProjectSync, tt as readIssueRecordSync } from "./config-yaml-D9nfpEx1.js";
|
|
3
|
+
import { a as updateIssueRecord, i as init_record_update } from "./record-update-dBGxL9OC.js";
|
|
4
|
+
import { C as init_tmux, U as sessionExists, j as listSessionNames } from "./tmux-DWEc4Ld9.js";
|
|
5
5
|
import { r as readFeedbackAgentStates, t as init_agent_state_source } from "./agent-state-source-69g8dqMg.js";
|
|
6
|
-
import { a as init_continue, r as getReadableWorkspacePanPaths } from "./continue-
|
|
6
|
+
import { a as init_continue, r as getReadableWorkspacePanPaths } from "./continue-i7Revg8D.js";
|
|
7
7
|
import { Effect } from "effect";
|
|
8
8
|
import { existsSync } from "fs";
|
|
9
9
|
import { join } from "path";
|
|
@@ -134,7 +134,7 @@ async function startAgentForFeedback(agentId, issueId, workspacePath) {
|
|
|
134
134
|
return false;
|
|
135
135
|
}
|
|
136
136
|
console.warn(`[feedback-target] Starting ${agentId} for ${issueId} feedback through the canonical work-agent start path`);
|
|
137
|
-
const { spawnWorkAgentThroughAgentsEndpoint } = await import("./work-agent-start-
|
|
137
|
+
const { spawnWorkAgentThroughAgentsEndpoint } = await import("./work-agent-start-Ct1HVh6z.js");
|
|
138
138
|
const result = await spawnWorkAgentThroughAgentsEndpoint(issueId, void 0, false, "resume-agent");
|
|
139
139
|
if (!result.spawned) {
|
|
140
140
|
console.warn(`[feedback-target] Failed to start ${agentId} for ${issueId} feedback: ${result.error ?? result.skippedReason ?? "unknown start failure"}`);
|
|
@@ -146,7 +146,7 @@ async function startAgentForFeedback(agentId, issueId, workspacePath) {
|
|
|
146
146
|
}
|
|
147
147
|
async function resurrectAgentForFeedback(agentId, issueId, workspacePath) {
|
|
148
148
|
try {
|
|
149
|
-
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-
|
|
149
|
+
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-CM8iVw5B.js");
|
|
150
150
|
const state = getAgentStateSync(agentId);
|
|
151
151
|
if (!state) {
|
|
152
152
|
console.warn(`[feedback-target] Cannot resume ${agentId} for ${issueId} feedback: agent registry row is missing; trying the start path`);
|
|
@@ -165,7 +165,7 @@ async function resurrectAgentForFeedback(agentId, issueId, workspacePath) {
|
|
|
165
165
|
console.warn(`[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`);
|
|
166
166
|
clearAgentTroubledSync(agentId);
|
|
167
167
|
}
|
|
168
|
-
const { resumeAgent } = await import("./resume-
|
|
168
|
+
const { resumeAgent } = await import("./resume-DvHuF-bm.js");
|
|
169
169
|
const result = await resumeAgent(agentId);
|
|
170
170
|
if (!result.success) {
|
|
171
171
|
console.warn(`[feedback-target] Failed to resume ${agentId} for ${issueId} feedback: ${result.error}; trying the start path`);
|
|
@@ -181,9 +181,9 @@ async function resurrectAgentForFeedback(agentId, issueId, workspacePath) {
|
|
|
181
181
|
}
|
|
182
182
|
async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
|
|
183
183
|
try {
|
|
184
|
-
const { markWorkspaceStuck, FEEDBACK_DELIVERY_STUCK_REASON } = await import("./review-status-
|
|
184
|
+
const { markWorkspaceStuck, FEEDBACK_DELIVERY_STUCK_REASON } = await import("./review-status-C_kQeeX0.js");
|
|
185
185
|
try {
|
|
186
|
-
const [{ getAgentStateSync }, { readLatestSynthesisVerdictAsync }] = await Promise.all([import("./agent-state-
|
|
186
|
+
const [{ getAgentStateSync }, { readLatestSynthesisVerdictAsync }] = await Promise.all([import("./agent-state-CM8iVw5B.js"), import("./synthesis-verdict-C-pJOPsn.js")]);
|
|
187
187
|
const state = getAgentStateSync(`agent-${issueId.toLowerCase()}-review`);
|
|
188
188
|
const artifact = await readLatestSynthesisVerdictAsync(issueId, {
|
|
189
189
|
runId: state?.reviewRunId,
|
|
@@ -213,4 +213,4 @@ var init_feedback_target = __esmMin((() => {
|
|
|
213
213
|
//#endregion
|
|
214
214
|
export { resolveIssueFeedbackTarget as n, surfaceIssueFeedbackNeedsYou as r, init_feedback_target as t };
|
|
215
215
|
|
|
216
|
-
//# sourceMappingURL=feedback-target-
|
|
216
|
+
//# sourceMappingURL=feedback-target-D7GxdUYG.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-
|
|
1
|
+
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-D7GxdUYG.js";
|
|
2
2
|
init_feedback_target();
|
|
3
3
|
export { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-
|
|
3
|
-
import { i as getWorkspacePanPaths } from "./continue-
|
|
4
|
-
import { c as clearFeedback, l as readFeedback, t as init_pan_dir, u as writeFeedback } from "./pan-dir-
|
|
5
|
-
import { a as init_lifecycle_io, n as appendFeedbackEntryForIssue, o as readContinueStateForIssue, r as clearFeedbackForIssue, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-
|
|
2
|
+
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-D9nfpEx1.js";
|
|
3
|
+
import { i as getWorkspacePanPaths } from "./continue-i7Revg8D.js";
|
|
4
|
+
import { c as clearFeedback, l as readFeedback, t as init_pan_dir, u as writeFeedback } from "./pan-dir-BMda7tQj.js";
|
|
5
|
+
import { a as init_lifecycle_io, n as appendFeedbackEntryForIssue, o as readContinueStateForIssue, r as clearFeedbackForIssue, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-6WL46dsB.js";
|
|
6
6
|
import { Data, Effect } from "effect";
|
|
7
7
|
import { existsSync } from "fs";
|
|
8
8
|
import { join } from "path";
|
|
@@ -149,4 +149,4 @@ var init_feedback_writer = __esmMin((() => {
|
|
|
149
149
|
//#endregion
|
|
150
150
|
export { writeFeedbackFile as a, init_feedback_writer as i, archiveFeedbackFiles as n, clearFeedbackFiles as r, FeedbackWriteError as t };
|
|
151
151
|
|
|
152
|
-
//# sourceMappingURL=feedback-writer-
|
|
152
|
+
//# sourceMappingURL=feedback-writer-C1gCLFmp.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as writeFeedbackFile, i as init_feedback_writer, n as archiveFeedbackFiles, r as clearFeedbackFiles, t as FeedbackWriteError } from "./feedback-writer-
|
|
1
|
+
import { a as writeFeedbackFile, i as init_feedback_writer, n as archiveFeedbackFiles, r as clearFeedbackFiles, t as FeedbackWriteError } from "./feedback-writer-C1gCLFmp.js";
|
|
2
2
|
init_feedback_writer();
|
|
3
3
|
export { FeedbackWriteError, archiveFeedbackFiles, clearFeedbackFiles, writeFeedbackFile };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { $t as findProjectByPathSync, Dt as queueAutoCommit, Ht as init_state_read_home, Tt as init_auto_commit, Wt as resolveStateReadHomeSync, an as getProjectSwarmHotspots, fn as init_projects, wt as flushAutoCommits } from "./config-yaml-
|
|
3
|
-
import { C as FlywheelStatus, S as FlywheelRunId, d as OrderBook, f as OrderBookIndexEntry, t as init_src } from "./src-
|
|
4
|
-
import { c as init_agents, o as countAgentsByStatusRole } from "./agents-
|
|
5
|
-
import {
|
|
6
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
7
|
-
import { C as setFlywheelGloballyPaused, c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge, p as isFlywheelGloballyPaused, x as setFlywheelActiveRunId } from "./control-settings-
|
|
8
|
-
import { N as getProjectPanPaths, P as init_paths } from "./io-
|
|
9
|
-
import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-
|
|
10
|
-
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-
|
|
11
|
-
import { t as parseSequenceMd } from "./sequence-io
|
|
12
|
-
import { h as init_pickup, r as LEGACY_PARKED_LABELS, u as computeCohort } from "./pickup-
|
|
13
|
-
import { a as gatherProjectLensSignals, s as init_pipeline_membership_gather } from "./pipeline-membership-gather-
|
|
14
|
-
import { a as computePredictedConflictSignals, l as pickFromSequence, o as declaredIssueFootprint } from "./flywheel-merge-order-
|
|
15
|
-
import { n as init_pipeline_membership, r as resolvePipelineMembership } from "./pipeline-membership-
|
|
16
|
-
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
2
|
+
import { $t as findProjectByPathSync, Dt as queueAutoCommit, Ht as init_state_read_home, Li as getOverdeckHome, Ri as init_paths, Tt as init_auto_commit, Wt as resolveStateReadHomeSync, an as getProjectSwarmHotspots, fn as init_projects, on as getProjectSync, wt as flushAutoCommits } from "./config-yaml-D9nfpEx1.js";
|
|
3
|
+
import { C as FlywheelStatus, S as FlywheelRunId, d as OrderBook, f as OrderBookIndexEntry, t as init_src } from "./src-CY2Wl8IX.js";
|
|
4
|
+
import { c as init_agents, o as countAgentsByStatusRole } from "./agents-jXgqpHca.js";
|
|
5
|
+
import { Ti as init_resume_contract, f as getAgentDir, pn as stopAgent, q as init_agents$1, sn as spawnRun, wi as buildResumeContract } from "./agent-state-BJhGIJZe.js";
|
|
6
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DoVzb4b7.js";
|
|
7
|
+
import { C as setFlywheelGloballyPaused, c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge, p as isFlywheelGloballyPaused, x as setFlywheelActiveRunId } from "./control-settings-BMoDHY1G.js";
|
|
8
|
+
import { N as getProjectPanPaths, P as init_paths$1 } from "./io-DKrWd3gX.js";
|
|
9
|
+
import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-B2xy-IS9.js";
|
|
10
|
+
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-yOGD2MuK.js";
|
|
11
|
+
import { t as parseSequenceMd } from "./sequence-io--b3_PsWq.js";
|
|
12
|
+
import { h as init_pickup, r as LEGACY_PARKED_LABELS, u as computeCohort } from "./pickup-D1UbSDPd.js";
|
|
13
|
+
import { a as gatherProjectLensSignals, s as init_pipeline_membership_gather } from "./pipeline-membership-gather-BK4dzh0X.js";
|
|
14
|
+
import { a as computePredictedConflictSignals, l as pickFromSequence, o as declaredIssueFootprint } from "./flywheel-merge-order-D_yyAlND.js";
|
|
15
|
+
import { n as init_pipeline_membership, r as resolvePipelineMembership } from "./pipeline-membership-PGX3Pe8V.js";
|
|
16
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
17
17
|
import { Effect, Schema } from "effect";
|
|
18
18
|
import { homedir } from "node:os";
|
|
19
19
|
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
|
|
@@ -21,11 +21,12 @@ import { mkdir, readFile, readdir, realpath, rename, stat, writeFile } from "nod
|
|
|
21
21
|
import { exec } from "node:child_process";
|
|
22
22
|
import { promisify } from "node:util";
|
|
23
23
|
//#region ../../lib/orders/types.ts
|
|
24
|
+
init_paths();
|
|
24
25
|
init_projects();
|
|
25
26
|
init_state_read_home();
|
|
26
27
|
init_auto_commit();
|
|
27
28
|
init_internal_token();
|
|
28
|
-
init_paths();
|
|
29
|
+
init_paths$1();
|
|
29
30
|
init_agents$1();
|
|
30
31
|
init_pickup();
|
|
31
32
|
init_src();
|
|
@@ -162,6 +163,53 @@ async function writeOrderBookState(stateRoot, nextBook, queueOrder) {
|
|
|
162
163
|
//#endregion
|
|
163
164
|
//#region ../../lib/orders/resolver.ts
|
|
164
165
|
const COMPLETE_STATUS = "complete";
|
|
166
|
+
/**
|
|
167
|
+
* The issue prefix (e.g. "PAN") of the project that owns an orders state root,
|
|
168
|
+
* or null when it cannot be determined. Migrated roots are
|
|
169
|
+
* `<overdeckHome>/state/<projectKey>` — the basename is the projects.yaml key.
|
|
170
|
+
* Legacy roots live inside the project checkout, where path containment is the
|
|
171
|
+
* authoritative match (a checkout dir name can collide with another project's
|
|
172
|
+
* yaml key, so the basename key lookup runs only for true migrated roots).
|
|
173
|
+
*/
|
|
174
|
+
function issuePrefixForStateRoot(stateRoot) {
|
|
175
|
+
try {
|
|
176
|
+
const byPath = findProjectByPathSync(stateRoot);
|
|
177
|
+
if (byPath?.issue_prefix) return byPath.issue_prefix.toUpperCase();
|
|
178
|
+
if (dirname(stateRoot) === join(getOverdeckHome(), "state")) {
|
|
179
|
+
const byKey = getProjectSync(basename(stateRoot));
|
|
180
|
+
if (byKey?.issue_prefix) return byKey.issue_prefix.toUpperCase();
|
|
181
|
+
}
|
|
182
|
+
return null;
|
|
183
|
+
} catch {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Canonical form for an order-book issue reference: bare digits gain the
|
|
189
|
+
* project prefix ("2351" → "PAN-2351"); anything else passes through
|
|
190
|
+
* unchanged. Books written before the write door normalized on entry carry
|
|
191
|
+
* bare numbers; every read-side consumer (validation, progress, membership,
|
|
192
|
+
* dispatch) resolves them through this.
|
|
193
|
+
*/
|
|
194
|
+
function normalizeOrderIssueId(stateRoot, issueId) {
|
|
195
|
+
if (!/^\d+$/.test(issueId)) return issueId;
|
|
196
|
+
const prefix = issuePrefixForStateRoot(stateRoot);
|
|
197
|
+
return prefix ? `${prefix}-${issueId}` : issueId;
|
|
198
|
+
}
|
|
199
|
+
function normalizeBookIssues(stateRoot, book) {
|
|
200
|
+
if (!book.items.some((item) => /^\d+$/.test(item.issue) || item.prereqs.some((prereq) => /^\d+$/.test(prereq)))) return book;
|
|
201
|
+
const prefix = issuePrefixForStateRoot(stateRoot);
|
|
202
|
+
if (!prefix) return book;
|
|
203
|
+
const expand = (id) => /^\d+$/.test(id) ? `${prefix}-${id}` : id;
|
|
204
|
+
return {
|
|
205
|
+
...book,
|
|
206
|
+
items: book.items.map((item) => ({
|
|
207
|
+
...item,
|
|
208
|
+
issue: expand(item.issue),
|
|
209
|
+
prereqs: item.prereqs.map(expand)
|
|
210
|
+
}))
|
|
211
|
+
};
|
|
212
|
+
}
|
|
165
213
|
let issueServiceModule = null;
|
|
166
214
|
function loadIssueServiceModuleSync() {
|
|
167
215
|
if (issueServiceModule) return issueServiceModule;
|
|
@@ -170,7 +218,7 @@ function loadIssueServiceModuleSync() {
|
|
|
170
218
|
}
|
|
171
219
|
async function loadIssueServiceModule() {
|
|
172
220
|
if (issueServiceModule) return issueServiceModule;
|
|
173
|
-
issueServiceModule = await import("./issue-service-singleton-
|
|
221
|
+
issueServiceModule = await import("./issue-service-singleton-CvgNAWqK.js");
|
|
174
222
|
return issueServiceModule;
|
|
175
223
|
}
|
|
176
224
|
function labelNames(issue) {
|
|
@@ -249,14 +297,15 @@ function listBooks(stateRoot) {
|
|
|
249
297
|
return listOrderBookIds(stateRoot).map((id) => {
|
|
250
298
|
const book = readOrderBook(stateRoot, id);
|
|
251
299
|
if (!book) throw new Error(`Order book index references missing book ${id}`);
|
|
252
|
-
return book;
|
|
300
|
+
return normalizeBookIssues(stateRoot, book);
|
|
253
301
|
});
|
|
254
302
|
}
|
|
255
303
|
function getBook(stateRoot, bookId) {
|
|
256
|
-
|
|
304
|
+
const book = readOrderBook(stateRoot, bookId);
|
|
305
|
+
return book ? normalizeBookIssues(stateRoot, book) : null;
|
|
257
306
|
}
|
|
258
307
|
function getBookAsync(stateRoot, bookId) {
|
|
259
|
-
return readOrderBookAsync(stateRoot, bookId);
|
|
308
|
+
return readOrderBookAsync(stateRoot, bookId).then((book) => book ? normalizeBookIssues(stateRoot, book) : null);
|
|
260
309
|
}
|
|
261
310
|
/** The first 'ready' book in index.json queue order, or null if none is ready. */
|
|
262
311
|
function firstReadyBookInQueue(stateRoot) {
|
|
@@ -377,14 +426,14 @@ async function addItems(stateRoot, bookId, items, actor, at) {
|
|
|
377
426
|
const addedAt = timestamp(at);
|
|
378
427
|
const additions = [];
|
|
379
428
|
for (const item of items) {
|
|
380
|
-
const issue = item.issue.toUpperCase();
|
|
429
|
+
const issue = normalizeOrderIssueId(stateRoot, item.issue).toUpperCase();
|
|
381
430
|
if (existing.has(issue) || additions.some((candidate) => candidate.issue.toUpperCase() === issue)) throw new Error(`Issue ${issue} is already in order book ${bookId}`);
|
|
382
431
|
const otherBook = assigned.get(issue);
|
|
383
432
|
if (otherBook && otherBook !== bookId) throw new Error(`Issue ${issue} already belongs to non-complete order book ${otherBook}`);
|
|
384
433
|
additions.push({
|
|
385
434
|
...item,
|
|
386
435
|
issue,
|
|
387
|
-
prereqs: item.prereqs.map((prereq) => prereq.toUpperCase()),
|
|
436
|
+
prereqs: item.prereqs.map((prereq) => normalizeOrderIssueId(stateRoot, prereq).toUpperCase()),
|
|
388
437
|
addedAt: item.addedAt ?? addedAt,
|
|
389
438
|
addedBy: item.addedBy ?? actor
|
|
390
439
|
});
|
|
@@ -393,13 +442,13 @@ async function addItems(stateRoot, bookId, items, actor, at) {
|
|
|
393
442
|
}
|
|
394
443
|
async function removeItem(stateRoot, bookId, issueId, at) {
|
|
395
444
|
const book = requireBook(stateRoot, bookId);
|
|
396
|
-
const issue = issueId.toUpperCase();
|
|
445
|
+
const issue = normalizeOrderIssueId(stateRoot, issueId).toUpperCase();
|
|
397
446
|
if (!book.items.some((item) => item.issue.toUpperCase() === issue)) throw new Error(`Issue ${issue} is not in order book ${bookId}`);
|
|
398
447
|
return writeOrderBookState(stateRoot, updated(book, { items: normalizeLaneOrder(book.items.filter((item) => item.issue.toUpperCase() !== issue)) }, at));
|
|
399
448
|
}
|
|
400
449
|
async function moveItem(stateRoot, bookId, issueId, lane, order, at) {
|
|
401
450
|
const book = requireBook(stateRoot, bookId);
|
|
402
|
-
const issue = issueId.toUpperCase();
|
|
451
|
+
const issue = normalizeOrderIssueId(stateRoot, issueId).toUpperCase();
|
|
403
452
|
const moving = book.items.find((item) => item.issue.toUpperCase() === issue);
|
|
404
453
|
if (!moving) throw new Error(`Issue ${issue} is not in order book ${bookId}`);
|
|
405
454
|
if (!Number.isInteger(order) || order < 1) throw new Error("Order must be a positive integer");
|
|
@@ -415,14 +464,14 @@ async function moveItem(stateRoot, bookId, issueId, lane, order, at) {
|
|
|
415
464
|
}
|
|
416
465
|
async function setItemRequirements(stateRoot, bookId, issueId, requirements, at) {
|
|
417
466
|
const book = requireBook(stateRoot, bookId);
|
|
418
|
-
const issue = issueId.toUpperCase();
|
|
467
|
+
const issue = normalizeOrderIssueId(stateRoot, issueId).toUpperCase();
|
|
419
468
|
let found = false;
|
|
420
469
|
const items = book.items.map((item) => {
|
|
421
470
|
if (item.issue.toUpperCase() !== issue) return item;
|
|
422
471
|
found = true;
|
|
423
472
|
return {
|
|
424
473
|
...item,
|
|
425
|
-
prereqs: requirements.prereqs === void 0 ? item.prereqs : [...new Set(requirements.prereqs.map((prereq) => prereq.toUpperCase()))],
|
|
474
|
+
prereqs: requirements.prereqs === void 0 ? item.prereqs : [...new Set(requirements.prereqs.map((prereq) => normalizeOrderIssueId(stateRoot, prereq).toUpperCase()))],
|
|
426
475
|
reVerify: requirements.reVerify ?? item.reVerify,
|
|
427
476
|
planAtPickup: requirements.planAtPickup ?? item.planAtPickup
|
|
428
477
|
};
|
|
@@ -457,6 +506,7 @@ async function advanceQueue(stateRoot, completedBookId, at) {
|
|
|
457
506
|
//#endregion
|
|
458
507
|
//#region services/flywheel-run-state.ts
|
|
459
508
|
init_src();
|
|
509
|
+
init_projects();
|
|
460
510
|
const decodeFlywheelStatus = Schema.decodeUnknownSync(FlywheelStatus);
|
|
461
511
|
const decodeFlywheelRunId$1 = Schema.decodeUnknownSync(FlywheelRunId);
|
|
462
512
|
const RUN_ID_PATTERN = /^RUN-(\d+)$/;
|
|
@@ -857,7 +907,7 @@ function buildClassifyLookups(projectRoot, opts = {}) {
|
|
|
857
907
|
}
|
|
858
908
|
//#endregion
|
|
859
909
|
//#region ../../lib/cloister/flywheel.ts
|
|
860
|
-
init_paths();
|
|
910
|
+
init_paths$1();
|
|
861
911
|
init_projects();
|
|
862
912
|
init_state_read_home();
|
|
863
913
|
init_control_settings();
|
|
@@ -1143,6 +1193,6 @@ async function resumeFlywheel(options = {}) {
|
|
|
1143
1193
|
};
|
|
1144
1194
|
}
|
|
1145
1195
|
//#endregion
|
|
1146
|
-
export { advanceQueue as A, ensureOrderIssueStore as B, readCurrentLatestFlywheelStatus as C, writeFlywheelLaunchMetadata as D, subscribeLatestFlywheelStatus as E, setItemRequirements as F, liveOrderIssueLookup as G, getBook as H, setSettings as I,
|
|
1196
|
+
export { advanceQueue as A, ensureOrderIssueStore as B, readCurrentLatestFlywheelStatus as C, writeFlywheelLaunchMetadata as D, subscribeLatestFlywheelStatus as E, setItemRequirements as F, liveOrderIssueLookup as G, getBook as H, setSettings as I, normalizeOrderIssueId as K, setStatus as L, moveItem as M, removeItem as N, writeLatestFlywheelStatus as O, renameBook as P, backlogCandidates as R, nextFlywheelRunId as S, resolveLiveFlywheelRunId as T, getBookAsync as U, firstReadyBookInQueue as V, listBooks as W, clearFlywheelGate as _, isFlywheelDevcontainerRuntime as a, isFlywheelRunId as b, pauseFlywheel as c, spawnFlywheel as d, spawnFlywheelAgent as f, abortFlywheelRun as g, resolvePrimaryWorktreeRoot as h, buildFlywheelResumePrompt as i, createBook as j, addItems as k, resumeFlywheel as l, requireFlywheelBrief as m, abortSpawnedFlywheel as n, isIssueInResolvedPipeline as o, buildClassifyLookups as p, orderIssueStoreStatus as q, activeOrderBookIssues as r, loadResumeSessionId as s, FLYWHEEL_ORCHESTRATOR_AGENT_ID as t, saveResumeSessionId as u, getFlywheelRunDetail as v, readFlywheelLaunchMetadata as w, listFlywheelRuns as x, getFlywheelRunDir as y, computeBookProgress as z };
|
|
1147
1197
|
|
|
1148
|
-
//# sourceMappingURL=flywheel-
|
|
1198
|
+
//# sourceMappingURL=flywheel-CjW2L7BS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { c as pauseFlywheel, l as resumeFlywheel } from "./flywheel-
|
|
1
|
+
import { c as pauseFlywheel, l as resumeFlywheel } from "./flywheel-CjW2L7BS.js";
|
|
2
2
|
export { pauseFlywheel, resumeFlywheel };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as computePredictedConflictSignals, c as orderMergeCandidates, d as planUatCandidate, f as resolveMergeQueuePrUrl, i as computePolyrepoMergeQueueFromCandidates, l as pickFromSequence, n as changedFilesVsMain, o as declaredIssueFootprint, p as reviewRecordEligibility, r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject, t as MERGE_QUEUE_GIT_CONCURRENCY, u as planMergeTrain } from "./flywheel-merge-order-
|
|
1
|
+
import { a as computePredictedConflictSignals, c as orderMergeCandidates, d as planUatCandidate, f as resolveMergeQueuePrUrl, i as computePolyrepoMergeQueueFromCandidates, l as pickFromSequence, n as changedFilesVsMain, o as declaredIssueFootprint, p as reviewRecordEligibility, r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject, t as MERGE_QUEUE_GIT_CONCURRENCY, u as planMergeTrain } from "./flywheel-merge-order-D_yyAlND.js";
|
|
2
2
|
export { MERGE_QUEUE_GIT_CONCURRENCY, changedFilesVsMain, computeMergeQueueFromCandidates, computePolyrepoMergeQueueFromCandidates, computePredictedConflictSignals, declaredIssueFootprint, listEligibleCandidatesByProject, orderMergeCandidates, pickFromSequence, planMergeTrain, planUatCandidate, resolveMergeQueuePrUrl, reviewRecordEligibility };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $t as findProjectByPathSync, On as resolveProjectFromIssueSync, an as getProjectSwarmHotspots, fn as init_projects } from "./config-yaml-
|
|
2
|
-
import {
|
|
3
|
-
import { n as computeIssueFootprint, r as init_swarm_readiness } from "./swarm-readiness-
|
|
4
|
-
import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-
|
|
5
|
-
import { d as getReviewStatusSync, h as loadReviewStatuses, p as init_review_status, v as mergeGateEligibility } from "./review-status-
|
|
6
|
-
import { g as isAutoPickable, h as init_pickup, l as classifyIssue } from "./pickup-
|
|
1
|
+
import { $t as findProjectByPathSync, On as resolveProjectFromIssueSync, an as getProjectSwarmHotspots, fn as init_projects } from "./config-yaml-D9nfpEx1.js";
|
|
2
|
+
import { c as init_dag, n as compileGlob } from "./dag-BPc74hwj.js";
|
|
3
|
+
import { n as computeIssueFootprint, r as init_swarm_readiness } from "./swarm-readiness-CMWAQuWM.js";
|
|
4
|
+
import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-DJAOAuMN.js";
|
|
5
|
+
import { d as getReviewStatusSync, h as loadReviewStatuses, p as init_review_status, v as mergeGateEligibility } from "./review-status-yOGD2MuK.js";
|
|
6
|
+
import { g as isAutoPickable, h as init_pickup, l as classifyIssue } from "./pickup-D1UbSDPd.js";
|
|
7
7
|
import { Effect } from "effect";
|
|
8
8
|
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
|
|
9
9
|
//#region ../../lib/flywheel-merge-order.ts
|
|
@@ -459,4 +459,4 @@ function pickFromSequence(nodes, opts) {
|
|
|
459
459
|
//#endregion
|
|
460
460
|
export { computePredictedConflictSignals as a, orderMergeCandidates as c, planUatCandidate as d, resolveMergeQueuePrUrl as f, computePolyrepoMergeQueueFromCandidates as i, pickFromSequence as l, changedFilesVsMain as n, declaredIssueFootprint as o, reviewRecordEligibility as p, computeMergeQueueFromCandidates as r, listEligibleCandidatesByProject as s, MERGE_QUEUE_GIT_CONCURRENCY as t, planMergeTrain as u };
|
|
461
461
|
|
|
462
|
-
//# sourceMappingURL=flywheel-merge-order-
|
|
462
|
+
//# sourceMappingURL=flywheel-merge-order-D_yyAlND.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { $t as findProjectByPathSync,
|
|
2
|
-
import {
|
|
3
|
-
import { C as FlywheelStatus, p as FlywheelStats, t as init_src } from "./src-
|
|
4
|
-
import {
|
|
5
|
-
import { s as init_internal_token } from "./internal-token-
|
|
6
|
-
import { c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge } from "./control-settings-
|
|
7
|
-
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-
|
|
8
|
-
import { f as init_github_app } from "./github-app-
|
|
9
|
-
import "./substrate-bug-weights-service-
|
|
10
|
-
import "./sequence-io
|
|
11
|
-
import { A as advanceQueue, B as ensureOrderIssueStore, D as writeFlywheelLaunchMetadata, H as getBook, L as setStatus, O as writeLatestFlywheelStatus, S as nextFlywheelRunId, V as firstReadyBookInQueue, _ as clearFlywheelGate, d as spawnFlywheel, h as resolvePrimaryWorktreeRoot, m as requireFlywheelBrief, n as abortSpawnedFlywheel, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, v as getFlywheelRunDetail, w as readFlywheelLaunchMetadata, x as listFlywheelRuns, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-
|
|
12
|
-
import { r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject } from "./flywheel-merge-order-
|
|
13
|
-
import { r as validateBookForStart } from "./validate-
|
|
1
|
+
import { $t as findProjectByPathSync, Ht as init_state_read_home, Or as resolveModel, Wt as resolveStateReadHomeSync, fn as init_projects, jn as resolveProjectPath, p as loadConfigSync, t as init_config_yaml, vn as listProjectsSync } from "./config-yaml-D9nfpEx1.js";
|
|
2
|
+
import { C as init_tmux, U as sessionExists } from "./tmux-DWEc4Ld9.js";
|
|
3
|
+
import { C as FlywheelStatus, p as FlywheelStats, t as init_src } from "./src-CY2Wl8IX.js";
|
|
4
|
+
import { q as init_agents } from "./agent-state-BJhGIJZe.js";
|
|
5
|
+
import { s as init_internal_token } from "./internal-token-DoVzb4b7.js";
|
|
6
|
+
import { c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge } from "./control-settings-BMoDHY1G.js";
|
|
7
|
+
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DusNpVEe.js";
|
|
8
|
+
import { f as init_github_app } from "./github-app-7ywLhuZO.js";
|
|
9
|
+
import "./substrate-bug-weights-service-BbbCZEtJ.js";
|
|
10
|
+
import "./sequence-io--b3_PsWq.js";
|
|
11
|
+
import { A as advanceQueue, B as ensureOrderIssueStore, D as writeFlywheelLaunchMetadata, H as getBook, L as setStatus, O as writeLatestFlywheelStatus, S as nextFlywheelRunId, V as firstReadyBookInQueue, _ as clearFlywheelGate, d as spawnFlywheel, h as resolvePrimaryWorktreeRoot, m as requireFlywheelBrief, n as abortSpawnedFlywheel, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, v as getFlywheelRunDetail, w as readFlywheelLaunchMetadata, x as listFlywheelRuns, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-CjW2L7BS.js";
|
|
12
|
+
import { r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject } from "./flywheel-merge-order-D_yyAlND.js";
|
|
13
|
+
import { r as validateBookForStart } from "./validate-Ur4xH5bN.js";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { Effect, Schema } from "effect";
|
|
16
16
|
import { freemem, totalmem } from "node:os";
|
|
@@ -677,4 +677,4 @@ createFlywheelCompleteCommand({
|
|
|
677
677
|
//#endregion
|
|
678
678
|
export { flywheelReportCommand, startFlywheelRun };
|
|
679
679
|
|
|
680
|
-
//# sourceMappingURL=flywheel-
|
|
680
|
+
//# sourceMappingURL=flywheel-v1cCOBx-.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as parsePullRequestRef, d as getPullRequestState, f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead, x as mergePullRequestWithApp } from "./github-app-
|
|
1
|
+
import { S as parsePullRequestRef, d as getPullRequestState, f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead, x as mergePullRequestWithApp } from "./github-app-7ywLhuZO.js";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
@@ -376,4 +376,4 @@ function getForgeAdapter(forge) {
|
|
|
376
376
|
//#endregion
|
|
377
377
|
export { getForgeAdapter as n, parseArtifactRef as r, GITHUB_MERGE_TIMEOUT_MS as t };
|
|
378
378
|
|
|
379
|
-
//# sourceMappingURL=forge-
|
|
379
|
+
//# sourceMappingURL=forge-RVTCK_5X.js.map
|
|
@@ -3841,4 +3841,4 @@ var init_from = __esmMin((() => {
|
|
|
3841
3841
|
//#endregion
|
|
3842
3842
|
export { File as a, init_esm_min as i, FormData as n, Blob as o, formDataToBlob as r, init_fetch_blob as s, init_from as t };
|
|
3843
3843
|
|
|
3844
|
-
//# sourceMappingURL=from-
|
|
3844
|
+
//# sourceMappingURL=from-BnLgKYvw.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Li as getOverdeckHome, Ri as init_paths, fn as init_projects, vn as listProjectsSync } from "./config-yaml-D9nfpEx1.js";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
|
|
5
5
|
//#region ../../lib/pan-dir/fs-lock.ts
|
|
@@ -127,4 +127,4 @@ var init_fs_lock = __esmMin((() => {
|
|
|
127
127
|
//#endregion
|
|
128
128
|
export { recordLockPath as a, readOwner as i, init_fs_lock as n, releaseRecordLock as o, isPidDead as r, withRecordFsLock as s, acquireRecordLock as t };
|
|
129
129
|
|
|
130
|
-
//# sourceMappingURL=fs-lock-
|
|
130
|
+
//# sourceMappingURL=fs-lock-C7J-ugIf.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { n as openDatabase, t as init_driver } from "./driver-
|
|
3
|
-
import { i as init_paths, o as resolveFtsDbPath } from "./paths-
|
|
2
|
+
import { n as openDatabase, t as init_driver } from "./driver-BtcFz-qu.js";
|
|
3
|
+
import { i as init_paths, o as resolveFtsDbPath } from "./paths-DEe9j-kw.js";
|
|
4
4
|
import { dirname } from "node:path";
|
|
5
5
|
import { mkdirSync } from "node:fs";
|
|
6
6
|
//#region ../../lib/memory/fts-operations.ts
|
|
@@ -131,4 +131,4 @@ var init_fts_operations = __esmMin((() => {
|
|
|
131
131
|
//#endregion
|
|
132
132
|
export { runMemoryFtsTransactionSync as a, runMemoryFtsStatementSync as i, getMemoryFtsDatabaseSync as n, init_fts_operations as r, closeMemoryFtsDatabasesInProcess as t };
|
|
133
133
|
|
|
134
|
-
//# sourceMappingURL=fts-operations-
|
|
134
|
+
//# sourceMappingURL=fts-operations-CU0B5WUx.js.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { readFile, stat } from "node:fs/promises";
|
|
3
|
+
import { execFile } from "node:child_process";
|
|
4
|
+
import { promisify } from "node:util";
|
|
5
|
+
//#region services/git-info.ts
|
|
6
|
+
/**
|
|
7
|
+
* Git info enricher (PAN-1523)
|
|
8
|
+
*
|
|
9
|
+
* Derives branch + worktree-status for an absolute filesystem path. Used to
|
|
10
|
+
* surface branch/worktree chips on conversation rows, conversation terminals,
|
|
11
|
+
* and agent terminals.
|
|
12
|
+
*
|
|
13
|
+
* Two enricher entrypoints with different semantics:
|
|
14
|
+
* - resolveConversationGitInfo() — best-effort: returns null branch when
|
|
15
|
+
* the path isn't a git repo. Used for conversations whose cwd can be
|
|
16
|
+
* anywhere.
|
|
17
|
+
* - resolveAgentGitInfo() — verifies a work-agent workspace against its
|
|
18
|
+
* expected feature branch. Reports drift and missing-workspace state
|
|
19
|
+
* because both are silent failure modes today.
|
|
20
|
+
*
|
|
21
|
+
* Cache: in-memory, keyed by absolute path and invalidated when the mtime of
|
|
22
|
+
* <path>/.git/HEAD changes. Every read still stats HEAD, so a checkout under a
|
|
23
|
+
* live conversation is picked up immediately without periodically respawning
|
|
24
|
+
* two git processes for every unchanged workspace.
|
|
25
|
+
*
|
|
26
|
+
* All I/O is async (execFile / fs.promises). No execSync, no readFileSync.
|
|
27
|
+
*/
|
|
28
|
+
const execFileAsync = promisify(execFile);
|
|
29
|
+
const GIT_INFO_TIMEOUT_MS = 2e3;
|
|
30
|
+
const cache = /* @__PURE__ */ new Map();
|
|
31
|
+
/**
|
|
32
|
+
* Locate the HEAD file for a working tree at `absPath`.
|
|
33
|
+
*
|
|
34
|
+
* In a primary checkout `.git` is a directory and HEAD lives at `.git/HEAD`.
|
|
35
|
+
* In a secondary worktree `.git` is a small text file containing
|
|
36
|
+
* `gitdir: /abs/path/to/.git/worktrees/<name>` and HEAD lives at
|
|
37
|
+
* `<that-gitdir>/HEAD`. We follow the pointer so the mtime check actually
|
|
38
|
+
* sees branch flips in worktrees.
|
|
39
|
+
*/
|
|
40
|
+
async function locateHeadPath(absPath) {
|
|
41
|
+
const gitMarker = join(absPath, ".git");
|
|
42
|
+
let markerStat;
|
|
43
|
+
try {
|
|
44
|
+
markerStat = await stat(gitMarker);
|
|
45
|
+
} catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
if (markerStat.isDirectory()) return join(gitMarker, "HEAD");
|
|
49
|
+
if (markerStat.isFile()) try {
|
|
50
|
+
const match = (await readFile(gitMarker, "utf-8")).match(/^gitdir:\s*(.+)$/m);
|
|
51
|
+
if (!match) return null;
|
|
52
|
+
return join(match[1].trim(), "HEAD");
|
|
53
|
+
} catch {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
async function readHeadMtimeMs(absPath) {
|
|
59
|
+
const headPath = await locateHeadPath(absPath);
|
|
60
|
+
if (headPath === null) return null;
|
|
61
|
+
try {
|
|
62
|
+
return (await stat(headPath)).mtimeMs;
|
|
63
|
+
} catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function readGitInfoFresh(absPath) {
|
|
68
|
+
const [branchResult, worktreeResult] = await Promise.all([execFileAsync("git", [
|
|
69
|
+
"-C",
|
|
70
|
+
absPath,
|
|
71
|
+
"rev-parse",
|
|
72
|
+
"--abbrev-ref",
|
|
73
|
+
"HEAD"
|
|
74
|
+
], {
|
|
75
|
+
encoding: "utf-8",
|
|
76
|
+
timeout: GIT_INFO_TIMEOUT_MS
|
|
77
|
+
}).catch(() => null), execFileAsync("git", [
|
|
78
|
+
"-C",
|
|
79
|
+
absPath,
|
|
80
|
+
"rev-parse",
|
|
81
|
+
"--git-common-dir",
|
|
82
|
+
"--git-dir"
|
|
83
|
+
], {
|
|
84
|
+
encoding: "utf-8",
|
|
85
|
+
timeout: GIT_INFO_TIMEOUT_MS
|
|
86
|
+
}).catch(() => null)]);
|
|
87
|
+
if (!branchResult) return {
|
|
88
|
+
branch: null,
|
|
89
|
+
isWorktree: false
|
|
90
|
+
};
|
|
91
|
+
const branch = branchResult.stdout.trim() || null;
|
|
92
|
+
let isWorktree = false;
|
|
93
|
+
if (worktreeResult) {
|
|
94
|
+
const [commonDir, gitDir] = worktreeResult.stdout.trim().split("\n").map((line) => line.trim());
|
|
95
|
+
if (commonDir && gitDir && commonDir !== gitDir) isWorktree = true;
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
branch,
|
|
99
|
+
isWorktree
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Resolve branch + worktree status for a conversation cwd. Cached until the
|
|
104
|
+
* HEAD mtime changes.
|
|
105
|
+
*/
|
|
106
|
+
async function resolveConversationGitInfo(absPath) {
|
|
107
|
+
const headMtimeMs = await readHeadMtimeMs(absPath);
|
|
108
|
+
if (headMtimeMs === null) return {
|
|
109
|
+
branch: null,
|
|
110
|
+
isWorktree: false
|
|
111
|
+
};
|
|
112
|
+
const cached = cache.get(absPath);
|
|
113
|
+
if (cached && cached.headMtimeMs === headMtimeMs) return cached.value;
|
|
114
|
+
const value = await readGitInfoFresh(absPath);
|
|
115
|
+
cache.set(absPath, {
|
|
116
|
+
value,
|
|
117
|
+
headMtimeMs
|
|
118
|
+
});
|
|
119
|
+
return value;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Resolve drift + missing-workspace state for a work-agent workspace.
|
|
123
|
+
* `expectedBranch` is the deterministic feature/<issue-id> branch from
|
|
124
|
+
* resource-discovery. Reuses the conversation cache for the branch read,
|
|
125
|
+
* then layers drift detection on top.
|
|
126
|
+
*/
|
|
127
|
+
async function resolveAgentGitInfo(workspacePath, expectedBranch) {
|
|
128
|
+
if (await readHeadMtimeMs(workspacePath) === null) return {
|
|
129
|
+
actualBranch: null,
|
|
130
|
+
branchDrifted: false,
|
|
131
|
+
workspaceMissing: true
|
|
132
|
+
};
|
|
133
|
+
const info = await resolveConversationGitInfo(workspacePath);
|
|
134
|
+
if (info.branch === null) return {
|
|
135
|
+
actualBranch: null,
|
|
136
|
+
branchDrifted: false,
|
|
137
|
+
workspaceMissing: true
|
|
138
|
+
};
|
|
139
|
+
return {
|
|
140
|
+
actualBranch: info.branch,
|
|
141
|
+
branchDrifted: info.branch !== expectedBranch,
|
|
142
|
+
workspaceMissing: false
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//#endregion
|
|
146
|
+
export { resolveConversationGitInfo as n, resolveAgentGitInfo as t };
|
|
147
|
+
|
|
148
|
+
//# sourceMappingURL=git-info-BSrI9owC.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as init_git_utils, c as rehydrateHeadAnchor, i as hasStaleLocks, l as renderWorkspaceGitShowPromise, n as formatAnchorShort, o as parseCompositeSnapshot, r as getWorkspaceGitInfo, s as parseWorkspaceHeadAnchor, t as cleanupStaleLocks, u as snapshotWorkspaceHeadsPromise } from "./git-utils-
|
|
1
|
+
import { a as init_git_utils, c as rehydrateHeadAnchor, i as hasStaleLocks, l as renderWorkspaceGitShowPromise, n as formatAnchorShort, o as parseCompositeSnapshot, r as getWorkspaceGitInfo, s as parseWorkspaceHeadAnchor, t as cleanupStaleLocks, u as snapshotWorkspaceHeadsPromise } from "./git-utils-DW8-jIUJ.js";
|
|
2
2
|
init_git_utils();
|
|
3
3
|
export { cleanupStaleLocks, formatAnchorShort, getWorkspaceGitInfo, hasStaleLocks, parseCompositeSnapshot, parseWorkspaceHeadAnchor, rehydrateHeadAnchor, renderWorkspaceGitShowPromise, snapshotWorkspaceHeadsPromise };
|