@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,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { b as init_agents, i as listRunningAgents } from "./queries-
|
|
4
|
-
import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population
|
|
5
|
-
import { f as init_config, s as getDashboardApiUrlSync } from "./config-
|
|
6
|
-
import { i as loadCloisterConfig, r as init_config$1 } from "./config-
|
|
7
|
-
import { r as getAutoCloseOutCanonicalState, t as pruneStoppedAgentsForIssue } from "./agent-gc-
|
|
8
|
-
import { i as findWorkspacePath,
|
|
9
|
-
import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-
|
|
10
|
-
import { t as closeIssue } from "./close-issue-
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { t as
|
|
1
|
+
import { Ft as markRecordPipelineClosedOutSync, Gr as OVERDECK_HOME, Lt as readIssueRecord, Nt as getProjectConfigFromWorkspacePath, Pt as init_record, Vt as resolveProjectForIssue, Wt as writeCloseOutDodGate, ci as init_paths, gr as init_issue_id, hr as extractPrefixSync, mr as extractNumberSync } from "./config-yaml-CmOPzmBb.js";
|
|
2
|
+
import { C as capturePipelineStage, E as resolvePipelineTelemetryContext, T as init_pipeline, f as init_review_status, l as getReviewStatus } from "./review-status-yljtTd-q.js";
|
|
3
|
+
import { b as init_agents, i as listRunningAgents } from "./queries-DHJm7bTd.js";
|
|
4
|
+
import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population--YUXU999.js";
|
|
5
|
+
import { f as init_config, s as getDashboardApiUrlSync } from "./config-Dr3pW6w6.js";
|
|
6
|
+
import { i as loadCloisterConfig, r as init_config$1 } from "./config-B2IMcBxx.js";
|
|
7
|
+
import { r as getAutoCloseOutCanonicalState, t as pruneStoppedAgentsForIssue } from "./agent-gc-CBULruzm.js";
|
|
8
|
+
import { i as findWorkspacePath, t as archivePlanning } from "./archive-planning-C0lAbNB_.js";
|
|
9
|
+
import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-q67TYYg5.js";
|
|
10
|
+
import { t as closeIssue } from "./close-issue-D5MF5GqF.js";
|
|
11
|
+
import { i as gatherIssueBranchContainment, s as init_pipeline_membership_gather } from "./pipeline-membership-gather-CET40frr.js";
|
|
12
|
+
import { o as init_pull_requests, r as fetchIssuePullRequest, t as fetchCommitCheckRuns } from "./pull-requests-DHWiKxo7.js";
|
|
13
|
+
import { i as canAcceptDodMisses, n as DOD_ROWS, r as acceptFlagFor, t as BRANCH_ABSENT_MERGE_ERROR } from "./dod-Dar-yheg.js";
|
|
14
|
+
import { t as teardownWorkspace } from "./teardown-workspace-l2F4_zim.js";
|
|
14
15
|
import { resolve } from "node:path";
|
|
15
16
|
import { Effect } from "effect";
|
|
16
17
|
import { existsSync } from "fs";
|
|
@@ -27,13 +28,13 @@ init_issue_id();
|
|
|
27
28
|
init_feature_registry_population();
|
|
28
29
|
init_config$1();
|
|
29
30
|
init_types();
|
|
30
|
-
init_archive_planning();
|
|
31
31
|
/** Mechanical Definition-of-Done row checks. */
|
|
32
32
|
init_agents();
|
|
33
33
|
init_config();
|
|
34
34
|
init_review_status();
|
|
35
35
|
init_record();
|
|
36
36
|
init_pull_requests();
|
|
37
|
+
init_pipeline_membership_gather();
|
|
37
38
|
const execFileAsync = promisify(execFile);
|
|
38
39
|
const defaultMergedRowDeps = {
|
|
39
40
|
verifyMerged: async () => ({
|
|
@@ -47,6 +48,18 @@ const defaultMergedRowDeps = {
|
|
|
47
48
|
const response = await fetchIssuePullRequest(ctx.issueId);
|
|
48
49
|
if (response.error) throw new Error(response.error);
|
|
49
50
|
return response.pr ?? {};
|
|
51
|
+
},
|
|
52
|
+
readDurableMerges: async (ctx) => {
|
|
53
|
+
return (await readIssueRecord(resolveProjectForIssue(ctx.issueId) ?? getProjectConfigFromWorkspacePath(ctx.projectPath), ctx.issueId))?.closeOut.merges ?? [];
|
|
54
|
+
},
|
|
55
|
+
readBranchContainment: async (ctx) => {
|
|
56
|
+
const project = resolveProjectForIssue(ctx.issueId) ?? getProjectConfigFromWorkspacePath(ctx.projectPath);
|
|
57
|
+
if (!project) return {
|
|
58
|
+
unmergedRefs: [],
|
|
59
|
+
mergedWorkRefs: [],
|
|
60
|
+
pointerRefs: []
|
|
61
|
+
};
|
|
62
|
+
return gatherIssueBranchContainment(project, ctx.issueId);
|
|
50
63
|
}
|
|
51
64
|
};
|
|
52
65
|
const defaultPostMergeRowDeps = {
|
|
@@ -156,11 +169,13 @@ async function checkVerificationRow(issueId, deps = defaultDeps) {
|
|
|
156
169
|
if (!loaded) return result("verification", "miss", "no review status or journal record found");
|
|
157
170
|
const value = loaded.status.verificationStatus;
|
|
158
171
|
const commit = loaded.status.lastVerifiedCommit;
|
|
159
|
-
const
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
172
|
+
const accepted = value === "passed" || value === "skipped";
|
|
173
|
+
const notes = [];
|
|
174
|
+
if (loaded.source === "journal") notes.push("from pipeline journal");
|
|
175
|
+
if (value === "skipped") notes.push("skipped per issue policy");
|
|
176
|
+
if (accepted && !commit) notes.push("no lastVerifiedCommit recorded");
|
|
177
|
+
const observed = `verificationStatus: ${value ?? "missing"}${commit ? ` at ${commit}` : ""}${notes.length > 0 ? ` (${notes.join("; ")})` : ""}`;
|
|
178
|
+
return result("verification", accepted ? "pass" : "miss", observed);
|
|
164
179
|
}
|
|
165
180
|
async function checkMergedRow(ctx, deps = defaultMergedRowDeps) {
|
|
166
181
|
const verified = await deps.verifyMerged(ctx).catch((error) => ({
|
|
@@ -171,10 +186,19 @@ async function checkMergedRow(ctx, deps = defaultMergedRowDeps) {
|
|
|
171
186
|
}));
|
|
172
187
|
const observed = verified.details?.join("; ") || verified.error || (verified.skipped ? "issue already closed on forge" : "merge not verified");
|
|
173
188
|
const merged = result("merged", verified.success || verified.skipped ? "pass" : "miss", observed);
|
|
174
|
-
|
|
175
|
-
|
|
189
|
+
const branchAbsent = verified.error === BRANCH_ABSENT_MERGE_ERROR;
|
|
190
|
+
let durableMerges = [];
|
|
191
|
+
if (branchAbsent) try {
|
|
192
|
+
durableMerges = await (deps.readDurableMerges ?? defaultMergedRowDeps.readDurableMerges)(ctx);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
195
|
+
merged.observed = `${merged.observed}; durable merge evidence unavailable: ${message}`;
|
|
196
|
+
}
|
|
197
|
+
let pullRequestState;
|
|
198
|
+
if (ctx.github) try {
|
|
176
199
|
const branchName = `feature/${ctx.issueId.toLowerCase()}`;
|
|
177
200
|
const pullRequest = await deps.readPullRequest(ctx, branchName);
|
|
201
|
+
pullRequestState = pullRequest.state;
|
|
178
202
|
merged.mergedAt = pullRequest.mergedAt;
|
|
179
203
|
merged.mergeCommit = typeof pullRequest.mergeCommit === "string" ? pullRequest.mergeCommit : pullRequest.mergeCommit?.oid;
|
|
180
204
|
const number = pullRequest.number ? `PR #${pullRequest.number}` : "PR";
|
|
@@ -185,9 +209,27 @@ async function checkMergedRow(ctx, deps = defaultMergedRowDeps) {
|
|
|
185
209
|
const message = error instanceof Error ? error.message : String(error);
|
|
186
210
|
merged.observed = `${merged.observed}; forge metadata unavailable: ${message}`;
|
|
187
211
|
}
|
|
212
|
+
if (branchAbsent) {
|
|
213
|
+
const forgeMerged = pullRequestState?.toUpperCase() === "MERGED";
|
|
214
|
+
if (durableMerges.length > 0 || forgeMerged) {
|
|
215
|
+
merged.status = "pass";
|
|
216
|
+
if (durableMerges.length > 0) merged.observed = `${merged.observed}; durable close-out record contains ${durableMerges.length} merge artifact(s)`;
|
|
217
|
+
} else merged.observed = `${merged.observed}; no merged forge artifact or durable close-out merge record found`;
|
|
218
|
+
}
|
|
219
|
+
if (merged.status === "miss") try {
|
|
220
|
+
const containment = await (deps.readBranchContainment ?? defaultMergedRowDeps.readBranchContainment)(ctx);
|
|
221
|
+
if (containment.mergedWorkRefs.length > 0 && containment.unmergedRefs.length === 0) {
|
|
222
|
+
merged.status = "pass";
|
|
223
|
+
merged.evidence = "branch-containment";
|
|
224
|
+
merged.observed = `${merged.observed}; branch work contained in default branch with no merged PR — non-PR landing (membership L2-work lens): ${containment.mergedWorkRefs.join(", ")}`;
|
|
225
|
+
}
|
|
226
|
+
} catch (error) {
|
|
227
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
228
|
+
merged.observed = `${merged.observed}; branch containment evidence unavailable: ${message}`;
|
|
229
|
+
}
|
|
188
230
|
return merged;
|
|
189
231
|
}
|
|
190
|
-
async function checkPostMergeRow(ctx, deps = defaultPostMergeRowDeps) {
|
|
232
|
+
async function checkPostMergeRow(ctx, merged, deps = defaultPostMergeRowDeps) {
|
|
191
233
|
try {
|
|
192
234
|
const canonicalState = await deps.readCanonicalState(ctx);
|
|
193
235
|
const mergeStatus = await deps.readMergeStatus(ctx.issueId);
|
|
@@ -195,7 +237,9 @@ async function checkPostMergeRow(ctx, deps = defaultPostMergeRowDeps) {
|
|
|
195
237
|
const runningAgents = (await deps.listAgents()).filter((agent) => agent.issueId.toUpperCase() === issueId && (agent.role === "work" || agent.role === "plan") && (agent.status === "starting" || agent.status === "running"));
|
|
196
238
|
const stateObserved = canonicalState ? `canonical state: ${canonicalState}` : `canonical state unavailable; mergeStatus: ${mergeStatus ?? "missing"}`;
|
|
197
239
|
const agentsObserved = runningAgents.length > 0 ? `running agents: ${runningAgents.map((agent) => agent.id).join(", ")}` : "no running work/planning agents";
|
|
198
|
-
|
|
240
|
+
const lifecycleObserved = canonicalState === "verifying_on_main" || mergeStatus === "merged";
|
|
241
|
+
if (!lifecycleObserved && merged?.evidence === "branch-containment") return result("post-merge", runningAgents.length === 0 ? "pass" : "miss", `non-PR landing (branch-containment evidence) — post-merge lifecycle not applicable; ${agentsObserved}`);
|
|
242
|
+
return result("post-merge", lifecycleObserved && runningAgents.length === 0 ? "pass" : "miss", `${stateObserved}; ${agentsObserved}`);
|
|
199
243
|
} catch (error) {
|
|
200
244
|
return result("post-merge", "miss", `post-merge evidence unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
201
245
|
}
|
|
@@ -212,6 +256,10 @@ async function checkMainVerifyRow(ctx, mergeCommit, deps = defaultMainVerifyRowD
|
|
|
212
256
|
}
|
|
213
257
|
}
|
|
214
258
|
async function checkDeployRow(ctx, merge, deps = defaultDeployRowDeps) {
|
|
259
|
+
if (!merge.mergeCommit) {
|
|
260
|
+
if (merge.mergedRowStatus === "miss") return result("deploy", "skip", "no merge commit resolved because the merged row missed — deploy ancestry depends on row 4; build ancestry unchecked");
|
|
261
|
+
return result("deploy", "miss", "merged row passed without a resolvable merge commit; build ancestry cannot be checked");
|
|
262
|
+
}
|
|
215
263
|
const baseUrl = deps.dashboardUrl().replace(/\/$/, "");
|
|
216
264
|
let health;
|
|
217
265
|
try {
|
|
@@ -224,8 +272,9 @@ async function checkDeployRow(ctx, merge, deps = defaultDeployRowDeps) {
|
|
|
224
272
|
if (resolve(repoRoot) !== resolve(ctx.projectPath)) return result("deploy", "skip", `live dashboard serves ${repoRoot}, not this project — deploy semantics undefined for ${ctx.projectPath}`);
|
|
225
273
|
const buildCommit = typeof health.buildCommit === "string" && health.buildCommit.trim() ? health.buildCommit : void 0;
|
|
226
274
|
if (!buildCommit) return result("deploy", "miss", `dashboard at ${baseUrl} did not report buildCommit; live deployment cannot be proven`);
|
|
227
|
-
if (!merge.mergeCommit) return result("deploy", "miss", "cannot resolve merge commit; live deployment cannot be proven");
|
|
228
275
|
try {
|
|
276
|
+
if (health.buildDirty === true) return result("deploy", "miss", `live build ${buildCommit.slice(0, 8)} was built from a dirty working tree — uncommitted changes may be serving; redeploy canonically with \`pan reload\``);
|
|
277
|
+
if (!await deps.commitContains(repoRoot, buildCommit, "origin/main")) return result("deploy", "miss", `live build commit ${buildCommit.slice(0, 8)} is not an ancestor of origin/main — the server is running a build of local-only commits; redeploy with \`pan reload\``);
|
|
229
278
|
const contains = await deps.commitContains(repoRoot, merge.mergeCommit, buildCommit);
|
|
230
279
|
const observed = `build commit ${buildCommit.slice(0, 8)} ${contains ? "contains" : "does not contain"} merge ${merge.mergeCommit.slice(0, 8)}`;
|
|
231
280
|
return result("deploy", contains ? "pass" : "miss", observed);
|
|
@@ -237,6 +286,8 @@ async function evaluateDodGate(ctx, opts = {}, deps = defaultEvaluateDodGateDeps
|
|
|
237
286
|
const acceptedRows = new Set(opts.acceptedRows ?? []);
|
|
238
287
|
const overridable = new Set(DOD_ROWS.filter((row) => row.overridable).map((row) => row.id));
|
|
239
288
|
for (const id of acceptedRows) if (!overridable.has(id)) throw new TypeError(`DoD row "${id}" cannot be accepted; valid rows: ${[...overridable].join(", ")}`);
|
|
289
|
+
const by = opts.acceptedBy ?? process.env.OVERDECK_AGENT_ID ?? userInfo().username;
|
|
290
|
+
if (acceptedRows.size > 0 && !canAcceptDodMisses(by)) throw new TypeError("The flywheel orchestrator cannot accept missed Definition-of-Done rows; an operator must apply --accept-<row> overrides.");
|
|
240
291
|
const merged = opts.verifyMerged ? await checkMergedRow(ctx, {
|
|
241
292
|
...defaultMergedRowDeps,
|
|
242
293
|
verifyMerged: opts.verifyMerged
|
|
@@ -246,14 +297,14 @@ async function evaluateDodGate(ctx, opts = {}, deps = defaultEvaluateDodGateDeps
|
|
|
246
297
|
deps.tests(ctx.issueId),
|
|
247
298
|
deps.verification(ctx.issueId),
|
|
248
299
|
Promise.resolve(merged),
|
|
249
|
-
deps.postMerge(ctx),
|
|
300
|
+
deps.postMerge(ctx, merged),
|
|
250
301
|
deps.mainVerify(ctx, merged.mergeCommit),
|
|
251
302
|
deps.deploy(ctx, {
|
|
252
303
|
mergedAt: merged.mergedAt,
|
|
253
|
-
mergeCommit: merged.mergeCommit
|
|
304
|
+
mergeCommit: merged.mergeCommit,
|
|
305
|
+
mergedRowStatus: merged.status
|
|
254
306
|
})
|
|
255
307
|
]);
|
|
256
|
-
const by = opts.acceptedBy ?? process.env.OVERDECK_AGENT_ID ?? userInfo().username;
|
|
257
308
|
for (const row of rows) if (row.status === "miss" && acceptedRows.has(row.id)) row.acceptedBy = {
|
|
258
309
|
flag: acceptFlagFor(rowDefinition(row.id)),
|
|
259
310
|
by,
|
|
@@ -277,6 +328,7 @@ async function evaluateDodGate(ctx, opts = {}, deps = defaultEvaluateDodGateDeps
|
|
|
277
328
|
* deepWipe() — Destructive: teardown(deleteBranches) + delete agent state + reset issue
|
|
278
329
|
*/
|
|
279
330
|
init_record();
|
|
331
|
+
init_pipeline();
|
|
280
332
|
const execAsync = promisify$1(exec$1);
|
|
281
333
|
function trackerName(ctx, fallback) {
|
|
282
334
|
const name = ctx.tracker?.name ?? fallback;
|
|
@@ -363,6 +415,17 @@ function closeOut(ctx, opts = {}) {
|
|
|
363
415
|
return Effect.gen(function* () {
|
|
364
416
|
const start = Date.now();
|
|
365
417
|
const allSteps = [];
|
|
418
|
+
const uatEvidenceStep = yield* Effect.promise(async () => {
|
|
419
|
+
try {
|
|
420
|
+
const { healUatPromotionVerification } = await import("./uat-promote-verification-CKB9ZrKC.js");
|
|
421
|
+
const evidence = await healUatPromotionVerification(ctx.issueId);
|
|
422
|
+
if (!evidence) return stepSkipped("dod:uat-promotion-evidence", ["No missing UAT-promotion verification evidence found"]);
|
|
423
|
+
return stepOk("dod:uat-promotion-evidence", [`Recorded verification from ${evidence.generation}`, ...evidence.mergeSha ? [`Promoted to main at ${evidence.mergeSha.slice(0, 9)}`] : []]);
|
|
424
|
+
} catch (err) {
|
|
425
|
+
return stepSkipped("dod:uat-promotion-evidence", [`Evidence recovery unavailable: ${err instanceof Error ? err.message : String(err)}`]);
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
allSteps.push(uatEvidenceStep);
|
|
366
429
|
const dodGate = yield* Effect.promise(() => evaluateDodGate(ctx, {
|
|
367
430
|
acceptedRows: opts.dodAcceptedRows,
|
|
368
431
|
acceptedBy: opts.dodAcceptedBy,
|
|
@@ -392,6 +455,13 @@ function closeOut(ctx, opts = {}) {
|
|
|
392
455
|
allSteps.push(stepFailed("close-out:abort", "Stopped — xBRIEF completion failed, workspace preserved"));
|
|
393
456
|
return buildResult("close-out", ctx.issueId, allSteps, start, dodGate);
|
|
394
457
|
}
|
|
458
|
+
const telemetryContext = yield* Effect.promise(async () => {
|
|
459
|
+
try {
|
|
460
|
+
return await resolvePipelineTelemetryContext(ctx.issueId);
|
|
461
|
+
} catch {
|
|
462
|
+
return null;
|
|
463
|
+
}
|
|
464
|
+
});
|
|
395
465
|
const closeOutConfig = (yield* Effect.promise(() => Effect.runPromise(loadCloisterConfig()))).close_out;
|
|
396
466
|
const teardownSteps = yield* teardownWorkspace(ctx, {
|
|
397
467
|
deleteWorkspace: closeOutConfig?.remove_workspace ?? false,
|
|
@@ -437,7 +507,9 @@ function closeOut(ctx, opts = {}) {
|
|
|
437
507
|
issueId: ctx.issueId,
|
|
438
508
|
status: "archived"
|
|
439
509
|
}));
|
|
440
|
-
|
|
510
|
+
const result = buildResult("close-out", ctx.issueId, allSteps, start, dodGate);
|
|
511
|
+
if (result.success && !markTerminal.skipped) capturePipelineStage("closed_out", telemetryContext);
|
|
512
|
+
return result;
|
|
441
513
|
});
|
|
442
514
|
}
|
|
443
515
|
function markPipelineClosedOutStep(ctx) {
|
|
@@ -542,7 +614,7 @@ function cancelIssueWorkflow(ctx, opts = {}) {
|
|
|
542
614
|
async function completeXBriefStep(ctx) {
|
|
543
615
|
const step = "close-out:vbrief-completed";
|
|
544
616
|
try {
|
|
545
|
-
const { transitionXBriefOnMain } = await import("./lifecycle-io-
|
|
617
|
+
const { transitionXBriefOnMain } = await import("./lifecycle-io-D_zTLvP1.js");
|
|
546
618
|
const result = await Effect.runPromise(transitionXBriefOnMain(ctx.projectPath, ctx.issueId, "completed", "completed", `scope: complete ${ctx.issueId.toUpperCase()} xBRIEF`));
|
|
547
619
|
const details = [result.moved ? "Updated xBRIEF lifecycle to completed" : "xBRIEF lifecycle already completed", result.statusUpdated ? "Updated plan.status to completed" : "plan.status already completed"];
|
|
548
620
|
if (result.committed) details.push("Committed xBRIEF completion on main");
|
|
@@ -556,70 +628,81 @@ async function completeXBriefStep(ctx) {
|
|
|
556
628
|
}
|
|
557
629
|
async function verifyBranchMergedImpl(ctx) {
|
|
558
630
|
const step = "close-out:verify-merged";
|
|
559
|
-
const
|
|
631
|
+
const issueLower = ctx.issueId.toLowerCase();
|
|
632
|
+
const featureBranchName = `feature/${issueLower}`;
|
|
633
|
+
const strikeBranchName = `strike/${issueLower}`;
|
|
560
634
|
try {
|
|
561
635
|
try {
|
|
562
|
-
const { loadReviewStatuses } = await import("./review-status-
|
|
636
|
+
const { loadReviewStatuses } = await import("./review-status-BZH8h-6W.js");
|
|
563
637
|
if (loadReviewStatuses()[ctx.issueId.toUpperCase()]?.mergeStatus === "merged") return stepOk(step, ["Merge specialist confirmed merge completed"]);
|
|
564
638
|
} catch {}
|
|
565
|
-
const
|
|
639
|
+
const featureResult = await verifyConventionBranchMerged(ctx, featureBranchName);
|
|
640
|
+
if (featureResult?.success) return featureResult;
|
|
641
|
+
const strikeResult = await verifyConventionBranchMerged(ctx, strikeBranchName);
|
|
642
|
+
if (strikeResult?.success && !strikeResult.skipped) return stepOk(step, [...strikeResult.details ?? [], `Superseded ${featureBranchName} residual: ${featureResult?.error ?? "Feature branch is absent; positive merge evidence is required"}`]);
|
|
643
|
+
if (featureResult) return featureResult;
|
|
644
|
+
return stepFailed(step, BRANCH_ABSENT_MERGE_ERROR);
|
|
645
|
+
} catch (err) {
|
|
646
|
+
return stepFailed(step, `Could not verify merge: ${err.message}`);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
async function verifyConventionBranchMerged(ctx, branchName) {
|
|
650
|
+
const step = "close-out:verify-merged";
|
|
651
|
+
const { stdout: branchExists } = await execAsync(`git branch --list "${branchName}" 2>/dev/null || true`, {
|
|
652
|
+
cwd: ctx.projectPath,
|
|
653
|
+
encoding: "utf-8"
|
|
654
|
+
});
|
|
655
|
+
if (branchExists.trim()) try {
|
|
656
|
+
await execAsync(`git merge-base --is-ancestor ${branchName} main`, {
|
|
566
657
|
cwd: ctx.projectPath,
|
|
567
658
|
encoding: "utf-8"
|
|
568
659
|
});
|
|
569
|
-
|
|
570
|
-
|
|
660
|
+
const remoteCheck = await verifyRemoteBranchIfPresent(ctx, branchName);
|
|
661
|
+
if (remoteCheck && !remoteCheck.success) return remoteCheck;
|
|
662
|
+
return stepOk(step, ["All commits merged to main", ...remoteCheck?.details ?? []]);
|
|
663
|
+
} catch {
|
|
664
|
+
try {
|
|
665
|
+
const { stdout: codeDiff } = await execAsync(`git diff main...${branchName} -- ':!.planning' ':!docs/prds' ':!.overdeck/prompts' 2>/dev/null || true`, {
|
|
571
666
|
cwd: ctx.projectPath,
|
|
572
667
|
encoding: "utf-8"
|
|
573
668
|
});
|
|
574
|
-
|
|
575
|
-
if (remoteCheck && !remoteCheck.success) return remoteCheck;
|
|
576
|
-
return stepOk(step, ["All commits merged to main", ...remoteCheck?.details ?? []]);
|
|
577
|
-
} catch {
|
|
578
|
-
try {
|
|
579
|
-
const { stdout: codeDiff } = await execAsync(`git diff main...${branchName} -- ':!.planning' ':!docs/prds' ':!.overdeck/prompts' 2>/dev/null || true`, {
|
|
580
|
-
cwd: ctx.projectPath,
|
|
581
|
-
encoding: "utf-8"
|
|
582
|
-
});
|
|
583
|
-
if (!codeDiff.trim()) {
|
|
584
|
-
const remoteCheck = await verifyRemoteBranchIfPresent(ctx, branchName);
|
|
585
|
-
if (remoteCheck && !remoteCheck.success) return remoteCheck;
|
|
586
|
-
return stepOk(step, ["Code changes squash-merged to main (only planning artifacts remain on branch)", ...remoteCheck?.details ?? []]);
|
|
587
|
-
}
|
|
588
|
-
} catch {}
|
|
589
|
-
const githubMerged = await verifySquashMergedPrByBranch(ctx, branchName, branchName);
|
|
590
|
-
if (githubMerged?.success) {
|
|
669
|
+
if (!codeDiff.trim()) {
|
|
591
670
|
const remoteCheck = await verifyRemoteBranchIfPresent(ctx, branchName);
|
|
592
671
|
if (remoteCheck && !remoteCheck.success) return remoteCheck;
|
|
593
|
-
return stepOk(step, [
|
|
672
|
+
return stepOk(step, ["Code changes squash-merged to main (only planning artifacts remain on branch)", ...remoteCheck?.details ?? []]);
|
|
594
673
|
}
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
if (ctx.github) try {
|
|
602
|
-
const { stdout: issueState } = await execAsync(`gh issue view ${ctx.github.number} --repo ${ctx.github.owner}/${ctx.github.repo} --json state --jq '.state'`, {
|
|
603
|
-
cwd: ctx.projectPath,
|
|
604
|
-
encoding: "utf-8"
|
|
605
|
-
});
|
|
606
|
-
if (issueState.trim().toUpperCase() === "CLOSED") return stepSkipped(step, [`Issue already closed on GitHub; ${count} unmerged commit(s) remain on ${branchName}`]);
|
|
607
|
-
} catch {}
|
|
608
|
-
return stepFailed(step, `${count} unmerged commit(s) on ${branchName}. Merge before closing out.`);
|
|
674
|
+
} catch {}
|
|
675
|
+
const githubMerged = await verifySquashMergedPrByBranch(ctx, branchName, branchName);
|
|
676
|
+
if (githubMerged?.success) {
|
|
677
|
+
const remoteCheck = await verifyRemoteBranchIfPresent(ctx, branchName);
|
|
678
|
+
if (remoteCheck && !remoteCheck.success) return remoteCheck;
|
|
679
|
+
return stepOk(step, [...githubMerged.details ?? [], ...remoteCheck?.details ?? []]);
|
|
609
680
|
}
|
|
610
|
-
|
|
681
|
+
if (githubMerged) return githubMerged;
|
|
682
|
+
const { stdout: unmerged } = await execAsync(`git log main..${branchName} --oneline 2>/dev/null || true`, {
|
|
611
683
|
cwd: ctx.projectPath,
|
|
612
684
|
encoding: "utf-8"
|
|
613
685
|
});
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
const
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
686
|
+
const count = unmerged.trim() ? unmerged.trim().split("\n").length : 0;
|
|
687
|
+
if (ctx.github) try {
|
|
688
|
+
const { stdout: issueState } = await execAsync(`gh issue view ${ctx.github.number} --repo ${ctx.github.owner}/${ctx.github.repo} --json state --jq '.state'`, {
|
|
689
|
+
cwd: ctx.projectPath,
|
|
690
|
+
encoding: "utf-8"
|
|
691
|
+
});
|
|
692
|
+
if (issueState.trim().toUpperCase() === "CLOSED") return stepSkipped(step, [`Issue already closed on GitHub; ${count} unmerged commit(s) remain on ${branchName}`]);
|
|
693
|
+
} catch {}
|
|
694
|
+
return stepFailed(step, `${count} unmerged commit(s) on ${branchName}. Merge before closing out.`);
|
|
695
|
+
}
|
|
696
|
+
const { stdout: remoteBranch } = await execAsync(`git ls-remote --heads origin "${branchName}" 2>/dev/null || true`, {
|
|
697
|
+
cwd: ctx.projectPath,
|
|
698
|
+
encoding: "utf-8"
|
|
699
|
+
});
|
|
700
|
+
if (remoteBranch.trim()) {
|
|
701
|
+
await execAsync(`git fetch origin ${branchName}`, { cwd: ctx.projectPath }).catch(() => {});
|
|
702
|
+
const remoteCheck = await verifyRemoteBranchIfPresent(ctx, branchName);
|
|
703
|
+
if (remoteCheck) return remoteCheck;
|
|
622
704
|
}
|
|
705
|
+
return null;
|
|
623
706
|
}
|
|
624
707
|
async function verifyRemoteBranchIfPresent(ctx, branchName) {
|
|
625
708
|
const step = "close-out:verify-merged";
|
|
@@ -783,7 +866,7 @@ async function resetIssueToTodoImpl(ctx) {
|
|
|
783
866
|
*/
|
|
784
867
|
async function resetPostMergeStateForIssue(issueId) {
|
|
785
868
|
try {
|
|
786
|
-
const { resetPostMergeState } = await import("./merge-agent-
|
|
869
|
+
const { resetPostMergeState } = await import("./merge-agent-DrXa1CpW.js");
|
|
787
870
|
resetPostMergeState(issueId);
|
|
788
871
|
resetPostMergeState(issueId.toUpperCase());
|
|
789
872
|
} catch {
|
|
@@ -799,7 +882,7 @@ function clearReviewStatusStep(issueId) {
|
|
|
799
882
|
async function clearReviewStatusStepImpl(issueId) {
|
|
800
883
|
const step = "clear-review-status";
|
|
801
884
|
try {
|
|
802
|
-
const { clearReviewStatus } = await import("./review-status-
|
|
885
|
+
const { clearReviewStatus } = await import("./review-status-BZH8h-6W.js");
|
|
803
886
|
clearReviewStatus(issueId.toUpperCase());
|
|
804
887
|
return stepOk(step, ["Review status cleared"]);
|
|
805
888
|
} catch {
|
|
@@ -866,4 +949,4 @@ async function resetIssueToCanceledImpl(ctx) {
|
|
|
866
949
|
//#endregion
|
|
867
950
|
export { deepWipe as a, closeOut as i, cancelIssueWorkflow as n, resetToTodo as o, close as r, verifyBranchMergedImpl as s, approve as t };
|
|
868
951
|
|
|
869
|
-
//# sourceMappingURL=workflows-
|
|
952
|
+
//# sourceMappingURL=workflows-D0oip4eV.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as injectMemoryHookSettings, n as init_workspace, r as injectCavemanSettings, t as determineCavemanVariant } from "./workspace-
|
|
1
|
+
import { i as injectMemoryHookSettings, n as init_workspace, r as injectCavemanSettings, t as determineCavemanVariant } from "./workspace-C0fH3aek.js";
|
|
2
2
|
init_workspace();
|
|
3
3
|
export { determineCavemanVariant, injectCavemanSettings, injectMemoryHookSettings };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as init_settings, t as areMemoryObservationsEnabled } from "./settings-
|
|
2
|
+
import { Fr as init_errors, Tr as FsError } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { i as init_settings, t as areMemoryObservationsEnabled } from "./settings-Bse1Pdcj.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { existsSync } from "fs";
|
|
6
6
|
import { join } from "path";
|
|
@@ -238,4 +238,4 @@ var init_workspace = __esmMin((() => {
|
|
|
238
238
|
//#endregion
|
|
239
239
|
export { readCavemanVariant as a, injectMemoryHookSettings as i, init_workspace as n, injectCavemanSettings as r, determineCavemanVariant as t };
|
|
240
240
|
|
|
241
|
-
//# sourceMappingURL=workspace-
|
|
241
|
+
//# sourceMappingURL=workspace-C0fH3aek.js.map
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
import { _n as isStatePlanePath, hn as init_state_plane, pn as STATE_PLANE_PATHS } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { a as init_git_utils, o as parseCompositeSnapshot, u as snapshotWorkspaceHeadsPromise } from "./git-utils-ameCgDdy.js";
|
|
4
|
+
import { execFile, spawn } from "child_process";
|
|
5
|
+
import { promisify } from "util";
|
|
6
|
+
//#region ../../lib/pipeline-state-paths.ts
|
|
7
|
+
function isPipelineStatePath(relativePath) {
|
|
8
|
+
return isStatePlanePath(relativePath);
|
|
9
|
+
}
|
|
10
|
+
async function getEffectiveCodeCommit(workspacePath, headCommit = "HEAD") {
|
|
11
|
+
let current = (await gitStdout(workspacePath, ["rev-parse", headCommit])).trim();
|
|
12
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13
|
+
while (current && !seen.has(current)) {
|
|
14
|
+
seen.add(current);
|
|
15
|
+
let parent;
|
|
16
|
+
try {
|
|
17
|
+
parent = (await gitStdout(workspacePath, ["rev-parse", `${current}^`])).trim();
|
|
18
|
+
} catch {
|
|
19
|
+
return current;
|
|
20
|
+
}
|
|
21
|
+
const changedPaths = await changedPathsBetween(workspacePath, parent, current);
|
|
22
|
+
if (changedPaths.length > 0 && changedPaths.every(isPipelineStatePath)) {
|
|
23
|
+
current = parent;
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
return current;
|
|
27
|
+
}
|
|
28
|
+
return current;
|
|
29
|
+
}
|
|
30
|
+
async function haveSameEffectiveCodeCommit(workspacePath, leftCommit, rightCommit) {
|
|
31
|
+
const [leftEffective, rightEffective] = await Promise.all([getEffectiveCodeCommit(workspacePath, leftCommit), getEffectiveCodeCommit(workspacePath, rightCommit)]);
|
|
32
|
+
return leftEffective === rightEffective;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* True when `leftCommit` and `rightCommit` introduce the same non-state-plane
|
|
36
|
+
* contribution relative to their own merge-base with `baseRef`.
|
|
37
|
+
*
|
|
38
|
+
* A rebase onto a newer base rewrites every commit SHA on the branch, so the
|
|
39
|
+
* SHA-based `haveSameEffectiveCodeCommit` reports a change even though the patch
|
|
40
|
+
* the branch applies is byte-for-byte identical. Comparing the merge-base-
|
|
41
|
+
* relative diff by git patch-id — content, not SHA — recognises such a rebase as
|
|
42
|
+
* benign, so a passed review is not needlessly invalidated (PAN-2468). Returns
|
|
43
|
+
* false if either contribution cannot be computed.
|
|
44
|
+
*/
|
|
45
|
+
async function haveSameCodeContribution(workspacePath, leftCommit, rightCommit, baseRef = "origin/main") {
|
|
46
|
+
const [left, right] = await Promise.all([codeContributionPatchId(workspacePath, leftCommit, baseRef), codeContributionPatchId(workspacePath, rightCommit, baseRef)]);
|
|
47
|
+
return left !== null && right !== null && left === right;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* git patch-id of the non-state-plane diff `commit` introduces relative to its
|
|
51
|
+
* merge-base with `baseRef`. Returns a stable sentinel when the contribution has
|
|
52
|
+
* no code changes, or null when it cannot be computed (missing base, git error).
|
|
53
|
+
*/
|
|
54
|
+
async function codeContributionPatchId(workspacePath, commit, baseRef) {
|
|
55
|
+
let base;
|
|
56
|
+
try {
|
|
57
|
+
base = (await gitStdout(workspacePath, [
|
|
58
|
+
"merge-base",
|
|
59
|
+
baseRef,
|
|
60
|
+
commit
|
|
61
|
+
])).trim();
|
|
62
|
+
} catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
if (!base) return null;
|
|
66
|
+
let diff;
|
|
67
|
+
try {
|
|
68
|
+
diff = await gitStdout(workspacePath, [
|
|
69
|
+
"diff",
|
|
70
|
+
`${base}..${commit}`,
|
|
71
|
+
"--",
|
|
72
|
+
".",
|
|
73
|
+
...STATE_PLANE_DIFF_EXCLUDES
|
|
74
|
+
]);
|
|
75
|
+
} catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
if (!diff.trim()) return "no-code-contribution";
|
|
79
|
+
return patchIdOfDiff(workspacePath, diff);
|
|
80
|
+
}
|
|
81
|
+
/** Reduce a unified diff to a stable git patch-id (content hash of the patch). */
|
|
82
|
+
function patchIdOfDiff(workspacePath, diff) {
|
|
83
|
+
return new Promise((resolve) => {
|
|
84
|
+
const child = spawn("git", ["patch-id", "--stable"], { cwd: workspacePath });
|
|
85
|
+
let out = "";
|
|
86
|
+
child.stdout.on("data", (chunk) => out += chunk);
|
|
87
|
+
child.on("error", () => resolve(null));
|
|
88
|
+
child.on("close", () => {
|
|
89
|
+
resolve((out.trim().split(/\s+/)[0] ?? "") || null);
|
|
90
|
+
});
|
|
91
|
+
child.stdin.on("error", () => resolve(null));
|
|
92
|
+
child.stdin.end(diff);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async function changedPathsBetween(workspacePath, baseCommit, headCommit) {
|
|
96
|
+
return (await gitStdout(workspacePath, [
|
|
97
|
+
"diff",
|
|
98
|
+
"--name-only",
|
|
99
|
+
baseCommit,
|
|
100
|
+
headCommit
|
|
101
|
+
])).split("\n").map((line) => line.trim()).filter(Boolean);
|
|
102
|
+
}
|
|
103
|
+
async function gitStdout(workspacePath, args) {
|
|
104
|
+
const result = await execFileAsync$1("git", args, {
|
|
105
|
+
cwd: workspacePath,
|
|
106
|
+
encoding: "utf-8",
|
|
107
|
+
maxBuffer: 64 * 1024 * 1024
|
|
108
|
+
});
|
|
109
|
+
if (typeof result === "string") return result;
|
|
110
|
+
return String(result.stdout ?? "");
|
|
111
|
+
}
|
|
112
|
+
var execFileAsync$1, STATE_PLANE_DIFF_EXCLUDES;
|
|
113
|
+
var init_pipeline_state_paths = __esmMin((() => {
|
|
114
|
+
init_state_plane();
|
|
115
|
+
execFileAsync$1 = promisify(execFile);
|
|
116
|
+
STATE_PLANE_DIFF_EXCLUDES = STATE_PLANE_PATHS.map((path) => `:(exclude)${path.replace(/\/$/, "")}`);
|
|
117
|
+
}));
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region ../../lib/workspace-anchor-drift.ts
|
|
120
|
+
async function haveSameTree(repoPath, leftCommit, rightCommit) {
|
|
121
|
+
const [left, right] = await Promise.all([execFileAsync("git", ["rev-parse", `${leftCommit}^{tree}`], {
|
|
122
|
+
cwd: repoPath,
|
|
123
|
+
encoding: "utf-8"
|
|
124
|
+
}), execFileAsync("git", ["rev-parse", `${rightCommit}^{tree}`], {
|
|
125
|
+
cwd: repoPath,
|
|
126
|
+
encoding: "utf-8"
|
|
127
|
+
})]);
|
|
128
|
+
return left.stdout.trim() === right.stdout.trim();
|
|
129
|
+
}
|
|
130
|
+
async function isBenignMove(repoPath, leftCommit, rightCommit, baseRef, checks) {
|
|
131
|
+
try {
|
|
132
|
+
if (await checks.sameTree(repoPath, leftCommit, rightCommit)) return true;
|
|
133
|
+
} catch {}
|
|
134
|
+
try {
|
|
135
|
+
if (await checks.sameEffectiveCode(repoPath, leftCommit, rightCommit)) return true;
|
|
136
|
+
} catch {}
|
|
137
|
+
try {
|
|
138
|
+
return await checks.sameCodeContribution(repoPath, leftCommit, rightCommit, baseRef);
|
|
139
|
+
} catch {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** Compare a persisted workspace anchor with a fresh producer-issued snapshot. */
|
|
144
|
+
async function evaluateWorkspaceAnchorDrift(issueId, workspacePath, storedAnchor, checks = DEFAULT_CHECKS) {
|
|
145
|
+
const currentAnchor = await snapshotWorkspaceHeadsPromise(issueId, workspacePath);
|
|
146
|
+
if (!currentAnchor) return { kind: "unreadable" };
|
|
147
|
+
if (storedAnchor === currentAnchor) return {
|
|
148
|
+
kind: "current",
|
|
149
|
+
currentAnchor
|
|
150
|
+
};
|
|
151
|
+
const storedHeads = parseCompositeSnapshot(storedAnchor);
|
|
152
|
+
const currentHeads = parseCompositeSnapshot(currentAnchor);
|
|
153
|
+
const storedIsComposite = storedHeads.size > 0;
|
|
154
|
+
if (storedIsComposite !== currentHeads.size > 0) return {
|
|
155
|
+
kind: "drifted",
|
|
156
|
+
currentAnchor
|
|
157
|
+
};
|
|
158
|
+
try {
|
|
159
|
+
const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-CRE6Ykow.js");
|
|
160
|
+
const roots = resolveWorkspaceRepoRootsSync(issueId, workspacePath);
|
|
161
|
+
if (!storedIsComposite) {
|
|
162
|
+
const root = roots[0];
|
|
163
|
+
if (!root) return {
|
|
164
|
+
kind: "drifted",
|
|
165
|
+
currentAnchor
|
|
166
|
+
};
|
|
167
|
+
return await isBenignMove(root.dir, storedAnchor, currentAnchor, `origin/${root.targetBranch}`, checks) ? {
|
|
168
|
+
kind: "benign",
|
|
169
|
+
currentAnchor
|
|
170
|
+
} : {
|
|
171
|
+
kind: "drifted",
|
|
172
|
+
currentAnchor
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
const allRepoKeys = new Set([...storedHeads.keys(), ...currentHeads.keys()]);
|
|
176
|
+
if (storedHeads.size !== currentHeads.size || [...allRepoKeys].some((repoKey) => !storedHeads.has(repoKey) || !currentHeads.has(repoKey))) return {
|
|
177
|
+
kind: "drifted",
|
|
178
|
+
currentAnchor,
|
|
179
|
+
changedRepos: [...allRepoKeys].sort()
|
|
180
|
+
};
|
|
181
|
+
const changedRepos = [...allRepoKeys].filter((repoKey) => storedHeads.get(repoKey) !== currentHeads.get(repoKey)).sort();
|
|
182
|
+
const rootsByKey = new Map(roots.map((root) => [root.repoKey, root]));
|
|
183
|
+
for (const repoKey of changedRepos) {
|
|
184
|
+
const root = rootsByKey.get(repoKey);
|
|
185
|
+
const storedHead = storedHeads.get(repoKey);
|
|
186
|
+
const currentHead = currentHeads.get(repoKey);
|
|
187
|
+
if (!root || !storedHead || !currentHead) return {
|
|
188
|
+
kind: "drifted",
|
|
189
|
+
currentAnchor,
|
|
190
|
+
changedRepos
|
|
191
|
+
};
|
|
192
|
+
if (!await isBenignMove(root.dir, storedHead, currentHead, `origin/${root.targetBranch}`, checks)) return {
|
|
193
|
+
kind: "drifted",
|
|
194
|
+
currentAnchor,
|
|
195
|
+
changedRepos
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
kind: "benign",
|
|
200
|
+
currentAnchor,
|
|
201
|
+
changedRepos
|
|
202
|
+
};
|
|
203
|
+
} catch {
|
|
204
|
+
return {
|
|
205
|
+
kind: "drifted",
|
|
206
|
+
currentAnchor
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
var execFileAsync, DEFAULT_CHECKS;
|
|
211
|
+
var init_workspace_anchor_drift = __esmMin((() => {
|
|
212
|
+
init_git_utils();
|
|
213
|
+
init_pipeline_state_paths();
|
|
214
|
+
execFileAsync = promisify(execFile);
|
|
215
|
+
DEFAULT_CHECKS = {
|
|
216
|
+
sameTree: haveSameTree,
|
|
217
|
+
sameEffectiveCode: haveSameEffectiveCodeCommit,
|
|
218
|
+
sameCodeContribution: haveSameCodeContribution
|
|
219
|
+
};
|
|
220
|
+
}));
|
|
221
|
+
//#endregion
|
|
222
|
+
export { init_workspace_anchor_drift as n, evaluateWorkspaceAnchorDrift as t };
|
|
223
|
+
|
|
224
|
+
//# sourceMappingURL=workspace-anchor-drift-CZKofakh.js.map
|