@overdeck/desktop 0.45.24 → 0.47.0
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 +36 -1
- package/package.json +1 -1
- package/server/{acceptance-criteria-DDCnXF58.js → acceptance-criteria-10Ur5Dne.js} +2 -2
- package/server/activity-logger-CMthG6Vd.js +3 -0
- package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
- package/server/{advancing-selfheal-BVwW4qRn.js → advancing-selfheal-BNwqxseD.js} +6 -6
- package/server/{agent-gc-CHcnvonI.js → agent-gc-C3h9Or3a.js} +5 -5
- package/server/agent-state-CYXJVG72.js +3 -0
- package/server/agent-state-service-C63p_ftq.js +2 -0
- package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-Ds6OeFvo.js} +15 -9
- package/server/{agents-EbI0zCJl.js → agents-J5mEnekq.js} +23 -16
- package/server/agents-ePFVoZbu.js +3 -0
- package/server/archive-planning-B2XplFzT.js +2 -0
- package/server/{archive-planning-Du25Jtst.js → archive-planning-BwhxeP7C.js} +22 -26
- package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-D1q_vR3V.js} +2 -2
- package/server/{assemble-J2ZZ2C15.js → assemble-Bgwqv-Ro.js} +2 -2
- package/server/auto-spawn-consent-CQ9Bi9q6.js +1141 -0
- package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-n1lzPgN4.js} +3 -3
- package/server/{behavior-B3exJ42O.js → behavior-td6-xhQk.js} +2 -2
- package/server/boot-reconciled-stop-events-C7gGe3oB.js +44 -0
- package/server/bridge-pool-patrol-CYH2OLb5.js +136 -0
- package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DRqZ8lAz.js} +2 -2
- package/server/{build-info-Ie_D0_BT.js → build-info-7yiEpl6u.js} +5 -3
- package/server/{build-info-CZk_TITh.js → build-info-CpG__c63.js} +1 -1
- package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-CkKmB0wZ.js} +1 -1
- package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DBcyNR8w.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-CQB1h765.js → checkpoints-D95apurL.js} +2 -2
- package/server/{checkpoints-BJIs5QIA.js → checkpoints-Wm963lm8.js} +1 -1
- package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-4RPxNkE8.js} +1 -1
- package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-Bjitl9aI.js} +13 -2
- package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CpbpvUQ2.js} +2 -2
- package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-BzkHYDwR.js} +1 -1
- package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-_H9Yrzab.js} +2 -2
- package/server/cli-CjOCSnfj.js +3 -0
- package/server/{cli-RoOx5DUf.js → cli-Cte9ZFGn.js} +9 -9
- package/server/{cliproxy-C8a1vtTU.js → cliproxy-C5fMJ7rY.js} +2 -2
- package/server/{cliproxy-fHfIeiGd.js → cliproxy-DaAbWMjC.js} +1 -1
- package/server/{close-issue-DoOifFIK.js → close-issue-BPh1ARCF.js} +5 -5
- package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-DHRfRMrp.js} +1 -1
- package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-DoOZqGFK.js} +88 -17
- package/server/{codex-BZXGhUVB.js → codex-BzGDW_d3.js} +36 -7
- package/server/{codex-GcHuUF-k.js → codex-o8FJwzmy.js} +1 -1
- package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-Dt-ycU8L.js} +2 -2
- package/server/compaction-continuation-CvXpbZ4w.js +200 -0
- package/server/{config-CKxYiCmX.js → config-Bi3u1VK7.js} +4 -3
- package/server/{config-BZ0sHTju.js → config-BvLe652W.js} +2 -2
- package/server/{config-DzV30TOm.js → config-CL3Gyvja.js} +1 -1
- package/server/{config-yaml-DySPNmKN.js → config-yaml-CxdwhAIA.js} +276 -14
- package/server/conflict-gate-CX80JYYS.js +3 -0
- package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-E4nt7ZeS.js} +60 -14
- package/server/{context-layers-igZ4FI4_.js → context-layers-C_IIysnm.js} +3 -3
- package/server/{context-layers-BrPmE__h.js → context-layers-DAG83UZt.js} +2 -2
- package/server/{control-settings-BQp7_4uD.js → control-settings-CiqGxXnc.js} +56 -19
- package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-BE3CNtHF.js} +1 -1
- package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-D6-yLtqt.js} +8 -8
- package/server/{conversation-service-DPJ71F33.js → conversation-service-DBxoYMDl.js} +10 -8
- package/server/conversation-service-D_TS2b1r.js +3 -0
- package/server/{conversations-CAsJF9kh.js → conversations-BKDVpB-3.js} +1 -1
- package/server/{conversations-6AfUfbwc.js → conversations-D0UEdLtk.js} +4 -4
- package/server/{cost-R-m6Yi-W.js → cost-DS1s0DbG.js} +3 -3
- package/server/{cost-B2ddP6wq.js → cost-DpgYmYqR.js} +12 -2
- package/server/{cost-sync-BsN6ER0n.js → cost-sync-tOCCGnEt.js} +3 -3
- package/server/{dag-B1ucnjDU.js → dag-BtkgLeqY.js} +2 -2
- package/server/{dangerous-git-ops-BXqeWVSf.js → dangerous-git-ops-CFLykHWt.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-BIblC-WX.js +4 -0
- package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-B08gF0mh.js} +3 -3
- package/server/{deacon-CU_cAYSR.js → deacon-pLRLbPvR.js} +3308 -2707
- package/server/deacon-pending-lifecycle-B-Io84AP.js +33 -0
- package/server/deacon-swarm-B1XkIvfr.js +2 -0
- package/server/{deacon-swarm-BXZZ1Z2-.js → deacon-swarm-v5PMun-m.js} +15 -14
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-D8A3msX9.js +13 -0
- package/server/delivery-BX9HR4wQ.js +3 -0
- package/server/{deploy-patrol-AiFoP8dw.js → deploy-patrol-sYgOxLeb.js} +69 -18
- package/server/deploy-queue-VfohaPN_.js +169 -0
- package/server/deploy-queue-gHJBycaF.js +3 -0
- package/server/deploy-window-CFRZ0-kt.js +3 -0
- package/server/{deploy-window-C3F-tihF.js → deploy-window-D4DQb8VP.js} +40 -16
- package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-DiOBDM1c.js} +2 -2
- package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-BUOIlfgD.js} +3 -3
- package/server/dist-B3YPQa5A.js +3 -0
- package/server/{dist-Cb_0uvpS.js → dist-C3A8B8wM.js} +1 -1
- package/server/{dist-src-BSoS7mkd.js → dist-src-C0adpegX.js} +1 -1
- package/server/{docker-DcMTFTUC.js → docker-BJzlkqYB.js} +2 -2
- package/server/docker-Y3PElJb0.js +3 -0
- package/server/dod-DlNtcH6n.js +91 -0
- package/server/durable-review-pipeline-Cibps-Rg.js +20 -0
- package/server/durable-review-pipeline-DP6bIcOY.js +3 -0
- package/server/{ensure-devcontainer-DNi-ono3.js → ensure-devcontainer-BAofzBPv.js} +4 -4
- package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-DMAbWqtQ.js} +1 -1
- package/server/{esm-shims-OSHAYaS1.js → esm-shims-BeObUkaw.js} +1 -1
- package/server/{event-store-EV2cMiXj.js → event-store-5UKzh9Jf.js} +1 -1
- package/server/{event-store-CQL6NeqB.js → event-store-CrHcVC5_.js} +23 -4
- package/server/{events-DTfAe4My.js → events-BNrvchBg.js} +3 -3
- package/server/{events-BTdrdEq8.js → events-CF8QDbuV.js} +1 -1
- package/server/{factory-CFibJuaw.js → factory-Cmm9Hsho.js} +5 -5
- package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population-B6HpNWRy.js} +4 -4
- package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-DJEFx1Pf.js} +2 -2
- package/server/{features-ez2271oH.js → features-D5km80UI.js} +2 -2
- package/server/{feedback-target-CoFDHiM8.js → feedback-target-BJ5ZADsu.js} +1 -1
- package/server/{feedback-target-7mqqwrX6.js → feedback-target-DSxEL6lP.js} +8 -8
- package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-C27Hak8a.js} +5 -5
- package/server/{feedback-writer-D3a22RCd.js → feedback-writer-CoB9Z6aU.js} +1 -1
- package/server/{flywheel-DHrgCphM.js → flywheel-BHx8XuMr.js} +47 -20
- package/server/{flywheel-SVF02Jpq.js → flywheel-DZZdtiOL.js} +1 -1
- package/server/{flywheel-DzGtWnJ1.js → flywheel-f662Q-y2.js} +16 -15
- package/server/flywheel-merge-order-D_xLMbJU.js +462 -0
- package/server/flywheel-merge-order-Dil0LmdN.js +2 -0
- package/server/forge-B5o319qI.js +3 -0
- package/server/forge-BaKGCya6.js +383 -0
- package/server/{from-kNxT0bZC.js → from-B3tZbB55.js} +1 -1
- package/server/fs-lock-Bre3sGoz.js +130 -0
- package/server/{fts-db-CE46vDkZ.js → fts-db-IVc4_M3f.js} +2 -2
- package/server/{fts-operations-CqY6zl-i.js → fts-operations-B9jG8wa3.js} +2 -2
- package/server/{git-utils-CRw2zLPC.js → git-utils-CsvYfJU3.js} +30 -5
- package/server/git-utils-Xg4PFN45.js +3 -0
- package/server/{github-app-ClZ2lk8D.js → github-app-Bmg4R9mv.js} +1 -1
- package/server/{github-app-C3QrAUd0.js → github-app-CmNk0zLU.js} +3 -3
- package/server/{github-client-DfQYVUaw.js → github-client-B6KM9_wA.js} +1 -1
- package/server/{github-client-BnIsSrEN.js → github-client-qazkPrg0.js} +3 -3
- package/server/github-pr-lookup-DAcVeRLK.js +58 -0
- package/server/{harness-binary-DPUi-Pv8.js → harness-binary-BSpiXaLw.js} +2 -2
- package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-BAJu5MX8.js} +4 -4
- package/server/{health-events-BDOHby5Q.js → health-events-2Z6Wa9SM.js} +1 -1
- package/server/{health-events-BBcTYQKU.js → health-events-BwX32k8d.js} +2 -2
- package/server/{hooks-DPVX1rwQ.js → hooks-D1g1jKLI.js} +1 -1
- package/server/{hooks-CKZgXlJb.js → hooks-DbtbimEf.js} +2 -2
- package/server/{hume-Cz8igP9E.js → hume-DXNiu6nQ.js} +2 -2
- package/server/hume-VUCNbTgn.js +3 -0
- package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-CRA1e0jr.js} +1 -1
- package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-Cy-dQzW4.js} +99 -6
- package/server/in-flight-guard-D-sSkADM.js +45 -0
- package/server/{infra-BEqFxlJc.js → infra-BDQDRopn.js} +81 -5
- package/server/{injection-C8aiVJrF.js → injection-6AGnXxlj.js} +7 -7
- package/server/{injection-CPUIqNhI.js → injection-Bl8d_jHZ.js} +1 -1
- package/server/inspect-agent-CUwVmr2h.js +2 -0
- package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-nXdIptyh.js} +26 -25
- package/server/{internal-token-s0-oKybJ.js → internal-token-DzK385vD.js} +2 -2
- package/server/{internal-token-BrcU6qfe.js → internal-token-Ias7N8Kg.js} +1 -1
- package/server/{io-C9kF1wtJ.js → io-B00PBNku.js} +44 -27
- package/server/{issue-closed-CDJk4pIp.js → issue-closed-BehTG1be.js} +8 -8
- package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-Birk-ifu.js} +42 -30
- package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-BqSuQvbn.js} +1 -1
- package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-B2wXiIlw.js} +1 -1
- package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-C6ZduvuY.js} +10 -10
- package/server/{issues-BMmP_77e.js → issues-DQ5-LatB.js} +2 -2
- package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-BDpnGFCl.js} +5 -4
- package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dwnky8FG.js} +3 -3
- package/server/{lifecycle-xmBfK2GJ.js → lifecycle-B3s4sM1G.js} +6 -7
- package/server/{lifecycle-yPd___5E.js → lifecycle-B4Xdb4cY.js} +2 -2
- package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-CzTHEooc.js} +1 -1
- package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-DCo6s6ks.js} +5 -5
- package/server/{linear-client-BsuUvkdA.js → linear-client-9uq7fhiV.js} +3 -3
- package/server/{linear-client-CTskEeT_.js → linear-client-CnbtHiic.js} +1 -1
- package/server/linear-mcp-auth-BxUOzswy.js +280 -0
- package/server/linear-mcp-auth-D46fBCLf.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-CefQNAnq.js → merge-DiW9RdSB.js} +13 -11
- package/server/{merge-agent-4WOWlSYA.js → merge-agent-BLUgRsz3.js} +234 -84
- package/server/{merge-agent-CKkgIBPB.js → merge-agent-DQTXZk8z.js} +1 -1
- package/server/{merge-batch-ClFn2T-y.js → merge-batch-Cp_j9BGk.js} +1 -1
- package/server/merge-completeness-B46KqhtY.js +277 -0
- package/server/merge-completeness-BLbB5-6n.js +3 -0
- package/server/merge-ops-1abz6O_P.js +2 -0
- package/server/merge-rebase-CJJVAJuz.js +2 -0
- package/server/{merge-rebase-BfaTyXsw.js → merge-rebase-DIkBjgwq.js} +3 -3
- package/server/{merge-set-DJ8-UErs.js → merge-set-CBgHfwM0.js} +11 -5
- package/server/merge-set-DeUxFsC3.js +3 -0
- package/server/{merge-B1DiziGU.js → merge-sr8Nrnmi.js} +1 -1
- package/server/merge-sync-CpGmk6Ch.js +3 -0
- package/server/{merge-sync-VPV28g0g.js → merge-sync-kr4vqyjM.js} +409 -153
- package/server/{merge-train-CHopycP0.js → merge-train-Dmrcus12.js} +18 -8
- package/server/{merge-train-deps-D1cOZzy2.js → merge-train-deps-D_uGX91G.js} +21 -15
- package/server/merge-verification-NvaAd8CZ.js +220 -0
- package/server/merged-docker-cleanup-worker-DH_hrGPI.js +3 -0
- package/server/merged-docker-cleanup-worker-Y1R06TEl.js +107 -0
- package/server/{multipart-parser-duPAfSBw.js → multipart-parser-R-oC8dQg.js} +2 -2
- package/server/{no-resume-mode-Nw29vaFb.js → no-resume-mode-BgD0JUmM.js} +1 -1
- package/server/node_modules/.package-lock.json +30 -30
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/@google-cloud/common/package.json +2 -2
- package/server/node_modules/@types/node/README.md +1 -1
- package/server/node_modules/@types/node/crypto.d.ts +1 -1
- package/server/node_modules/@types/node/package.json +2 -2
- 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 +1 -1
- package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/server/node_modules/google-auth-library/package.json +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
- package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
- package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
- package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
- package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
- package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
- package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
- package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
- package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
- package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
- package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
- package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
- package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
- package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
- package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
- package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
- package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
- package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
- package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
- package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
- package/server/node_modules/google-gax/package.json +5 -5
- package/server/node_modules/retry-request/package.json +4 -4
- package/server/node_modules/teeny-request/package.json +5 -5
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/server/node_modules/undici/lib/core/request.js +12 -1
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +236 -116
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
- package/server/node_modules/undici/lib/handler/retry-handler.js +24 -0
- package/server/node_modules/undici/lib/interceptor/cache.js +152 -62
- package/server/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/server/node_modules/undici/lib/util/cache.js +328 -66
- package/server/node_modules/undici/lib/util/date.js +23 -6
- package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
- package/server/node_modules/undici/package.json +1 -1
- package/server/{orphan-proposed-reconciler-BvKkWMJQ.js → orphan-proposed-reconciler-B6vJHxtX.js} +242 -34
- package/server/{orphan-proposed-reconciler-CTSGcK8p.js → orphan-proposed-reconciler-DcgTPPFY.js} +1 -1
- package/server/package-lock.json +31 -31
- package/server/package.json +1 -1
- package/server/{pan-dir-B0c3w0Ya.js → pan-dir-DMzF5wne.js} +25 -11
- package/server/{paths-D-xWGHdh.js → paths-sJBSb7Ul.js} +2 -2
- package/server/pending-lifecycle-claim-DilzGfgk.js +110 -0
- package/server/persistent-logger-H_VjuOu7.js +57 -0
- package/server/{pickup-DUCLWrJY.js → pickup-DWhqzliO.js} +4 -3
- package/server/pipeline-membership-C88VBnhJ.js +3 -0
- package/server/pipeline-membership-D9SBvItj.js +57 -0
- package/server/pipeline-membership-gather-4eR-7Tqy.js +3 -0
- package/server/pipeline-membership-gather-CeVGnNJ2.js +593 -0
- package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-D0ALV6Nw.js} +2 -2
- package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-DT6xLFao.js} +1 -1
- package/server/post-merge-lifecycle-worker-8HIeS_J6.js +50 -0
- package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-9SKt2bEc.js} +2 -2
- package/server/{project-repos-B6GycDh9.js → project-repos-B5pIphKg.js} +7 -3
- package/server/project-repos-DPjOdfPa.js +3 -0
- package/server/projects-_n3Zui6K.js +3 -0
- package/server/{prompts-DxzFXuLl.js → prompts-CgzMBvQF.js} +2 -2
- package/server/{providers-u4Ga0jOr.js → providers-BI1mOBQ4.js} +1 -1
- package/server/{providers-qQAwGQDW.js → providers-BJQSnAAp.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D_pGACYN.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-BO6fe3hH.js} +1 -1
- package/server/public/assets/{dist-ByIuzMQW.js → dist-5zingMiA.js} +3 -3
- package/server/public/assets/{dist-D7zYSEA6.js → dist-CVxhbI2E.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-Bgj4A7kp.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.js → highlighted-body-OFNGDK62-DNPK7_cm.js} +1 -1
- package/server/public/assets/index-DEpY-D1O.js +807 -0
- package/server/public/assets/index-Ddkcz3WT.css +1 -0
- package/server/public/assets/{linear-BBbArIcK.js → linear-BB0jQT16.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BzPfaQJ1.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-DeGIzzpZ.js} +1 -1
- package/server/public/assets/{prod-B8vYiu52.js → prod-XBLvikex.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-BV9SLeWz.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-Dwja0gj8.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DCB4qvfw.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-_lHueOHW.js → pull-requests-7BgLDsIo.js} +19 -10
- package/server/{pull-requests-7N8WKseP.js → pull-requests-Dq0y6IxE.js} +1 -1
- package/server/{queries-CjNIf-Ub.js → queries-C-MUZaIy.js} +824 -192
- package/server/{rally-CyWT_lNO.js → rally-CPysR4T_.js} +3 -3
- package/server/rally-D_VW4bJv.js +3 -0
- package/server/{rally-api-C8e_1JRi.js → rally-api-8Ptlp2os.js} +2 -2
- package/server/{rally-api-ClOSd-Tt.js → rally-api-CgosKdKL.js} +1 -1
- package/server/{rally-client-sgtVqzNU.js → rally-client-CCX0hADj.js} +1 -1
- package/server/{rally-client-lc-nokqr.js → rally-client-iYMHWQD7.js} +5 -5
- package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-4Xg9NGA8.js} +2 -2
- package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-Qf-9LVQc.js} +2 -2
- package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-CMdgaylx.js} +16 -7
- package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-DqcOVmJO.js} +2 -2
- package/server/{reconstruct-cache-C3Ui7ojV.js → reconstruct-cache-CMZJ_Vjq.js} +9 -7
- package/server/record-BTwWhtBb.js +3 -0
- package/server/{record-update-dE1Aw83j.js → record-update-DaOKS7Wb.js} +124 -157
- package/server/record-update-DhI7eySG.js +3 -0
- package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-DDH-02ng.js} +2 -2
- package/server/{release-engine-Cx48W7z8.js → release-engine-B2X9AfFC.js} +5 -5
- package/server/{release-set-CQfuN9-v.js → release-set-G4XKyQ8K.js} +3 -3
- package/server/{remote-C_2hasl7.js → remote-BXarMvqf.js} +3 -3
- package/server/{remote-ChgimyYa.js → remote-CUhyqjXk.js} +3 -3
- package/server/{remote-agents-By1ige5O.js → remote-agents-Bba-MgSA.js} +311 -48
- package/server/{remote-agents-CA3Ihlxj.js → remote-agents-CLZB3Coc.js} +2 -2
- package/server/{remote-completion-fVe9e_3u.js → remote-completion-CwAp79EC.js} +13 -13
- package/server/resume-mOREjlYu.js +3 -0
- package/server/{review-agent-CIGOQYBD.js → review-agent--pOptAEV.js} +65 -50
- package/server/{review-agent-DNboMyW4.js → review-agent-BTCNkq2h.js} +1 -1
- package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-BNmw8dWE.js} +7 -6
- package/server/{review-context-2uj-YQ8J.js → review-context-DFxYOOJW.js} +9 -9
- package/server/{in-flight-guard-CAAkqPLu.js → review-convoy-liveness-BgU_1jJf.js} +3 -44
- package/server/review-status-CGvlA4o_.js +7737 -0
- package/server/review-status-Dma9SFaN.js +3 -0
- package/server/review-status-emit-DURrmGYX.js +50 -0
- package/server/{review-status-enrichment-Dci-ZwEt.js → review-status-enrichment-8NiNXi5W.js} +4 -4
- package/server/review-status-source-BLx_1siH.js +3 -0
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-DIk1JSow.js} +24 -3
- package/server/{review-status-sync-BTOpxtTC.js → review-status-sync-0GxOqeqF.js} +11 -6
- package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-muT-EBp2.js} +1 -1
- package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-HwF6ODFy.js} +1 -1
- package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-xJNdqBnX.js} +65 -11
- package/server/{rollup-FGsKki9R.js → rollup-BQaol5TX.js} +8 -8
- package/server/{rollup-BKQC7jp4.js → rollup-BR4t_wck.js} +1 -1
- package/server/{scanner-CnqEZeDy.js → scanner-C-D2cFdX.js} +8 -7
- package/server/{sequence-io-D909zgeH.js → sequence-io-Bmf1EZM5.js} +4 -4
- package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-CigMyKh2.js} +7 -6
- package/server/server.js +2005 -614
- package/server/{service-CLeAoU6G.js → service-CD0DvFvD.js} +114 -68
- package/server/{session-fork-CHI1XvL9.js → session-fork-B6cQ5eya.js} +2 -2
- package/server/{session-history-BT3IvqhC.js → session-history-3ON_IJjm.js} +7 -55
- package/server/settings-CVmWiJ-r.js +2 -0
- package/server/{settings-C0zgxOGf.js → settings-PilbFZAM.js} +3 -2
- package/server/{settings-BTMvpNFU.js → settings-VN0qOh4U.js} +3 -3
- package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-DXvx77oE.js} +3 -3
- package/server/{shadow-state-7a-524T8.js → shadow-state-BBk_zacw.js} +2 -2
- package/server/{shadow-state-DnDyjujH.js → shadow-state-CZBp7pwq.js} +1 -1
- package/server/{shadow-utils-Db3oroFG.js → shadow-utils-DdZ05AJS.js} +2 -2
- package/server/{ship-log-D9MlVzYU.js → ship-log-7kJfjUX2.js} +1 -1
- package/server/{smart-compaction-CV2ukKND.js → smart-compaction-8fA5k5XN.js} +1 -1
- package/server/{smart-compaction-KCYScAU1.js → smart-compaction-ByhL9cRS.js} +8 -7
- package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-pcF-YeFE.js} +38 -50
- package/server/spawn-planning-session-vLUJoFjy.js +3 -0
- package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-B07XjWD2.js} +1 -1
- package/server/{specialist-context-Bn3dCGS2.js → specialist-context-DJ-zFyL3.js} +5 -5
- package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-aKSxbIgD.js} +2 -2
- package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Dae-n52_.js} +3 -3
- package/server/{specialists-CC4r-c2s.js → specialists-6PWdtWcg.js} +1177 -311
- package/server/{specialists-DM6bWjsi.js → specialists-Bz-wFT7R.js} +1 -1
- package/server/{specialists-jiuuyVkp.js → specialists-DUiExaxb.js} +18 -18
- package/server/{specialists-CShuVGWT.js → specialists-KR3pKulN.js} +1 -1
- package/server/specs--enInima.js +3 -0
- package/server/src-B948bGVR.js +11452 -0
- package/server/{src-CXmtj0im.js → src-rac0Mepv.js} +6 -6
- package/server/{src-CdmnTM2m.js → src-vHy2-oCv.js} +3 -3
- package/server/{stack-health-Bn3o8FBX.js → stack-health-BikqHSjn.js} +1 -1
- package/server/{stack-health-DxSdG9cW.js → stack-health-DqLTiEu4.js} +7 -5
- package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-Cab_Fo_Z.js} +5 -4
- package/server/{staleness-DPm7ClwA.js → staleness-C-a5rBxF.js} +1 -1
- package/server/{staleness-CT34nwr9.js → staleness-CGTZyp6V.js} +1 -1
- package/server/{state-home-Cn_Qu8IX.js → state-home-722Dkx92.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-CybR81Uf.js} +1 -1
- package/server/{state-migrate-BGg2ZaOt.js → state-migrate-2u8wIpoL.js} +4 -4
- package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-CC6q3eqQ.js} +84 -26
- package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-r1TJu68G.js} +1 -1
- package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-CzIyyWFT.js} +3 -3
- package/server/{summary-fork-DpcxN9tf.js → summary-fork-BqgmgPDt.js} +2 -2
- package/server/{summary-fork-D1RAk9rJ.js → summary-fork-Df2WFijM.js} +8 -8
- package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-Cg_KIb3o.js} +1 -1
- package/server/supervisor/{paths-DehGY2Fj.js → paths-BBOnCYlO.js} +10 -2
- package/server/supervisor/pty-supervisor.js +50 -4
- package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-BbjwEUUM.js} +3 -3
- package/server/supervisor-B4anCCSm.js +2 -0
- package/server/{supervisor-wM4ooB5O.js → supervisor-BxqSpjcN.js} +3 -3
- package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-DfFxa9-n.js} +3 -3
- package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-ICLSkhhZ.js} +2 -2
- package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-DRdi_CPa.js} +15 -16
- package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-A_-p-i0I.js} +8 -7
- package/server/{test-verdict-gscuksPv.js → test-verdict-BHgTAwIG.js} +1 -1
- package/server/{test-verdict-bWYBtqBg.js → test-verdict-C4i9aqEP.js} +1 -1
- package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-CvWXBhX1.js} +1 -1
- package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-wvsU6bKv.js} +2 -2
- package/server/{tmux-R7N7y-Mh.js → tmux-CfDHob9M.js} +174 -4
- package/server/{tmux-B6z7h_vZ.js → tmux-Ctk6RV5l.js} +1 -1
- package/server/{token-BK6t8BIT.js → token-DrxwytsZ.js} +2 -2
- package/server/{token-util-DxXu-vd1.js → token-util-B48BlCba.js} +1 -1
- package/server/token-util-D411CAq9.js +3 -0
- package/server/{tracker-config-G6latr8C.js → tracker-config-BcPMElRB.js} +2 -2
- package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-CJ6BHjcD.js} +3 -3
- package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-DZ6nMYMj.js} +1 -1
- package/server/{tunnel-DGdUkGoZ.js → tunnel-Bp-dRHZz.js} +1 -1
- package/server/{tunnel-CDVKJpRv.js → tunnel-DUbUPElU.js} +3 -3
- package/server/{typed-errors-BHhE85Ul.js → typed-errors-CKeoDdU3.js} +1 -1
- package/server/{typed-errors-2BTMxkZq.js → typed-errors-DyjseiB6.js} +1 -1
- package/server/{types-hraoaQIp.js → types-Cm5ASJbq.js} +1 -1
- package/server/{types-5M0lupud.js → types-Di8wdakq.js} +1 -1
- package/server/uat-promote-verification-CoJuh7XO.js +92 -0
- package/server/uat-train-4Q0k06CQ.js +0 -0
- package/server/uat-train-Dewoatps.js +2 -0
- package/server/{validate-IfDGkaVR.js → validate-B0C8p66t.js} +8 -6
- package/server/{validation-Dw1pzDzr.js → validation-B_kIRfNe.js} +4 -4
- package/server/{validation-CC9OPqJZ.js → validation-hVOwQk8T.js} +1 -1
- package/server/{verification-artifact-B3itKTxu.js → verification-artifact-BxlxTiYK.js} +1 -1
- package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-D70AtckY.js} +1 -1
- package/server/{verification-runner-BW4HOKAz.js → verification-runner-Bc3cJvpC.js} +1 -1
- package/server/{verification-runner-CkgX6EtI.js → verification-runner-KZTz6u72.js} +40 -18
- package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-CE_i3Bcw.js} +1 -1
- package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-ByrPAzOy.js} +20 -9
- package/server/{workflows-mbQzh6mQ.js → workflows-D0vP1WrK.js} +252 -99
- package/server/workflows-DtDX08ed.js +2 -0
- package/server/{workspace--8tnhDI0.js → workspace-COWvdibH.js} +1 -1
- package/server/{workspace-BPUws1-_.js → workspace-DQkRPLlQ.js} +3 -3
- package/server/workspace-anchor-drift-DXYIAHzr.js +224 -0
- package/server/workspace-anchor-drift-pwz23TI1.js +3 -0
- package/server/{workspace-config-CIVWZOQr.js → workspace-config-BdZM4PvZ.js} +1 -1
- package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-BPgTrG66.js} +157 -118
- package/server/workspace-manager-C1F3XsnS.js +3 -0
- package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-CdjzAP8x.js} +1 -1
- package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-DkO_iTLo.js} +2 -2
- package/server/{workspaces-Do_9J0LQ.js → workspaces-CRBJikLp.js} +749 -299
- package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
- package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-merge/SKILL.md +7 -5
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
- package/sync-sources/skills/pan-release/SKILL.md +57 -0
- package/sync-sources/skills/pan-reload/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +5 -4
- package/sync-sources/skills/pan-review/SKILL.md +7 -1
- package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
- package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
- package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bc3tzUC8.js +0 -3
- package/server/agent-state-service-D5UGKIJL.js +0 -2
- package/server/agents-wi9NWzs2.js +0 -3
- package/server/archive-planning-BZDgzoEj.js +0 -3
- package/server/cli-B86rejVV.js +0 -3
- package/server/conflict-gate-BhAY7TUd.js +0 -3
- package/server/conversation-service-BLd3MYsG.js +0 -3
- package/server/deacon-kiQrb4ZT.js +0 -4
- package/server/deacon-swarm-C-GwfjJy.js +0 -2
- package/server/deploy-window-DkZraDyj.js +0 -3
- package/server/dist-Bzy0y69j.js +0 -3
- package/server/dod-C6n9RV3G.js +0 -66
- package/server/flywheel-merge-order-UU0tiUld.js +0 -245
- package/server/flywheel-merge-order-UUcsCDb6.js +0 -2
- package/server/forge-CNFnyqps.js +0 -270
- package/server/forge-DXnS_YFH.js +0 -2
- package/server/git-utils-D0_yhCgF.js +0 -3
- package/server/github-pr-lookup-D16NGsSO.js +0 -44
- package/server/hume-ccTf4wTX.js +0 -3
- package/server/inspect-agent-Brtz0URj.js +0 -2
- package/server/label-reconciler-B4iOAjlC.js +0 -113
- package/server/launcher-generator-BBWG_SiS.js +0 -473
- package/server/merge-ops-CR44oU9-.js +0 -2
- package/server/merge-set-bUqbm3yc.js +0 -3
- package/server/merge-sync-BJYeOODr.js +0 -3
- package/server/merge-verification-BkaOqPsw.js +0 -124
- package/server/pipeline-membership-mY3GprlK.js +0 -420
- package/server/project-repos-DXKQsc_m.js +0 -3
- package/server/projects-vjjcmiN8.js +0 -3
- package/server/public/assets/index-CWeMerGO.js +0 -804
- package/server/public/assets/index-CenuJ3Cw.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +0 -1
- package/server/rally-zhhtXuDP.js +0 -3
- package/server/record-CN0pj4_5.js +0 -3
- package/server/record-update-bLJxAXH4.js +0 -3
- package/server/resume-BFv1PGpA.js +0 -3
- package/server/review-status-btEYlaxA.js +0 -3
- package/server/review-status-kZj_KyCk.js +0 -1470
- package/server/settings-66A6uvIA.js +0 -2
- package/server/spawn-planning-session-qUC2VWu3.js +0 -2
- package/server/specs-C8Wsn2XO.js +0 -3
- package/server/src-DtcUOZCq.js +0 -4826
- package/server/supervisor-FTJAIsAK.js +0 -2
- package/server/token-util-DuPuNriz.js +0 -3
- package/server/tracker-utils-B4ylXZQK.js +0 -3
- package/server/uat-train-B05BWkp-.js +0 -2
- package/server/uat-train-DDSrSoV1.js +0 -2152
- package/server/workflows-BQu4RFQ-.js +0 -2
- package/server/workspace-manager-CWT55qeI.js +0 -3
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME } from "./types-
|
|
4
|
-
import { t as init_pan_dir } from "./pan-dir-
|
|
5
|
-
import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-
|
|
6
|
-
import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-
|
|
7
|
-
import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-
|
|
8
|
-
import { a as renderDevcontainerSync, i as processTemplatesSync, n as createWorkspacePlaceholdersSync, o as sanitizeComposeFileSync, r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-
|
|
9
|
-
import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-
|
|
2
|
+
import { Br as CACHE_RULES_DIR, Fr as init_errors, Gn as init_projects, Qr as SYNC_SOURCES, Tr as FsError, Zr as SKILLS_DIR, f as loadConfigSync, jr as ProcessSpawnError, li as init_paths, t as init_config_yaml, zr as CACHE_AGENTS_DIR } from "./config-yaml-CxdwhAIA.js";
|
|
3
|
+
import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME } from "./types-Cm5ASJbq.js";
|
|
4
|
+
import { t as init_pan_dir } from "./pan-dir-DMzF5wne.js";
|
|
5
|
+
import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-BdZM4PvZ.js";
|
|
6
|
+
import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-DUbUPElU.js";
|
|
7
|
+
import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-DXNiu6nQ.js";
|
|
8
|
+
import { a as renderDevcontainerSync, i as processTemplatesSync, n as createWorkspacePlaceholdersSync, o as sanitizeComposeFileSync, r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-BUOIlfgD.js";
|
|
9
|
+
import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-BJzlkqYB.js";
|
|
10
|
+
import { join } from "node:path";
|
|
10
11
|
import { Effect } from "effect";
|
|
11
12
|
import { chmodSync, copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "fs";
|
|
12
|
-
import { basename, dirname, extname, join, relative, resolve } from "path";
|
|
13
|
+
import { basename as basename$1, dirname as dirname$1, extname as extname$1, join as join$1, relative as relative$1, resolve as resolve$1 } from "path";
|
|
13
14
|
import { homedir, platform } from "os";
|
|
15
|
+
import { existsSync as existsSync$1, mkdirSync as mkdirSync$1, readdirSync as readdirSync$1, readlinkSync, renameSync as renameSync$1, statSync as statSync$1, symlinkSync as symlinkSync$1 } from "node:fs";
|
|
14
16
|
import { createHash } from "crypto";
|
|
15
17
|
import "fs/promises";
|
|
16
|
-
import { exec } from "child_process";
|
|
18
|
+
import { exec, execFile } from "child_process";
|
|
17
19
|
import { promisify } from "util";
|
|
18
20
|
//#region ../../lib/workspace-manager/migration.ts
|
|
19
21
|
/**
|
|
@@ -33,26 +35,26 @@ function copyOverdeckSettingsToWorkspaceSync(workspacePath) {
|
|
|
33
35
|
copied: [],
|
|
34
36
|
errors: []
|
|
35
37
|
};
|
|
36
|
-
const overdeckDir = join(workspacePath, ".overdeck");
|
|
37
|
-
const claudeDir = join(workspacePath, ".claude");
|
|
38
|
+
const overdeckDir = join$1(workspacePath, ".overdeck");
|
|
39
|
+
const claudeDir = join$1(workspacePath, ".claude");
|
|
38
40
|
mkdirSync(overdeckDir, { recursive: true });
|
|
39
41
|
if (!existsSync(claudeDir)) mkdirSync(claudeDir, { recursive: true });
|
|
40
42
|
const filesToCopy = [
|
|
41
43
|
{
|
|
42
|
-
source: join(homedir(), ".overdeck", "config.yaml"),
|
|
43
|
-
target: join(overdeckDir, "config.yaml")
|
|
44
|
+
source: join$1(homedir(), ".overdeck", "config.yaml"),
|
|
45
|
+
target: join$1(overdeckDir, "config.yaml")
|
|
44
46
|
},
|
|
45
47
|
{
|
|
46
|
-
source: join(homedir(), ".overdeck", "projects.yaml"),
|
|
47
|
-
target: join(overdeckDir, "projects.yaml")
|
|
48
|
+
source: join$1(homedir(), ".overdeck", "projects.yaml"),
|
|
49
|
+
target: join$1(overdeckDir, "projects.yaml")
|
|
48
50
|
},
|
|
49
51
|
{
|
|
50
|
-
source: join(homedir(), ".overdeck", "settings.json"),
|
|
51
|
-
target: join(overdeckDir, "settings.json")
|
|
52
|
+
source: join$1(homedir(), ".overdeck", "settings.json"),
|
|
53
|
+
target: join$1(overdeckDir, "settings.json")
|
|
52
54
|
},
|
|
53
55
|
{
|
|
54
|
-
source: join(homedir(), ".claude", "mcp.json"),
|
|
55
|
-
target: join(claudeDir, "mcp.json")
|
|
56
|
+
source: join$1(homedir(), ".claude", "mcp.json"),
|
|
57
|
+
target: join$1(claudeDir, "mcp.json")
|
|
56
58
|
}
|
|
57
59
|
];
|
|
58
60
|
for (const { source, target } of filesToCopy) {
|
|
@@ -64,8 +66,8 @@ function copyOverdeckSettingsToWorkspaceSync(workspacePath) {
|
|
|
64
66
|
result.errors.push(`${source}: ${err.message}`);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
|
-
const globalSettingsPath = join(homedir(), ".claude", "settings.json");
|
|
68
|
-
const workspaceSettingsPath = join(claudeDir, "settings.json");
|
|
69
|
+
const globalSettingsPath = join$1(homedir(), ".claude", "settings.json");
|
|
70
|
+
const workspaceSettingsPath = join$1(claudeDir, "settings.json");
|
|
69
71
|
if (existsSync(globalSettingsPath)) try {
|
|
70
72
|
const globalSettings = JSON.parse(readFileSync(globalSettingsPath, "utf-8"));
|
|
71
73
|
let workspaceSettings = {};
|
|
@@ -126,7 +128,7 @@ function copyOverdeckSettingsToWorkspaceSync(workspacePath) {
|
|
|
126
128
|
* since project-specific skills should be committed.
|
|
127
129
|
*/
|
|
128
130
|
function ensurePanGitignoreSync(projectPath) {
|
|
129
|
-
const gitignorePath = join(projectPath, ".gitignore");
|
|
131
|
+
const gitignorePath = join$1(projectPath, ".gitignore");
|
|
130
132
|
const requiredEntries = [
|
|
131
133
|
".pan/events/",
|
|
132
134
|
".pan/review/",
|
|
@@ -182,7 +184,7 @@ var init_platform = __esmMin((() => {
|
|
|
182
184
|
* - dnsmasq: System-wide dnsmasq configuration (Linux/macOS)
|
|
183
185
|
*/
|
|
184
186
|
function addWsl2HostEntry(hostname) {
|
|
185
|
-
const wsl2hostsPath = join(homedir(), ".wsl2hosts");
|
|
187
|
+
const wsl2hostsPath = join$1(homedir(), ".wsl2hosts");
|
|
186
188
|
try {
|
|
187
189
|
let content = "";
|
|
188
190
|
if (existsSync(wsl2hostsPath)) content = readFileSync(wsl2hostsPath, "utf-8");
|
|
@@ -193,7 +195,7 @@ function addWsl2HostEntry(hostname) {
|
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
197
|
function removeWsl2HostEntry(hostname) {
|
|
196
|
-
const wsl2hostsPath = join(homedir(), ".wsl2hosts");
|
|
198
|
+
const wsl2hostsPath = join$1(homedir(), ".wsl2hosts");
|
|
197
199
|
try {
|
|
198
200
|
if (!existsSync(wsl2hostsPath)) return true;
|
|
199
201
|
writeFileSync(wsl2hostsPath, readFileSync(wsl2hostsPath, "utf-8").split("\n").filter((line) => line.trim() !== hostname).join("\n"));
|
|
@@ -252,7 +254,7 @@ function addDnsmasqEntry(hostname, ip = "127.0.0.1") {
|
|
|
252
254
|
try {
|
|
253
255
|
const configDir = getDnsmasqConfigDir();
|
|
254
256
|
mkdirSync(configDir, { recursive: true });
|
|
255
|
-
const confPath = join(configDir, OVERDECK_DNSMASQ_CONF);
|
|
257
|
+
const confPath = join$1(configDir, OVERDECK_DNSMASQ_CONF);
|
|
256
258
|
let content = "";
|
|
257
259
|
if (existsSync(confPath)) content = readFileSync(confPath, "utf-8");
|
|
258
260
|
const entry = `address=/${hostname}/${ip}`;
|
|
@@ -266,7 +268,7 @@ function addDnsmasqEntry(hostname, ip = "127.0.0.1") {
|
|
|
266
268
|
}
|
|
267
269
|
function removeDnsmasqEntry(hostname) {
|
|
268
270
|
try {
|
|
269
|
-
const confPath = join(getDnsmasqConfigDir(), OVERDECK_DNSMASQ_CONF);
|
|
271
|
+
const confPath = join$1(getDnsmasqConfigDir(), OVERDECK_DNSMASQ_CONF);
|
|
270
272
|
if (!existsSync(confPath)) return true;
|
|
271
273
|
writeFileSync(confPath, readFileSync(confPath, "utf-8").split("\n").filter((line) => !line.includes(`/${hostname}/`)).join("\n"));
|
|
272
274
|
return true;
|
|
@@ -339,7 +341,7 @@ function readManifestSync(manifestPath) {
|
|
|
339
341
|
* Write a manifest to disk (creates parent directories if needed).
|
|
340
342
|
*/
|
|
341
343
|
function writeManifestSync(manifestPath, manifest) {
|
|
342
|
-
mkdirSync(join(manifestPath, ".."), { recursive: true });
|
|
344
|
+
mkdirSync(join$1(manifestPath, ".."), { recursive: true });
|
|
343
345
|
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + "\n", "utf-8");
|
|
344
346
|
}
|
|
345
347
|
/**
|
|
@@ -388,10 +390,10 @@ function collectSourceFilesSync(sourceDir, prefix) {
|
|
|
388
390
|
function walk(dir) {
|
|
389
391
|
const entries = readdirSync(dir, { withFileTypes: true });
|
|
390
392
|
for (const entry of entries) {
|
|
391
|
-
const fullPath = join(dir, entry.name);
|
|
393
|
+
const fullPath = join$1(dir, entry.name);
|
|
392
394
|
if (entry.isDirectory()) walk(fullPath);
|
|
393
395
|
else if (entry.isFile()) {
|
|
394
|
-
const rel = relative(sourceDir, fullPath);
|
|
396
|
+
const rel = relative$1(sourceDir, fullPath);
|
|
395
397
|
results.push({
|
|
396
398
|
absolutePath: fullPath,
|
|
397
399
|
relativePath: `${prefix}${rel}`
|
|
@@ -418,8 +420,8 @@ var init_manifest = __esmMin((() => {
|
|
|
418
420
|
* (processTemplates + createSymlinks → now also copy-based).
|
|
419
421
|
*/
|
|
420
422
|
function mergeSkillsIntoWorkspaceSync(workspacePath) {
|
|
421
|
-
const claudeDir = join(workspacePath, ".claude");
|
|
422
|
-
const manifestPath = join(claudeDir, ".overdeck-manifest.json");
|
|
423
|
+
const claudeDir = join$1(workspacePath, ".claude");
|
|
424
|
+
const manifestPath = join$1(claudeDir, ".overdeck-manifest.json");
|
|
423
425
|
const manifest = readManifestSync(manifestPath);
|
|
424
426
|
const result = {
|
|
425
427
|
added: [],
|
|
@@ -427,8 +429,8 @@ function mergeSkillsIntoWorkspaceSync(workspacePath) {
|
|
|
427
429
|
skipped: [],
|
|
428
430
|
overlayed: []
|
|
429
431
|
};
|
|
430
|
-
mkdirSync(join(claudeDir, "skills"), { recursive: true });
|
|
431
|
-
mkdirSync(join(claudeDir, "agents"), { recursive: true });
|
|
432
|
+
mkdirSync(join$1(claudeDir, "skills"), { recursive: true });
|
|
433
|
+
mkdirSync(join$1(claudeDir, "agents"), { recursive: true });
|
|
432
434
|
const sources = [
|
|
433
435
|
{
|
|
434
436
|
sourceDir: SKILLS_DIR,
|
|
@@ -449,11 +451,11 @@ function mergeSkillsIntoWorkspaceSync(workspacePath) {
|
|
|
449
451
|
const files = collectSourceFilesSync(sourceDir, "");
|
|
450
452
|
for (const file of files) {
|
|
451
453
|
const relativePath = `${prefix}${file.relativePath}`;
|
|
452
|
-
const targetPath = join(claudeDir, relativePath);
|
|
454
|
+
const targetPath = join$1(claudeDir, relativePath);
|
|
453
455
|
const sourceHash = hashFileSync(file.absolutePath);
|
|
454
456
|
switch (compareFileToManifest(targetPath, relativePath, manifest).action) {
|
|
455
457
|
case "new":
|
|
456
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
458
|
+
mkdirSync(dirname$1(targetPath), { recursive: true });
|
|
457
459
|
copyFileSync(file.absolutePath, targetPath);
|
|
458
460
|
setManifestEntry(manifest, relativePath, sourceHash, "overdeck");
|
|
459
461
|
result.added.push(relativePath);
|
|
@@ -493,15 +495,15 @@ function mergePanSkillsIntoWorkspaceSync(projectPath, workspacePath) {
|
|
|
493
495
|
skipped: [],
|
|
494
496
|
overlayed: []
|
|
495
497
|
};
|
|
496
|
-
const panSkillsDir = join(projectPath, ".pan", "skills");
|
|
498
|
+
const panSkillsDir = join$1(projectPath, ".pan", "skills");
|
|
497
499
|
if (!existsSync(panSkillsDir)) return result;
|
|
498
|
-
const claudeSkillsDir = join(workspacePath, ".claude", "skills");
|
|
499
|
-
const manifestPath = join(workspacePath, ".claude", ".overdeck-manifest.json");
|
|
500
|
+
const claudeSkillsDir = join$1(workspacePath, ".claude", "skills");
|
|
501
|
+
const manifestPath = join$1(workspacePath, ".claude", ".overdeck-manifest.json");
|
|
500
502
|
const manifest = readManifestSync(manifestPath);
|
|
501
503
|
const skillDirs = readdirSync(panSkillsDir, { withFileTypes: true }).filter((e) => e.isDirectory()).map((e) => e.name);
|
|
502
504
|
for (const skillName of skillDirs) {
|
|
503
|
-
const sourceSkillDir = join(panSkillsDir, skillName);
|
|
504
|
-
const targetSkillDir = join(claudeSkillsDir, skillName);
|
|
505
|
+
const sourceSkillDir = join$1(panSkillsDir, skillName);
|
|
506
|
+
const targetSkillDir = join$1(claudeSkillsDir, skillName);
|
|
505
507
|
if (existsSync(targetSkillDir)) {
|
|
506
508
|
result.skipped.push(`skills/${skillName} (already exists in .claude/skills/)`);
|
|
507
509
|
continue;
|
|
@@ -510,8 +512,8 @@ function mergePanSkillsIntoWorkspaceSync(projectPath, workspacePath) {
|
|
|
510
512
|
mkdirSync(targetSkillDir, { recursive: true });
|
|
511
513
|
let anyAdded = false;
|
|
512
514
|
for (const file of files) {
|
|
513
|
-
const targetPath = join(targetSkillDir, file.relativePath);
|
|
514
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
515
|
+
const targetPath = join$1(targetSkillDir, file.relativePath);
|
|
516
|
+
mkdirSync(dirname$1(targetPath), { recursive: true });
|
|
515
517
|
copyFileSync(file.absolutePath, targetPath);
|
|
516
518
|
const hash = hashFileSync(targetPath);
|
|
517
519
|
setManifestEntry(manifest, `skills/${skillName}/${file.relativePath}`, hash, "pan-skills");
|
|
@@ -558,12 +560,12 @@ function validateFeatureName(name) {
|
|
|
558
560
|
* venv's own path. Best-effort and non-fatal: unreadable/binary files skipped.
|
|
559
561
|
*/
|
|
560
562
|
function relocateVenvScripts(sourceVenv, destVenv) {
|
|
561
|
-
const sourceBin = join(sourceVenv, "bin");
|
|
562
|
-
const destBin = join(destVenv, "bin");
|
|
563
|
-
const destPy = join(destBin, "python3");
|
|
563
|
+
const sourceBin = join$1(sourceVenv, "bin");
|
|
564
|
+
const destBin = join$1(destVenv, "bin");
|
|
565
|
+
const destPy = join$1(destBin, "python3");
|
|
564
566
|
if (!existsSync(destBin) || !existsSync(destPy)) return;
|
|
565
567
|
for (const entry of readdirSync(destBin)) {
|
|
566
|
-
const script = join(destBin, entry);
|
|
568
|
+
const script = join$1(destBin, entry);
|
|
567
569
|
try {
|
|
568
570
|
if (!statSync(script).isFile()) continue;
|
|
569
571
|
const content = readFileSync(script, "utf8");
|
|
@@ -579,7 +581,7 @@ function relocateVenvScripts(sourceVenv, destVenv) {
|
|
|
579
581
|
"activate.csh",
|
|
580
582
|
"activate.fish"
|
|
581
583
|
]) {
|
|
582
|
-
const act = join(destBin, name);
|
|
584
|
+
const act = join$1(destBin, name);
|
|
583
585
|
if (!existsSync(act)) continue;
|
|
584
586
|
try {
|
|
585
587
|
const content = readFileSync(act, "utf8");
|
|
@@ -593,8 +595,8 @@ async function installPreRebaseHook(targetPath) {
|
|
|
593
595
|
cwd: targetPath,
|
|
594
596
|
encoding: "utf-8"
|
|
595
597
|
});
|
|
596
|
-
const hooksDir = resolve(targetPath, stdout.trim());
|
|
597
|
-
const hookPath = join(hooksDir, "pre-rebase");
|
|
598
|
+
const hooksDir = resolve$1(targetPath, stdout.trim());
|
|
599
|
+
const hookPath = join$1(hooksDir, "pre-rebase");
|
|
598
600
|
mkdirSync(hooksDir, { recursive: true });
|
|
599
601
|
const originalHookPath = `${hookPath}${PRE_REBASE_ORIGINAL_SUFFIX}`;
|
|
600
602
|
const existingHook = existsSync(hookPath) ? readFileSync(hookPath, "utf-8") : "";
|
|
@@ -634,7 +636,7 @@ async function createWorktree(repoPath, targetPath, branchName, defaultBranch =
|
|
|
634
636
|
const localList = localBranches.split("\n").map((b) => b.replace(/^[*+\s]+/, "").trim()).filter(Boolean);
|
|
635
637
|
const remoteList = remoteBranches.split("\n").map((b) => b.trim()).filter(Boolean);
|
|
636
638
|
if (localList.includes(branchName) || remoteList.includes(`origin/${branchName}`)) await execAsync$2(`git worktree add "${targetPath}" "${branchName}"`, { cwd: repoPath });
|
|
637
|
-
else await execAsync$2(`git worktree add "${
|
|
639
|
+
else await execAsync$2(`git worktree add -b "${branchName}" "${targetPath}" "${defaultBranch}"`, { cwd: repoPath });
|
|
638
640
|
await installPreRebaseHook(targetPath);
|
|
639
641
|
await execAsync$2("git restore .", { cwd: targetPath }).catch(() => {});
|
|
640
642
|
return {
|
|
@@ -671,7 +673,7 @@ async function removeWorktree(repoPath, targetPath, branchName) {
|
|
|
671
673
|
*/
|
|
672
674
|
function assignPort(portFile, featureFolder, range) {
|
|
673
675
|
if (!existsSync(portFile)) {
|
|
674
|
-
mkdirSync(dirname(portFile), { recursive: true });
|
|
676
|
+
mkdirSync(dirname$1(portFile), { recursive: true });
|
|
675
677
|
writeFileSync(portFile, "");
|
|
676
678
|
}
|
|
677
679
|
const content = readFileSync(portFile, "utf-8");
|
|
@@ -713,8 +715,8 @@ function mergeDirectoryWithoutOverwriteSync(source, target) {
|
|
|
713
715
|
if (!existsSync(source)) return;
|
|
714
716
|
mkdirSync(target, { recursive: true });
|
|
715
717
|
for (const entry of readdirSync(source, { withFileTypes: true })) {
|
|
716
|
-
const sourcePath = join(source, entry.name);
|
|
717
|
-
const targetPath = join(target, entry.name);
|
|
718
|
+
const sourcePath = join$1(source, entry.name);
|
|
719
|
+
const targetPath = join$1(target, entry.name);
|
|
718
720
|
if (entry.isDirectory()) mergeDirectoryWithoutOverwriteSync(sourcePath, targetPath);
|
|
719
721
|
else if (entry.isFile() && !existsSync(targetPath)) copyFileSync(sourcePath, targetPath);
|
|
720
722
|
}
|
|
@@ -730,19 +732,19 @@ function restorePreWorktreeMetadataSync(stagedPath, workspacePath) {
|
|
|
730
732
|
function copyProjectTemplateDirs(sourceDir, targetDir, dirs, placeholders) {
|
|
731
733
|
const steps = [];
|
|
732
734
|
for (const dir of dirs) {
|
|
733
|
-
const sourcePath = join(sourceDir, dir);
|
|
734
|
-
const targetPath = join(targetDir, dir);
|
|
735
|
+
const sourcePath = join$1(sourceDir, dir);
|
|
736
|
+
const targetPath = join$1(targetDir, dir);
|
|
735
737
|
if (!existsSync(sourcePath)) continue;
|
|
736
738
|
function copyDir(src, dest) {
|
|
737
739
|
let count = 0;
|
|
738
740
|
mkdirSync(dest, { recursive: true });
|
|
739
741
|
const entries = readdirSync(src, { withFileTypes: true });
|
|
740
742
|
for (const entry of entries) {
|
|
741
|
-
const srcEntry = join(src, entry.name);
|
|
742
|
-
const destEntry = join(dest, entry.name);
|
|
743
|
+
const srcEntry = join$1(src, entry.name);
|
|
744
|
+
const destEntry = join$1(dest, entry.name);
|
|
743
745
|
if (entry.isDirectory()) count += copyDir(srcEntry, destEntry);
|
|
744
746
|
else if (entry.isFile()) {
|
|
745
|
-
const ext = extname(entry.name).toLowerCase();
|
|
747
|
+
const ext = extname$1(entry.name).toLowerCase();
|
|
746
748
|
if (placeholders && TEXT_EXTENSIONS.has(ext)) writeFileSync(destEntry, replacePlaceholdersSync(readFileSync(srcEntry, "utf-8"), placeholders));
|
|
747
749
|
else copyFileSync(srcEntry, destEntry);
|
|
748
750
|
count++;
|
|
@@ -780,7 +782,7 @@ function copyProjectTemplateDirs(sourceDir, targetDir, dirs, placeholders) {
|
|
|
780
782
|
* key checked by both the bypass-mode dialog and the headless --bg gate.
|
|
781
783
|
*/
|
|
782
784
|
function preTrustDirectorySync(dirPath) {
|
|
783
|
-
const claudeJsonPath = join(homedir(), ".claude.json");
|
|
785
|
+
const claudeJsonPath = join$1(homedir(), ".claude.json");
|
|
784
786
|
if (!existsSync(claudeJsonPath)) return;
|
|
785
787
|
const data = JSON.parse(readFileSync(claudeJsonPath, "utf8"));
|
|
786
788
|
let dirty = false;
|
|
@@ -852,7 +854,7 @@ var init_worktree_ops = __esmMin((() => {
|
|
|
852
854
|
* Returns the entries that were added or removed (empty arrays if nothing changed).
|
|
853
855
|
*/
|
|
854
856
|
function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
855
|
-
const gitignorePath = join(workspacePath, ".gitignore");
|
|
857
|
+
const gitignorePath = join$1(workspacePath, ".gitignore");
|
|
856
858
|
let content = existsSync(gitignorePath) ? readFileSync(gitignorePath, "utf-8") : "";
|
|
857
859
|
const removed = [];
|
|
858
860
|
const filteredLines = content.split("\n").filter((line) => {
|
|
@@ -870,8 +872,11 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
|
870
872
|
const entry = `${repo.name}/`;
|
|
871
873
|
if (!normalizedLines.includes(entry) && !normalizedLines.includes(repo.name)) added.push(entry);
|
|
872
874
|
}
|
|
873
|
-
const
|
|
874
|
-
if (
|
|
875
|
+
const runtimeEntries = [];
|
|
876
|
+
if (!normalizedLines.includes(".overdeck/") && !normalizedLines.includes(".overdeck")) runtimeEntries.push(".overdeck/");
|
|
877
|
+
if (!normalizedLines.includes(".devcontainer/") && !normalizedLines.includes(".devcontainer")) runtimeEntries.push(".devcontainer/");
|
|
878
|
+
if (!normalizedLines.includes("dev")) runtimeEntries.push("dev");
|
|
879
|
+
if (added.length === 0 && runtimeEntries.length === 0 && removed.length === 0) return {
|
|
875
880
|
added,
|
|
876
881
|
removed
|
|
877
882
|
};
|
|
@@ -880,9 +885,10 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
|
880
885
|
if (!normalizedLines.some((l) => l.includes("Polyrepo") || l.includes("polyrepo"))) content += "\n# Polyrepo sub-repositories\n";
|
|
881
886
|
content += added.join("\n") + "\n";
|
|
882
887
|
}
|
|
883
|
-
if (
|
|
884
|
-
content += "\n# Overdeck workspace runtime (PAN-2541: durable state lives on overdeck-state)\n
|
|
885
|
-
|
|
888
|
+
if (runtimeEntries.length > 0) {
|
|
889
|
+
content += "\n# Overdeck workspace runtime (PAN-2541: durable state lives on overdeck-state; devcontainer harness is generated)\n";
|
|
890
|
+
content += runtimeEntries.join("\n") + "\n";
|
|
891
|
+
added.push(...runtimeEntries);
|
|
886
892
|
}
|
|
887
893
|
writeFileSync(gitignorePath, content, "utf-8");
|
|
888
894
|
return {
|
|
@@ -897,7 +903,7 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
|
897
903
|
* surface the warning.
|
|
898
904
|
*/
|
|
899
905
|
async function commitPolyrepoWorkspaceGitignoreAsync(workspacePath) {
|
|
900
|
-
if (!existsSync(join(workspacePath, ".git"))) return null;
|
|
906
|
+
if (!existsSync(join$1(workspacePath, ".git"))) return null;
|
|
901
907
|
try {
|
|
902
908
|
await execAsync$1("git add .gitignore", { cwd: workspacePath });
|
|
903
909
|
try {
|
|
@@ -945,9 +951,9 @@ async function createWorkspacePromise(options) {
|
|
|
945
951
|
return result;
|
|
946
952
|
}
|
|
947
953
|
const workspaceConfig = projectConfig.workspace || getDefaultWorkspaceConfigSync();
|
|
948
|
-
const workspacesDir = join(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
954
|
+
const workspacesDir = join$1(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
949
955
|
const featureFolder = `feature-${featureName}`;
|
|
950
|
-
const workspacePath = join(workspacesDir, featureFolder);
|
|
956
|
+
const workspacePath = join$1(workspacesDir, featureFolder);
|
|
951
957
|
result.workspacePath = workspacePath;
|
|
952
958
|
if (dryRun) {
|
|
953
959
|
result.steps.push("[DRY RUN] Would create workspace at: " + workspacePath);
|
|
@@ -970,9 +976,9 @@ async function createWorkspacePromise(options) {
|
|
|
970
976
|
result.steps.push("Created workspace directory");
|
|
971
977
|
const reposToCreate = workspaceConfig.progressive && workspaceConfig.always_include ? workspaceConfig.repos.filter((r) => workspaceConfig.always_include.includes(r.name)) : workspaceConfig.repos;
|
|
972
978
|
for (const repo of reposToCreate) {
|
|
973
|
-
const rawRepoPath = join(projectConfig.path, repo.path);
|
|
979
|
+
const rawRepoPath = join$1(projectConfig.path, repo.path);
|
|
974
980
|
const repoPath = existsSync(rawRepoPath) ? realpathSync(rawRepoPath) : rawRepoPath;
|
|
975
|
-
const targetPath = join(workspacePath, repo.name);
|
|
981
|
+
const targetPath = join$1(workspacePath, repo.name);
|
|
976
982
|
if (repo.link_type === "symlink") try {
|
|
977
983
|
symlinkSync(repoPath, targetPath);
|
|
978
984
|
result.steps.push(`Created symlink for ${repo.name} (readonly, no feature branch)`);
|
|
@@ -1018,16 +1024,16 @@ async function createWorkspacePromise(options) {
|
|
|
1018
1024
|
result.steps.push(`Warning: could not create workspace .gitignore: ${gitignoreErr.message}`);
|
|
1019
1025
|
}
|
|
1020
1026
|
progress("Creating git worktree", "Worktree ready", "complete");
|
|
1021
|
-
const resolvedWorkspace = resolve(workspacePath);
|
|
1022
|
-
const resolvedPanDir = resolve(resolvedWorkspace, PAN_DIRNAME);
|
|
1023
|
-
if (resolvedWorkspace.match(/\/workspaces\/feature-[a-z0-9-]+$/) && existsSync(join(resolvedWorkspace, ".git"))) {
|
|
1024
|
-
if (resolvedPanDir === join(resolvedWorkspace, ".pan") && existsSync(resolvedPanDir)) {
|
|
1027
|
+
const resolvedWorkspace = resolve$1(workspacePath);
|
|
1028
|
+
const resolvedPanDir = resolve$1(resolvedWorkspace, PAN_DIRNAME);
|
|
1029
|
+
if (resolvedWorkspace.match(/\/workspaces\/feature-[a-z0-9-]+$/) && existsSync(join$1(resolvedWorkspace, ".git"))) {
|
|
1030
|
+
if (resolvedPanDir === join$1(resolvedWorkspace, ".pan") && existsSync(resolvedPanDir)) {
|
|
1025
1031
|
for (const filePath of [
|
|
1026
|
-
join(resolvedPanDir, PAN_CONTINUE_FILENAME),
|
|
1027
|
-
join(resolvedPanDir, PAN_SESSIONS_FILENAME),
|
|
1028
|
-
join(resolvedPanDir, PAN_CONTEXT_FILENAME)
|
|
1032
|
+
join$1(resolvedPanDir, PAN_CONTINUE_FILENAME),
|
|
1033
|
+
join$1(resolvedPanDir, PAN_SESSIONS_FILENAME),
|
|
1034
|
+
join$1(resolvedPanDir, PAN_CONTEXT_FILENAME)
|
|
1029
1035
|
]) if (existsSync(filePath)) unlinkSync(filePath);
|
|
1030
|
-
const feedbackDir = join(resolvedPanDir, PAN_FEEDBACK_DIRNAME);
|
|
1036
|
+
const feedbackDir = join$1(resolvedPanDir, PAN_FEEDBACK_DIRNAME);
|
|
1031
1037
|
if (existsSync(feedbackDir)) rmSync(feedbackDir, {
|
|
1032
1038
|
recursive: true,
|
|
1033
1039
|
force: true
|
|
@@ -1041,15 +1047,15 @@ async function createWorkspacePromise(options) {
|
|
|
1041
1047
|
} catch (gitignoreErr) {
|
|
1042
1048
|
result.steps.push(`Warning: could not update .gitignore: ${gitignoreErr.message}`);
|
|
1043
1049
|
}
|
|
1044
|
-
const devcontainerDir = join(workspacePath, ".devcontainer");
|
|
1050
|
+
const devcontainerDir = join$1(workspacePath, ".devcontainer");
|
|
1045
1051
|
if (existsSync(devcontainerDir)) {
|
|
1046
1052
|
const composeFiles = readdirSync(devcontainerDir).filter((f) => f.includes("compose") && (f.endsWith(".yml") || f.endsWith(".yaml")));
|
|
1047
|
-
for (const composeFile of composeFiles) sanitizeComposeFileSync(join(devcontainerDir, composeFile));
|
|
1053
|
+
for (const composeFile of composeFiles) sanitizeComposeFileSync(join$1(devcontainerDir, composeFile));
|
|
1048
1054
|
if (composeFiles.length > 0) result.steps.push(`Sanitized ${composeFiles.length} compose file(s) for platform compatibility`);
|
|
1049
1055
|
}
|
|
1050
1056
|
progress("Installing dependencies", projectConfig.package_manager || "detecting...");
|
|
1051
|
-
const pkgManager = projectConfig.package_manager || (existsSync(join(workspacePath, "bun.lock")) ? "bun" : "npm");
|
|
1052
|
-
const staleModulesDirs = [join(workspacePath, "node_modules"), ...(projectConfig.workspace_packages ?? []).map((p) => join(workspacePath, p.path, "node_modules"))];
|
|
1057
|
+
const pkgManager = projectConfig.package_manager || (existsSync(join$1(workspacePath, "bun.lock")) ? "bun" : "npm");
|
|
1058
|
+
const staleModulesDirs = [join$1(workspacePath, "node_modules"), ...(projectConfig.workspace_packages ?? []).map((p) => join$1(workspacePath, p.path, "node_modules"))];
|
|
1053
1059
|
for (const dir of staleModulesDirs) if (existsSync(dir)) await execAsync$1(`rm -rf "${dir}"`);
|
|
1054
1060
|
const installCmd = pkgManager === "bun" ? "bun install" : `${pkgManager} install`;
|
|
1055
1061
|
try {
|
|
@@ -1065,7 +1071,7 @@ async function createWorkspacePromise(options) {
|
|
|
1065
1071
|
progress("Installing dependencies", "Failed — workspace creation aborted", "complete");
|
|
1066
1072
|
return result;
|
|
1067
1073
|
}
|
|
1068
|
-
const hookTargets = workspaceConfig.type === "polyrepo" && workspaceConfig.repos ? workspaceConfig.repos.filter((repo) => repo.link_type !== "symlink").map((repo) => join(workspacePath, repo.name)).filter((path) => existsSync(join(path, ".git"))) : [workspacePath];
|
|
1074
|
+
const hookTargets = workspaceConfig.type === "polyrepo" && workspaceConfig.repos ? workspaceConfig.repos.filter((repo) => repo.link_type !== "symlink").map((repo) => join$1(workspacePath, repo.name)).filter((path) => existsSync(join$1(path, ".git"))) : [workspacePath];
|
|
1069
1075
|
try {
|
|
1070
1076
|
for (const hookTarget of hookTargets) await installPreRebaseHook(hookTarget);
|
|
1071
1077
|
} catch (hookErr) {
|
|
@@ -1077,7 +1083,7 @@ async function createWorkspacePromise(options) {
|
|
|
1077
1083
|
progress("Building workspace packages", workspacePackages.map((p) => p.path).join(", "));
|
|
1078
1084
|
for (const pkg of workspacePackages) try {
|
|
1079
1085
|
await execAsync$1(pkg.build_command, {
|
|
1080
|
-
cwd: join(workspacePath, pkg.path),
|
|
1086
|
+
cwd: join$1(workspacePath, pkg.path),
|
|
1081
1087
|
encoding: "utf-8"
|
|
1082
1088
|
});
|
|
1083
1089
|
result.steps.push(`Built workspace package: ${pkg.path}`);
|
|
@@ -1091,21 +1097,21 @@ async function createWorkspacePromise(options) {
|
|
|
1091
1097
|
}
|
|
1092
1098
|
try {
|
|
1093
1099
|
await execAsync$1("python3 --version");
|
|
1094
|
-
const venvPath = join(workspacePath, ".venv");
|
|
1095
|
-
const tldrBin = join(venvPath, "bin", "tldr");
|
|
1096
|
-
if (existsSync(join(projectConfig.path, ".venv", "bin", "tldr"))) {
|
|
1097
|
-
const mainVenvPath = join(projectConfig.path, ".venv");
|
|
1100
|
+
const venvPath = join$1(workspacePath, ".venv");
|
|
1101
|
+
const tldrBin = join$1(venvPath, "bin", "tldr");
|
|
1102
|
+
if (existsSync(join$1(projectConfig.path, ".venv", "bin", "tldr"))) {
|
|
1103
|
+
const mainVenvPath = join$1(projectConfig.path, ".venv");
|
|
1098
1104
|
await execAsync$1(`cp -a "${mainVenvPath}" "${venvPath}"`);
|
|
1099
1105
|
relocateVenvScripts(mainVenvPath, venvPath);
|
|
1100
1106
|
result.steps.push("Copied Python venv from main branch (shebangs relocated)");
|
|
1101
1107
|
} else {
|
|
1102
1108
|
await execAsync$1(`python3 -m venv "${venvPath}"`, { cwd: workspacePath });
|
|
1103
|
-
await execAsync$1(`"${join(venvPath, "bin", "pip")}" install llm-tldr`, {
|
|
1109
|
+
await execAsync$1(`"${join$1(venvPath, "bin", "pip")}" install llm-tldr`, {
|
|
1104
1110
|
cwd: workspacePath,
|
|
1105
1111
|
timeout: 12e4
|
|
1106
1112
|
});
|
|
1107
1113
|
result.steps.push("Created Python venv and installed llm-tldr");
|
|
1108
|
-
const patchScript = join(projectConfig.path, "scripts", "patches", "llm-tldr-tsx-support.py");
|
|
1114
|
+
const patchScript = join$1(projectConfig.path, "scripts", "patches", "llm-tldr-tsx-support.py");
|
|
1109
1115
|
if (existsSync(patchScript)) {
|
|
1110
1116
|
await execAsync$1(`python3 "${patchScript}" "${venvPath}"`);
|
|
1111
1117
|
result.steps.push("Applied llm-tldr .tsx/.jsx patch");
|
|
@@ -1113,13 +1119,13 @@ async function createWorkspacePromise(options) {
|
|
|
1113
1119
|
}
|
|
1114
1120
|
if (!existsSync(tldrBin)) result.steps.push("TLDR setup incomplete: tldr binary not found after venv creation");
|
|
1115
1121
|
else {
|
|
1116
|
-
const mainTldrDir = join(projectConfig.path, ".tldr");
|
|
1117
|
-
const workspaceTldrDir = join(workspacePath, ".tldr");
|
|
1122
|
+
const mainTldrDir = join$1(projectConfig.path, ".tldr");
|
|
1123
|
+
const workspaceTldrDir = join$1(workspacePath, ".tldr");
|
|
1118
1124
|
if (existsSync(mainTldrDir)) {
|
|
1119
1125
|
await execAsync$1(`cp -r "${mainTldrDir}" "${workspaceTldrDir}"`);
|
|
1120
1126
|
result.steps.push("Copied TLDR index from main branch");
|
|
1121
1127
|
}
|
|
1122
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
1128
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CvWXBhX1.js");
|
|
1123
1129
|
const tldrService = getTldrDaemonServiceSync(workspacePath, venvPath);
|
|
1124
1130
|
await tldrService.start(true);
|
|
1125
1131
|
result.steps.push("Started TLDR daemon");
|
|
@@ -1146,7 +1152,7 @@ async function createWorkspacePromise(options) {
|
|
|
1146
1152
|
}
|
|
1147
1153
|
}
|
|
1148
1154
|
if (workspaceConfig.ports) for (const [portName, portConfig] of Object.entries(workspaceConfig.ports)) {
|
|
1149
|
-
const portFile = join(projectConfig.path, `.${portName}-ports`);
|
|
1155
|
+
const portFile = join$1(projectConfig.path, `.${portName}-ports`);
|
|
1150
1156
|
try {
|
|
1151
1157
|
const port = assignPort(portFile, featureFolder, portConfig.range);
|
|
1152
1158
|
result.steps.push(`Assigned ${portName} port: ${port}`);
|
|
@@ -1162,7 +1168,7 @@ async function createWorkspacePromise(options) {
|
|
|
1162
1168
|
const panMergeResult = mergePanSkillsIntoWorkspaceSync(projectConfig.path, workspacePath);
|
|
1163
1169
|
if (panMergeResult.added.length > 0) result.steps.push(`Installed ${panMergeResult.added.length} project-local skill file(s) from .pan/skills/ (${panMergeResult.overlayed.join(", ")})`);
|
|
1164
1170
|
if (workspaceConfig.agent?.template_dir) {
|
|
1165
|
-
const templateDir = join(projectConfig.path, workspaceConfig.agent.template_dir);
|
|
1171
|
+
const templateDir = join$1(projectConfig.path, workspaceConfig.agent.template_dir);
|
|
1166
1172
|
const templateSteps = processTemplatesSync(templateDir, workspacePath, placeholders, workspaceConfig.agent.templates);
|
|
1167
1173
|
result.steps.push(...templateSteps);
|
|
1168
1174
|
const dirsToSync = workspaceConfig.agent.copy_dirs || workspaceConfig.agent.symlinks;
|
|
@@ -1173,7 +1179,7 @@ async function createWorkspacePromise(options) {
|
|
|
1173
1179
|
}
|
|
1174
1180
|
if (workspaceConfig.env?.template) {
|
|
1175
1181
|
const envContent = replacePlaceholdersSync(workspaceConfig.env.template, placeholders);
|
|
1176
|
-
writeFileSync(join(workspacePath, ".env"), envContent);
|
|
1182
|
+
writeFileSync(join$1(workspacePath, ".env"), envContent);
|
|
1177
1183
|
result.steps.push("Created .env file");
|
|
1178
1184
|
}
|
|
1179
1185
|
if (workspaceConfig.docker?.compose_template) try {
|
|
@@ -1196,7 +1202,7 @@ async function createWorkspacePromise(options) {
|
|
|
1196
1202
|
const humeResult = await Effect.runPromise(createHumeConfig(workspaceConfig.hume, placeholders));
|
|
1197
1203
|
result.steps.push(...humeResult.steps);
|
|
1198
1204
|
if (humeResult.configId) {
|
|
1199
|
-
writeFileSync(join(workspacePath, ".hume-config"), `HUME_CONFIG_ID=${humeResult.configId}\nVITE_HUME_CONFIG_ID=${humeResult.configId}\n`);
|
|
1205
|
+
writeFileSync(join$1(workspacePath, ".hume-config"), `HUME_CONFIG_ID=${humeResult.configId}\nVITE_HUME_CONFIG_ID=${humeResult.configId}\n`);
|
|
1200
1206
|
result.steps.push("Wrote .hume-config with Hume EVI config ID");
|
|
1201
1207
|
}
|
|
1202
1208
|
if (!humeResult.success) result.errors.push("Hume EVI config setup had failures (see steps for details)");
|
|
@@ -1205,9 +1211,9 @@ async function createWorkspacePromise(options) {
|
|
|
1205
1211
|
if (startDocker) {
|
|
1206
1212
|
progress("Starting Docker containers", "Building and starting services");
|
|
1207
1213
|
if (workspaceConfig.docker?.traefik) {
|
|
1208
|
-
const traefikPath = join(homedir(), ".overdeck", "traefik", "docker-compose.yml");
|
|
1214
|
+
const traefikPath = join$1(homedir(), ".overdeck", "traefik", "docker-compose.yml");
|
|
1209
1215
|
if (existsSync(traefikPath)) try {
|
|
1210
|
-
await execAsync$1(`docker compose -f "${traefikPath}" up -d`, { cwd: join(homedir(), ".overdeck", "traefik") });
|
|
1216
|
+
await execAsync$1(`docker compose -f "${traefikPath}" up -d`, { cwd: join$1(homedir(), ".overdeck", "traefik") });
|
|
1211
1217
|
result.steps.push("Started Traefik");
|
|
1212
1218
|
} catch (error) {
|
|
1213
1219
|
const msg = error?.message || String(error);
|
|
@@ -1216,18 +1222,18 @@ async function createWorkspacePromise(options) {
|
|
|
1216
1222
|
}
|
|
1217
1223
|
}
|
|
1218
1224
|
const composeLocations = [
|
|
1219
|
-
join(workspacePath, "docker-compose.yml"),
|
|
1220
|
-
join(workspacePath, "docker-compose.yaml"),
|
|
1221
|
-
join(workspacePath, ".devcontainer", "docker-compose.yml"),
|
|
1222
|
-
join(workspacePath, ".devcontainer", "docker-compose.devcontainer.yml")
|
|
1225
|
+
join$1(workspacePath, "docker-compose.yml"),
|
|
1226
|
+
join$1(workspacePath, "docker-compose.yaml"),
|
|
1227
|
+
join$1(workspacePath, ".devcontainer", "docker-compose.yml"),
|
|
1228
|
+
join$1(workspacePath, ".devcontainer", "docker-compose.devcontainer.yml")
|
|
1223
1229
|
];
|
|
1224
1230
|
for (const composePath of composeLocations) if (existsSync(composePath)) {
|
|
1225
1231
|
try {
|
|
1226
1232
|
await execAsync$1(`docker compose -f "${composePath}" up -d --build`, {
|
|
1227
|
-
cwd: dirname(composePath),
|
|
1233
|
+
cwd: dirname$1(composePath),
|
|
1228
1234
|
timeout: 3e5
|
|
1229
1235
|
});
|
|
1230
|
-
result.steps.push(`Started containers from ${basename(composePath)}`);
|
|
1236
|
+
result.steps.push(`Started containers from ${basename$1(composePath)}`);
|
|
1231
1237
|
} catch (error) {
|
|
1232
1238
|
result.errors.push(`Failed to start containers: ${error}`);
|
|
1233
1239
|
}
|
|
@@ -1240,7 +1246,7 @@ async function createWorkspacePromise(options) {
|
|
|
1240
1246
|
result.steps.push("Pre-trusted workspace in Claude Code");
|
|
1241
1247
|
} catch {}
|
|
1242
1248
|
try {
|
|
1243
|
-
const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace
|
|
1249
|
+
const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace-COWvdibH.js");
|
|
1244
1250
|
const cavemanConfig = loadConfigSync().config.caveman;
|
|
1245
1251
|
const variant = determineCavemanVariant(cavemanConfig);
|
|
1246
1252
|
await Effect.runPromise(injectCavemanSettings(workspacePath, variant));
|
|
@@ -1256,7 +1262,7 @@ async function createWorkspacePromise(options) {
|
|
|
1256
1262
|
result.steps.push(`Overdeck settings copy skipped: ${settingsErr instanceof Error ? settingsErr.message : String(settingsErr)}`);
|
|
1257
1263
|
}
|
|
1258
1264
|
try {
|
|
1259
|
-
const { injectMemoryHookSettings } = await import("./workspace
|
|
1265
|
+
const { injectMemoryHookSettings } = await import("./workspace-COWvdibH.js");
|
|
1260
1266
|
await injectMemoryHookSettings(workspacePath);
|
|
1261
1267
|
result.steps.push("Injected memory hooks into .claude/settings.json");
|
|
1262
1268
|
} catch (memoryHookErr) {
|
|
@@ -1280,9 +1286,42 @@ var init_create = __esmMin((() => {
|
|
|
1280
1286
|
execAsync$1 = promisify(exec);
|
|
1281
1287
|
}));
|
|
1282
1288
|
//#endregion
|
|
1283
|
-
//#region ../../lib/
|
|
1289
|
+
//#region ../../lib/git-hooks.ts
|
|
1290
|
+
function installGitHooksInDir(gitDir) {
|
|
1291
|
+
const hooksTarget = join(gitDir, "hooks");
|
|
1292
|
+
let installed = 0;
|
|
1293
|
+
if (!existsSync$1(hooksTarget)) mkdirSync$1(hooksTarget, { recursive: true });
|
|
1294
|
+
if (!existsSync$1(BUNDLED_HOOKS_DIR)) return 0;
|
|
1295
|
+
try {
|
|
1296
|
+
const hooks = readdirSync$1(BUNDLED_HOOKS_DIR).filter((file) => {
|
|
1297
|
+
const path = join(BUNDLED_HOOKS_DIR, file);
|
|
1298
|
+
return existsSync$1(path) && statSync$1(path).isFile();
|
|
1299
|
+
});
|
|
1300
|
+
for (const hook of hooks) {
|
|
1301
|
+
const source = join(BUNDLED_HOOKS_DIR, hook);
|
|
1302
|
+
const target = join(hooksTarget, hook);
|
|
1303
|
+
if (existsSync$1(target)) {
|
|
1304
|
+
try {
|
|
1305
|
+
if (readlinkSync(target) === source) continue;
|
|
1306
|
+
} catch {}
|
|
1307
|
+
renameSync$1(target, `${target}.backup`);
|
|
1308
|
+
}
|
|
1309
|
+
symlinkSync$1(source, target);
|
|
1310
|
+
installed++;
|
|
1311
|
+
}
|
|
1312
|
+
} catch {}
|
|
1313
|
+
return installed;
|
|
1314
|
+
}
|
|
1315
|
+
var BUNDLED_HOOKS_DIR;
|
|
1316
|
+
var init_git_hooks = __esmMin((() => {
|
|
1317
|
+
init_paths();
|
|
1318
|
+
BUNDLED_HOOKS_DIR = SYNC_SOURCES.gitHooks;
|
|
1319
|
+
}));
|
|
1284
1320
|
var init_repos = __esmMin((() => {
|
|
1321
|
+
init_git_hooks();
|
|
1322
|
+
init_projects();
|
|
1285
1323
|
init_worktree_ops();
|
|
1324
|
+
promisify(execFile);
|
|
1286
1325
|
}));
|
|
1287
1326
|
//#endregion
|
|
1288
1327
|
//#region ../../lib/workspace-manager/remove.ts
|
|
@@ -1294,9 +1333,9 @@ async function removeWorkspacePromise(options) {
|
|
|
1294
1333
|
steps: []
|
|
1295
1334
|
};
|
|
1296
1335
|
const workspaceConfig = projectConfig.workspace || getDefaultWorkspaceConfigSync();
|
|
1297
|
-
const workspacesDir = join(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
1336
|
+
const workspacesDir = join$1(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
1298
1337
|
const featureFolder = `feature-${featureName}`;
|
|
1299
|
-
const workspacePath = join(workspacesDir, featureFolder);
|
|
1338
|
+
const workspacePath = join$1(workspacesDir, featureFolder);
|
|
1300
1339
|
if (!existsSync(workspacePath)) {
|
|
1301
1340
|
result.success = false;
|
|
1302
1341
|
result.errors.push(`Workspace not found at ${workspacePath}`);
|
|
@@ -1306,9 +1345,9 @@ async function removeWorkspacePromise(options) {
|
|
|
1306
1345
|
result.steps.push("[DRY RUN] Would remove workspace at: " + workspacePath);
|
|
1307
1346
|
return result;
|
|
1308
1347
|
}
|
|
1309
|
-
const venvPath = join(workspacePath, ".venv");
|
|
1348
|
+
const venvPath = join$1(workspacePath, ".venv");
|
|
1310
1349
|
if (existsSync(venvPath)) try {
|
|
1311
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
1350
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CvWXBhX1.js");
|
|
1312
1351
|
await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
|
|
1313
1352
|
result.steps.push("Stopped TLDR daemon");
|
|
1314
1353
|
} catch (error) {
|
|
@@ -1317,7 +1356,7 @@ async function removeWorkspacePromise(options) {
|
|
|
1317
1356
|
const dockerResult = await stopWorkspaceDockerPromise(workspacePath, featureName);
|
|
1318
1357
|
result.steps.push(...dockerResult.steps);
|
|
1319
1358
|
if (workspaceConfig.type === "polyrepo" && workspaceConfig.repos) for (const repo of workspaceConfig.repos) {
|
|
1320
|
-
const targetPath = join(workspacePath, repo.name);
|
|
1359
|
+
const targetPath = join$1(workspacePath, repo.name);
|
|
1321
1360
|
if (existsSync(targetPath) && lstatSync(targetPath).isSymbolicLink()) try {
|
|
1322
1361
|
unlinkSync(targetPath);
|
|
1323
1362
|
result.steps.push(`Removed symlink for ${repo.name}`);
|
|
@@ -1325,7 +1364,7 @@ async function removeWorkspacePromise(options) {
|
|
|
1325
1364
|
result.errors.push(`${repo.name}: ${unlinkErr.message}`);
|
|
1326
1365
|
}
|
|
1327
1366
|
else if (existsSync(targetPath)) {
|
|
1328
|
-
const worktreeResult = await removeWorktree(join(projectConfig.path, repo.path), targetPath, `${repo.branch_prefix || "feature/"}${featureName}`);
|
|
1367
|
+
const worktreeResult = await removeWorktree(join$1(projectConfig.path, repo.path), targetPath, `${repo.branch_prefix || "feature/"}${featureName}`);
|
|
1329
1368
|
if (worktreeResult.success) result.steps.push(`Removed worktree for ${repo.name}`);
|
|
1330
1369
|
else result.errors.push(worktreeResult.message);
|
|
1331
1370
|
}
|
|
@@ -1355,7 +1394,7 @@ async function removeWorkspacePromise(options) {
|
|
|
1355
1394
|
result.steps.push(...humeResult.steps);
|
|
1356
1395
|
}
|
|
1357
1396
|
if (workspaceConfig.ports) {
|
|
1358
|
-
for (const [portName] of Object.entries(workspaceConfig.ports)) if (releasePort(join(projectConfig.path, `.${portName}-ports`), featureFolder)) result.steps.push(`Released ${portName} port`);
|
|
1397
|
+
for (const [portName] of Object.entries(workspaceConfig.ports)) if (releasePort(join$1(projectConfig.path, `.${portName}-ports`), featureFolder)) result.steps.push(`Released ${portName} port`);
|
|
1359
1398
|
}
|
|
1360
1399
|
const orphanedContainers = await getContainersReferencingWorkspacePathPromise(workspacePath);
|
|
1361
1400
|
if (orphanedContainers.length > 0) result.errors.push(`Cannot remove workspace directory: ${orphanedContainers.length} Docker container(s) still reference compose paths in ${DEVCONTAINER_DIRNAME}/. Run workspace Docker cleanup first or stop the containers manually.`);
|
|
@@ -1428,6 +1467,6 @@ var init_workspace_manager = __esmMin((() => {
|
|
|
1428
1467
|
});
|
|
1429
1468
|
}));
|
|
1430
1469
|
//#endregion
|
|
1431
|
-
export { removeWorkspace as a,
|
|
1470
|
+
export { removeWorkspace as a, installGitHooksInDir as c, relocateVenvScripts as d, detectPlatform as f, ensurePanGitignoreSync as h, preTrustDirectory as i, installPreRebaseHook as l, copyOverdeckSettingsToWorkspaceSync as m, getContainersReferencingWorkspacePath as n, stopWorkspaceDocker as o, init_platform as p, init_workspace_manager as r, init_git_hooks as s, createWorkspace as t, preTrustDirectorySync as u };
|
|
1432
1471
|
|
|
1433
|
-
//# sourceMappingURL=workspace-manager-
|
|
1472
|
+
//# sourceMappingURL=workspace-manager-BPgTrG66.js.map
|