@overdeck/desktop 0.45.23 → 0.46.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 +34 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-CCwFGICj.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-BBu6DSNm.js → advancing-selfheal-De1L-Sb4.js} +6 -6
- package/server/{agent-gc-BV1q_2EV.js → agent-gc-CBULruzm.js} +5 -5
- package/server/agent-state-VQk8fY9F.js +3 -0
- package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BlnSkRFA.js} +5 -5
- package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-hZpxIw1E.js} +1 -1
- package/server/agents-BKKkxKgK.js +3 -0
- package/server/{agents-B4Bjbkfv.js → agents-C5rWYhb6.js} +4 -4
- package/server/archive-planning-0FJ6Xd3b.js +2 -0
- package/server/{archive-planning-DYrYojxl.js → archive-planning-C0lAbNB_.js} +16 -24
- package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
- package/server/assemble-DnffNpOo.js +339 -0
- package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
- package/server/{behavior-B_-4EKF3.js → behavior-CfIg6pKp.js} +2 -2
- package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
- package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-DHmCSLar.js} +2 -2
- package/server/{build-info-DgTqZkL5.js → build-info-BP160gU7.js} +1 -1
- package/server/{build-info-BT096lEl.js → build-info-CuFfxZxp.js} +5 -3
- package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-DEWD82qK.js} +2 -2
- package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-C-AXLfYT.js → checkpoints-CZvbtLnr.js} +2 -2
- package/server/{checkpoints-CpgCjAlN.js → checkpoints-DMTgXuLG.js} +1 -1
- package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-CN-xo-do.js} +1 -1
- package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
- package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-CN0cSCPp.js} +2 -2
- package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
- package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-Dabi9slj.js} +1 -1
- package/server/cli-DmXETsw-.js +3 -0
- package/server/{cli-vBeXbPrq.js → cli-oCWYA1pE.js} +9 -9
- package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8mB3KuB.js} +2 -2
- package/server/{cliproxy-DW0V86F8.js → cliproxy-PGwTX_o8.js} +1 -1
- package/server/{close-issue-Dn_4c4G8.js → close-issue-D5MF5GqF.js} +5 -5
- package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
- package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Cltx86x5.js} +37 -16
- package/server/{codex-Dg7Is5yb.js → codex-BdEsUFWh.js} +1 -1
- package/server/{codex-TmSi-yTv.js → codex-Drlf5Xhf.js} +37 -8
- package/server/{codex-parser-C4gSH-IR.js → codex-parser-DpB89Vqa.js} +2 -2
- package/server/compaction-continuation-K2AxQX4H.js +200 -0
- package/server/{config-DjLOdbgT.js → config-B2IMcBxx.js} +4 -3
- package/server/{config-DUIhMN_T.js → config-DV-grfQc.js} +1 -1
- package/server/{config-CCvjQf27.js → config-Dr3pW6w6.js} +2 -2
- package/server/{config-yaml-DvyMuOle.js → config-yaml-CmOPzmBb.js} +290 -22
- package/server/{conflict-gate-CmrYpa47.js → conflict-gate-B9cN3SBi.js} +4 -4
- package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-Dh754uyA.js} +1 -1
- package/server/context-layers-D6LZo3l1.js +4 -0
- package/server/context-layers-dR5YxHYB.js +37 -0
- package/server/{control-settings-aP1ANIlI.js → control-settings-C7DUehE1.js} +49 -19
- package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-BoqdDXWF.js} +8 -8
- package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
- package/server/{conversation-service-Du-MTNpJ.js → conversation-service-5aCnq1zR.js} +331 -20
- package/server/conversation-service-BCxl4f8Z.js +3 -0
- package/server/{conversations-DbOs1e9Q.js → conversations-BUpYsOZg.js} +5 -5
- package/server/{conversations-6mPANqvL.js → conversations-C34dyIb9.js} +1 -1
- package/server/{cost-Ca0YTWDw.js → cost-Bgcub5kW.js} +12 -2
- package/server/{cost-CW4WSe72.js → cost-CvxRrucd.js} +3 -3
- package/server/{cost-sync-C0VdGme1.js → cost-sync-Dv3LUaNW.js} +3 -3
- package/server/{dag-CdOjJVDT.js → dag-ombYYt4s.js} +2 -2
- package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-DrXqT9LQ.js +4 -0
- package/server/{deacon-pRnyD5w9.js → deacon-hi9KLPLT.js} +2998 -2659
- package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-BNBebzeL.js} +3 -3
- package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
- package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-DBxUaO-A.js} +13 -13
- package/server/deacon-swarm-I2JfX5Tg.js +2 -0
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-CQcP70ND.js +13 -0
- package/server/delivery-Da0zEMY4.js +3 -0
- package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-Df-Tmaq0.js} +69 -18
- package/server/deploy-queue-9SrhZR63.js +3 -0
- package/server/deploy-queue-UjKGYsDe.js +169 -0
- package/server/deploy-window-jOiPRHL0.js +3 -0
- package/server/{deploy-window-DeP_OIRk.js → deploy-window-rpqpWqHA.js} +40 -16
- package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-CC46Ig8q.js} +2 -2
- package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-68CSCRnu.js} +3 -3
- package/server/{dist-DyRx4cI7.js → dist-CJy72uEg.js} +1 -1
- package/server/dist-DSlxIU1H.js +3 -0
- package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
- package/server/docker-BMVTSFL5.js +3 -0
- package/server/{docker-BK7HIcBj.js → docker-Dam7mbIB.js} +2 -2
- package/server/{dod-BrSfUHm0.js → dod-Dar-yheg.js} +8 -4
- package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
- package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
- package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-B057YA81.js} +4 -4
- package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-C98V8yW-.js} +1 -1
- package/server/{esm-shims-CbI3BVkl.js → esm-shims-Br9BPdkR.js} +1 -1
- package/server/{event-store-Cr5PQwFC.js → event-store-ELqkVOn0.js} +1 -1
- package/server/{event-store-tdiY5eDZ.js → event-store-zY5MJHgF.js} +23 -4
- package/server/{events-CvvGK6LT.js → events-D6pyqhzM.js} +1 -1
- package/server/{events-CC1dgUpx.js → events-D9PR1IC0.js} +3 -3
- package/server/{factory-CynerjXO.js → factory-CRoOpGsF.js} +5 -5
- package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population--YUXU999.js} +4 -4
- package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BORBTo0y.js} +2 -2
- package/server/{features-Dhxz-wLc.js → features--nFkJY8v.js} +2 -2
- package/server/{feedback-target-iygZwmMc.js → feedback-target-C0ZzyHvU.js} +1 -1
- package/server/{feedback-target-CPS15Vte.js → feedback-target-Dt9BsapX.js} +8 -8
- package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-BG0RUZiu.js} +5 -5
- package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D1fm-5Z8.js} +1 -1
- package/server/flywheel-BekukH4i.js +2 -0
- package/server/flywheel-BiT3odRb.js +1092 -0
- package/server/flywheel-CLVB55Be.js +478 -0
- package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
- package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
- package/server/forge-CZbSg6Ds.js +383 -0
- package/server/forge-DK3blQb_.js +3 -0
- package/server/{from-CJ_aH5jD.js → from-D_4_dk7i.js} +1 -1
- package/server/{fts-db-CKgg0VKg.js → fts-db-BeOomFa-.js} +2 -2
- package/server/{fts-operations-BrL_VTRr.js → fts-operations-BdewJ_g9.js} +2 -2
- package/server/git-utils-CI6cwyyC.js +3 -0
- package/server/{git-utils-BVa07a4a.js → git-utils-ameCgDdy.js} +93 -3
- package/server/{github-app-CMBdIFBQ.js → github-app-CQ1Lo6LA.js} +19 -8
- package/server/{github-app-CPfoFAdV.js → github-app-DtAsvwzK.js} +1 -1
- package/server/{github-client--XVlDpwM.js → github-client-BfyDxuRN.js} +2 -2
- package/server/{github-client-B4QsdE-X.js → github-client-Cj0yl_07.js} +1 -1
- package/server/github-pr-lookup-BDq6Wznz.js +58 -0
- package/server/{harness-binary-CVio2m-u.js → harness-binary-DqkftwTb.js} +32 -6
- package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-CqMqM1Mb.js} +18 -9
- package/server/{health-events-C9B8y1Hm.js → health-events-CazRxJUS.js} +2 -2
- package/server/{health-events-CpfvuVmm.js → health-events-_xfTaOUs.js} +1 -1
- package/server/{hooks-DUXw8A0-.js → hooks-BO3QT1sn.js} +2 -2
- package/server/{hooks-ltecuFqZ.js → hooks-BnJsxlSq.js} +1 -1
- package/server/{hume-BEq0bUDg.js → hume-CDYJxqx-.js} +2 -2
- package/server/hume-Dq--7rOQ.js +3 -0
- package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-BYqERdkE.js} +1 -1
- package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
- package/server/in-flight-guard-Bq3epG58.js +45 -0
- package/server/{infra-CzaSOgul.js → infra-BjuxvjdS.js} +80 -5
- package/server/{injection-oNZeoDhL.js → injection-DZxlV2al.js} +1 -1
- package/server/{injection-DZ0PfYa4.js → injection-UCf8EsjX.js} +191 -183
- package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-6kylZnrm.js} +139 -82
- package/server/inspect-agent-BVwDrVrz.js +2 -0
- package/server/{internal-token-Bb4XeV2x.js → internal-token-DvMTQSOS.js} +2 -2
- package/server/{internal-token-DXdfprGr.js → internal-token-M9omeXM1.js} +1 -1
- package/server/{io-B3_AHDfr.js → io-VHvc0Ssp.js} +43 -26
- package/server/{issue-closed-zhdvQicO.js → issue-closed-B6KJkmHZ.js} +7 -7
- package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-9gk3fnXN.js} +1 -1
- package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
- package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-DmCh7EHj.js} +10 -10
- package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-PMx8F1jr.js} +1 -1
- package/server/{issues-B6ToV6x1.js → issues-CgnQ1OGQ.js} +2 -2
- package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-DJOH_O-w.js} +5 -4
- package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-Dv7AV_R1.js} +3 -3
- package/server/{label-reconciler-DdWbHEBu.js → label-reconciler--F85rufp.js} +4 -4
- package/server/{lifecycle-DfeyBDwA.js → lifecycle-CTdOWYMi.js} +2 -2
- package/server/{lifecycle-sycO16hj.js → lifecycle-DDN8ApVY.js} +6 -7
- package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-D-lGdzK3.js} +5 -5
- package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-D_zTLvP1.js} +1 -1
- package/server/{linear-client-D4zqMnX7.js → linear-client-BQU36QqE.js} +2 -2
- package/server/{linear-client-DqhDQO9k.js → linear-client-CY4O_Tu3.js} +1 -1
- package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
- package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-C_ZEhbqI.js → merge-Bpx4jjht.js} +13 -11
- package/server/{merge-agent-XrB80vfT.js → merge-agent-DdMVSV2Y.js} +233 -83
- package/server/{merge-agent-BQM3a8z5.js → merge-agent-DrXa1CpW.js} +1 -1
- package/server/{merge-batch-Bwoyr8Je.js → merge-batch-C5q1c1GX.js} +1 -1
- package/server/merge-completeness-BMm8tMyZ.js +277 -0
- package/server/merge-completeness-D0ljXbk3.js +3 -0
- package/server/{merge-DK23JEdS.js → merge-idOG--29.js} +1 -1
- package/server/merge-ops-DdpTiEMt.js +2 -0
- package/server/merge-rebase-DGQpYJU3.js +2 -0
- package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-xLnMlw5h.js} +3 -3
- package/server/merge-set-DH7ot3yz.js +89 -0
- package/server/merge-set-DzsOTBg5.js +3 -0
- package/server/{merge-sync-DZ9dojJn.js → merge-sync-CQ-LgZ1_.js} +406 -153
- package/server/merge-sync-Ca7F5JnQ.js +3 -0
- package/server/{merge-train-DxDfBTjr.js → merge-train-DTEMyIu4.js} +18 -8
- package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-CNPJzepw.js} +4 -4
- package/server/merge-verification-x3JO8Dtz.js +220 -0
- package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
- package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
- package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-IMSBfePV.js} +2 -2
- package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-C5ULAXwO.js} +1 -1
- package/server/node_modules/.package-lock.json +27 -27
- 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/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/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- 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 +13 -2
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +42 -8
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +269 -61
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +13 -3
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +30 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/server/node_modules/undici/lib/interceptor/decompress.js +9 -2
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +372 -68
- 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/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
- package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
- package/server/package-lock.json +28 -28
- package/server/package.json +1 -1
- package/server/{pan-dir-DeVUgwA7.js → pan-dir-ubraCiUg.js} +24 -10
- package/server/{paths-_zEts6wc.js → paths-cXmOwSbh.js} +2 -2
- package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
- package/server/{pickup-Dd0Znxxy.js → pickup-D8xtG1J2.js} +17 -16
- package/server/pipeline-membership-BGSvkT2M.js +3 -0
- package/server/pipeline-membership-CrAPLYtf.js +57 -0
- package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-gather-CET40frr.js} +177 -109
- package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
- package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
- package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-ImNXknf0.js} +1 -1
- package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
- package/server/{project-pipelines-2sK1apsO.js → project-pipelines-Bim6bThI.js} +2 -2
- package/server/project-repos-C0nuoBGv.js +98 -0
- package/server/project-repos-CRE6Ykow.js +3 -0
- package/server/projects-B03Wr-xc.js +3 -0
- package/server/{prompts-Dp4Tpk39.js → prompts-BEx08AIu.js} +2 -2
- package/server/{providers-DKkBXhxU.js → providers-D7IluJe0.js} +1 -1
- package/server/{providers-DV7ec8l7.js → providers-evXhiQeg.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
- package/server/public/assets/{dist-BWR4qFiV.js → dist-CxAOHbil.js} +1 -1
- package/server/public/assets/{dist-DEmlBBNQ.js → dist-DqDRYW6P.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
- package/server/public/assets/index-Cc7cnFC4.css +1 -0
- package/server/public/assets/index-K0hAYCgV.js +807 -0
- package/server/public/assets/{linear-C9zFQpkX.js → linear-B4cuEFmO.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
- package/server/public/assets/{prod-B1jCQihw.js → prod-CN2nHBvX.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests--Ib2jTgy.js → pull-requests-Cv7LxzUN.js} +1 -1
- package/server/{pull-requests-CXIhdCYD.js → pull-requests-DHWiKxo7.js} +19 -10
- package/server/{queries-6d7Cdtm7.js → queries-DHJm7bTd.js} +1134 -203
- package/server/{rally-B708-nZn.js → rally-B71M9f4o.js} +3 -3
- package/server/rally-YDjU513q.js +3 -0
- package/server/{rally-api-yjQ0TfHd.js → rally-api-D5uXN08-.js} +1 -1
- package/server/{rally-api-nY0ZANw3.js → rally-api-Dkqmok65.js} +2 -2
- package/server/{rally-client-B1EJhfV0.js → rally-client-Bfqm6XI4.js} +4 -4
- package/server/{rally-client-CULK2XAY.js → rally-client-CxsA6ExK.js} +1 -1
- package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
- package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
- package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-0EEYReVZ.js} +36 -36
- package/server/rebuild-stack-qeRqHZxH.js +4 -0
- package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-BbYFsqLa.js} +7 -6
- package/server/record-CtroO946.js +3 -0
- package/server/record-update-DH6dLJID.js +3 -0
- package/server/{record-update-Dq0t2uBG.js → record-update-Z0QCxmMp.js} +124 -34
- package/server/{recovery-trip-BJtIQuag.js → recovery-trip-eJe26h-f.js} +2 -2
- package/server/{release-engine-DZpmGGzb.js → release-engine-lPUp-MTd.js} +5 -5
- package/server/{release-set-hnXd_kga.js → release-set-BwGeyZKX.js} +3 -3
- package/server/{remote-Br-ZWVIP.js → remote-BCd02Es1.js} +3 -3
- package/server/{remote-4tiENDaI.js → remote-CVGUhXMV.js} +3 -3
- package/server/{remote-agents-CRCg1L4H.js → remote-agents-C1bssi41.js} +2 -2
- package/server/{remote-agents-nmty1mLu.js → remote-agents-C_VxssLU.js} +300 -46
- package/server/{remote-completion-BbWNd10K.js → remote-completion-DAB0P706.js} +12 -12
- package/server/resume-u9byntrq.js +3 -0
- package/server/{review-agent-DJRO8EG8.js → review-agent-CD4RCI0Y.js} +1 -1
- package/server/{review-agent-sKkE1FEL.js → review-agent-CHhI66UP.js} +61 -44
- package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-DSMRIfuJ.js} +7 -6
- package/server/{review-context-BgX3lcCx.js → review-context-oFuBbiEE.js} +69 -25
- package/server/{in-flight-guard-aQ1IxeI3.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
- package/server/review-status-BZH8h-6W.js +3 -0
- package/server/review-status-emit-CUExtHd5.js +50 -0
- package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-QV_hQkgS.js} +4 -4
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
- package/server/review-status-source-ylw5QZUR.js +3 -0
- package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-483sujRo.js} +10 -5
- package/server/{review-status-sync-To3-iS-N.js → review-status-sync-NaWvI9Xf.js} +1 -1
- package/server/review-status-yljtTd-q.js +7521 -0
- package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-BPDn4li_.js} +1 -1
- package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CELeUinh.js} +48 -8
- package/server/{rollup-WA0VD-Rr.js → rollup-DTNvelz9.js} +8 -8
- package/server/{rollup-B53Y81xK.js → rollup-DYZfq1c4.js} +1 -1
- package/server/{scanner-D2743cp8.js → scanner-CV35oSn4.js} +42 -14
- package/server/{sequence-io-Cg0zYj_E.js → sequence-io-DF_8iuhV.js} +4 -4
- package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-B2WeCtGi.js} +5 -5
- package/server/server.js +3899 -672
- package/server/{service-DCpB_SGd.js → service-Br9rpBNA.js} +83 -65
- package/server/{session-fork-BQ8_6H32.js → session-fork-D0LY152N.js} +2 -2
- package/server/{session-history-CVZDpS3c.js → session-history-BUyK29eq.js} +4 -4
- package/server/{settings-BZ5m1UCl.js → settings-Bse1Pdcj.js} +3 -3
- package/server/settings-CdvIF84R.js +2 -0
- package/server/{settings-ylxwqwQG.js → settings-CvVGqNEs.js} +3 -2
- package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BWLa8ODz.js} +2 -2
- package/server/{shadow-state-Dh-HzF2J.js → shadow-state-B4fpKxOO.js} +2 -2
- package/server/{shadow-state-C2_epgx2.js → shadow-state-FV6PHfEW.js} +1 -1
- package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-D7asqxOZ.js} +2 -2
- package/server/{ship-log-ClSMIzZX.js → ship-log-xplJ8t75.js} +1 -1
- package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CPp2Ykf6.js} +1 -1
- package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-D3U_79f-.js} +8 -7
- package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-1nFi3gfk.js} +1 -1
- package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DGfZ5B8D.js} +30 -23
- package/server/{specialist-completion-BXhav38U.js → specialist-completion-Br48eiDP.js} +1 -1
- package/server/{specialist-context-DtrYvGJ-.js → specialist-context-cVbGnTa3.js} +5 -5
- package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
- package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-Cl5-hqT8.js} +3 -3
- package/server/{specialists-JVO00bs7.js → specialists-CNfYO3G2.js} +1634 -457
- package/server/{specialists-DyFeedjn.js → specialists-Cicieuzu.js} +21 -19
- package/server/{specialists-D5fRZXmN.js → specialists-JHsdU3pA.js} +1 -1
- package/server/{specialists-DVj0hvaL.js → specialists-Tdezg_6N.js} +1 -1
- package/server/specs-Bt7WJDoC.js +3 -0
- package/server/src-CRmCHlma.js +11408 -0
- package/server/{src-CG9mCkP6.js → src-Ck028hjO.js} +6 -6
- package/server/{src-CMTQGyCK.js → src-UWcGe0Ix.js} +5 -5
- package/server/stack-health-CJLMrLBl.js +3 -0
- package/server/{stack-health-puygdaMd.js → stack-health-DqSqx0zv.js} +68 -12
- package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-CYFOUNlT.js} +4 -4
- package/server/{staleness-Cbl_w4Bw.js → staleness-BQ-0gMYK.js} +1 -1
- package/server/{staleness-Bpy41ngS.js → staleness-D47CUJok.js} +1 -1
- package/server/{state-home-CIGjwNfJ.js → state-home-BYV7qZTW.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
- package/server/{state-migrate-Dkzaxvny.js → state-migrate-CvvBtS0Y.js} +4 -4
- package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-Wt0UVvu1.js} +1 -1
- package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-mkLC6G_t.js} +360 -26
- package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
- package/server/{summary-fork-D8bXjCr7.js → summary-fork-CD7GOts0.js} +2 -2
- package/server/{summary-fork-DHhJIsAL.js → summary-fork-xiXBnWG9.js} +78 -12
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-B5SbvDx2.js} +2 -41
- package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
- package/server/supervisor/pty-supervisor.js +49 -2
- package/server/supervisor/pty-token-B7lp0ElT.js +43 -0
- package/server/{supervisor-BO-Zk_h-.js → supervisor-DL788vos.js} +3 -3
- package/server/supervisor-UWiQNK-y.js +2 -0
- package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-BV14DF5N.js} +3 -3
- package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-pdWG6ZQs.js} +56 -29
- package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-l2F4_zim.js} +15 -16
- package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-qakFIIGz.js} +6 -6
- package/server/{test-verdict-CmUBK5cT.js → test-verdict-BJYDggMm.js} +1 -1
- package/server/{test-verdict-DFjjIHR5.js → test-verdict-Gw-btEfb.js} +1 -1
- package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BKOYB616.js} +1 -1
- package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-CBaWkV9k.js} +2 -2
- package/server/{tmux-ftABRAmc.js → tmux-B1Wbxz5o.js} +3 -3
- package/server/{tmux-DoThH6aj.js → tmux-DQ6jB76i.js} +1 -1
- package/server/tmux-dedup-DbN6MGzM.js +892 -0
- package/server/{token-CsOhvw42.js → token-Cxbk023d.js} +2 -2
- package/server/{token-util-CTmczIfW.js → token-util-CLq2MmQt.js} +1 -1
- package/server/token-util-zlz9U0ki.js +3 -0
- package/server/{tracker-config-B4itFzDo.js → tracker-config-DZ8Zn2nQ.js} +2 -2
- package/server/{tracker-utils-tnxxqROg.js → tracker-utils-L0FKtjq2.js} +3 -3
- package/server/{traefik-connect-m73vGebA.js → traefik-connect-bNX6jKkb.js} +1 -1
- package/server/{tunnel-B2vxjx_b.js → tunnel-BAm1XgjG.js} +3 -3
- package/server/{tunnel-Cgj-IGIl.js → tunnel-CjSnHdTc.js} +1 -1
- package/server/{types-BBNjPcqU.js → types-q67TYYg5.js} +1 -1
- package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
- package/server/uat-train-Cu-4nvbf.js +2 -0
- package/server/uat-train-D5UjcyAa.js +0 -0
- package/server/validate-Cxsx5Uz1.js +179 -0
- package/server/{validation-CIi6pnI2.js → validation-DEaTZafj.js} +1 -1
- package/server/{validation-B5JxoPUS.js → validation-VZgJxmqc.js} +4 -4
- package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-C85cRTc_.js} +1 -1
- package/server/{verification-artifact-BcnIbigL.js → verification-artifact-g3yuxQDL.js} +1 -1
- package/server/{verification-runner-CDj4lD4t.js → verification-runner-DlZI8yhw.js} +1 -1
- package/server/{verification-runner-Br0S_Ous.js → verification-runner-KDZIsBj4.js} +114 -107
- package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-Jr94BF3Y.js} +1 -1
- package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-C-vuP3_J.js} +20 -9
- package/server/workflows-CHrx_hcW.js +2 -0
- package/server/{workflows-C9WmILql.js → workflows-D0oip4eV.js} +161 -78
- package/server/{workspace-DuUdndHe.js → workspace-BqFg__wH.js} +1 -1
- package/server/{workspace-BVl4rihN.js → workspace-C0fH3aek.js} +3 -3
- package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
- package/server/workspace-anchor-drift-CZKofakh.js +224 -0
- package/server/{workspace-config-cEGcO6UT.js → workspace-config-B123aZl-.js} +1 -1
- package/server/workspace-manager-CDTKjjdU.js +3 -0
- package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CwO-Hek7.js} +206 -116
- package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-CQv00QwK.js} +2 -2
- package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-D4M8BM4W.js} +1 -1
- package/server/{workspaces-hWvy9eKs.js → workspaces-j1e_6aAT.js} +736 -290
- 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/hooks/record-cost-event.js +6 -4
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -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-start/SKILL.md +4 -0
- 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/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bg0lhqwj.js +0 -3
- package/server/agents-FlIgQ3ql.js +0 -3
- package/server/archive-planning-zkJb3BeM.js +0 -3
- package/server/cli-BsVIHwzC.js +0 -3
- package/server/context-layers-B3Nt58jl.js +0 -4
- package/server/context-layers-ZYFcWiyc.js +0 -165
- package/server/conversation-service-Up7FEzIC.js +0 -3
- package/server/deacon-DYSEJb48.js +0 -4
- package/server/deacon-swarm-9jRLS5Ke.js +0 -2
- package/server/deploy-window-CM6W1-c6.js +0 -3
- package/server/dist-Bd3vn0Hw.js +0 -3
- package/server/flywheel-DMCUzDWg.js +0 -2
- package/server/flywheel-DSSpWmqF.js +0 -522
- package/server/flywheel-DcBkQvgE.js +0 -207
- package/server/flywheel-merge-order-C-6zRLvM.js +0 -2
- package/server/flywheel-merge-order-DxbQKE1d.js +0 -244
- package/server/forge-B-ZWyTRm.js +0 -2
- package/server/forge-Ch9gCFod.js +0 -270
- package/server/git-utils-Dry_Ka_D.js +0 -3
- package/server/github-pr-lookup-BRbDW-qk.js +0 -44
- package/server/hume-B_DbflNM.js +0 -3
- package/server/inspect-agent-ch-F-5Ci.js +0 -2
- package/server/launcher-generator-CHVm7bGT.js +0 -379
- package/server/layers-DzxSTGNA.js +0 -93
- package/server/merge-blockers-BsFjGrQ8.js +0 -41
- package/server/merge-ops-DlB1IM0Y.js +0 -2
- package/server/merge-set-DLz0MkGT.js +0 -139
- package/server/merge-set-DnSYdBEp.js +0 -3
- package/server/merge-sync-SSv3E-pl.js +0 -3
- package/server/merge-verification-CSizH3HY.js +0 -124
- package/server/projects-9SkRpES9.js +0 -3
- package/server/public/assets/index-CUr1xv8w.css +0 -1
- package/server/public/assets/index-CsSuZQBI.js +0 -802
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
- package/server/rally-njs_mJrt.js +0 -3
- package/server/rebuild-stack-kA7XngID.js +0 -3
- package/server/record-t6V-3Dcj.js +0 -3
- package/server/record-update-DACtKh6_.js +0 -3
- package/server/resume-CcKqnTvE.js +0 -3
- package/server/review-status-A7quS5KJ.js +0 -1454
- package/server/review-status-C6n6-9f_.js +0 -3
- package/server/settings-D0OSwos5.js +0 -2
- package/server/specs-nN45DG2X.js +0 -3
- package/server/src-U7_kTPEE.js +0 -4733
- package/server/stack-health-Df0YEZKa.js +0 -3
- package/server/supervisor-BPy-o1A8.js +0 -2
- package/server/token-util-DrHg8abn.js +0 -3
- package/server/tracker-utils-BePq_oj-.js +0 -3
- package/server/uat-train-CuEn0t9M.js +0 -2152
- package/server/uat-train-cKfM-_WW.js +0 -2
- package/server/workflows-D90rMOya.js +0 -2
- package/server/workspace-manager-ZTdJAy9M.js +0 -3
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
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, ci as init_paths, f as loadConfigSync, jr as ProcessSpawnError, t as init_config_yaml, zr as CACHE_AGENTS_DIR } from "./config-yaml-CmOPzmBb.js";
|
|
3
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-hraoaQIp.js";
|
|
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-
|
|
4
|
+
import { t as init_pan_dir } from "./pan-dir-ubraCiUg.js";
|
|
5
|
+
import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-B123aZl-.js";
|
|
6
|
+
import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-BAm1XgjG.js";
|
|
7
|
+
import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-CDYJxqx-.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-68CSCRnu.js";
|
|
9
|
+
import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-Dam7mbIB.js";
|
|
10
|
+
import { join } from "node:path";
|
|
10
11
|
import { Effect } from "effect";
|
|
11
|
-
import { 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";
|
|
12
|
+
import { chmodSync, copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "fs";
|
|
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");
|
|
@@ -587,6 +589,37 @@ function relocateVenvScripts(sourceVenv, destVenv) {
|
|
|
587
589
|
} catch {}
|
|
588
590
|
}
|
|
589
591
|
}
|
|
592
|
+
/** Install the agent-only rebase guard in Git's configured hooks directory. */
|
|
593
|
+
async function installPreRebaseHook(targetPath) {
|
|
594
|
+
const { stdout } = await execAsync$2("git rev-parse --git-path hooks", {
|
|
595
|
+
cwd: targetPath,
|
|
596
|
+
encoding: "utf-8"
|
|
597
|
+
});
|
|
598
|
+
const hooksDir = resolve$1(targetPath, stdout.trim());
|
|
599
|
+
const hookPath = join$1(hooksDir, "pre-rebase");
|
|
600
|
+
mkdirSync(hooksDir, { recursive: true });
|
|
601
|
+
const originalHookPath = `${hookPath}${PRE_REBASE_ORIGINAL_SUFFIX}`;
|
|
602
|
+
const existingHook = existsSync(hookPath) ? readFileSync(hookPath, "utf-8") : "";
|
|
603
|
+
if (!existingHook.includes(PRE_REBASE_HOOK_MARKER)) {
|
|
604
|
+
if (existingHook) {
|
|
605
|
+
rmSync(originalHookPath, { force: true });
|
|
606
|
+
renameSync(hookPath, originalHookPath);
|
|
607
|
+
}
|
|
608
|
+
writeFileSync(hookPath, [
|
|
609
|
+
PRE_REBASE_HOOK_PREFIX,
|
|
610
|
+
`if [ -x "\${0}${PRE_REBASE_ORIGINAL_SUFFIX}" ]; then`,
|
|
611
|
+
` exec "\${0}${PRE_REBASE_ORIGINAL_SUFFIX}" "$@"`,
|
|
612
|
+
"fi",
|
|
613
|
+
"exit 0",
|
|
614
|
+
""
|
|
615
|
+
].join("\n"), {
|
|
616
|
+
encoding: "utf-8",
|
|
617
|
+
mode: 493
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
chmodSync(hookPath, 493);
|
|
621
|
+
return hookPath;
|
|
622
|
+
}
|
|
590
623
|
/**
|
|
591
624
|
* Create a git worktree
|
|
592
625
|
* @param repoPath Path to the source git repository
|
|
@@ -603,7 +636,8 @@ async function createWorktree(repoPath, targetPath, branchName, defaultBranch =
|
|
|
603
636
|
const localList = localBranches.split("\n").map((b) => b.replace(/^[*+\s]+/, "").trim()).filter(Boolean);
|
|
604
637
|
const remoteList = remoteBranches.split("\n").map((b) => b.trim()).filter(Boolean);
|
|
605
638
|
if (localList.includes(branchName) || remoteList.includes(`origin/${branchName}`)) await execAsync$2(`git worktree add "${targetPath}" "${branchName}"`, { cwd: repoPath });
|
|
606
|
-
else await execAsync$2(`git worktree add "${
|
|
639
|
+
else await execAsync$2(`git worktree add -b "${branchName}" "${targetPath}" "${defaultBranch}"`, { cwd: repoPath });
|
|
640
|
+
await installPreRebaseHook(targetPath);
|
|
607
641
|
await execAsync$2("git restore .", { cwd: targetPath }).catch(() => {});
|
|
608
642
|
return {
|
|
609
643
|
success: true,
|
|
@@ -639,7 +673,7 @@ async function removeWorktree(repoPath, targetPath, branchName) {
|
|
|
639
673
|
*/
|
|
640
674
|
function assignPort(portFile, featureFolder, range) {
|
|
641
675
|
if (!existsSync(portFile)) {
|
|
642
|
-
mkdirSync(dirname(portFile), { recursive: true });
|
|
676
|
+
mkdirSync(dirname$1(portFile), { recursive: true });
|
|
643
677
|
writeFileSync(portFile, "");
|
|
644
678
|
}
|
|
645
679
|
const content = readFileSync(portFile, "utf-8");
|
|
@@ -681,8 +715,8 @@ function mergeDirectoryWithoutOverwriteSync(source, target) {
|
|
|
681
715
|
if (!existsSync(source)) return;
|
|
682
716
|
mkdirSync(target, { recursive: true });
|
|
683
717
|
for (const entry of readdirSync(source, { withFileTypes: true })) {
|
|
684
|
-
const sourcePath = join(source, entry.name);
|
|
685
|
-
const targetPath = join(target, entry.name);
|
|
718
|
+
const sourcePath = join$1(source, entry.name);
|
|
719
|
+
const targetPath = join$1(target, entry.name);
|
|
686
720
|
if (entry.isDirectory()) mergeDirectoryWithoutOverwriteSync(sourcePath, targetPath);
|
|
687
721
|
else if (entry.isFile() && !existsSync(targetPath)) copyFileSync(sourcePath, targetPath);
|
|
688
722
|
}
|
|
@@ -698,19 +732,19 @@ function restorePreWorktreeMetadataSync(stagedPath, workspacePath) {
|
|
|
698
732
|
function copyProjectTemplateDirs(sourceDir, targetDir, dirs, placeholders) {
|
|
699
733
|
const steps = [];
|
|
700
734
|
for (const dir of dirs) {
|
|
701
|
-
const sourcePath = join(sourceDir, dir);
|
|
702
|
-
const targetPath = join(targetDir, dir);
|
|
735
|
+
const sourcePath = join$1(sourceDir, dir);
|
|
736
|
+
const targetPath = join$1(targetDir, dir);
|
|
703
737
|
if (!existsSync(sourcePath)) continue;
|
|
704
738
|
function copyDir(src, dest) {
|
|
705
739
|
let count = 0;
|
|
706
740
|
mkdirSync(dest, { recursive: true });
|
|
707
741
|
const entries = readdirSync(src, { withFileTypes: true });
|
|
708
742
|
for (const entry of entries) {
|
|
709
|
-
const srcEntry = join(src, entry.name);
|
|
710
|
-
const destEntry = join(dest, entry.name);
|
|
743
|
+
const srcEntry = join$1(src, entry.name);
|
|
744
|
+
const destEntry = join$1(dest, entry.name);
|
|
711
745
|
if (entry.isDirectory()) count += copyDir(srcEntry, destEntry);
|
|
712
746
|
else if (entry.isFile()) {
|
|
713
|
-
const ext = extname(entry.name).toLowerCase();
|
|
747
|
+
const ext = extname$1(entry.name).toLowerCase();
|
|
714
748
|
if (placeholders && TEXT_EXTENSIONS.has(ext)) writeFileSync(destEntry, replacePlaceholdersSync(readFileSync(srcEntry, "utf-8"), placeholders));
|
|
715
749
|
else copyFileSync(srcEntry, destEntry);
|
|
716
750
|
count++;
|
|
@@ -748,7 +782,7 @@ function copyProjectTemplateDirs(sourceDir, targetDir, dirs, placeholders) {
|
|
|
748
782
|
* key checked by both the bypass-mode dialog and the headless --bg gate.
|
|
749
783
|
*/
|
|
750
784
|
function preTrustDirectorySync(dirPath) {
|
|
751
|
-
const claudeJsonPath = join(homedir(), ".claude.json");
|
|
785
|
+
const claudeJsonPath = join$1(homedir(), ".claude.json");
|
|
752
786
|
if (!existsSync(claudeJsonPath)) return;
|
|
753
787
|
const data = JSON.parse(readFileSync(claudeJsonPath, "utf8"));
|
|
754
788
|
let dirty = false;
|
|
@@ -778,11 +812,23 @@ function preTrustDirectorySync(dirPath) {
|
|
|
778
812
|
}
|
|
779
813
|
if (dirty) writeFileSync(claudeJsonPath, JSON.stringify(data, null, 2), "utf8");
|
|
780
814
|
}
|
|
781
|
-
var execAsync$2, TEXT_EXTENSIONS;
|
|
815
|
+
var execAsync$2, PRE_REBASE_HOOK_MARKER, PRE_REBASE_ORIGINAL_SUFFIX, PRE_REBASE_HOOK_PREFIX, TEXT_EXTENSIONS;
|
|
782
816
|
var init_worktree_ops = __esmMin((() => {
|
|
783
817
|
init_workspace_config();
|
|
784
818
|
init_types();
|
|
785
819
|
execAsync$2 = promisify(exec);
|
|
820
|
+
PRE_REBASE_HOOK_MARKER = "# OVERDECK MANAGED PRE-REBASE GUARD";
|
|
821
|
+
PRE_REBASE_ORIGINAL_SUFFIX = ".overdeck-original";
|
|
822
|
+
PRE_REBASE_HOOK_PREFIX = [
|
|
823
|
+
"#!/bin/sh",
|
|
824
|
+
PRE_REBASE_HOOK_MARKER,
|
|
825
|
+
"if [ \"$OVERDECK_PAN_GIT_OP\" != \"1\" ] && [ -n \"$OVERDECK_AGENT_ID\" ]; then",
|
|
826
|
+
" echo \"Overdeck agents must not run git rebase directly.\" >&2",
|
|
827
|
+
" echo \"Use pan sync-main <ISSUE-ID> to sync main or pan done <ISSUE-ID> to submit.\" >&2",
|
|
828
|
+
" exit 1",
|
|
829
|
+
"fi",
|
|
830
|
+
""
|
|
831
|
+
].join("\n");
|
|
786
832
|
TEXT_EXTENSIONS = new Set([
|
|
787
833
|
".md",
|
|
788
834
|
".sh",
|
|
@@ -808,7 +854,7 @@ var init_worktree_ops = __esmMin((() => {
|
|
|
808
854
|
* Returns the entries that were added or removed (empty arrays if nothing changed).
|
|
809
855
|
*/
|
|
810
856
|
function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
811
|
-
const gitignorePath = join(workspacePath, ".gitignore");
|
|
857
|
+
const gitignorePath = join$1(workspacePath, ".gitignore");
|
|
812
858
|
let content = existsSync(gitignorePath) ? readFileSync(gitignorePath, "utf-8") : "";
|
|
813
859
|
const removed = [];
|
|
814
860
|
const filteredLines = content.split("\n").filter((line) => {
|
|
@@ -826,8 +872,11 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
|
826
872
|
const entry = `${repo.name}/`;
|
|
827
873
|
if (!normalizedLines.includes(entry) && !normalizedLines.includes(repo.name)) added.push(entry);
|
|
828
874
|
}
|
|
829
|
-
const
|
|
830
|
-
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 {
|
|
831
880
|
added,
|
|
832
881
|
removed
|
|
833
882
|
};
|
|
@@ -836,9 +885,10 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
|
836
885
|
if (!normalizedLines.some((l) => l.includes("Polyrepo") || l.includes("polyrepo"))) content += "\n# Polyrepo sub-repositories\n";
|
|
837
886
|
content += added.join("\n") + "\n";
|
|
838
887
|
}
|
|
839
|
-
if (
|
|
840
|
-
content += "\n# Overdeck workspace runtime (PAN-2541: durable state lives on overdeck-state)\n
|
|
841
|
-
|
|
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);
|
|
842
892
|
}
|
|
843
893
|
writeFileSync(gitignorePath, content, "utf-8");
|
|
844
894
|
return {
|
|
@@ -853,7 +903,7 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
|
|
|
853
903
|
* surface the warning.
|
|
854
904
|
*/
|
|
855
905
|
async function commitPolyrepoWorkspaceGitignoreAsync(workspacePath) {
|
|
856
|
-
if (!existsSync(join(workspacePath, ".git"))) return null;
|
|
906
|
+
if (!existsSync(join$1(workspacePath, ".git"))) return null;
|
|
857
907
|
try {
|
|
858
908
|
await execAsync$1("git add .gitignore", { cwd: workspacePath });
|
|
859
909
|
try {
|
|
@@ -901,9 +951,9 @@ async function createWorkspacePromise(options) {
|
|
|
901
951
|
return result;
|
|
902
952
|
}
|
|
903
953
|
const workspaceConfig = projectConfig.workspace || getDefaultWorkspaceConfigSync();
|
|
904
|
-
const workspacesDir = join(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
954
|
+
const workspacesDir = join$1(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
905
955
|
const featureFolder = `feature-${featureName}`;
|
|
906
|
-
const workspacePath = join(workspacesDir, featureFolder);
|
|
956
|
+
const workspacePath = join$1(workspacesDir, featureFolder);
|
|
907
957
|
result.workspacePath = workspacePath;
|
|
908
958
|
if (dryRun) {
|
|
909
959
|
result.steps.push("[DRY RUN] Would create workspace at: " + workspacePath);
|
|
@@ -926,9 +976,9 @@ async function createWorkspacePromise(options) {
|
|
|
926
976
|
result.steps.push("Created workspace directory");
|
|
927
977
|
const reposToCreate = workspaceConfig.progressive && workspaceConfig.always_include ? workspaceConfig.repos.filter((r) => workspaceConfig.always_include.includes(r.name)) : workspaceConfig.repos;
|
|
928
978
|
for (const repo of reposToCreate) {
|
|
929
|
-
const rawRepoPath = join(projectConfig.path, repo.path);
|
|
979
|
+
const rawRepoPath = join$1(projectConfig.path, repo.path);
|
|
930
980
|
const repoPath = existsSync(rawRepoPath) ? realpathSync(rawRepoPath) : rawRepoPath;
|
|
931
|
-
const targetPath = join(workspacePath, repo.name);
|
|
981
|
+
const targetPath = join$1(workspacePath, repo.name);
|
|
932
982
|
if (repo.link_type === "symlink") try {
|
|
933
983
|
symlinkSync(repoPath, targetPath);
|
|
934
984
|
result.steps.push(`Created symlink for ${repo.name} (readonly, no feature branch)`);
|
|
@@ -974,16 +1024,16 @@ async function createWorkspacePromise(options) {
|
|
|
974
1024
|
result.steps.push(`Warning: could not create workspace .gitignore: ${gitignoreErr.message}`);
|
|
975
1025
|
}
|
|
976
1026
|
progress("Creating git worktree", "Worktree ready", "complete");
|
|
977
|
-
const resolvedWorkspace = resolve(workspacePath);
|
|
978
|
-
const resolvedPanDir = resolve(resolvedWorkspace, PAN_DIRNAME);
|
|
979
|
-
if (resolvedWorkspace.match(/\/workspaces\/feature-[a-z0-9-]+$/) && existsSync(join(resolvedWorkspace, ".git"))) {
|
|
980
|
-
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)) {
|
|
981
1031
|
for (const filePath of [
|
|
982
|
-
join(resolvedPanDir, PAN_CONTINUE_FILENAME),
|
|
983
|
-
join(resolvedPanDir, PAN_SESSIONS_FILENAME),
|
|
984
|
-
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)
|
|
985
1035
|
]) if (existsSync(filePath)) unlinkSync(filePath);
|
|
986
|
-
const feedbackDir = join(resolvedPanDir, PAN_FEEDBACK_DIRNAME);
|
|
1036
|
+
const feedbackDir = join$1(resolvedPanDir, PAN_FEEDBACK_DIRNAME);
|
|
987
1037
|
if (existsSync(feedbackDir)) rmSync(feedbackDir, {
|
|
988
1038
|
recursive: true,
|
|
989
1039
|
force: true
|
|
@@ -997,15 +1047,15 @@ async function createWorkspacePromise(options) {
|
|
|
997
1047
|
} catch (gitignoreErr) {
|
|
998
1048
|
result.steps.push(`Warning: could not update .gitignore: ${gitignoreErr.message}`);
|
|
999
1049
|
}
|
|
1000
|
-
const devcontainerDir = join(workspacePath, ".devcontainer");
|
|
1050
|
+
const devcontainerDir = join$1(workspacePath, ".devcontainer");
|
|
1001
1051
|
if (existsSync(devcontainerDir)) {
|
|
1002
1052
|
const composeFiles = readdirSync(devcontainerDir).filter((f) => f.includes("compose") && (f.endsWith(".yml") || f.endsWith(".yaml")));
|
|
1003
|
-
for (const composeFile of composeFiles) sanitizeComposeFileSync(join(devcontainerDir, composeFile));
|
|
1053
|
+
for (const composeFile of composeFiles) sanitizeComposeFileSync(join$1(devcontainerDir, composeFile));
|
|
1004
1054
|
if (composeFiles.length > 0) result.steps.push(`Sanitized ${composeFiles.length} compose file(s) for platform compatibility`);
|
|
1005
1055
|
}
|
|
1006
1056
|
progress("Installing dependencies", projectConfig.package_manager || "detecting...");
|
|
1007
|
-
const pkgManager = projectConfig.package_manager || (existsSync(join(workspacePath, "bun.lock")) ? "bun" : "npm");
|
|
1008
|
-
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"))];
|
|
1009
1059
|
for (const dir of staleModulesDirs) if (existsSync(dir)) await execAsync$1(`rm -rf "${dir}"`);
|
|
1010
1060
|
const installCmd = pkgManager === "bun" ? "bun install" : `${pkgManager} install`;
|
|
1011
1061
|
try {
|
|
@@ -1021,12 +1071,19 @@ async function createWorkspacePromise(options) {
|
|
|
1021
1071
|
progress("Installing dependencies", "Failed — workspace creation aborted", "complete");
|
|
1022
1072
|
return result;
|
|
1023
1073
|
}
|
|
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];
|
|
1075
|
+
try {
|
|
1076
|
+
for (const hookTarget of hookTargets) await installPreRebaseHook(hookTarget);
|
|
1077
|
+
} catch (hookErr) {
|
|
1078
|
+
result.errors.push(`Pre-rebase guard install failed: ${hookErr.message?.slice(0, 200)}`);
|
|
1079
|
+
return result;
|
|
1080
|
+
}
|
|
1024
1081
|
const workspacePackages = projectConfig.workspace_packages;
|
|
1025
1082
|
if (workspacePackages && workspacePackages.length > 0) {
|
|
1026
1083
|
progress("Building workspace packages", workspacePackages.map((p) => p.path).join(", "));
|
|
1027
1084
|
for (const pkg of workspacePackages) try {
|
|
1028
1085
|
await execAsync$1(pkg.build_command, {
|
|
1029
|
-
cwd: join(workspacePath, pkg.path),
|
|
1086
|
+
cwd: join$1(workspacePath, pkg.path),
|
|
1030
1087
|
encoding: "utf-8"
|
|
1031
1088
|
});
|
|
1032
1089
|
result.steps.push(`Built workspace package: ${pkg.path}`);
|
|
@@ -1040,21 +1097,21 @@ async function createWorkspacePromise(options) {
|
|
|
1040
1097
|
}
|
|
1041
1098
|
try {
|
|
1042
1099
|
await execAsync$1("python3 --version");
|
|
1043
|
-
const venvPath = join(workspacePath, ".venv");
|
|
1044
|
-
const tldrBin = join(venvPath, "bin", "tldr");
|
|
1045
|
-
if (existsSync(join(projectConfig.path, ".venv", "bin", "tldr"))) {
|
|
1046
|
-
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");
|
|
1047
1104
|
await execAsync$1(`cp -a "${mainVenvPath}" "${venvPath}"`);
|
|
1048
1105
|
relocateVenvScripts(mainVenvPath, venvPath);
|
|
1049
1106
|
result.steps.push("Copied Python venv from main branch (shebangs relocated)");
|
|
1050
1107
|
} else {
|
|
1051
1108
|
await execAsync$1(`python3 -m venv "${venvPath}"`, { cwd: workspacePath });
|
|
1052
|
-
await execAsync$1(`"${join(venvPath, "bin", "pip")}" install llm-tldr`, {
|
|
1109
|
+
await execAsync$1(`"${join$1(venvPath, "bin", "pip")}" install llm-tldr`, {
|
|
1053
1110
|
cwd: workspacePath,
|
|
1054
1111
|
timeout: 12e4
|
|
1055
1112
|
});
|
|
1056
1113
|
result.steps.push("Created Python venv and installed llm-tldr");
|
|
1057
|
-
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");
|
|
1058
1115
|
if (existsSync(patchScript)) {
|
|
1059
1116
|
await execAsync$1(`python3 "${patchScript}" "${venvPath}"`);
|
|
1060
1117
|
result.steps.push("Applied llm-tldr .tsx/.jsx patch");
|
|
@@ -1062,13 +1119,13 @@ async function createWorkspacePromise(options) {
|
|
|
1062
1119
|
}
|
|
1063
1120
|
if (!existsSync(tldrBin)) result.steps.push("TLDR setup incomplete: tldr binary not found after venv creation");
|
|
1064
1121
|
else {
|
|
1065
|
-
const mainTldrDir = join(projectConfig.path, ".tldr");
|
|
1066
|
-
const workspaceTldrDir = join(workspacePath, ".tldr");
|
|
1122
|
+
const mainTldrDir = join$1(projectConfig.path, ".tldr");
|
|
1123
|
+
const workspaceTldrDir = join$1(workspacePath, ".tldr");
|
|
1067
1124
|
if (existsSync(mainTldrDir)) {
|
|
1068
1125
|
await execAsync$1(`cp -r "${mainTldrDir}" "${workspaceTldrDir}"`);
|
|
1069
1126
|
result.steps.push("Copied TLDR index from main branch");
|
|
1070
1127
|
}
|
|
1071
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
1128
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BKOYB616.js");
|
|
1072
1129
|
const tldrService = getTldrDaemonServiceSync(workspacePath, venvPath);
|
|
1073
1130
|
await tldrService.start(true);
|
|
1074
1131
|
result.steps.push("Started TLDR daemon");
|
|
@@ -1095,7 +1152,7 @@ async function createWorkspacePromise(options) {
|
|
|
1095
1152
|
}
|
|
1096
1153
|
}
|
|
1097
1154
|
if (workspaceConfig.ports) for (const [portName, portConfig] of Object.entries(workspaceConfig.ports)) {
|
|
1098
|
-
const portFile = join(projectConfig.path, `.${portName}-ports`);
|
|
1155
|
+
const portFile = join$1(projectConfig.path, `.${portName}-ports`);
|
|
1099
1156
|
try {
|
|
1100
1157
|
const port = assignPort(portFile, featureFolder, portConfig.range);
|
|
1101
1158
|
result.steps.push(`Assigned ${portName} port: ${port}`);
|
|
@@ -1111,7 +1168,7 @@ async function createWorkspacePromise(options) {
|
|
|
1111
1168
|
const panMergeResult = mergePanSkillsIntoWorkspaceSync(projectConfig.path, workspacePath);
|
|
1112
1169
|
if (panMergeResult.added.length > 0) result.steps.push(`Installed ${panMergeResult.added.length} project-local skill file(s) from .pan/skills/ (${panMergeResult.overlayed.join(", ")})`);
|
|
1113
1170
|
if (workspaceConfig.agent?.template_dir) {
|
|
1114
|
-
const templateDir = join(projectConfig.path, workspaceConfig.agent.template_dir);
|
|
1171
|
+
const templateDir = join$1(projectConfig.path, workspaceConfig.agent.template_dir);
|
|
1115
1172
|
const templateSteps = processTemplatesSync(templateDir, workspacePath, placeholders, workspaceConfig.agent.templates);
|
|
1116
1173
|
result.steps.push(...templateSteps);
|
|
1117
1174
|
const dirsToSync = workspaceConfig.agent.copy_dirs || workspaceConfig.agent.symlinks;
|
|
@@ -1122,7 +1179,7 @@ async function createWorkspacePromise(options) {
|
|
|
1122
1179
|
}
|
|
1123
1180
|
if (workspaceConfig.env?.template) {
|
|
1124
1181
|
const envContent = replacePlaceholdersSync(workspaceConfig.env.template, placeholders);
|
|
1125
|
-
writeFileSync(join(workspacePath, ".env"), envContent);
|
|
1182
|
+
writeFileSync(join$1(workspacePath, ".env"), envContent);
|
|
1126
1183
|
result.steps.push("Created .env file");
|
|
1127
1184
|
}
|
|
1128
1185
|
if (workspaceConfig.docker?.compose_template) try {
|
|
@@ -1145,7 +1202,7 @@ async function createWorkspacePromise(options) {
|
|
|
1145
1202
|
const humeResult = await Effect.runPromise(createHumeConfig(workspaceConfig.hume, placeholders));
|
|
1146
1203
|
result.steps.push(...humeResult.steps);
|
|
1147
1204
|
if (humeResult.configId) {
|
|
1148
|
-
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`);
|
|
1149
1206
|
result.steps.push("Wrote .hume-config with Hume EVI config ID");
|
|
1150
1207
|
}
|
|
1151
1208
|
if (!humeResult.success) result.errors.push("Hume EVI config setup had failures (see steps for details)");
|
|
@@ -1154,9 +1211,9 @@ async function createWorkspacePromise(options) {
|
|
|
1154
1211
|
if (startDocker) {
|
|
1155
1212
|
progress("Starting Docker containers", "Building and starting services");
|
|
1156
1213
|
if (workspaceConfig.docker?.traefik) {
|
|
1157
|
-
const traefikPath = join(homedir(), ".overdeck", "traefik", "docker-compose.yml");
|
|
1214
|
+
const traefikPath = join$1(homedir(), ".overdeck", "traefik", "docker-compose.yml");
|
|
1158
1215
|
if (existsSync(traefikPath)) try {
|
|
1159
|
-
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") });
|
|
1160
1217
|
result.steps.push("Started Traefik");
|
|
1161
1218
|
} catch (error) {
|
|
1162
1219
|
const msg = error?.message || String(error);
|
|
@@ -1165,18 +1222,18 @@ async function createWorkspacePromise(options) {
|
|
|
1165
1222
|
}
|
|
1166
1223
|
}
|
|
1167
1224
|
const composeLocations = [
|
|
1168
|
-
join(workspacePath, "docker-compose.yml"),
|
|
1169
|
-
join(workspacePath, "docker-compose.yaml"),
|
|
1170
|
-
join(workspacePath, ".devcontainer", "docker-compose.yml"),
|
|
1171
|
-
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")
|
|
1172
1229
|
];
|
|
1173
1230
|
for (const composePath of composeLocations) if (existsSync(composePath)) {
|
|
1174
1231
|
try {
|
|
1175
1232
|
await execAsync$1(`docker compose -f "${composePath}" up -d --build`, {
|
|
1176
|
-
cwd: dirname(composePath),
|
|
1233
|
+
cwd: dirname$1(composePath),
|
|
1177
1234
|
timeout: 3e5
|
|
1178
1235
|
});
|
|
1179
|
-
result.steps.push(`Started containers from ${basename(composePath)}`);
|
|
1236
|
+
result.steps.push(`Started containers from ${basename$1(composePath)}`);
|
|
1180
1237
|
} catch (error) {
|
|
1181
1238
|
result.errors.push(`Failed to start containers: ${error}`);
|
|
1182
1239
|
}
|
|
@@ -1189,7 +1246,7 @@ async function createWorkspacePromise(options) {
|
|
|
1189
1246
|
result.steps.push("Pre-trusted workspace in Claude Code");
|
|
1190
1247
|
} catch {}
|
|
1191
1248
|
try {
|
|
1192
|
-
const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace-
|
|
1249
|
+
const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace-BqFg__wH.js");
|
|
1193
1250
|
const cavemanConfig = loadConfigSync().config.caveman;
|
|
1194
1251
|
const variant = determineCavemanVariant(cavemanConfig);
|
|
1195
1252
|
await Effect.runPromise(injectCavemanSettings(workspacePath, variant));
|
|
@@ -1205,7 +1262,7 @@ async function createWorkspacePromise(options) {
|
|
|
1205
1262
|
result.steps.push(`Overdeck settings copy skipped: ${settingsErr instanceof Error ? settingsErr.message : String(settingsErr)}`);
|
|
1206
1263
|
}
|
|
1207
1264
|
try {
|
|
1208
|
-
const { injectMemoryHookSettings } = await import("./workspace-
|
|
1265
|
+
const { injectMemoryHookSettings } = await import("./workspace-BqFg__wH.js");
|
|
1209
1266
|
await injectMemoryHookSettings(workspacePath);
|
|
1210
1267
|
result.steps.push("Injected memory hooks into .claude/settings.json");
|
|
1211
1268
|
} catch (memoryHookErr) {
|
|
@@ -1229,9 +1286,42 @@ var init_create = __esmMin((() => {
|
|
|
1229
1286
|
execAsync$1 = promisify(exec);
|
|
1230
1287
|
}));
|
|
1231
1288
|
//#endregion
|
|
1232
|
-
//#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
|
+
}));
|
|
1233
1320
|
var init_repos = __esmMin((() => {
|
|
1321
|
+
init_git_hooks();
|
|
1322
|
+
init_projects();
|
|
1234
1323
|
init_worktree_ops();
|
|
1324
|
+
promisify(execFile);
|
|
1235
1325
|
}));
|
|
1236
1326
|
//#endregion
|
|
1237
1327
|
//#region ../../lib/workspace-manager/remove.ts
|
|
@@ -1243,9 +1333,9 @@ async function removeWorkspacePromise(options) {
|
|
|
1243
1333
|
steps: []
|
|
1244
1334
|
};
|
|
1245
1335
|
const workspaceConfig = projectConfig.workspace || getDefaultWorkspaceConfigSync();
|
|
1246
|
-
const workspacesDir = join(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
1336
|
+
const workspacesDir = join$1(projectConfig.path, workspaceConfig.workspaces_dir || "workspaces");
|
|
1247
1337
|
const featureFolder = `feature-${featureName}`;
|
|
1248
|
-
const workspacePath = join(workspacesDir, featureFolder);
|
|
1338
|
+
const workspacePath = join$1(workspacesDir, featureFolder);
|
|
1249
1339
|
if (!existsSync(workspacePath)) {
|
|
1250
1340
|
result.success = false;
|
|
1251
1341
|
result.errors.push(`Workspace not found at ${workspacePath}`);
|
|
@@ -1255,9 +1345,9 @@ async function removeWorkspacePromise(options) {
|
|
|
1255
1345
|
result.steps.push("[DRY RUN] Would remove workspace at: " + workspacePath);
|
|
1256
1346
|
return result;
|
|
1257
1347
|
}
|
|
1258
|
-
const venvPath = join(workspacePath, ".venv");
|
|
1348
|
+
const venvPath = join$1(workspacePath, ".venv");
|
|
1259
1349
|
if (existsSync(venvPath)) try {
|
|
1260
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
1350
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BKOYB616.js");
|
|
1261
1351
|
await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
|
|
1262
1352
|
result.steps.push("Stopped TLDR daemon");
|
|
1263
1353
|
} catch (error) {
|
|
@@ -1266,7 +1356,7 @@ async function removeWorkspacePromise(options) {
|
|
|
1266
1356
|
const dockerResult = await stopWorkspaceDockerPromise(workspacePath, featureName);
|
|
1267
1357
|
result.steps.push(...dockerResult.steps);
|
|
1268
1358
|
if (workspaceConfig.type === "polyrepo" && workspaceConfig.repos) for (const repo of workspaceConfig.repos) {
|
|
1269
|
-
const targetPath = join(workspacePath, repo.name);
|
|
1359
|
+
const targetPath = join$1(workspacePath, repo.name);
|
|
1270
1360
|
if (existsSync(targetPath) && lstatSync(targetPath).isSymbolicLink()) try {
|
|
1271
1361
|
unlinkSync(targetPath);
|
|
1272
1362
|
result.steps.push(`Removed symlink for ${repo.name}`);
|
|
@@ -1274,7 +1364,7 @@ async function removeWorkspacePromise(options) {
|
|
|
1274
1364
|
result.errors.push(`${repo.name}: ${unlinkErr.message}`);
|
|
1275
1365
|
}
|
|
1276
1366
|
else if (existsSync(targetPath)) {
|
|
1277
|
-
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}`);
|
|
1278
1368
|
if (worktreeResult.success) result.steps.push(`Removed worktree for ${repo.name}`);
|
|
1279
1369
|
else result.errors.push(worktreeResult.message);
|
|
1280
1370
|
}
|
|
@@ -1304,7 +1394,7 @@ async function removeWorkspacePromise(options) {
|
|
|
1304
1394
|
result.steps.push(...humeResult.steps);
|
|
1305
1395
|
}
|
|
1306
1396
|
if (workspaceConfig.ports) {
|
|
1307
|
-
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`);
|
|
1308
1398
|
}
|
|
1309
1399
|
const orphanedContainers = await getContainersReferencingWorkspacePathPromise(workspacePath);
|
|
1310
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.`);
|
|
@@ -1377,6 +1467,6 @@ var init_workspace_manager = __esmMin((() => {
|
|
|
1377
1467
|
});
|
|
1378
1468
|
}));
|
|
1379
1469
|
//#endregion
|
|
1380
|
-
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 };
|
|
1381
1471
|
|
|
1382
|
-
//# sourceMappingURL=workspace-manager-
|
|
1472
|
+
//# sourceMappingURL=workspace-manager-CwO-Hek7.js.map
|