@overdeck/desktop 0.45.12 → 0.45.15
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/drizzle/overdeck/0000_overdeck_init.sql +33 -0
- package/package.json +7 -2
- package/server/{acceptance-criteria-1LHgD9vg.js → acceptance-criteria-DHZk2ceV.js} +2 -2
- package/server/{advancing-selfheal-BqsLWqEM.js → advancing-selfheal-CSuZ31bB.js} +5 -5
- package/server/{agent-gc-CUb52n7s.js → agent-gc-D_DxfBHR.js} +3 -3
- package/server/{agent-state-D-moNwhA.js → agent-state-EP2QFV9n.js} +1 -1
- package/server/{agent-state-service-BzESvLOf.js → agent-state-service-BZkvgQf4.js} +5 -5
- package/server/{agent-state-service-BaZH7sXJ.js → agent-state-service-C_2ZAQRP.js} +1 -1
- package/server/{agents-B5LfpLPv.js → agents-CsOzAmRg.js} +145 -78
- package/server/{agents-C4kZ8a2r.js → agents-DCvyTXNU.js} +1 -1
- package/server/{archive-planning-BbZe-8IK.js → archive-planning-CTILQRnV.js} +1 -1
- package/server/{archive-planning-oX1pj6nY.js → archive-planning-DkivCk1A.js} +4 -4
- package/server/{artifact-index-jobs-DGr6bxev.js → artifact-index-jobs-CmsvQ1ey.js} +2 -2
- package/server/auto-commit-QAfsu3Sb.js +3 -0
- package/server/{backlog-auto-trigger-BlJHikOm.js → backlog-auto-trigger-ueRaT8Dy.js} +2 -2
- package/server/{bd-process-lock-i3CYMS-B.js → bd-process-lock-D3S4T4o-.js} +32 -11
- package/server/{beads-DD7fYCl5.js → beads-BGGxrkZ5.js} +96 -196
- package/server/{beads-BNU-fb48.js → beads-CYsLiyIM.js} +1 -1
- package/server/{beads-query-e6oku4P5.js → beads-query-B1DlJVp9.js} +24 -99
- package/server/beads-restore-CyygSmmn.js +23 -0
- package/server/{behavior-CPf0pbOt.js → behavior-Cpj03N4v.js} +3 -3
- package/server/{briefing-freshness-B2FdLwIv.js → briefing-freshness-Kh5V8RTh.js} +4 -4
- package/server/{checkpoint-manager-eFgaMMu4.js → checkpoint-manager-CAFos8e1.js} +1 -1
- package/server/{checkpoint-manager-JryW6MpM.js → checkpoint-manager-fu9oVsR-.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-qvOqvMuC.js → checkpoints-1BqOlS4q.js} +2 -2
- package/server/{checkpoints-BK17oicz.js → checkpoints-DvhGi8P_.js} +1 -1
- package/server/claude-hooks-provision-s_wdpeVj.js +360 -0
- package/server/{claude-permissions-B6bWGh9d.js → claude-permissions-CaWqysff.js} +2 -2
- package/server/{claude-settings-overlay-BPdhTPjo.js → claude-settings-overlay-BbA4FbVI.js} +1 -1
- package/server/{claude-settings-overlay-CRyyKKXQ.js → claude-settings-overlay-CcTf0xzG.js} +2 -2
- package/server/{cli-B75AieAM.js → cli-BwCvCUBK.js} +9 -9
- package/server/cli-ClIQwgMI.js +3 -0
- package/server/{cliproxy-CCzwuSNe.js → cliproxy-BsoNNDAj.js} +2 -2
- package/server/{cliproxy-DOQf66G9.js → cliproxy-C2xC-3vH.js} +1 -1
- package/server/{close-issue-_X3MXJyG.js → close-issue-BleIwP3f.js} +5 -5
- package/server/{closed-issue-reaper-CLR7ClsO.js → closed-issue-reaper-BwUUvjEW.js} +1 -1
- package/server/{closed-issue-reaper-BsUfBSjM.js → closed-issue-reaper-mC5pujeb.js} +102 -30
- package/server/{codex-CY-QRuU9.js → codex-B7DTpwEw.js} +1 -1
- package/server/{codex-B4KEpX5V.js → codex-DW60_5j2.js} +5 -5
- package/server/{compact-beads-cZds2MTr.js → compact-beads-CK_hHEnB.js} +1 -1
- package/server/{compact-beads-uEDccC76.js → compact-beads-DKL54y6j.js} +15 -8
- package/server/{config-DARrpYWA.js → config-BRNQJXhA.js} +1 -1
- package/server/{config-8sjaU6jZ.js → config-ZNnMpIlh.js} +2 -2
- package/server/{config-yaml-ClpGgrf6.js → config-yaml-Dcz-8uit.js} +29 -3
- package/server/{conflict-gate-Ds9_2yjd.js → conflict-gate-DGT8jCLp.js} +1 -1
- package/server/{conflict-gate-BtB_o-Vi.js → conflict-gate-DTje2Ll7.js} +3 -3
- package/server/{context-layers-r2ywnQYA.js → context-layers-BdUCQ-cl.js} +3 -3
- package/server/{context-layers-CRCk1QG7.js → context-layers-ByOWUjUg.js} +2 -2
- package/server/{control-settings-D1B3u6HP.js → control-settings-DwkAeooY.js} +4 -4
- package/server/{conversation-compaction-D86Zo2Ci.js → conversation-compaction-OTYgd6eg.js} +8 -8
- package/server/{conversation-compaction-CZRVk4hg.js → conversation-compaction-WYQZUVDm.js} +1 -1
- package/server/{conversation-service-CuTVU8dV.js → conversation-service-BR1OgvxO.js} +5 -5
- package/server/{conversation-service-CkL-6MuG.js → conversation-service-C_kNZPLx.js} +1 -1
- package/server/{conversations-DfJKBDwB.js → conversations-DG2M8WnT.js} +4 -4
- package/server/{conversations-BmWEluPL.js → conversations-izHvSoAR.js} +1 -1
- package/server/{cost-DAPYN6iA.js → cost-B2mj17iG.js} +3 -3
- package/server/{cost-CCnqa5xK.js → cost-DQ2ajr_m.js} +2 -2
- package/server/{cost-sync-BDL10Nwu.js → cost-sync-gTayEuWP.js} +3 -3
- package/server/{dag-Dv2r5bVD.js → dag-CqTehWpY.js} +3 -3
- package/server/{dangerous-git-ops-Dcw7PbYo.js → dangerous-git-ops-DDWQlPC3.js} +1 -1
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-DYnZH7kC.js → deacon-BqW9HMew.js} +3 -3
- package/server/{deacon-CM0MxbS8.js → deacon-DrKDBeJL.js} +161 -1594
- package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-D1wEK6zF.js} +1 -1
- package/server/deacon-swarm-BY5hKNaU.js +2 -0
- package/server/{deacon-swarm-BstYoz8Q.js → deacon-swarm-CO_A7xyd.js} +12 -105
- package/server/deacon.js +7 -7
- package/server/{devcontainer-renderer-CaYOG9JN.js → devcontainer-renderer-BQolp_qZ.js} +3 -3
- package/server/{dist-BIC8spJ0.js → dist-Bc32rWJB.js} +1 -1
- package/server/dist-DGTwcZhI.js +3 -0
- package/server/{docker-DDI1shu3.js → docker-s-esqZ__.js} +67 -28
- package/server/{ensure-devcontainer-DCAg3ksz.js → ensure-devcontainer-DA4-jF6R.js} +4 -4
- package/server/{ensure-devcontainer-CbSXvN9W.js → ensure-devcontainer-pUVaT0h3.js} +1 -1
- package/server/{esm-shims-DiV9jHa_.js → esm-shims-CJHy8CZY.js} +1 -1
- package/server/{event-store-DU3HkZlN.js → event-store-CcJAhKCl.js} +1 -1
- package/server/{event-store-DCMqyI07.js → event-store-DRte2Rwt.js} +3 -3
- package/server/{events-BfiosVAn.js → events-Bej1w_k8.js} +3 -3
- package/server/{events-DLRxpSuV.js → events-CtsLScn8.js} +1 -1
- package/server/export-Dx_qJ3h8.js +87 -0
- package/server/{factory-BMtWV9iv.js → factory-FN727tWr.js} +4 -4
- package/server/{feature-registry-population-DA7bO6Zn.js → feature-registry-population-ie-yBcQC.js} +4 -4
- package/server/{feature-registry-storage-nAY1fbBt.js → feature-registry-storage-CkZTFSsn.js} +2 -2
- package/server/{features-DMu7eGmU.js → features-Dtm9ABuz.js} +2 -2
- package/server/{feedback-target-DHqcw3cN.js → feedback-target-BYtpyt1i.js} +6 -6
- package/server/{feedback-target-B2SEai8-.js → feedback-target-DVJQDiE4.js} +1 -1
- package/server/{feedback-writer-DMBdS_jL.js → feedback-writer-DOUhyIW2.js} +1 -1
- package/server/{feedback-writer-qvm7UON7.js → feedback-writer-fdE1BzeL.js} +4 -4
- package/server/{flywheel-k4FPtCQ_.js → flywheel-Bi82iiNl.js} +1 -1
- package/server/{flywheel-Dfpx4bIV.js → flywheel-Bv3wv2S6.js} +23 -15
- package/server/{flywheel-D2LdPSic.js → flywheel-CUErLAyN.js} +13 -13
- package/server/{flywheel-merge-order-CB4lbXeJ.js → flywheel-merge-order-BaEN3iyN.js} +7 -7
- package/server/{flywheel-merge-order-CttTazRY.js → flywheel-merge-order-DXjeBnJ1.js} +1 -1
- package/server/{forge-CoPFXFyl.js → forge-ButEdJ31.js} +2 -2
- package/server/forge-XlDgPQWs.js +2 -0
- package/server/{from-B0YoJl9-.js → from-CbtTxftl.js} +1 -1
- package/server/{fts-db-DAHW1yA_.js → fts-db-CBgBLZcL.js} +2 -2
- package/server/{fts-operations-DDXDBi0d.js → fts-operations-CI9Xuo_1.js} +2 -2
- package/server/{git-utils-DbfC0zls.js → git-utils-BCLRWQ-y.js} +1 -1
- package/server/{git-utils-B90Zjzfl.js → git-utils-ClfpP47N.js} +2 -2
- package/server/{github-app-C7lftMNj.js → github-app-DRD2woO0.js} +1 -1
- package/server/{github-app-BecAnXRX.js → github-app-DscZ0_B6.js} +2 -2
- package/server/{github-client-D21rCIXk.js → github-client-DpiZnxGH.js} +2 -2
- package/server/{github-client-BwtKZtM0.js → github-client-iFRw8f7e.js} +1 -1
- package/server/{github-pr-lookup-CzVWuysl.js → github-pr-lookup-D-EBexxC.js} +2 -2
- package/server/{harness-resolve-SkRJm4a7.js → harness-resolve-iMjyNUJ2.js} +3 -3
- package/server/{health-events-DA_JLpgZ.js → health-events-B_WsQyYm.js} +1 -1
- package/server/{health-events-BT0aAfeA.js → health-events-CRdxDFN2.js} +2 -2
- package/server/{hooks-BQxRXtRb.js → hooks-C1ScyVxP.js} +1 -1
- package/server/{hooks-DxEn2BoY.js → hooks-C9b7Vqpw.js} +2 -2
- package/server/hume-K1pi8jC4.js +3 -0
- package/server/{hume-DkVOs1Qi.js → hume-TQ5pvOZ_.js} +2 -2
- package/server/{idle-stack-reaper-DGy7tvC9.js → idle-stack-reaper-B1kG7B_X.js} +2 -2
- package/server/{idle-stack-reaper-C7fJL8jH.js → idle-stack-reaper-iFVOAoJy.js} +1 -1
- package/server/{infra-DE3C4PMr.js → infra-bpq1MHKU.js} +50 -3
- package/server/{injection-Dt22tGvS.js → injection-BLWfwTVZ.js} +1 -1
- package/server/{injection-Cc4Qt8LZ.js → injection-DJqWld1v.js} +7 -7
- package/server/inspect-agent-477VxQim.js +2 -0
- package/server/{inspect-agent-DOaCDkCF.js → inspect-agent-DytCsltn.js} +9 -9
- package/server/{internal-token-nobT6FhA.js → internal-token-CCaWaTwE.js} +1 -1
- package/server/{internal-token-B_1YLWLI.js → internal-token-CjlhdufS.js} +2 -2
- package/server/{io-A7ZuOBkz.js → io-BiQ2Cs3k.js} +2 -2
- package/server/{issue-closed-Da3DeomA.js → issue-closed-FApNiOOs.js} +4 -4
- package/server/{issue-lifecycle-Bd9XBJAQ.js → issue-lifecycle-BkFWNjlD.js} +1 -1
- package/server/{issue-lifecycle-543pQX9D.js → issue-lifecycle-C-K53ASY.js} +21 -21
- package/server/{issue-service-singleton-Brc3t0SV.js → issue-service-singleton-CuHGpJJP.js} +8 -8
- package/server/{issue-service-singleton-BC2JLZi7.js → issue-service-singleton-bG1WdSdQ.js} +1 -1
- package/server/{issues-D3kt9UWE.js → issues-CwQMphDH.js} +2 -2
- package/server/jsonl-parser-dNIjHgym.js +245 -0
- package/server/{label-cleanup-w9X_T3AQ.js → label-cleanup-DYvAZknd.js} +3 -3
- package/server/{layers-Cwe1J-9o.js → layers-CD6FysRU.js} +2 -2
- package/server/{lifecycle-f1GbDK33.js → lifecycle-C_73gi-C.js} +7 -7
- package/server/{lifecycle-io-D56q8zlO.js → lifecycle-io-C_Wu0_i-.js} +1 -1
- package/server/{lifecycle-io-Bqvj0m3i.js → lifecycle-io-CeYxP3cE.js} +4 -4
- package/server/{linear-client-Bh4T4S-c.js → linear-client-4qoKnuQu.js} +1 -1
- package/server/{linear-client-CfJMTAYd.js → linear-client-EtVyblVz.js} +2 -2
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-ZrXFM3jv.js → merge-7rqkTUm2.js} +3 -3
- package/server/merge-agent-36wfYm2u.js +3 -0
- package/server/{merge-agent-CHHs5S_0.js → merge-agent-4Zhlgvqp.js} +62 -27
- package/server/{merge-batch-BwhGdlh4.js → merge-batch-itfnwdsT.js} +1 -1
- package/server/{merge-blockers-BMhDpMl_.js → merge-blockers-Bto_Oe_o.js} +2 -2
- package/server/{merge-DRMPa8CQ.js → merge-brm721Es.js} +1 -1
- package/server/merge-ops-PzqsW69V.js +2 -0
- package/server/{merge-rebase-R7MfqpiE.js → merge-rebase-Czfqfe4q.js} +2 -2
- package/server/{merge-set-B3Breacq.js → merge-set-BIkGQL9j.js} +9 -5
- package/server/{merge-set-D-iXNP0I.js → merge-set-G1RHcu3D.js} +1 -1
- package/server/{merge-sync-DHWbGtjR.js → merge-sync-B43Dybea.js} +2 -2
- package/server/{merge-sync-bOOtfeXR.js → merge-sync-DIrmlZUr.js} +1 -1
- package/server/{merge-train-98ptZrPT.js → merge-train-DGqVuNZV.js} +3 -3
- package/server/{merge-train-deps-B5FWJTE2.js → merge-train-deps-q15XLnAS.js} +4 -4
- package/server/{merge-verification-BGiuiXAK.js → merge-verification-Cqfxx6bE.js} +4 -4
- package/server/{multipart-parser-D7mzNNDm.js → multipart-parser-CiPxxfUH.js} +2 -2
- package/server/node_modules/.package-lock.json +1 -1
- package/server/{orphan-proposed-reconciler-BSGCNJ6X.js → orphan-proposed-reconciler-BWWHn4Lr.js} +15 -39
- package/server/{orphan-proposed-reconciler-CSuxivr9.js → orphan-proposed-reconciler-DAD9FJtQ.js} +1 -1
- package/server/package-lock.json +2 -2
- package/server/package.json +1 -1
- package/server/{pan-dir-DoPtdHrp.js → pan-dir-Bj7Hy8iu.js} +3 -3
- package/server/{paths-CVDLPxXp.js → paths-C9DkhIOT.js} +2 -2
- package/server/{pickup-KLRUhThD.js → pickup-CKRuGDsB.js} +1 -1
- package/server/{pipeline-notifier-BtYHbBPl.js → pipeline-notifier-BkKbQ8ji.js} +1 -1
- package/server/{pipeline-notifier-WD2dnOsR.js → pipeline-notifier-CAurUste.js} +2 -2
- package/server/project-pipelines-BRWaGmI4.js +162 -0
- package/server/projects-KJ94e50I.js +3 -0
- package/server/{prompts-Cg7e9FPb.js → prompts-DfI5qbTW.js} +2 -2
- package/server/{providers-fLduChnX.js → providers-CWDXoaMA.js} +7 -7
- package/server/providers-D-5txBRc.js +3 -0
- package/server/public/assets/{chunk-BO2N2NFS-aNlsGDCu.js → chunk-BO2N2NFS-ClukPsZQ.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-CnjkrvT8.js → diagram-OG6HWLK6-Avtvq2qI.js} +1 -1
- package/server/public/assets/{dist-Bg3Sbsx4.js → dist-BEHQuasD.js} +3 -3
- package/server/public/assets/{dist-CGKBCieA.js → dist-BvmY-qb1.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-C8LLKj23.js → ganttDiagram-6RSMTGT7-7KhCd0fH.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-BSDEUvhW.js → highlighted-body-OFNGDK62-iQoBMTf0.js} +1 -1
- package/server/public/assets/index-DUFDmvmH.css +1 -0
- package/server/public/assets/index-DnTZ2QeN.js +796 -0
- package/server/public/assets/{linear-DEbYZoxg.js → linear-CiJHW9g5.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BtZL5pXE.js → pieDiagram-4H26LBE5-BOhmvUhW.js} +1 -1
- package/server/public/assets/{prod-DYVvIyuh.js → prod-DmLBBqat.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-a7vS8Jc8.js → quadrantDiagram-W4KKPZXB-Cjku660G.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-Ckbq2SWH.js → sankeyDiagram-5OEKKPKP-D52w5oPh.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-DJyeNa99.js → xychartDiagram-2RQKCTM6-BTO07_Iv.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-1WXmTBlo.js → pull-requests-Bmre-Xlz.js} +3 -3
- package/server/{pull-requests-D2SjJIwY.js → pull-requests-CKZPWhjD.js} +1 -1
- package/server/{rally-8aQlLLVj.js → rally-BBd9tQ__.js} +3 -3
- package/server/rally-Dc2Wnxw2.js +3 -0
- package/server/{rally-api-BtvwdX6d.js → rally-api-DDc85HIz.js} +1 -1
- package/server/{rally-api-H5I2CBO0.js → rally-api-DxZFObI_.js} +2 -2
- package/server/{rally-client-Bt-qHiOh.js → rally-client-BADHn0m_.js} +1 -1
- package/server/{rally-client-33CYZYYu.js → rally-client-DvvLiAQP.js} +4 -4
- package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-D6JDJsqF.js} +1 -1
- package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-D_xvy-Mk.js} +1 -1
- package/server/{rebuild-stack-KHkkrGjx.js → rebuild-stack-D19i080j.js} +6 -6
- package/server/{rebuild-stack-CXSgAGPR.js → rebuild-stack-GOsWqXi3.js} +1 -1
- package/server/{reconstruct-cache-D_Ml65_6.js → reconstruct-cache-lQrG4xGg.js} +6 -6
- package/server/record-pyB6VA32.js +3 -0
- package/server/recovery-trip-Dfh1tNHn.js +98 -0
- package/server/release-engine-DxcMWRuK.js +306 -0
- package/server/release-set-BYsgX7o6.js +125 -0
- package/server/{remote-CGuognN3.js → remote-8W2Yhygw.js} +3 -3
- package/server/{remote-D0Old0Cv.js → remote-DmeL21dF.js} +3 -3
- package/server/{remote-agents-DfhMq6kQ.js → remote-agents-BfQBE6MN.js} +5 -5
- package/server/{remote-agents-UHoi4oGr.js → remote-agents-DlvbzO7m.js} +1 -1
- package/server/{remote-completion-RZYePR_0.js → remote-completion-BgkiSQmx.js} +12 -12
- package/server/resolver-dTpSSzaH.js +158 -0
- package/server/resume-DhcIqsTm.js +3 -0
- package/server/{review-agent-sZBCpEVv.js → review-agent-D025Wt7w.js} +22 -22
- package/server/{review-agent-uwVftH98.js → review-agent-Rub0OpZc.js} +1 -1
- package/server/{review-artifacts-C7a45b1_.js → review-artifacts-CX951jTU.js} +6 -6
- package/server/{review-context-CErbQpKL.js → review-context-DGGGR_w5.js} +7 -7
- package/server/{review-monitor-DHD9m_kh.js → review-monitor-0_qqMcnS.js} +2 -2
- package/server/{review-status-gPndPUBc.js → review-status-4qqLkRMu.js} +24 -17
- package/server/{review-status-JhQ3qlDS.js → review-status-Br6lAFGO.js} +1 -1
- package/server/{review-status-enrichment-qWvWckYN.js → review-status-enrichment-Cr8m3uVL.js} +3 -3
- package/server/{review-status-sync-B_GrEke8.js → review-status-sync-D3KUhsdA.js} +1 -1
- package/server/{review-status-sync-D3A9KX95.js → review-status-sync-OC-l1lNt.js} +9 -5
- package/server/{review-verdict-feedback-4WZ5ZdbC.js → review-verdict-feedback-DrWMuRaj.js} +6 -6
- package/server/{review-verdict-feedback-Zo0r_z4m.js → review-verdict-feedback-YOzmsq9G.js} +1 -1
- package/server/{rollup-BrUIKMv_.js → rollup-CnxbwaLH.js} +8 -8
- package/server/{rollup-Bmhn80tB.js → rollup-DmazRY0j.js} +1 -1
- package/server/{scanner-BIGumel_.js → scanner-DE1MqAaF.js} +7 -7
- package/server/{sequence-io-DA0akEQN.js → sequence-io-C0uoqfGx.js} +4 -4
- package/server/{sequencer-agent-DeflKafB.js → sequencer-agent-i-b2u4SJ.js} +10 -6
- package/server/server.js +1115 -297
- package/server/{service-V0sUK-OR.js → service-D0_gh2tl.js} +1668 -1408
- package/server/{session-fork-Yx3UcAQf.js → session-fork-DZ12vipL.js} +2 -2
- package/server/{settings-CFEeQRj2.js → settings-ByqjPtFO.js} +2 -2
- package/server/{settings-CxVate0h.js → settings-DCC4BAqj.js} +3 -3
- package/server/settings-yydgaqhv.js +2 -0
- package/server/{shadow-engineering-BRxnVSDk.js → shadow-engineering-BhnmtW5m.js} +2 -2
- package/server/{shadow-state-1aS8FijU.js → shadow-state-ByXZehsy.js} +1 -1
- package/server/{shadow-state-BiMwdyl1.js → shadow-state-CKm8xWX9.js} +2 -2
- package/server/{ship-log-CMWH3H5-.js → ship-log-DE_0Cv_i.js} +1 -1
- package/server/{smart-compaction-Bw1K_Sbl.js → smart-compaction-D5Zen3AA.js} +7 -7
- package/server/{smart-compaction-xblMyVpT.js → smart-compaction-h4_ca6Uk.js} +1 -1
- package/server/{spawn-planning-session-CzDFSKAQ.js → spawn-planning-session-Bgi7Ub02.js} +1 -1
- package/server/{spawn-planning-session-DxLxcM7m.js → spawn-planning-session-Dueit4WX.js} +15 -15
- package/server/{specialist-completion-BiEXUHfD.js → specialist-completion-BZ8M-WZ0.js} +1 -1
- package/server/{specialist-context-BfkTA81h.js → specialist-context-BMq83C58.js} +5 -5
- package/server/{specialist-handoff-logger-BiKuLtNm.js → specialist-handoff-logger-BxX1YefH.js} +2 -2
- package/server/{specialist-logs-CFJjGsLC.js → specialist-logs-BWZYcJ6P.js} +3 -3
- package/server/{specialists-DdvpFNt1.js → specialists-8ZAguXef.js} +1 -1
- package/server/{specialists-B4byf18k.js → specialists-BudKrjOu.js} +76 -76
- package/server/{specialists-DjHbwQ_p.js → specialists-DrPrC9Y9.js} +20 -256
- package/server/{specialists-BLIreoE7.js → specialists-ZkW4Mb7U.js} +1 -1
- package/server/specs-DwoAEGrW.js +3 -0
- package/server/{src-fgbU-jJ-.js → src-DHn4Rd2F.js} +25 -3
- package/server/{src-mK_M_ZIj.js → src-DNUUqkec.js} +6 -6
- package/server/{src-CALBEUMX.js → src-Dv6L03vW.js} +3 -3
- package/server/{stack-health-BFM8YlHw.js → stack-health-Dclm7_tu.js} +1 -1
- package/server/{stack-health-Qd7rPiVe.js → stack-health-DxsTx7II.js} +2 -2
- package/server/{state-home-C2Bicw9N.js → state-home-CRowbXqU.js} +6 -6
- package/server/stuck-remediation-CFWUP8_I.js +1491 -0
- package/server/stuck-remediation-CLHd-lrF.js +2 -0
- package/server/{summary-fork-EWWBvzgE.js → summary-fork-CKc01Our.js} +2 -2
- package/server/{summary-fork-DezPkJSm.js → summary-fork-CtCwBJ2Z.js} +8 -8
- package/server/{supervisor-D5GC5jUM.js → supervisor-BA5D72Qa.js} +2 -2
- package/server/supervisor-DHjumXlL.js +2 -0
- package/server/{swarm-readiness-Cf9mommA.js → swarm-readiness-CL5sM9B1.js} +3 -3
- package/server/{system-prerequisites-BsI9hxh9.js → system-prerequisites-DmFSXIE5.js} +13 -1
- package/server/{teardown-workspace-CWz1pbEK.js → teardown-workspace-DWmFJzTw.js} +37 -68
- package/server/{test-agent-queue-TiVXe3ZT.js → test-agent-queue-DjsQoV5X.js} +6 -6
- package/server/{test-verdict-CCDd25uN.js → test-verdict-BSqsQp3G.js} +1 -1
- package/server/{test-verdict-Bm4uv_AA.js → test-verdict-D1AmZ2c0.js} +1 -1
- package/server/{tldr-daemon-C_1frSDj.js → tldr-daemon-C-MGomL8.js} +2 -2
- package/server/{tldr-daemon-Big5IZ_M.js → tldr-daemon-DD9rI5gA.js} +1 -1
- package/server/{tmux-D57f-XNv.js → tmux-C_d-lSIq.js} +2 -2
- package/server/{tmux-DClqWwb8.js → tmux-x291Gjjb.js} +1 -1
- package/server/{token-_qujO3JZ.js → token-DfBf1bsd.js} +1 -1
- package/server/{tracker-config-BmdJU_w6.js → tracker-config-CNODpd11.js} +2 -2
- package/server/{tracker-config-B_Ubts1Z.js → tracker-config-DItsdelv.js} +1 -1
- package/server/{tracker-utils-Bg-Sevcv.js → tracker-utils-B9ZoVA9b.js} +1 -1
- package/server/{tracker-utils-CWFt6jjV.js → tracker-utils-Ch2_5GGf.js} +2 -2
- package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-BF4x_LUQ.js} +1 -1
- package/server/{tunnel-hOBNQbmF.js → tunnel-YD80_IHr.js} +1 -1
- package/server/{tunnel-UBf2vyAL.js → tunnel-r_5nHAI6.js} +3 -3
- package/server/{types-B5u3NxMl.js → types-33JEP4LZ.js} +1 -1
- package/server/{uat-train-DGkIkLxu.js → uat-train-DDI00aqD.js} +1 -1
- package/server/{uat-train-qNanv5hN.js → uat-train-DjkFWXge.js} +25 -25
- package/server/{validation-C4wegCvH.js → validation-DUTiJnyz.js} +4 -4
- package/server/{validation-B0QaLIHP.js → validation-ict8hnXk.js} +1 -1
- package/server/{verification-runner-DdleMNLq.js → verification-runner-ATaLbpr5.js} +1 -1
- package/server/{verification-runner-CntudBes.js → verification-runner-inLgeQux.js} +12 -12
- package/server/{vtt-parser-CKc-smWM.js → vtt-parser-QnRfcjiU.js} +1 -1
- package/server/{work-agent-prompt-CG5jFV9A.js → work-agent-prompt-fZljjA1_.js} +12 -12
- package/server/{workflows-BK2xs_a8.js → workflows-oBnJ7Tm0.js} +14 -14
- package/server/workflows-tU7KKxQi.js +2 -0
- package/server/{workspace-C9lC5o3E.js → workspace-B2WOW9Hw.js} +1 -1
- package/server/{workspace-CLrSIRCx.js → workspace-CNuW2j41.js} +3 -3
- package/server/{workspace-config-DA8U97k9.js → workspace-config-CBgMGhWs.js} +1 -1
- package/server/{workspace-manager-BJhW2sky.js → workspace-manager-CB-R07R3.js} +12 -12
- package/server/{workspace-manager-Cb2a7bg9.js → workspace-manager-DjUAJCSs.js} +1 -1
- package/server/{workspace-metadata-QQmo_Z0l.js → workspace-metadata-9Nn5kgRl.js} +2 -2
- package/server/{workspace-metadata-CTRnr323.js → workspace-metadata-Fd58uUQG.js} +1 -1
- package/server/{workspaces-Ca4zZs12.js → workspaces-BjWXntty.js} +106 -120
- package/server/writer-CQMGzEkw.js +3 -0
- package/server/writer-fe1-8iGc.js +251 -0
- package/sync-sources/hooks/ask-user-question-hook +87 -0
- package/sync-sources/hooks/auto-approve-hook +96 -0
- package/sync-sources/hooks/codex-notify-hook +62 -0
- package/sync-sources/hooks/gh-issue-trailer-hook +4 -0
- package/sync-sources/hooks/gh-issue-trailer-hook.d.ts +7 -0
- package/sync-sources/hooks/gh-issue-trailer-hook.d.ts.map +1 -0
- package/sync-sources/hooks/gh-issue-trailer-hook.js +239 -0
- package/sync-sources/hooks/gh-issue-trailer-hook.js.map +1 -0
- package/sync-sources/hooks/gh-issue-trailer-hook.ts +296 -0
- package/sync-sources/hooks/git-hooks/post-checkout +109 -0
- package/sync-sources/hooks/heartbeat-hook +113 -0
- package/sync-sources/hooks/notification-hook +70 -0
- package/sync-sources/hooks/notify-complete +79 -0
- package/sync-sources/hooks/pan-hook-lib.sh +153 -0
- package/sync-sources/hooks/permission-event-hook +24 -0
- package/sync-sources/hooks/post-compact-hook +25 -0
- package/sync-sources/hooks/pre-compact-hook +26 -0
- package/sync-sources/hooks/pre-tool-hook +35 -0
- package/sync-sources/hooks/record-cost-event.d.ts +1 -0
- package/sync-sources/hooks/record-cost-event.js +31859 -0
- package/sync-sources/hooks/record-cost-event.js.map +1 -0
- package/sync-sources/hooks/record-cost-event.ts +267 -0
- package/sync-sources/hooks/rtk-bash-filter +152 -0
- package/sync-sources/hooks/session-start-hook +80 -0
- package/sync-sources/hooks/specialist-stop-hook +106 -0
- package/sync-sources/hooks/statusline.sh +169 -0
- package/sync-sources/hooks/stop-hook +217 -0
- package/sync-sources/hooks/tldr-post-edit +72 -0
- package/sync-sources/hooks/tldr-read-enforcer +340 -0
- package/sync-sources/hooks/tmux-send-keys-guard +87 -0
- package/sync-sources/hooks/tsdown.config.ts +14 -0
- package/sync-sources/hooks/user-prompt-submit-hook +57 -0
- package/sync-sources/hooks/work-agent-stop-hook +424 -0
- package/server/auto-commit-CGQlb4rV.js +0 -3
- package/server/bd-mutex-BItGvLQ8.js +0 -35
- package/server/beads-restore-CMbDSB5R.js +0 -60
- package/server/cli-Ch_BWJB2.js +0 -3
- package/server/deacon-swarm-CSWGRfzr.js +0 -2
- package/server/dist-BUplB3Od.js +0 -3
- package/server/forge-IgLR0Ist.js +0 -2
- package/server/hume-x9voULey.js +0 -3
- package/server/inspect-agent-CYoWAeeB.js +0 -2
- package/server/merge-agent-CfohxFWM.js +0 -3
- package/server/merge-ops-Czke6UAp.js +0 -2
- package/server/projects-Bqfwuqet.js +0 -3
- package/server/providers-JjK6izqX.js +0 -3
- package/server/public/assets/index-CZiADHcL.css +0 -1
- package/server/public/assets/index-LQIfhmgI.js +0 -796
- package/server/public/assets/mermaid-GHXKKRXX-CZOsRYoT.js +0 -1
- package/server/rally-Ba9QoNYc.js +0 -3
- package/server/record-De2syxNB.js +0 -3
- package/server/resume-CmxF3Kjz.js +0 -3
- package/server/settings-DEhYpW0k.js +0 -2
- package/server/specs-CVH1kvz3.js +0 -3
- package/server/supervisor-DQMK2e3I.js +0 -2
- package/server/workflows-pKw9yRSV.js +0 -2
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { n as init_resolver, t as createBeadsResolver } from "./resolver-dTpSSzaH.js";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
|
-
import {
|
|
5
|
-
import { basename, dirname, join } from "path";
|
|
6
|
-
import { readFile } from "node:fs/promises";
|
|
7
|
-
import { execFile } from "child_process";
|
|
8
|
-
import { promisify } from "util";
|
|
4
|
+
import { basename, dirname } from "path";
|
|
9
5
|
//#region ../../lib/beads-query.ts
|
|
10
6
|
function normalizeIssueLabel(issueId) {
|
|
11
7
|
return issueId.toLowerCase();
|
|
@@ -51,106 +47,34 @@ function groupReadyBeadsByIssue(beads, issueLabels) {
|
|
|
51
47
|
}
|
|
52
48
|
return result;
|
|
53
49
|
}
|
|
54
|
-
async function readAllBeadsFromJsonl(workspacePath) {
|
|
55
|
-
try {
|
|
56
|
-
const jsonlPath = join(workspacePath, ".beads", "issues.jsonl");
|
|
57
|
-
if (!existsSync(jsonlPath)) return [];
|
|
58
|
-
const raw = await readFile(jsonlPath, "utf-8");
|
|
59
|
-
const beads = [];
|
|
60
|
-
for (const line of raw.split("\n")) {
|
|
61
|
-
if (!line.trim()) continue;
|
|
62
|
-
try {
|
|
63
|
-
const entry = JSON.parse(line);
|
|
64
|
-
beads.push(toBeadEntry(entry, beadLabels(entry)));
|
|
65
|
-
} catch {}
|
|
66
|
-
}
|
|
67
|
-
return beads;
|
|
68
|
-
} catch {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
async function readBeadsFromJsonl(workspacePath, issueId) {
|
|
73
|
-
const issueLabel = normalizeIssueLabel(issueId);
|
|
74
|
-
return (await readAllBeadsFromJsonl(workspacePath)).filter((bead) => labelMatchesIssue(bead.labels, issueLabel));
|
|
75
|
-
}
|
|
76
50
|
async function queryBeadsForIssuePromise(workspacePath, issueId, retryOptions = {}) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"all",
|
|
85
|
-
"--limit",
|
|
86
|
-
"0"
|
|
87
|
-
], {
|
|
88
|
-
encoding: "utf-8",
|
|
89
|
-
cwd: workspacePath,
|
|
90
|
-
timeout: 1e4
|
|
91
|
-
}), {
|
|
92
|
-
...retryOptions,
|
|
93
|
-
workspacePath
|
|
94
|
-
});
|
|
95
|
-
const parsed = JSON.parse(stdout || "[]");
|
|
96
|
-
return { beads: Array.isArray(parsed) ? parsed : [] };
|
|
97
|
-
} catch (error) {
|
|
98
|
-
return {
|
|
99
|
-
beads: await readBeadsFromJsonl(workspacePath, issueId),
|
|
100
|
-
transientFailure: error instanceof BdTransientFailure ? error : void 0
|
|
101
|
-
};
|
|
102
|
-
}
|
|
51
|
+
const result = await createBeadsResolver(workspacePath, { retry: retryOptions }).getBeadsForIssue(issueId);
|
|
52
|
+
return result.ok ? { beads: result.value.map((entry) => toBeadEntry(entry, beadLabels(entry))) } : {
|
|
53
|
+
beads: [],
|
|
54
|
+
stale: true,
|
|
55
|
+
reason: result.reason,
|
|
56
|
+
transientFailure: result.transient ? result.error : void 0
|
|
57
|
+
};
|
|
103
58
|
}
|
|
104
59
|
async function queryReadyBeadsByIssueLabelsPromise(workspacePath, issueIds, retryOptions = {}) {
|
|
105
60
|
const issueLabels = Array.from(new Set(issueIds.map(normalizeIssueLabel)));
|
|
106
61
|
if (issueLabels.length === 0) return { byIssue: {} };
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"0"
|
|
116
|
-
], {
|
|
117
|
-
encoding: "utf-8",
|
|
118
|
-
cwd: workspacePath,
|
|
119
|
-
timeout: 1e4
|
|
120
|
-
}), {
|
|
121
|
-
...retryOptions,
|
|
122
|
-
workspacePath
|
|
123
|
-
});
|
|
124
|
-
const parsed = JSON.parse(stdout || "[]");
|
|
125
|
-
return { byIssue: groupReadyBeadsByIssue(Array.isArray(parsed) ? parsed.map((entry) => toBeadEntry(entry, beadLabels(entry))) : [], issueLabels) };
|
|
126
|
-
} catch (error) {
|
|
127
|
-
return {
|
|
128
|
-
byIssue: groupReadyBeadsByIssue(await readAllBeadsFromJsonl(workspacePath), issueLabels),
|
|
129
|
-
transientFailure: error instanceof BdTransientFailure ? error : void 0
|
|
130
|
-
};
|
|
131
|
-
}
|
|
62
|
+
const result = await createBeadsResolver(workspacePath, { retry: retryOptions }).getAllBeads();
|
|
63
|
+
if (result.ok) return { byIssue: groupReadyBeadsByIssue(result.value.map((entry) => toBeadEntry(entry, beadLabels(entry))), issueLabels) };
|
|
64
|
+
return {
|
|
65
|
+
byIssue: Object.fromEntries(issueLabels.map((label) => [label, []])),
|
|
66
|
+
stale: true,
|
|
67
|
+
reason: result.reason,
|
|
68
|
+
transientFailure: result.transient ? result.error : void 0
|
|
69
|
+
};
|
|
132
70
|
}
|
|
133
71
|
async function queryBeadByIdPromise(workspacePath, beadId) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
"show",
|
|
137
|
-
beadId,
|
|
138
|
-
"--json"
|
|
139
|
-
], {
|
|
140
|
-
encoding: "utf-8",
|
|
141
|
-
cwd: workspacePath,
|
|
142
|
-
timeout: 1e4
|
|
143
|
-
});
|
|
144
|
-
const parsed = JSON.parse(stdout || "[]");
|
|
145
|
-
return (Array.isArray(parsed) ? parsed : [parsed])[0] ?? null;
|
|
146
|
-
} catch {
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
72
|
+
const result = await createBeadsResolver(workspacePath).getBeadById(beadId);
|
|
73
|
+
return result.ok ? result.value : null;
|
|
149
74
|
}
|
|
150
|
-
var
|
|
75
|
+
var BeadsMissingError, queryBeadsForIssue, queryReadyBeadsByIssueLabels, assertIssueHasBeads, queryBeadById;
|
|
151
76
|
var init_beads_query = __esmMin((() => {
|
|
152
|
-
|
|
153
|
-
execFileAsync = promisify(execFile);
|
|
77
|
+
init_resolver();
|
|
154
78
|
BeadsMissingError = class extends Data.TaggedError("BeadsMissingError") {};
|
|
155
79
|
queryBeadsForIssue = (workspacePath, issueId, retryOptions = {}) => Effect.promise(() => queryBeadsForIssuePromise(workspacePath, issueId, retryOptions));
|
|
156
80
|
queryReadyBeadsByIssueLabels = (workspacePath, issueIds, retryOptions = {}) => Effect.promise(() => queryReadyBeadsByIssueLabelsPromise(workspacePath, issueIds, retryOptions));
|
|
@@ -159,7 +83,8 @@ var init_beads_query = __esmMin((() => {
|
|
|
159
83
|
if (result.beads.length === 0) return yield* Effect.fail(new BeadsMissingError({
|
|
160
84
|
issueId,
|
|
161
85
|
workspacePath,
|
|
162
|
-
transientFailure: result.transientFailure
|
|
86
|
+
transientFailure: result.transientFailure,
|
|
87
|
+
staleReason: result.reason
|
|
163
88
|
}));
|
|
164
89
|
});
|
|
165
90
|
queryBeadById = (workspacePath, beadId) => Effect.promise(() => queryBeadByIdPromise(workspacePath, beadId));
|
|
@@ -167,4 +92,4 @@ var init_beads_query = __esmMin((() => {
|
|
|
167
92
|
//#endregion
|
|
168
93
|
export { queryBeadsForIssue as a, queryBeadById as i, assertIssueHasBeads as n, queryReadyBeadsByIssueLabels as o, init_beads_query as r, resolveBeadsQueryRoot as s, BeadsMissingError as t };
|
|
169
94
|
|
|
170
|
-
//# sourceMappingURL=beads-query-
|
|
95
|
+
//# sourceMappingURL=beads-query-B1DlJVp9.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
import { n as init_export, t as exportBeadsJsonl } from "./export-Dx_qJ3h8.js";
|
|
3
|
+
import { Effect } from "effect";
|
|
4
|
+
//#region ../../lib/beads-restore.ts
|
|
5
|
+
/**
|
|
6
|
+
* Repair a missing derived beads export from canonical Dolt state.
|
|
7
|
+
*
|
|
8
|
+
* The old implementation restored a tracked JSONL snapshot from git, which
|
|
9
|
+
* could revive stale rows. Dolt is authoritative; repair is now a validated
|
|
10
|
+
* re-export through the one JSONL writer.
|
|
11
|
+
*/
|
|
12
|
+
var restoreTrackedBeadsExport;
|
|
13
|
+
var init_beads_restore = __esmMin((() => {
|
|
14
|
+
init_export();
|
|
15
|
+
restoreTrackedBeadsExport = (workspacePath) => Effect.tryPromise({
|
|
16
|
+
try: () => exportBeadsJsonl(workspacePath).then(() => void 0),
|
|
17
|
+
catch: () => void 0
|
|
18
|
+
}).pipe(Effect.catch(() => Effect.void));
|
|
19
|
+
}));
|
|
20
|
+
//#endregion
|
|
21
|
+
export { restoreTrackedBeadsExport as n, init_beads_restore as t };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=beads-restore-CyygSmmn.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { t as init_src } from "./src-
|
|
3
|
-
import { o as getPricingSync, s as init_cost } from "./cost-
|
|
2
|
+
import { t as init_src } from "./src-DHn4Rd2F.js";
|
|
3
|
+
import { o as getPricingSync, s as init_cost } from "./cost-DQ2ajr_m.js";
|
|
4
4
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
//#region ../../lib/cost-parsers/codex-parser.ts
|
|
6
6
|
/**
|
|
@@ -250,4 +250,4 @@ var init_behavior = __esmMin((() => {
|
|
|
250
250
|
//#endregion
|
|
251
251
|
export { parseCodexSessionSync as i, init_codex_parser as n, parseCodexSessionCostEventsSync as r, init_behavior as t };
|
|
252
252
|
|
|
253
|
-
//# sourceMappingURL=behavior-
|
|
253
|
+
//# sourceMappingURL=behavior-Cpj03N4v.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { _ as integer, a as EventBus, b as and, c as Records, d as getOverdeckDatabaseSync, f as init_infra, h as text, l as Tmux, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-
|
|
4
|
-
import { n as init_issues, t as IssueId } from "./issues-
|
|
2
|
+
import { Kr as getOverdeckHome, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
|
|
3
|
+
import { _ as integer, a as EventBus, b as and, c as Records, d as getOverdeckDatabaseSync, f as init_infra, h as text, l as Tmux, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-bpq1MHKU.js";
|
|
4
|
+
import { n as init_issues, t as IssueId } from "./issues-CwQMphDH.js";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { Context, Effect, Layer, Schema } from "effect";
|
|
7
7
|
import { dirname as dirname$1, join as join$1 } from "path";
|
|
@@ -1098,4 +1098,4 @@ var init_briefing_freshness = __esmMin((() => {
|
|
|
1098
1098
|
//#endregion
|
|
1099
1099
|
export { resolveSessionContextBriefingPath as a, backfillAgentsSync as c, init_agents as d, listAgentIdsByPrefixSync as f, isTerminalIssueStage as g, getIssueStageSync as h, recordBriefingSessionStart as i, countAgentsByStatus as l, removeAgentSync as m, ensureSessionContextBriefingFile as n, AgentsResolver as o, listAllAgentsSync as p, init_briefing_freshness as r, AgentsResolverLive as s, appendFreshBriefingUpdate as t, countAgentsByStatusRole as u };
|
|
1100
1100
|
|
|
1101
|
-
//# sourceMappingURL=briefing-freshness-
|
|
1101
|
+
//# sourceMappingURL=briefing-freshness-Kh5V8RTh.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-
|
|
1
|
+
import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-fu9oVsR-.js";
|
|
2
2
|
init_checkpoint_manager();
|
|
3
3
|
export { deleteLegacyCheckpointRefs, diffCheckpointFiles, getCheckpointTimestamp, listCheckpoints, pruneCheckpointRefsForAgents, pruneStaleCheckpointRefs };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { br as init_errors, pr as InvalidAgentIdError, sn as STATE_BRANCH_PATHS, sr as CheckpointError, un as init_state_plane, yr as VcsError } from "./config-yaml-Dcz-8uit.js";
|
|
3
3
|
import { Effect, Layer } from "effect";
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { tmpdir } from "os";
|
|
@@ -663,4 +663,4 @@ var init_checkpoint_manager = __esmMin((() => {
|
|
|
663
663
|
//#endregion
|
|
664
664
|
export { pruneStaleCheckpointRefs as _, diffAgainstMain as a, diffCheckpoints as c, diffPatchSinceCommit as d, findCommitAtTime as f, pruneCheckpointRefsForAgents as g, listCheckpoints as h, deleteLegacyCheckpointRefs as i, diffFilesAgainstHead as l, init_checkpoint_manager as m, checkpointStateExclusions as n, diffAgainstMainFiles as o, getCheckpointTimestamp as p, deleteCheckpoint as r, diffCheckpointFiles as s, captureCheckpoint as t, diffPatchFilesAgainstHead as u };
|
|
665
665
|
|
|
666
|
-
//# sourceMappingURL=checkpoint-manager-
|
|
666
|
+
//# sourceMappingURL=checkpoint-manager-fu9oVsR-.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-
|
|
1
|
+
import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-1BqOlS4q.js";
|
|
2
2
|
import { parentPort } from "node:worker_threads";
|
|
3
3
|
//#region ../../lib/memory/checkpoint-worker.ts
|
|
4
4
|
function runOperation(operation, payload) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
1
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-bpq1MHKU.js";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region ../../lib/overdeck/transcript-checkpoint-sync.ts
|
|
4
4
|
/**
|
|
@@ -195,4 +195,4 @@ function getTranscriptCheckpoint(sessionId) {
|
|
|
195
195
|
//#endregion
|
|
196
196
|
export { releaseTranscriptRange as a, listTranscriptCheckpoints as i, commitTranscriptRange as n, getTranscriptCheckpoint as r, claimTranscriptRange as t };
|
|
197
197
|
|
|
198
|
-
//# sourceMappingURL=checkpoints-
|
|
198
|
+
//# sourceMappingURL=checkpoints-1BqOlS4q.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-
|
|
1
|
+
import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-1BqOlS4q.js";
|
|
2
2
|
export { claimTranscriptRange, commitTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints, releaseTranscriptRange };
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import { Cr as BIN_DIR, Lr as SYNC_SOURCES, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { copyFileSync, existsSync, mkdirSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "fs";
|
|
4
|
+
import { basename as basename$1, dirname as dirname$1, join as join$1 } from "path";
|
|
5
|
+
import { homedir } from "node:os";
|
|
6
|
+
import { chmodSync as chmodSync$1, copyFileSync as copyFileSync$1, existsSync as existsSync$1, mkdirSync as mkdirSync$1 } from "node:fs";
|
|
7
|
+
import { readFile } from "node:fs/promises";
|
|
8
|
+
import { execFile } from "node:child_process";
|
|
9
|
+
import { promisify } from "node:util";
|
|
10
|
+
//#region ../../lib/claude-hooks-registration.ts
|
|
11
|
+
/**
|
|
12
|
+
* Overdeck's Claude Code hook registration — single source of truth for
|
|
13
|
+
* WHICH hook scripts exist and WHERE they register in ~/.claude/settings.json.
|
|
14
|
+
*
|
|
15
|
+
* Consumed by two installers that must never drift:
|
|
16
|
+
* - `pan admin hooks install` (src/cli/commands/setup/hooks.ts) — the
|
|
17
|
+
* interactive CLI path.
|
|
18
|
+
* - the desktop boot provisioner (src/lib/claude-hooks-provision.ts) — the
|
|
19
|
+
* non-interactive path for machines that never run the pan CLI (PAN-2595).
|
|
20
|
+
*
|
|
21
|
+
* Registration is delta-only: existing entries (including hand-customized
|
|
22
|
+
* matchers) are left alone; only missing Overdeck hooks are appended, and
|
|
23
|
+
* stale pre-rebrand `panopticon/bin` twins are pruned (PAN-2530).
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Hook scripts copied from sync-sources/hooks/ to ~/.overdeck/bin/.
|
|
27
|
+
* (Comments preserved from the original setupHooksCommand list.)
|
|
28
|
+
*/
|
|
29
|
+
const HOOK_SCRIPT_NAMES = [
|
|
30
|
+
"pan-hook-lib.sh",
|
|
31
|
+
"pre-tool-hook",
|
|
32
|
+
"ask-user-question-hook",
|
|
33
|
+
"auto-approve-hook",
|
|
34
|
+
"heartbeat-hook",
|
|
35
|
+
"stop-hook",
|
|
36
|
+
"notification-hook",
|
|
37
|
+
"specialist-stop-hook",
|
|
38
|
+
"work-agent-stop-hook",
|
|
39
|
+
"session-start-hook",
|
|
40
|
+
"user-prompt-submit-hook",
|
|
41
|
+
"pre-compact-hook",
|
|
42
|
+
"post-compact-hook",
|
|
43
|
+
"record-cost-event.js",
|
|
44
|
+
"gh-issue-trailer-hook",
|
|
45
|
+
"gh-issue-trailer-hook.js",
|
|
46
|
+
"tldr-read-enforcer",
|
|
47
|
+
"tldr-post-edit",
|
|
48
|
+
"rtk-bash-filter",
|
|
49
|
+
"permission-event-hook",
|
|
50
|
+
"tmux-send-keys-guard"
|
|
51
|
+
];
|
|
52
|
+
/**
|
|
53
|
+
* The settings.json registration table. Order matters only for readability;
|
|
54
|
+
* see setupHooksCommand for the per-entry rationale comments (PAN-1402,
|
|
55
|
+
* PAN-1024, PAN-1084, PAN-1520).
|
|
56
|
+
*/
|
|
57
|
+
const OVERDECK_HOOK_REGISTRATIONS = [
|
|
58
|
+
{
|
|
59
|
+
hookType: "PreToolUse",
|
|
60
|
+
scriptName: "pre-tool-hook"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
hookType: "PreToolUse",
|
|
64
|
+
scriptName: "auto-approve-hook"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
hookType: "PreToolUse",
|
|
68
|
+
scriptName: "gh-issue-trailer-hook",
|
|
69
|
+
matcher: "Bash"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
hookType: "PreToolUse",
|
|
73
|
+
scriptName: "tmux-send-keys-guard",
|
|
74
|
+
matcher: "Bash"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
hookType: "PreToolUse",
|
|
78
|
+
scriptName: "ask-user-question-hook",
|
|
79
|
+
matcher: "AskUserQuestion"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
hookType: "PostToolUse",
|
|
83
|
+
scriptName: "heartbeat-hook"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
hookType: "PostToolUse",
|
|
87
|
+
scriptName: "permission-event-hook"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
hookType: "Stop",
|
|
91
|
+
scriptName: "stop-hook"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
hookType: "Stop",
|
|
95
|
+
scriptName: "permission-event-hook"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
hookType: "SessionStart",
|
|
99
|
+
scriptName: "session-start-hook"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
hookType: "Notification",
|
|
103
|
+
scriptName: "notification-hook"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
hookType: "UserPromptSubmit",
|
|
107
|
+
scriptName: "user-prompt-submit-hook"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
hookType: "PreCompact",
|
|
111
|
+
scriptName: "pre-compact-hook"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
hookType: "PostCompact",
|
|
115
|
+
scriptName: "post-compact-hook"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
hookType: "PermissionRequest",
|
|
119
|
+
scriptName: "permission-event-hook"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
hookType: "PreToolUse",
|
|
123
|
+
scriptName: "tldr-read-enforcer",
|
|
124
|
+
matcher: "Read",
|
|
125
|
+
requiresPython3: true
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
hookType: "PostToolUse",
|
|
129
|
+
scriptName: "tldr-post-edit",
|
|
130
|
+
matcher: "Edit|Write",
|
|
131
|
+
requiresPython3: true
|
|
132
|
+
}
|
|
133
|
+
];
|
|
134
|
+
/**
|
|
135
|
+
* Per-hook-type detection of whether a Overdeck hook is already registered.
|
|
136
|
+
* PAN-800: rewritten from an all-or-nothing short-circuit to a delta-install
|
|
137
|
+
* check so users with older installs still get SessionStart/Notification/etc.
|
|
138
|
+
* added without having to wipe their settings.
|
|
139
|
+
*/
|
|
140
|
+
function isHookConfigured(settings, hookType, binDir, scriptName) {
|
|
141
|
+
return (settings?.hooks?.[hookType] || []).some((hookConfig) => hookConfig.hooks?.some((hook) => (hook.command?.includes(join$1(binDir, scriptName)) ?? false) || (hook.command?.includes(`overdeck/bin/${scriptName}`) ?? false)));
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* PAN-2530: Remove stale pre-rebrand hook entries that point at the old
|
|
145
|
+
* `~/.panopticon/bin/<scriptName>` path.
|
|
146
|
+
*
|
|
147
|
+
* Before the PAN-1952 rebrand, hooks were installed under `panopticon/bin/`.
|
|
148
|
+
* `isHookConfigured()` only recognizes the current `overdeck/bin/` path, so a
|
|
149
|
+
* re-sync after the rename added the new hook *alongside* the legacy one,
|
|
150
|
+
* leaving both registered and both firing (e.g. ask-user-question-hook fired
|
|
151
|
+
* twice, one copy still branded "Panopticon"). Prune any legacy entry for this
|
|
152
|
+
* script so exactly one hook survives after install.
|
|
153
|
+
*
|
|
154
|
+
* Mutates `settings` in place. Returns true if anything was removed.
|
|
155
|
+
*/
|
|
156
|
+
function pruneLegacyPanopticonHook(settings, hookType, scriptName) {
|
|
157
|
+
const list = settings?.hooks?.[hookType];
|
|
158
|
+
if (!list) return false;
|
|
159
|
+
const isLegacy = (command) => command?.includes(`panopticon/bin/${scriptName}`) ?? false;
|
|
160
|
+
let removed = false;
|
|
161
|
+
const next = [];
|
|
162
|
+
for (const hookConfig of list) {
|
|
163
|
+
const originalHooks = hookConfig.hooks ?? [];
|
|
164
|
+
const keptHooks = originalHooks.filter((hook) => {
|
|
165
|
+
if (isLegacy(hook.command)) {
|
|
166
|
+
removed = true;
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
return true;
|
|
170
|
+
});
|
|
171
|
+
if (keptHooks.length > 0 || originalHooks.length === 0) next.push(keptHooks.length === originalHooks.length ? hookConfig : {
|
|
172
|
+
...hookConfig,
|
|
173
|
+
hooks: keptHooks
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
if (removed) settings.hooks[hookType] = next;
|
|
177
|
+
return removed;
|
|
178
|
+
}
|
|
179
|
+
function addOverdeckHookIfMissing(settings, hookType, binDir, scriptName, matcher = ".*") {
|
|
180
|
+
if (!settings.hooks) settings.hooks = {};
|
|
181
|
+
pruneLegacyPanopticonHook(settings, hookType, scriptName);
|
|
182
|
+
if (isHookConfigured(settings, hookType, binDir, scriptName)) return false;
|
|
183
|
+
(settings.hooks[hookType] ??= []).push({
|
|
184
|
+
matcher,
|
|
185
|
+
hooks: [{
|
|
186
|
+
type: "command",
|
|
187
|
+
command: join$1(binDir, scriptName)
|
|
188
|
+
}]
|
|
189
|
+
});
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Apply the full Overdeck registration table to `settings` (mutated in place,
|
|
194
|
+
* delta-only). Returns what changed so callers can decide whether to write.
|
|
195
|
+
*/
|
|
196
|
+
function applyOverdeckHookRegistrations(settings, binDir, opts) {
|
|
197
|
+
const added = [];
|
|
198
|
+
const removed = [];
|
|
199
|
+
for (const reg of OVERDECK_HOOK_REGISTRATIONS) {
|
|
200
|
+
if (reg.requiresPython3 && !opts.python3Available) continue;
|
|
201
|
+
if (pruneLegacyPanopticonHook(settings, reg.hookType, reg.scriptName)) removed.push(`${reg.hookType}:${reg.scriptName}`);
|
|
202
|
+
if (addOverdeckHookIfMissing(settings, reg.hookType, binDir, reg.scriptName, reg.matcher ?? ".*")) added.push(`${reg.hookType}:${reg.scriptName}`);
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
added,
|
|
206
|
+
removed
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Copy the file to `<path>.pan-backup-<iso>` adjacent to the original.
|
|
211
|
+
* Returns the backup path, or null if the file did not exist.
|
|
212
|
+
*
|
|
213
|
+
* Backups go alongside the file (not in tmpdir) so users can find them
|
|
214
|
+
* easily and so we don't pay EXDEV on the copy.
|
|
215
|
+
*/
|
|
216
|
+
function backupSettingsSync(path) {
|
|
217
|
+
if (!existsSync(path)) return null;
|
|
218
|
+
const backupPath = `${path}.pan-backup-${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
219
|
+
copyFileSync(path, backupPath);
|
|
220
|
+
return backupPath;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Keep the most recent `SETTINGS_BACKUP_KEEP` backups for the given
|
|
224
|
+
* settings file, delete the rest. Backups are sorted lexically — the
|
|
225
|
+
* ISO-8601 timestamp in the suffix makes that equivalent to chronological.
|
|
226
|
+
*
|
|
227
|
+
* Silent on per-file delete failure; the next prune cycle will retry.
|
|
228
|
+
*/
|
|
229
|
+
function pruneBackupsSync(settingsPath, keep = 5) {
|
|
230
|
+
const dir = dirname$1(settingsPath);
|
|
231
|
+
const prefix = `${basename$1(settingsPath)}.pan-backup-`;
|
|
232
|
+
let entries;
|
|
233
|
+
try {
|
|
234
|
+
entries = readdirSync(dir);
|
|
235
|
+
} catch {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const backups = entries.filter((e) => e.startsWith(prefix)).sort().reverse();
|
|
239
|
+
for (const stale of backups.slice(keep)) try {
|
|
240
|
+
unlinkSync(join$1(dir, stale));
|
|
241
|
+
} catch {}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Atomic JSON write: serialize, write to a tmpfile in the same directory,
|
|
245
|
+
* rename onto the target. Crash or out-of-disk between the open and the
|
|
246
|
+
* rename leaves the original file intact.
|
|
247
|
+
*
|
|
248
|
+
* tmpfile lives in the same directory (not tmpdir) so the rename is a
|
|
249
|
+
* single-filesystem op — POSIX guarantees that's atomic.
|
|
250
|
+
*/
|
|
251
|
+
function atomicWriteJsonSync(path, value) {
|
|
252
|
+
const dir = dirname$1(path);
|
|
253
|
+
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
|
|
254
|
+
const tmpPath = `${path}.tmp-${process.pid}-${Date.now()}`;
|
|
255
|
+
writeFileSync(tmpPath, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
|
|
256
|
+
renameSync(tmpPath, path);
|
|
257
|
+
}
|
|
258
|
+
//#endregion
|
|
259
|
+
//#region ../../lib/claude-hooks-provision.ts
|
|
260
|
+
/**
|
|
261
|
+
* Non-interactive Claude Code hook provisioning for machines that never run
|
|
262
|
+
* the pan CLI — the desktop app (PAN-2595).
|
|
263
|
+
*
|
|
264
|
+
* Mirrors what `pan admin hooks install` does, minus everything interactive:
|
|
265
|
+
* copy the hook scripts from sync-sources/hooks/ into ~/.overdeck/bin/, then
|
|
266
|
+
* delta-register them in ~/.claude/settings.json via the shared table
|
|
267
|
+
* (src/lib/claude-hooks-registration.ts). Safe-settings guarantees hold
|
|
268
|
+
* (PAN-1137): an unparseable settings.json is never overwritten — we skip
|
|
269
|
+
* with a reason instead of process.exit — and every write is backed up and
|
|
270
|
+
* atomic. Idempotent: a machine with everything registered results in no
|
|
271
|
+
* write at all.
|
|
272
|
+
*
|
|
273
|
+
* Never throws; returns a result the caller can log. Runs async probes only
|
|
274
|
+
* (no execSync — this is server-boot-reachable code).
|
|
275
|
+
*/
|
|
276
|
+
init_paths();
|
|
277
|
+
const execFileAsync = promisify(execFile);
|
|
278
|
+
async function commandAvailable(cmd, args) {
|
|
279
|
+
try {
|
|
280
|
+
await execFileAsync(cmd, args, { timeout: 1e4 });
|
|
281
|
+
return true;
|
|
282
|
+
} catch {
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
async function provisionClaudeHooks(options = {}) {
|
|
287
|
+
const settingsPath = options.settingsPath ?? join(homedir(), ".claude", "settings.json");
|
|
288
|
+
const binDir = options.binDir ?? BIN_DIR;
|
|
289
|
+
const none = {
|
|
290
|
+
changed: false,
|
|
291
|
+
binariesSynced: 0,
|
|
292
|
+
registered: [],
|
|
293
|
+
pruned: []
|
|
294
|
+
};
|
|
295
|
+
try {
|
|
296
|
+
if (!existsSync$1(SYNC_SOURCES.hooks)) return {
|
|
297
|
+
ok: false,
|
|
298
|
+
reason: `hook sources not shipped in this install (${SYNC_SOURCES.hooks})`,
|
|
299
|
+
...none
|
|
300
|
+
};
|
|
301
|
+
if (!await commandAvailable("jq", ["--version"])) return {
|
|
302
|
+
ok: false,
|
|
303
|
+
reason: "jq is not installed — hooks require it (see the setup checklist)",
|
|
304
|
+
...none
|
|
305
|
+
};
|
|
306
|
+
mkdirSync$1(binDir, { recursive: true });
|
|
307
|
+
let binariesSynced = 0;
|
|
308
|
+
for (const scriptName of HOOK_SCRIPT_NAMES) {
|
|
309
|
+
const sourcePath = join(SYNC_SOURCES.hooks, scriptName);
|
|
310
|
+
if (!existsSync$1(sourcePath)) return {
|
|
311
|
+
ok: false,
|
|
312
|
+
reason: `hook script missing from install: ${sourcePath}`,
|
|
313
|
+
...none
|
|
314
|
+
};
|
|
315
|
+
copyFileSync$1(sourcePath, join(binDir, scriptName));
|
|
316
|
+
chmodSync$1(join(binDir, scriptName), 493);
|
|
317
|
+
binariesSynced++;
|
|
318
|
+
}
|
|
319
|
+
let settings = {};
|
|
320
|
+
if (existsSync$1(settingsPath)) try {
|
|
321
|
+
settings = JSON.parse(await readFile(settingsPath, "utf-8"));
|
|
322
|
+
} catch (err) {
|
|
323
|
+
return {
|
|
324
|
+
ok: false,
|
|
325
|
+
reason: `${settingsPath} is not valid JSON (${err instanceof Error ? err.message : String(err)}) — refusing to write; fix or restore a .pan-backup first`,
|
|
326
|
+
...none,
|
|
327
|
+
binariesSynced
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
const python3Available = await commandAvailable("python3", ["--version"]);
|
|
331
|
+
const { added, removed } = applyOverdeckHookRegistrations(settings, binDir, { python3Available });
|
|
332
|
+
if (added.length === 0 && removed.length === 0) return {
|
|
333
|
+
ok: true,
|
|
334
|
+
changed: false,
|
|
335
|
+
binariesSynced,
|
|
336
|
+
registered: [],
|
|
337
|
+
pruned: []
|
|
338
|
+
};
|
|
339
|
+
backupSettingsSync(settingsPath);
|
|
340
|
+
atomicWriteJsonSync(settingsPath, settings);
|
|
341
|
+
pruneBackupsSync(settingsPath);
|
|
342
|
+
return {
|
|
343
|
+
ok: true,
|
|
344
|
+
changed: true,
|
|
345
|
+
binariesSynced,
|
|
346
|
+
registered: added,
|
|
347
|
+
pruned: removed
|
|
348
|
+
};
|
|
349
|
+
} catch (err) {
|
|
350
|
+
return {
|
|
351
|
+
ok: false,
|
|
352
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
353
|
+
...none
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
//#endregion
|
|
358
|
+
export { provisionClaudeHooks };
|
|
359
|
+
|
|
360
|
+
//# sourceMappingURL=claude-hooks-provision-s_wdpeVj.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-
|
|
2
|
+
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-Dcz-8uit.js";
|
|
3
3
|
import "effect";
|
|
4
4
|
//#region ../../lib/claude-permissions.ts
|
|
5
5
|
/** Read PAN_YOLO from the current process env. Returns the implied mode, or undefined if unset/unparseable. */
|
|
@@ -94,4 +94,4 @@ var init_claude_permissions = __esmMin((() => {
|
|
|
94
94
|
//#endregion
|
|
95
95
|
export { init_claude_permissions as a, getClaudePermissionFlagsSync as i, buildClaudeUserSettingsSync as n, resolvePermissionModeSync as o, getClaudePermissionFlagsStringSync as r, BYPASS_PERMISSION_MODE as t };
|
|
96
96
|
|
|
97
|
-
//# sourceMappingURL=claude-permissions-
|
|
97
|
+
//# sourceMappingURL=claude-permissions-CaWqysff.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as init_claude_settings_overlay, r as injectOverdeckInfraDeny } from "./claude-settings-overlay-
|
|
1
|
+
import { n as init_claude_settings_overlay, r as injectOverdeckInfraDeny } from "./claude-settings-overlay-CcTf0xzG.js";
|
|
2
2
|
init_claude_settings_overlay();
|
|
3
3
|
export { injectOverdeckInfraDeny };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { br as init_errors, ur as FsError } from "./config-yaml-Dcz-8uit.js";
|
|
3
3
|
import { Effect, FileSystem } from "effect";
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { homedir, tmpdir } from "os";
|
|
@@ -142,4 +142,4 @@ var init_claude_settings_overlay = __esmMin((() => {
|
|
|
142
142
|
//#endregion
|
|
143
143
|
export { init_claude_settings_overlay as n, injectOverdeckInfraDeny as r, detectProviderEnvConflicts as t };
|
|
144
144
|
|
|
145
|
-
//# sourceMappingURL=claude-settings-overlay-
|
|
145
|
+
//# sourceMappingURL=claude-settings-overlay-CcTf0xzG.js.map
|