@overdeck/desktop 0.45.24 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drizzle/overdeck/0000_overdeck_init.sql +36 -1
- package/package.json +1 -1
- package/server/{acceptance-criteria-DDCnXF58.js → acceptance-criteria-10Ur5Dne.js} +2 -2
- package/server/activity-logger-CMthG6Vd.js +3 -0
- package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
- package/server/{advancing-selfheal-BVwW4qRn.js → advancing-selfheal-BNwqxseD.js} +6 -6
- package/server/{agent-gc-CHcnvonI.js → agent-gc-C3h9Or3a.js} +5 -5
- package/server/agent-state-CYXJVG72.js +3 -0
- package/server/agent-state-service-C63p_ftq.js +2 -0
- package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-Ds6OeFvo.js} +15 -9
- package/server/{agents-EbI0zCJl.js → agents-J5mEnekq.js} +23 -16
- package/server/agents-ePFVoZbu.js +3 -0
- package/server/archive-planning-B2XplFzT.js +2 -0
- package/server/{archive-planning-Du25Jtst.js → archive-planning-BwhxeP7C.js} +22 -26
- package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-D1q_vR3V.js} +2 -2
- package/server/{assemble-J2ZZ2C15.js → assemble-Bgwqv-Ro.js} +2 -2
- package/server/auto-spawn-consent-CQ9Bi9q6.js +1141 -0
- package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-n1lzPgN4.js} +3 -3
- package/server/{behavior-B3exJ42O.js → behavior-td6-xhQk.js} +2 -2
- package/server/boot-reconciled-stop-events-C7gGe3oB.js +44 -0
- package/server/bridge-pool-patrol-CYH2OLb5.js +136 -0
- package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DRqZ8lAz.js} +2 -2
- package/server/{build-info-Ie_D0_BT.js → build-info-7yiEpl6u.js} +5 -3
- package/server/{build-info-CZk_TITh.js → build-info-CpG__c63.js} +1 -1
- package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-CkKmB0wZ.js} +1 -1
- package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DBcyNR8w.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-CQB1h765.js → checkpoints-D95apurL.js} +2 -2
- package/server/{checkpoints-BJIs5QIA.js → checkpoints-Wm963lm8.js} +1 -1
- package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-4RPxNkE8.js} +1 -1
- package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-Bjitl9aI.js} +13 -2
- package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CpbpvUQ2.js} +2 -2
- package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-BzkHYDwR.js} +1 -1
- package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-_H9Yrzab.js} +2 -2
- package/server/cli-CjOCSnfj.js +3 -0
- package/server/{cli-RoOx5DUf.js → cli-Cte9ZFGn.js} +9 -9
- package/server/{cliproxy-C8a1vtTU.js → cliproxy-C5fMJ7rY.js} +2 -2
- package/server/{cliproxy-fHfIeiGd.js → cliproxy-DaAbWMjC.js} +1 -1
- package/server/{close-issue-DoOifFIK.js → close-issue-BPh1ARCF.js} +5 -5
- package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-DHRfRMrp.js} +1 -1
- package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-DoOZqGFK.js} +88 -17
- package/server/{codex-BZXGhUVB.js → codex-BzGDW_d3.js} +36 -7
- package/server/{codex-GcHuUF-k.js → codex-o8FJwzmy.js} +1 -1
- package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-Dt-ycU8L.js} +2 -2
- package/server/compaction-continuation-CvXpbZ4w.js +200 -0
- package/server/{config-CKxYiCmX.js → config-Bi3u1VK7.js} +4 -3
- package/server/{config-BZ0sHTju.js → config-BvLe652W.js} +2 -2
- package/server/{config-DzV30TOm.js → config-CL3Gyvja.js} +1 -1
- package/server/{config-yaml-DySPNmKN.js → config-yaml-CxdwhAIA.js} +276 -14
- package/server/conflict-gate-CX80JYYS.js +3 -0
- package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-E4nt7ZeS.js} +60 -14
- package/server/{context-layers-igZ4FI4_.js → context-layers-C_IIysnm.js} +3 -3
- package/server/{context-layers-BrPmE__h.js → context-layers-DAG83UZt.js} +2 -2
- package/server/{control-settings-BQp7_4uD.js → control-settings-CiqGxXnc.js} +56 -19
- package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-BE3CNtHF.js} +1 -1
- package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-D6-yLtqt.js} +8 -8
- package/server/{conversation-service-DPJ71F33.js → conversation-service-DBxoYMDl.js} +10 -8
- package/server/conversation-service-D_TS2b1r.js +3 -0
- package/server/{conversations-CAsJF9kh.js → conversations-BKDVpB-3.js} +1 -1
- package/server/{conversations-6AfUfbwc.js → conversations-D0UEdLtk.js} +4 -4
- package/server/{cost-R-m6Yi-W.js → cost-DS1s0DbG.js} +3 -3
- package/server/{cost-B2ddP6wq.js → cost-DpgYmYqR.js} +12 -2
- package/server/{cost-sync-BsN6ER0n.js → cost-sync-tOCCGnEt.js} +3 -3
- package/server/{dag-B1ucnjDU.js → dag-BtkgLeqY.js} +2 -2
- package/server/{dangerous-git-ops-BXqeWVSf.js → dangerous-git-ops-CFLykHWt.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-BIblC-WX.js +4 -0
- package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-B08gF0mh.js} +3 -3
- package/server/{deacon-CU_cAYSR.js → deacon-pLRLbPvR.js} +3308 -2707
- package/server/deacon-pending-lifecycle-B-Io84AP.js +33 -0
- package/server/deacon-swarm-B1XkIvfr.js +2 -0
- package/server/{deacon-swarm-BXZZ1Z2-.js → deacon-swarm-v5PMun-m.js} +15 -14
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-D8A3msX9.js +13 -0
- package/server/delivery-BX9HR4wQ.js +3 -0
- package/server/{deploy-patrol-AiFoP8dw.js → deploy-patrol-sYgOxLeb.js} +69 -18
- package/server/deploy-queue-VfohaPN_.js +169 -0
- package/server/deploy-queue-gHJBycaF.js +3 -0
- package/server/deploy-window-CFRZ0-kt.js +3 -0
- package/server/{deploy-window-C3F-tihF.js → deploy-window-D4DQb8VP.js} +40 -16
- package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-DiOBDM1c.js} +2 -2
- package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-BUOIlfgD.js} +3 -3
- package/server/dist-B3YPQa5A.js +3 -0
- package/server/{dist-Cb_0uvpS.js → dist-C3A8B8wM.js} +1 -1
- package/server/{dist-src-BSoS7mkd.js → dist-src-C0adpegX.js} +1 -1
- package/server/{docker-DcMTFTUC.js → docker-BJzlkqYB.js} +2 -2
- package/server/docker-Y3PElJb0.js +3 -0
- package/server/dod-DlNtcH6n.js +91 -0
- package/server/durable-review-pipeline-Cibps-Rg.js +20 -0
- package/server/durable-review-pipeline-DP6bIcOY.js +3 -0
- package/server/{ensure-devcontainer-DNi-ono3.js → ensure-devcontainer-BAofzBPv.js} +4 -4
- package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-DMAbWqtQ.js} +1 -1
- package/server/{esm-shims-OSHAYaS1.js → esm-shims-BeObUkaw.js} +1 -1
- package/server/{event-store-EV2cMiXj.js → event-store-5UKzh9Jf.js} +1 -1
- package/server/{event-store-CQL6NeqB.js → event-store-CrHcVC5_.js} +23 -4
- package/server/{events-DTfAe4My.js → events-BNrvchBg.js} +3 -3
- package/server/{events-BTdrdEq8.js → events-CF8QDbuV.js} +1 -1
- package/server/{factory-CFibJuaw.js → factory-Cmm9Hsho.js} +5 -5
- package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population-B6HpNWRy.js} +4 -4
- package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-DJEFx1Pf.js} +2 -2
- package/server/{features-ez2271oH.js → features-D5km80UI.js} +2 -2
- package/server/{feedback-target-CoFDHiM8.js → feedback-target-BJ5ZADsu.js} +1 -1
- package/server/{feedback-target-7mqqwrX6.js → feedback-target-DSxEL6lP.js} +8 -8
- package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-C27Hak8a.js} +5 -5
- package/server/{feedback-writer-D3a22RCd.js → feedback-writer-CoB9Z6aU.js} +1 -1
- package/server/{flywheel-DHrgCphM.js → flywheel-BHx8XuMr.js} +47 -20
- package/server/{flywheel-SVF02Jpq.js → flywheel-DZZdtiOL.js} +1 -1
- package/server/{flywheel-DzGtWnJ1.js → flywheel-f662Q-y2.js} +16 -15
- package/server/flywheel-merge-order-D_xLMbJU.js +462 -0
- package/server/flywheel-merge-order-Dil0LmdN.js +2 -0
- package/server/forge-B5o319qI.js +3 -0
- package/server/forge-BaKGCya6.js +383 -0
- package/server/{from-kNxT0bZC.js → from-B3tZbB55.js} +1 -1
- package/server/fs-lock-Bre3sGoz.js +130 -0
- package/server/{fts-db-CE46vDkZ.js → fts-db-IVc4_M3f.js} +2 -2
- package/server/{fts-operations-CqY6zl-i.js → fts-operations-B9jG8wa3.js} +2 -2
- package/server/{git-utils-CRw2zLPC.js → git-utils-CsvYfJU3.js} +30 -5
- package/server/git-utils-Xg4PFN45.js +3 -0
- package/server/{github-app-ClZ2lk8D.js → github-app-Bmg4R9mv.js} +1 -1
- package/server/{github-app-C3QrAUd0.js → github-app-CmNk0zLU.js} +3 -3
- package/server/{github-client-DfQYVUaw.js → github-client-B6KM9_wA.js} +1 -1
- package/server/{github-client-BnIsSrEN.js → github-client-qazkPrg0.js} +3 -3
- package/server/github-pr-lookup-DAcVeRLK.js +58 -0
- package/server/{harness-binary-DPUi-Pv8.js → harness-binary-BSpiXaLw.js} +2 -2
- package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-BAJu5MX8.js} +4 -4
- package/server/{health-events-BDOHby5Q.js → health-events-2Z6Wa9SM.js} +1 -1
- package/server/{health-events-BBcTYQKU.js → health-events-BwX32k8d.js} +2 -2
- package/server/{hooks-DPVX1rwQ.js → hooks-D1g1jKLI.js} +1 -1
- package/server/{hooks-CKZgXlJb.js → hooks-DbtbimEf.js} +2 -2
- package/server/{hume-Cz8igP9E.js → hume-DXNiu6nQ.js} +2 -2
- package/server/hume-VUCNbTgn.js +3 -0
- package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-CRA1e0jr.js} +1 -1
- package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-Cy-dQzW4.js} +99 -6
- package/server/in-flight-guard-D-sSkADM.js +45 -0
- package/server/{infra-BEqFxlJc.js → infra-BDQDRopn.js} +81 -5
- package/server/{injection-C8aiVJrF.js → injection-6AGnXxlj.js} +7 -7
- package/server/{injection-CPUIqNhI.js → injection-Bl8d_jHZ.js} +1 -1
- package/server/inspect-agent-CUwVmr2h.js +2 -0
- package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-nXdIptyh.js} +26 -25
- package/server/{internal-token-s0-oKybJ.js → internal-token-DzK385vD.js} +2 -2
- package/server/{internal-token-BrcU6qfe.js → internal-token-Ias7N8Kg.js} +1 -1
- package/server/{io-C9kF1wtJ.js → io-B00PBNku.js} +44 -27
- package/server/{issue-closed-CDJk4pIp.js → issue-closed-BehTG1be.js} +8 -8
- package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-Birk-ifu.js} +42 -30
- package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-BqSuQvbn.js} +1 -1
- package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-B2wXiIlw.js} +1 -1
- package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-C6ZduvuY.js} +10 -10
- package/server/{issues-BMmP_77e.js → issues-DQ5-LatB.js} +2 -2
- package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-BDpnGFCl.js} +5 -4
- package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dwnky8FG.js} +3 -3
- package/server/{lifecycle-xmBfK2GJ.js → lifecycle-B3s4sM1G.js} +6 -7
- package/server/{lifecycle-yPd___5E.js → lifecycle-B4Xdb4cY.js} +2 -2
- package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-CzTHEooc.js} +1 -1
- package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-DCo6s6ks.js} +5 -5
- package/server/{linear-client-BsuUvkdA.js → linear-client-9uq7fhiV.js} +3 -3
- package/server/{linear-client-CTskEeT_.js → linear-client-CnbtHiic.js} +1 -1
- package/server/linear-mcp-auth-BxUOzswy.js +280 -0
- package/server/linear-mcp-auth-D46fBCLf.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-CefQNAnq.js → merge-DiW9RdSB.js} +13 -11
- package/server/{merge-agent-4WOWlSYA.js → merge-agent-BLUgRsz3.js} +234 -84
- package/server/{merge-agent-CKkgIBPB.js → merge-agent-DQTXZk8z.js} +1 -1
- package/server/{merge-batch-ClFn2T-y.js → merge-batch-Cp_j9BGk.js} +1 -1
- package/server/merge-completeness-B46KqhtY.js +277 -0
- package/server/merge-completeness-BLbB5-6n.js +3 -0
- package/server/merge-ops-1abz6O_P.js +2 -0
- package/server/merge-rebase-CJJVAJuz.js +2 -0
- package/server/{merge-rebase-BfaTyXsw.js → merge-rebase-DIkBjgwq.js} +3 -3
- package/server/{merge-set-DJ8-UErs.js → merge-set-CBgHfwM0.js} +11 -5
- package/server/merge-set-DeUxFsC3.js +3 -0
- package/server/{merge-B1DiziGU.js → merge-sr8Nrnmi.js} +1 -1
- package/server/merge-sync-CpGmk6Ch.js +3 -0
- package/server/{merge-sync-VPV28g0g.js → merge-sync-kr4vqyjM.js} +409 -153
- package/server/{merge-train-CHopycP0.js → merge-train-Dmrcus12.js} +18 -8
- package/server/{merge-train-deps-D1cOZzy2.js → merge-train-deps-D_uGX91G.js} +21 -15
- package/server/merge-verification-NvaAd8CZ.js +220 -0
- package/server/merged-docker-cleanup-worker-DH_hrGPI.js +3 -0
- package/server/merged-docker-cleanup-worker-Y1R06TEl.js +107 -0
- package/server/{multipart-parser-duPAfSBw.js → multipart-parser-R-oC8dQg.js} +2 -2
- package/server/{no-resume-mode-Nw29vaFb.js → no-resume-mode-BgD0JUmM.js} +1 -1
- package/server/node_modules/.package-lock.json +30 -30
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/@google-cloud/common/package.json +2 -2
- package/server/node_modules/@types/node/README.md +1 -1
- package/server/node_modules/@types/node/crypto.d.ts +1 -1
- package/server/node_modules/@types/node/package.json +2 -2
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +1 -1
- package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/server/node_modules/google-auth-library/package.json +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
- package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
- package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
- package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
- package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
- package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
- package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
- package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
- package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
- package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
- package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
- package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
- package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
- package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
- package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
- package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
- package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
- package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
- package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
- package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
- package/server/node_modules/google-gax/package.json +5 -5
- package/server/node_modules/retry-request/package.json +4 -4
- package/server/node_modules/teeny-request/package.json +5 -5
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/server/node_modules/undici/lib/core/request.js +12 -1
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +236 -116
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
- package/server/node_modules/undici/lib/handler/retry-handler.js +24 -0
- package/server/node_modules/undici/lib/interceptor/cache.js +152 -62
- package/server/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/server/node_modules/undici/lib/util/cache.js +328 -66
- package/server/node_modules/undici/lib/util/date.js +23 -6
- package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
- package/server/node_modules/undici/package.json +1 -1
- package/server/{orphan-proposed-reconciler-BvKkWMJQ.js → orphan-proposed-reconciler-B6vJHxtX.js} +242 -34
- package/server/{orphan-proposed-reconciler-CTSGcK8p.js → orphan-proposed-reconciler-DcgTPPFY.js} +1 -1
- package/server/package-lock.json +31 -31
- package/server/package.json +1 -1
- package/server/{pan-dir-B0c3w0Ya.js → pan-dir-DMzF5wne.js} +25 -11
- package/server/{paths-D-xWGHdh.js → paths-sJBSb7Ul.js} +2 -2
- package/server/pending-lifecycle-claim-DilzGfgk.js +110 -0
- package/server/persistent-logger-H_VjuOu7.js +57 -0
- package/server/{pickup-DUCLWrJY.js → pickup-DWhqzliO.js} +4 -3
- package/server/pipeline-membership-C88VBnhJ.js +3 -0
- package/server/pipeline-membership-D9SBvItj.js +57 -0
- package/server/pipeline-membership-gather-4eR-7Tqy.js +3 -0
- package/server/pipeline-membership-gather-CeVGnNJ2.js +593 -0
- package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-D0ALV6Nw.js} +2 -2
- package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-DT6xLFao.js} +1 -1
- package/server/post-merge-lifecycle-worker-8HIeS_J6.js +50 -0
- package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-9SKt2bEc.js} +2 -2
- package/server/{project-repos-B6GycDh9.js → project-repos-B5pIphKg.js} +7 -3
- package/server/project-repos-DPjOdfPa.js +3 -0
- package/server/projects-_n3Zui6K.js +3 -0
- package/server/{prompts-DxzFXuLl.js → prompts-CgzMBvQF.js} +2 -2
- package/server/{providers-u4Ga0jOr.js → providers-BI1mOBQ4.js} +1 -1
- package/server/{providers-qQAwGQDW.js → providers-BJQSnAAp.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D_pGACYN.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-BO6fe3hH.js} +1 -1
- package/server/public/assets/{dist-ByIuzMQW.js → dist-5zingMiA.js} +3 -3
- package/server/public/assets/{dist-D7zYSEA6.js → dist-CVxhbI2E.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-Bgj4A7kp.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.js → highlighted-body-OFNGDK62-DNPK7_cm.js} +1 -1
- package/server/public/assets/index-DEpY-D1O.js +807 -0
- package/server/public/assets/index-Ddkcz3WT.css +1 -0
- package/server/public/assets/{linear-BBbArIcK.js → linear-BB0jQT16.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BzPfaQJ1.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-DeGIzzpZ.js} +1 -1
- package/server/public/assets/{prod-B8vYiu52.js → prod-XBLvikex.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-BV9SLeWz.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-Dwja0gj8.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DCB4qvfw.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-_lHueOHW.js → pull-requests-7BgLDsIo.js} +19 -10
- package/server/{pull-requests-7N8WKseP.js → pull-requests-Dq0y6IxE.js} +1 -1
- package/server/{queries-CjNIf-Ub.js → queries-C-MUZaIy.js} +824 -192
- package/server/{rally-CyWT_lNO.js → rally-CPysR4T_.js} +3 -3
- package/server/rally-D_VW4bJv.js +3 -0
- package/server/{rally-api-C8e_1JRi.js → rally-api-8Ptlp2os.js} +2 -2
- package/server/{rally-api-ClOSd-Tt.js → rally-api-CgosKdKL.js} +1 -1
- package/server/{rally-client-sgtVqzNU.js → rally-client-CCX0hADj.js} +1 -1
- package/server/{rally-client-lc-nokqr.js → rally-client-iYMHWQD7.js} +5 -5
- package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-4Xg9NGA8.js} +2 -2
- package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-Qf-9LVQc.js} +2 -2
- package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-CMdgaylx.js} +16 -7
- package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-DqcOVmJO.js} +2 -2
- package/server/{reconstruct-cache-C3Ui7ojV.js → reconstruct-cache-CMZJ_Vjq.js} +9 -7
- package/server/record-BTwWhtBb.js +3 -0
- package/server/{record-update-dE1Aw83j.js → record-update-DaOKS7Wb.js} +124 -157
- package/server/record-update-DhI7eySG.js +3 -0
- package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-DDH-02ng.js} +2 -2
- package/server/{release-engine-Cx48W7z8.js → release-engine-B2X9AfFC.js} +5 -5
- package/server/{release-set-CQfuN9-v.js → release-set-G4XKyQ8K.js} +3 -3
- package/server/{remote-C_2hasl7.js → remote-BXarMvqf.js} +3 -3
- package/server/{remote-ChgimyYa.js → remote-CUhyqjXk.js} +3 -3
- package/server/{remote-agents-By1ige5O.js → remote-agents-Bba-MgSA.js} +311 -48
- package/server/{remote-agents-CA3Ihlxj.js → remote-agents-CLZB3Coc.js} +2 -2
- package/server/{remote-completion-fVe9e_3u.js → remote-completion-CwAp79EC.js} +13 -13
- package/server/resume-mOREjlYu.js +3 -0
- package/server/{review-agent-CIGOQYBD.js → review-agent--pOptAEV.js} +65 -50
- package/server/{review-agent-DNboMyW4.js → review-agent-BTCNkq2h.js} +1 -1
- package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-BNmw8dWE.js} +7 -6
- package/server/{review-context-2uj-YQ8J.js → review-context-DFxYOOJW.js} +9 -9
- package/server/{in-flight-guard-CAAkqPLu.js → review-convoy-liveness-BgU_1jJf.js} +3 -44
- package/server/review-status-CGvlA4o_.js +7737 -0
- package/server/review-status-Dma9SFaN.js +3 -0
- package/server/review-status-emit-DURrmGYX.js +50 -0
- package/server/{review-status-enrichment-Dci-ZwEt.js → review-status-enrichment-8NiNXi5W.js} +4 -4
- package/server/review-status-source-BLx_1siH.js +3 -0
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-DIk1JSow.js} +24 -3
- package/server/{review-status-sync-BTOpxtTC.js → review-status-sync-0GxOqeqF.js} +11 -6
- package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-muT-EBp2.js} +1 -1
- package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-HwF6ODFy.js} +1 -1
- package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-xJNdqBnX.js} +65 -11
- package/server/{rollup-FGsKki9R.js → rollup-BQaol5TX.js} +8 -8
- package/server/{rollup-BKQC7jp4.js → rollup-BR4t_wck.js} +1 -1
- package/server/{scanner-CnqEZeDy.js → scanner-C-D2cFdX.js} +8 -7
- package/server/{sequence-io-D909zgeH.js → sequence-io-Bmf1EZM5.js} +4 -4
- package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-CigMyKh2.js} +7 -6
- package/server/server.js +2005 -614
- package/server/{service-CLeAoU6G.js → service-CD0DvFvD.js} +114 -68
- package/server/{session-fork-CHI1XvL9.js → session-fork-B6cQ5eya.js} +2 -2
- package/server/{session-history-BT3IvqhC.js → session-history-3ON_IJjm.js} +7 -55
- package/server/settings-CVmWiJ-r.js +2 -0
- package/server/{settings-C0zgxOGf.js → settings-PilbFZAM.js} +3 -2
- package/server/{settings-BTMvpNFU.js → settings-VN0qOh4U.js} +3 -3
- package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-DXvx77oE.js} +3 -3
- package/server/{shadow-state-7a-524T8.js → shadow-state-BBk_zacw.js} +2 -2
- package/server/{shadow-state-DnDyjujH.js → shadow-state-CZBp7pwq.js} +1 -1
- package/server/{shadow-utils-Db3oroFG.js → shadow-utils-DdZ05AJS.js} +2 -2
- package/server/{ship-log-D9MlVzYU.js → ship-log-7kJfjUX2.js} +1 -1
- package/server/{smart-compaction-CV2ukKND.js → smart-compaction-8fA5k5XN.js} +1 -1
- package/server/{smart-compaction-KCYScAU1.js → smart-compaction-ByhL9cRS.js} +8 -7
- package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-pcF-YeFE.js} +38 -50
- package/server/spawn-planning-session-vLUJoFjy.js +3 -0
- package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-B07XjWD2.js} +1 -1
- package/server/{specialist-context-Bn3dCGS2.js → specialist-context-DJ-zFyL3.js} +5 -5
- package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-aKSxbIgD.js} +2 -2
- package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Dae-n52_.js} +3 -3
- package/server/{specialists-CC4r-c2s.js → specialists-6PWdtWcg.js} +1177 -311
- package/server/{specialists-DM6bWjsi.js → specialists-Bz-wFT7R.js} +1 -1
- package/server/{specialists-jiuuyVkp.js → specialists-DUiExaxb.js} +18 -18
- package/server/{specialists-CShuVGWT.js → specialists-KR3pKulN.js} +1 -1
- package/server/specs--enInima.js +3 -0
- package/server/src-B948bGVR.js +11452 -0
- package/server/{src-CXmtj0im.js → src-rac0Mepv.js} +6 -6
- package/server/{src-CdmnTM2m.js → src-vHy2-oCv.js} +3 -3
- package/server/{stack-health-Bn3o8FBX.js → stack-health-BikqHSjn.js} +1 -1
- package/server/{stack-health-DxSdG9cW.js → stack-health-DqLTiEu4.js} +7 -5
- package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-Cab_Fo_Z.js} +5 -4
- package/server/{staleness-DPm7ClwA.js → staleness-C-a5rBxF.js} +1 -1
- package/server/{staleness-CT34nwr9.js → staleness-CGTZyp6V.js} +1 -1
- package/server/{state-home-Cn_Qu8IX.js → state-home-722Dkx92.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-CybR81Uf.js} +1 -1
- package/server/{state-migrate-BGg2ZaOt.js → state-migrate-2u8wIpoL.js} +4 -4
- package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-CC6q3eqQ.js} +84 -26
- package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-r1TJu68G.js} +1 -1
- package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-CzIyyWFT.js} +3 -3
- package/server/{summary-fork-DpcxN9tf.js → summary-fork-BqgmgPDt.js} +2 -2
- package/server/{summary-fork-D1RAk9rJ.js → summary-fork-Df2WFijM.js} +8 -8
- package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-Cg_KIb3o.js} +1 -1
- package/server/supervisor/{paths-DehGY2Fj.js → paths-BBOnCYlO.js} +10 -2
- package/server/supervisor/pty-supervisor.js +50 -4
- package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-BbjwEUUM.js} +3 -3
- package/server/supervisor-B4anCCSm.js +2 -0
- package/server/{supervisor-wM4ooB5O.js → supervisor-BxqSpjcN.js} +3 -3
- package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-DfFxa9-n.js} +3 -3
- package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-ICLSkhhZ.js} +2 -2
- package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-DRdi_CPa.js} +15 -16
- package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-A_-p-i0I.js} +8 -7
- package/server/{test-verdict-gscuksPv.js → test-verdict-BHgTAwIG.js} +1 -1
- package/server/{test-verdict-bWYBtqBg.js → test-verdict-C4i9aqEP.js} +1 -1
- package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-CvWXBhX1.js} +1 -1
- package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-wvsU6bKv.js} +2 -2
- package/server/{tmux-R7N7y-Mh.js → tmux-CfDHob9M.js} +174 -4
- package/server/{tmux-B6z7h_vZ.js → tmux-Ctk6RV5l.js} +1 -1
- package/server/{token-BK6t8BIT.js → token-DrxwytsZ.js} +2 -2
- package/server/{token-util-DxXu-vd1.js → token-util-B48BlCba.js} +1 -1
- package/server/token-util-D411CAq9.js +3 -0
- package/server/{tracker-config-G6latr8C.js → tracker-config-BcPMElRB.js} +2 -2
- package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-CJ6BHjcD.js} +3 -3
- package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-DZ6nMYMj.js} +1 -1
- package/server/{tunnel-DGdUkGoZ.js → tunnel-Bp-dRHZz.js} +1 -1
- package/server/{tunnel-CDVKJpRv.js → tunnel-DUbUPElU.js} +3 -3
- package/server/{typed-errors-BHhE85Ul.js → typed-errors-CKeoDdU3.js} +1 -1
- package/server/{typed-errors-2BTMxkZq.js → typed-errors-DyjseiB6.js} +1 -1
- package/server/{types-hraoaQIp.js → types-Cm5ASJbq.js} +1 -1
- package/server/{types-5M0lupud.js → types-Di8wdakq.js} +1 -1
- package/server/uat-promote-verification-CoJuh7XO.js +92 -0
- package/server/uat-train-4Q0k06CQ.js +0 -0
- package/server/uat-train-Dewoatps.js +2 -0
- package/server/{validate-IfDGkaVR.js → validate-B0C8p66t.js} +8 -6
- package/server/{validation-Dw1pzDzr.js → validation-B_kIRfNe.js} +4 -4
- package/server/{validation-CC9OPqJZ.js → validation-hVOwQk8T.js} +1 -1
- package/server/{verification-artifact-B3itKTxu.js → verification-artifact-BxlxTiYK.js} +1 -1
- package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-D70AtckY.js} +1 -1
- package/server/{verification-runner-BW4HOKAz.js → verification-runner-Bc3cJvpC.js} +1 -1
- package/server/{verification-runner-CkgX6EtI.js → verification-runner-KZTz6u72.js} +40 -18
- package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-CE_i3Bcw.js} +1 -1
- package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-ByrPAzOy.js} +20 -9
- package/server/{workflows-mbQzh6mQ.js → workflows-D0vP1WrK.js} +252 -99
- package/server/workflows-DtDX08ed.js +2 -0
- package/server/{workspace--8tnhDI0.js → workspace-COWvdibH.js} +1 -1
- package/server/{workspace-BPUws1-_.js → workspace-DQkRPLlQ.js} +3 -3
- package/server/workspace-anchor-drift-DXYIAHzr.js +224 -0
- package/server/workspace-anchor-drift-pwz23TI1.js +3 -0
- package/server/{workspace-config-CIVWZOQr.js → workspace-config-BdZM4PvZ.js} +1 -1
- package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-BPgTrG66.js} +157 -118
- package/server/workspace-manager-C1F3XsnS.js +3 -0
- package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-CdjzAP8x.js} +1 -1
- package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-DkO_iTLo.js} +2 -2
- package/server/{workspaces-Do_9J0LQ.js → workspaces-CRBJikLp.js} +749 -299
- package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
- package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-merge/SKILL.md +7 -5
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
- package/sync-sources/skills/pan-release/SKILL.md +57 -0
- package/sync-sources/skills/pan-reload/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +5 -4
- package/sync-sources/skills/pan-review/SKILL.md +7 -1
- package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
- package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
- package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bc3tzUC8.js +0 -3
- package/server/agent-state-service-D5UGKIJL.js +0 -2
- package/server/agents-wi9NWzs2.js +0 -3
- package/server/archive-planning-BZDgzoEj.js +0 -3
- package/server/cli-B86rejVV.js +0 -3
- package/server/conflict-gate-BhAY7TUd.js +0 -3
- package/server/conversation-service-BLd3MYsG.js +0 -3
- package/server/deacon-kiQrb4ZT.js +0 -4
- package/server/deacon-swarm-C-GwfjJy.js +0 -2
- package/server/deploy-window-DkZraDyj.js +0 -3
- package/server/dist-Bzy0y69j.js +0 -3
- package/server/dod-C6n9RV3G.js +0 -66
- package/server/flywheel-merge-order-UU0tiUld.js +0 -245
- package/server/flywheel-merge-order-UUcsCDb6.js +0 -2
- package/server/forge-CNFnyqps.js +0 -270
- package/server/forge-DXnS_YFH.js +0 -2
- package/server/git-utils-D0_yhCgF.js +0 -3
- package/server/github-pr-lookup-D16NGsSO.js +0 -44
- package/server/hume-ccTf4wTX.js +0 -3
- package/server/inspect-agent-Brtz0URj.js +0 -2
- package/server/label-reconciler-B4iOAjlC.js +0 -113
- package/server/launcher-generator-BBWG_SiS.js +0 -473
- package/server/merge-ops-CR44oU9-.js +0 -2
- package/server/merge-set-bUqbm3yc.js +0 -3
- package/server/merge-sync-BJYeOODr.js +0 -3
- package/server/merge-verification-BkaOqPsw.js +0 -124
- package/server/pipeline-membership-mY3GprlK.js +0 -420
- package/server/project-repos-DXKQsc_m.js +0 -3
- package/server/projects-vjjcmiN8.js +0 -3
- package/server/public/assets/index-CWeMerGO.js +0 -804
- package/server/public/assets/index-CenuJ3Cw.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +0 -1
- package/server/rally-zhhtXuDP.js +0 -3
- package/server/record-CN0pj4_5.js +0 -3
- package/server/record-update-bLJxAXH4.js +0 -3
- package/server/resume-BFv1PGpA.js +0 -3
- package/server/review-status-btEYlaxA.js +0 -3
- package/server/review-status-kZj_KyCk.js +0 -1470
- package/server/settings-66A6uvIA.js +0 -2
- package/server/spawn-planning-session-qUC2VWu3.js +0 -2
- package/server/specs-C8Wsn2XO.js +0 -3
- package/server/src-DtcUOZCq.js +0 -4826
- package/server/supervisor-FTJAIsAK.js +0 -2
- package/server/token-util-DuPuNriz.js +0 -3
- package/server/tracker-utils-B4ylXZQK.js +0 -3
- package/server/uat-train-B05BWkp-.js +0 -2
- package/server/uat-train-DDSrSoV1.js +0 -2152
- package/server/workflows-BQu4RFQ-.js +0 -2
- package/server/workspace-manager-CWT55qeI.js +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveExecutable, o as resolveHarnessBinary, r as init_harness_binary } from "./harness-binary-
|
|
1
|
+
import { a as resolveExecutable, o as resolveHarnessBinary, r as init_harness_binary } from "./harness-binary-BSpiXaLw.js";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
|
@@ -247,4 +247,4 @@ async function checkSystemPrerequisites(probe = defaultProbe, resolver = default
|
|
|
247
247
|
//#endregion
|
|
248
248
|
export { checkSystemPrerequisites, collectSetupDiagnostics };
|
|
249
249
|
|
|
250
|
-
//# sourceMappingURL=system-prerequisites-
|
|
250
|
+
//# sourceMappingURL=system-prerequisites-ICLSkhhZ.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { D as killSession, H as sessionExists, M as listSessionNames, w as init_tmux } from "./tmux-
|
|
3
|
-
import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-
|
|
4
|
-
import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-
|
|
5
|
-
import { a as pidsWithCwdUnder } from "./agent-gc-
|
|
6
|
-
import { i as findWorkspacePath,
|
|
7
|
-
import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-
|
|
1
|
+
import { Ir as AGENTS_DIR, li as init_paths } from "./config-yaml-CxdwhAIA.js";
|
|
2
|
+
import { D as killSession, H as sessionExists, M as listSessionNames, w as init_tmux } from "./tmux-CfDHob9M.js";
|
|
3
|
+
import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-BPgTrG66.js";
|
|
4
|
+
import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-BUOIlfgD.js";
|
|
5
|
+
import { a as pidsWithCwdUnder } from "./agent-gc-C3h9Or3a.js";
|
|
6
|
+
import { i as findWorkspacePath, r as findAllWorkspacePaths } from "./archive-planning-BwhxeP7C.js";
|
|
7
|
+
import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-Di8wdakq.js";
|
|
8
8
|
import { Effect } from "effect";
|
|
9
9
|
import { existsSync } from "fs";
|
|
10
10
|
import { basename, join } from "path";
|
|
@@ -26,7 +26,6 @@ import { promisify } from "util";
|
|
|
26
26
|
init_paths();
|
|
27
27
|
init_tmux();
|
|
28
28
|
init_types();
|
|
29
|
-
init_archive_planning();
|
|
30
29
|
init_workspace_manager();
|
|
31
30
|
init_devcontainer_renderer();
|
|
32
31
|
const execAsync = promisify(exec);
|
|
@@ -84,7 +83,7 @@ async function stopTldrDaemonImpl(workspacePath) {
|
|
|
84
83
|
const venvPath = join(workspacePath, ".venv");
|
|
85
84
|
if (!existsSync(venvPath)) return stepSkipped(step, ["No .venv found"]);
|
|
86
85
|
try {
|
|
87
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
86
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CvWXBhX1.js");
|
|
88
87
|
await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
|
|
89
88
|
return stepOk(step, ["Stopped TLDR daemon"]);
|
|
90
89
|
} catch {
|
|
@@ -103,7 +102,7 @@ function stopDocker(workspacePath, issueLower) {
|
|
|
103
102
|
async function stopDockerImpl(workspacePath, issueLower) {
|
|
104
103
|
const step = "teardown:docker";
|
|
105
104
|
try {
|
|
106
|
-
const { stopWorkspaceDocker } = await import("./workspace-manager-
|
|
105
|
+
const { stopWorkspaceDocker } = await import("./workspace-manager-C1F3XsnS.js");
|
|
107
106
|
await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
|
|
108
107
|
return stepOk(step, ["Stopped Docker containers"]);
|
|
109
108
|
} catch {
|
|
@@ -407,7 +406,7 @@ function clearShadowState(issueId) {
|
|
|
407
406
|
async function clearShadowStateImpl(issueId) {
|
|
408
407
|
const step = "teardown:shadow-state";
|
|
409
408
|
try {
|
|
410
|
-
const { removeShadowState } = await import("./shadow-state-
|
|
409
|
+
const { removeShadowState } = await import("./shadow-state-CZBp7pwq.js");
|
|
411
410
|
if (removeShadowState(issueId).success) return stepOk(step, [`Cleared shadow state for ${issueId}`]);
|
|
412
411
|
return stepSkipped(step, ["No shadow state found"]);
|
|
413
412
|
} catch {
|
|
@@ -457,7 +456,7 @@ function buildPlaceholders(ctx, opts, workspacePath) {
|
|
|
457
456
|
function removeTunnelConfig(tunnelConfig, placeholders) {
|
|
458
457
|
return Effect.tryPromise({
|
|
459
458
|
try: async () => {
|
|
460
|
-
const { removeTunnelIngress } = await import("./tunnel-
|
|
459
|
+
const { removeTunnelIngress } = await import("./tunnel-Bp-dRHZz.js");
|
|
461
460
|
return stepOk("teardown:tunnel", (await Effect.runPromise(removeTunnelIngress(tunnelConfig, placeholders))).steps || ["Removed tunnel ingress"]);
|
|
462
461
|
},
|
|
463
462
|
catch: (err) => err
|
|
@@ -469,7 +468,7 @@ function removeTunnelConfig(tunnelConfig, placeholders) {
|
|
|
469
468
|
function removeHumeEviConfig(humeConfig, placeholders) {
|
|
470
469
|
return Effect.tryPromise({
|
|
471
470
|
try: async () => {
|
|
472
|
-
const { deleteHumeConfig } = await import("./hume-
|
|
471
|
+
const { deleteHumeConfig } = await import("./hume-VUCNbTgn.js");
|
|
473
472
|
return stepOk("teardown:hume", (await Effect.runPromise(deleteHumeConfig(humeConfig, placeholders))).steps || ["Removed Hume EVI config"]);
|
|
474
473
|
},
|
|
475
474
|
catch: (err) => err
|
|
@@ -514,7 +513,7 @@ function pruneSpecialistRegistry(issueId) {
|
|
|
514
513
|
return Effect.tryPromise({
|
|
515
514
|
try: async () => {
|
|
516
515
|
const step = "teardown:specialist-registry";
|
|
517
|
-
const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-
|
|
516
|
+
const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-Bz-wFT7R.js");
|
|
518
517
|
const removed = pruneSpecialistRegistryEntriesForIssue(issueId);
|
|
519
518
|
return removed > 0 ? stepOk(step, [`Pruned ${removed} specialist registry entr${removed === 1 ? "y" : "ies"} for ${issueId}`]) : stepSkipped(step, [`No specialist registry entries for ${issueId}`]);
|
|
520
519
|
},
|
|
@@ -525,7 +524,7 @@ function pruneCheckpointRefs(projectPath, issueLower) {
|
|
|
525
524
|
return Effect.tryPromise({
|
|
526
525
|
try: async () => {
|
|
527
526
|
const step = "teardown:checkpoint-refs";
|
|
528
|
-
const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-
|
|
527
|
+
const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-CkKmB0wZ.js");
|
|
529
528
|
const agentIds = [
|
|
530
529
|
`agent-${issueLower}`,
|
|
531
530
|
`planning-${issueLower}`,
|
|
@@ -539,4 +538,4 @@ function pruneCheckpointRefs(projectPath, issueLower) {
|
|
|
539
538
|
//#endregion
|
|
540
539
|
export { teardownWorkspace as t };
|
|
541
540
|
|
|
542
|
-
//# sourceMappingURL=teardown-workspace-
|
|
541
|
+
//# sourceMappingURL=teardown-workspace-DRdi_CPa.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { b as init_agents,
|
|
4
|
-
import { n as
|
|
5
|
-
import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-
|
|
1
|
+
import { Gn as init_projects, ar as resolveProjectFromIssueSync } from "./config-yaml-CxdwhAIA.js";
|
|
2
|
+
import { C as setReviewStatusSync, p as init_review_status } from "./review-status-CGvlA4o_.js";
|
|
3
|
+
import { b as init_agents, dt as spawnRun } from "./queries-C-MUZaIy.js";
|
|
4
|
+
import { n as init_merge_verification, r as shouldSkipDispatchAsMerged } from "./merge-verification-NvaAd8CZ.js";
|
|
5
|
+
import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-C4i9aqEP.js";
|
|
6
6
|
import { Data, Effect } from "effect";
|
|
7
7
|
//#region ../../lib/cloister/test-agent-queue.ts
|
|
8
8
|
/**
|
|
@@ -98,7 +98,8 @@ const dispatchTestAgentAndNotify = (issueId, workspace, branch, notifyAgent) =>
|
|
|
98
98
|
const spawnResult = yield* Effect.tryPromise({
|
|
99
99
|
try: () => spawnRun(issueId, "test", {
|
|
100
100
|
workspace,
|
|
101
|
-
prompt
|
|
101
|
+
prompt,
|
|
102
|
+
startedBy: "test-agent-queue"
|
|
102
103
|
}),
|
|
103
104
|
catch: (cause) => {
|
|
104
105
|
return new TestDispatchError({
|
|
@@ -163,4 +164,4 @@ const dispatchTestAgentAndNotify = (issueId, workspace, branch, notifyAgent) =>
|
|
|
163
164
|
//#endregion
|
|
164
165
|
export { buildTestRolePrompt, dispatchTestAgentAndNotify };
|
|
165
166
|
|
|
166
|
-
//# sourceMappingURL=test-agent-queue-
|
|
167
|
+
//# sourceMappingURL=test-agent-queue-A_-p-i0I.js.map
|
|
@@ -102,4 +102,4 @@ var init_test_verdict = __esmMin((() => {}));
|
|
|
102
102
|
//#endregion
|
|
103
103
|
export { testVerdictArtifactPath as a, readTestVerdictArtifact as i, decideUnsignaledTestAction as n, init_test_verdict as r, clearTestVerdictArtifact as t };
|
|
104
104
|
|
|
105
|
-
//# sourceMappingURL=test-verdict-
|
|
105
|
+
//# sourceMappingURL=test-verdict-C4i9aqEP.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Fr as init_errors } from "./config-yaml-CxdwhAIA.js";
|
|
3
3
|
import "effect";
|
|
4
4
|
import { existsSync, readFileSync, statSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -221,4 +221,4 @@ var init_tldr_daemon = __esmMin((() => {
|
|
|
221
221
|
//#endregion
|
|
222
222
|
export { getTldrDaemonServiceSync as n, init_tldr_daemon as r, TldrDaemonService as t };
|
|
223
223
|
|
|
224
|
-
//# sourceMappingURL=tldr-daemon-
|
|
224
|
+
//# sourceMappingURL=tldr-daemon-wvsU6bKv.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Fr as init_errors, Mr as TmuxError, ci as getOverdeckHome, f as loadConfigSync, li as init_paths, t as init_config_yaml } from "./config-yaml-CxdwhAIA.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -164,6 +164,174 @@ var init_tmux_process_tree = __esmMin((() => {
|
|
|
164
164
|
]);
|
|
165
165
|
}));
|
|
166
166
|
//#endregion
|
|
167
|
+
//#region ../../lib/pane-choice-menu.ts
|
|
168
|
+
function cleanLine(line) {
|
|
169
|
+
return line.replace(ANSI_PATTERN, "").replace(/[\x00-\x1f\x7f]/g, "").replace(/\s+$/g, "");
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* PAN-3068 shape — key/action pairs separated by "·". Every segment must open
|
|
173
|
+
* with a key name, so real post-answer output never qualifies.
|
|
174
|
+
*/
|
|
175
|
+
function looksLikeHarnessFooterHint(line) {
|
|
176
|
+
const segments = line.split("·").map((s) => s.trim()).filter(Boolean);
|
|
177
|
+
if (segments.length === 0) return false;
|
|
178
|
+
return segments.every((segment) => /^(?:esc(?:ape)?|tab|enter|return|space|backspace|shift\+\S+|ctrl\+\S+|alt\+\S+|\?)\b/i.test(segment) || /^press\s+\S+/i.test(segment));
|
|
179
|
+
}
|
|
180
|
+
/** "1. Yes / 2. Yes, and allow… / 3. No" — owned by the permission-menu path. */
|
|
181
|
+
function looksLikePermissionOptions(options) {
|
|
182
|
+
if (options.length !== 3) return false;
|
|
183
|
+
return /^yes$/i.test(options[0].label) && /^yes,?\s*(?:and\s*)?(?:allow|don't ask|always)/i.test(options[1].label) && /^no\b/i.test(options[2].label);
|
|
184
|
+
}
|
|
185
|
+
function parseOptionLine(line) {
|
|
186
|
+
const match = OPTION_LINE.exec(line);
|
|
187
|
+
if (!match) return null;
|
|
188
|
+
const number = Number(match[2]);
|
|
189
|
+
if (!Number.isInteger(number) || number < 1 || number > MAX_OPTIONS) return null;
|
|
190
|
+
const rawLabel = match[3].trim();
|
|
191
|
+
if (rawLabel.length === 0 || rawLabel.length > MAX_LABEL_CHARS) return null;
|
|
192
|
+
return {
|
|
193
|
+
cursor: Boolean(match[1]),
|
|
194
|
+
number,
|
|
195
|
+
rawLabel
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Parse the last numbered-choice menu in the pane, or null when the pane is
|
|
200
|
+
* not currently blocked on one. See the module header for the conservative
|
|
201
|
+
* acceptance rules.
|
|
202
|
+
*
|
|
203
|
+
* `mode: 'guard'` keeps the menus card rendering excludes — permission prompts
|
|
204
|
+
* and multi-selects. A caller that only wants to know "is this pane blocked on
|
|
205
|
+
* a menu?" must see those too; see `paneHasBlockingChoiceMenu`.
|
|
206
|
+
*/
|
|
207
|
+
function parsePaneChoiceMenu(paneText, opts = {}) {
|
|
208
|
+
const mode = opts.mode ?? "card";
|
|
209
|
+
if (!paneText) return null;
|
|
210
|
+
const lines = paneText.split("\n").map(cleanLine);
|
|
211
|
+
let end = lines.length - 1;
|
|
212
|
+
while (end >= 0 && lines[end].trim() === "") end -= 1;
|
|
213
|
+
if (end < 0) return null;
|
|
214
|
+
let lastOption = -1;
|
|
215
|
+
for (let i = end; i >= 0; i -= 1) {
|
|
216
|
+
if (parseOptionLine(lines[i])) {
|
|
217
|
+
lastOption = i;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
if (end - i > MAX_TRAILING_LINES + MAX_OPTIONS) break;
|
|
221
|
+
}
|
|
222
|
+
if (lastOption < 0) return null;
|
|
223
|
+
const optionLines = [];
|
|
224
|
+
let firstOption = lastOption;
|
|
225
|
+
for (let i = lastOption; i >= 0; i -= 1) {
|
|
226
|
+
const parsed = parseOptionLine(lines[i]);
|
|
227
|
+
if (!parsed) break;
|
|
228
|
+
optionLines.unshift(parsed);
|
|
229
|
+
firstOption = i;
|
|
230
|
+
}
|
|
231
|
+
if (optionLines.length < 2 || optionLines.length > MAX_OPTIONS) return null;
|
|
232
|
+
for (let i = 0; i < optionLines.length; i += 1) if (optionLines[i].number !== i + 1) return null;
|
|
233
|
+
const cursorRows = optionLines.map((opt, index) => opt.cursor ? index : -1).filter((index) => index >= 0);
|
|
234
|
+
if (cursorRows.length > 1) return null;
|
|
235
|
+
const trailing = lines.slice(lastOption + 1).filter((line) => line.trim() !== "");
|
|
236
|
+
if (trailing.length > MAX_TRAILING_LINES) return null;
|
|
237
|
+
let footerHint = null;
|
|
238
|
+
for (const line of trailing) {
|
|
239
|
+
if (BARE_PROMPT_LINE.test(line)) return null;
|
|
240
|
+
if (SEPARATOR_LINE.test(line)) continue;
|
|
241
|
+
if (looksLikeHarnessFooterHint(line.trim())) {
|
|
242
|
+
if (footerHint === null) footerHint = line.trim();
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
const options = optionLines.map((opt) => {
|
|
248
|
+
const recommended = RECOMMENDED_SUFFIX.test(opt.rawLabel);
|
|
249
|
+
return {
|
|
250
|
+
number: opt.number,
|
|
251
|
+
label: recommended ? opt.rawLabel.replace(RECOMMENDED_SUFFIX, "") : opt.rawLabel,
|
|
252
|
+
recommended
|
|
253
|
+
};
|
|
254
|
+
});
|
|
255
|
+
if (mode === "card") {
|
|
256
|
+
if (looksLikePermissionOptions(options)) return null;
|
|
257
|
+
if (footerHint && /space\s+to\s+(?:select|toggle)/i.test(footerHint)) return null;
|
|
258
|
+
}
|
|
259
|
+
const contextLines = [];
|
|
260
|
+
let paragraphs = 0;
|
|
261
|
+
let i = firstOption - 1;
|
|
262
|
+
while (i >= 0 && lines[i].trim() === "") i -= 1;
|
|
263
|
+
for (; i >= 0 && contextLines.length < MAX_CONTEXT_LINES; i -= 1) {
|
|
264
|
+
const line = lines[i];
|
|
265
|
+
if (SEPARATOR_LINE.test(line) || BARE_PROMPT_LINE.test(line)) break;
|
|
266
|
+
if (parseOptionLine(line)) break;
|
|
267
|
+
if (line.trim() === "") {
|
|
268
|
+
if (paragraphs >= 2) break;
|
|
269
|
+
let j = i - 1;
|
|
270
|
+
while (j >= 0 && lines[j].trim() === "") j -= 1;
|
|
271
|
+
if (j < 0 || SEPARATOR_LINE.test(lines[j]) || BARE_PROMPT_LINE.test(lines[j]) || parseOptionLine(lines[j])) break;
|
|
272
|
+
i = j + 1;
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
if (lines[i + 1] === void 0 || lines[i + 1].trim() === "") paragraphs += 1;
|
|
276
|
+
contextLines.unshift(line.trim());
|
|
277
|
+
}
|
|
278
|
+
const hasCursor = cursorRows.length === 1;
|
|
279
|
+
if (!hasCursor && footerHint === null) return null;
|
|
280
|
+
const confidence = hasCursor && footerHint !== null ? "high" : "low";
|
|
281
|
+
return {
|
|
282
|
+
title: contextLines[0] ?? options[0].label,
|
|
283
|
+
contextLines,
|
|
284
|
+
options,
|
|
285
|
+
selectedIndex: hasCursor ? cursorRows[0] : 0,
|
|
286
|
+
footerHint,
|
|
287
|
+
confidence
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* True when the pane is blocked on ANY numbered menu, including the permission
|
|
292
|
+
* and multi-select shapes card rendering skips.
|
|
293
|
+
*
|
|
294
|
+
* Callers that would otherwise press Enter with nothing verified in the
|
|
295
|
+
* composer MUST consult this first: a bare Enter confirms the menu's
|
|
296
|
+
* highlighted row, which answers a question nobody asked. The session-resume
|
|
297
|
+
* gate defaults to "Resume from summary", so a stray Enter there discards the
|
|
298
|
+
* operator's full session (PAN-3212).
|
|
299
|
+
*/
|
|
300
|
+
function paneHasBlockingChoiceMenu(paneText) {
|
|
301
|
+
return parsePaneChoiceMenu(paneText, { mode: "guard" }) !== null;
|
|
302
|
+
}
|
|
303
|
+
/** Stable identity for patrol dedupe — same menu re-parsed must not re-surface. */
|
|
304
|
+
function paneChoiceMenuSignature(menu) {
|
|
305
|
+
return `${menu.title}::${menu.options.map((o) => `${o.number}:${o.label}`).join("|")}`;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Literal tmux keystrokes answering the menu with `selectedIndex`: arrow the
|
|
309
|
+
* cursor from its current row to the target, then confirm. Claude Code menus
|
|
310
|
+
* move the ❯ cursor with ↑/↓ and confirm with Enter; number keys are not
|
|
311
|
+
* guaranteed across harness versions, so arrows are the universal path.
|
|
312
|
+
*/
|
|
313
|
+
function buildChoiceKeystrokes(menu, selectedIndex) {
|
|
314
|
+
const clamped = Math.max(0, Math.min(selectedIndex, menu.options.length - 1));
|
|
315
|
+
const from = menu.selectedIndex;
|
|
316
|
+
const keys = [];
|
|
317
|
+
for (let i = from; i < clamped; i += 1) keys.push("Down");
|
|
318
|
+
for (let i = from; i > clamped; i -= 1) keys.push("Up");
|
|
319
|
+
keys.push("Enter");
|
|
320
|
+
return keys;
|
|
321
|
+
}
|
|
322
|
+
var ANSI_PATTERN, OPTION_LINE, SEPARATOR_LINE, BARE_PROMPT_LINE, MAX_TRAILING_LINES, MAX_CONTEXT_LINES, MAX_OPTIONS, MAX_LABEL_CHARS, RECOMMENDED_SUFFIX;
|
|
323
|
+
var init_pane_choice_menu = __esmMin((() => {
|
|
324
|
+
ANSI_PATTERN = /\x1b\[[0-9;?]*[ -/]*[@-~]/g;
|
|
325
|
+
OPTION_LINE = /^\s*(❯|›)?\s*(\d{1,2})[.)]\s+(\S.*)$/;
|
|
326
|
+
SEPARATOR_LINE = /^\s*[─━═]{6,}\s*$/;
|
|
327
|
+
BARE_PROMPT_LINE = /^\s*(❯|›)\s*$/;
|
|
328
|
+
MAX_TRAILING_LINES = 6;
|
|
329
|
+
MAX_CONTEXT_LINES = 8;
|
|
330
|
+
MAX_OPTIONS = 9;
|
|
331
|
+
MAX_LABEL_CHARS = 100;
|
|
332
|
+
RECOMMENDED_SUFFIX = /\s*\((recommended)\)\s*$/i;
|
|
333
|
+
}));
|
|
334
|
+
//#endregion
|
|
167
335
|
//#region ../../lib/tmux.ts
|
|
168
336
|
function validateSessionName(name) {
|
|
169
337
|
if (!VALID_SESSION_NAME_RE.test(name)) throw new Error(`Invalid tmux session name: ${name}`);
|
|
@@ -881,6 +1049,7 @@ var init_tmux = __esmMin((() => {
|
|
|
881
1049
|
init_errors();
|
|
882
1050
|
init_ui_theme();
|
|
883
1051
|
init_tmux_process_tree();
|
|
1052
|
+
init_pane_choice_menu();
|
|
884
1053
|
execFileAsync = promisify(execFile);
|
|
885
1054
|
VALID_SESSION_NAME_RE = /^[a-zA-Z0-9._-]+$/;
|
|
886
1055
|
DEFAULT_TMUX_WINDOW_COLS = 200;
|
|
@@ -1198,7 +1367,8 @@ var init_tmux = __esmMin((() => {
|
|
|
1198
1367
|
bufferName
|
|
1199
1368
|
], { encoding: "utf-8" }).catch(() => {});
|
|
1200
1369
|
if (!pasteVerified) {
|
|
1201
|
-
const snapshot = await capturePaneText(sessionName,
|
|
1370
|
+
const snapshot = await capturePaneText(sessionName, 90);
|
|
1371
|
+
if (paneHasBlockingChoiceMenu(snapshot)) throw new MessageDeliveryFailed(`Delivery to ${sessionName} aborted: the pane is blocked on a choice menu, so the paste never reached the composer and Enter would answer that menu`, sessionName, snapshot);
|
|
1202
1372
|
console.warn(`[tmux] Paste verification failed for ${sessionName} after ${PASTE_MAX_ATTEMPTS} attempts × ${VERIFY_TIMEOUT_MS}ms. Sending Enter anyway to avoid orphaned input. Snapshot:\n${snapshot.slice(0, 500)}`);
|
|
1203
1373
|
}
|
|
1204
1374
|
await tmuxExecAsync([
|
|
@@ -1250,6 +1420,6 @@ var init_tmux = __esmMin((() => {
|
|
|
1250
1420
|
getAgentSessions = () => listSessions().pipe(Effect.map((sessions) => sessions.filter((s) => s.name.startsWith("agent-"))));
|
|
1251
1421
|
}));
|
|
1252
1422
|
//#endregion
|
|
1253
|
-
export {
|
|
1423
|
+
export { colorFgBgForTheme as $, listPaneValues as A, sendKeysAsync as B, getWindowDimensions as C, killSession as D, isPaneDead as E, parseTmuxPaneRecords as F, tmuxExecAsync as G, sessionExists as H, querySessionSync as I, init_pane_choice_menu as J, validateSessionName as K, resizeWindow as L, listSessionNames as M, listSessions as N, killSessionSync as O, listSessionsSync as P, paneTreeHasHarnessProcess as Q, sendEscapeKeyAsync as R, getTmuxConfigMode as S, isHarnessProcessAlive as T, sessionExistsSync as U, sendRawKeystroke as V, setOption as W, paneHasBlockingChoiceMenu as X, paneChoiceMenuSignature as Y, parsePaneChoiceMenu as Z, getAgentSessions as _, capturePaneSync as a, buildChildEnvWithoutTmuxSync as at, getTmuxBaseArgs as b, createSessionSync as c, ensureManagedTmuxContextOnce as d, getUiThemeSync as et, ensureOverdeckTmuxServerAsync as f, findManagedServerPidSync as g, exactSession as h, capturePane as i, buildChildEnvSync as it, listPaneValuesSync as j, listAllPaneRecords as k, deliveryVerifyLine as l, exactPaneTarget as m, buildTmuxArgs as n, setUiTheme as nt, capturePaneText as o, init_child_env as ot, ensureOverdeckTmuxServerSync as p, buildChoiceKeystrokes as q, buildTmuxCommandString as r, BLANKED_PROVIDER_ENV as rt, createSession as s, MessageDeliveryFailed as t, init_ui_theme as tt, detectTerminalApiErrorSync as u, getManagedTmuxConfigPath as v, init_tmux as w, getTmuxCommand as x, getManagedTmuxSocketName as y, sendKeys as z };
|
|
1254
1424
|
|
|
1255
|
-
//# sourceMappingURL=tmux-
|
|
1425
|
+
//# sourceMappingURL=tmux-CfDHob9M.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { D as killSession, E as isPaneDead, H as sessionExists, M as listSessionNames, k as listAllPaneRecords, w as init_tmux } from "./tmux-
|
|
1
|
+
import { D as killSession, E as isPaneDead, H as sessionExists, M as listSessionNames, k as listAllPaneRecords, w as init_tmux } from "./tmux-CfDHob9M.js";
|
|
2
2
|
init_tmux();
|
|
3
3
|
export { isPaneDead, killSession, listAllPaneRecords, listSessionNames, sessionExists };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { r as require_token_error, t as require_token_util } from "./token-util-
|
|
2
|
+
import { r as require_token_error, t as require_token_util } from "./token-util-B48BlCba.js";
|
|
3
3
|
//#region ../../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token.js
|
|
4
4
|
var require_token = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -54,4 +54,4 @@ var require_token = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
54
54
|
export default require_token();
|
|
55
55
|
export {};
|
|
56
56
|
|
|
57
|
-
//# sourceMappingURL=token-
|
|
57
|
+
//# sourceMappingURL=token-DrxwytsZ.js.map
|
|
@@ -432,4 +432,4 @@ var require_token_util = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
432
432
|
//#endregion
|
|
433
433
|
export { require_auth_errors as n, require_token_error as r, require_token_util as t };
|
|
434
434
|
|
|
435
|
-
//# sourceMappingURL=token-util-
|
|
435
|
+
//# sourceMappingURL=token-util-B48BlCba.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Gn as init_projects, In as getIssuePrefix, Zn as loadProjectsConfigSync, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-CxdwhAIA.js";
|
|
3
3
|
import { existsSync } from "fs";
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { homedir } from "os";
|
|
@@ -142,4 +142,4 @@ var init_tracker_config = __esmMin((() => {
|
|
|
142
142
|
//#endregion
|
|
143
143
|
export { init_tracker_config as a, initTrackerConfigCache as i, getLinearApiKey as n, validateRallyConfig as o, getRallyConfig as r, getGitHubConfig as t };
|
|
144
144
|
|
|
145
|
-
//# sourceMappingURL=tracker-config-
|
|
145
|
+
//# sourceMappingURL=tracker-config-BcPMElRB.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Fr as init_errors, Gn as init_projects, In as getIssuePrefix, Zn as loadProjectsConfigSync, gr as init_issue_id, hr as extractPrefixSync, mr as extractNumberSync, vr as parseIssueIdSync } from "./config-yaml-CxdwhAIA.js";
|
|
3
3
|
import "effect";
|
|
4
4
|
import { existsSync, readFileSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -118,6 +118,6 @@ var init_tracker_utils = __esmMin((() => {
|
|
|
118
118
|
init_errors();
|
|
119
119
|
}));
|
|
120
120
|
//#endregion
|
|
121
|
-
export {
|
|
121
|
+
export { resolveGitHubIssueSync as n, resolveTrackerTypeSync as r, init_tracker_utils as t };
|
|
122
122
|
|
|
123
|
-
//# sourceMappingURL=tracker-utils-
|
|
123
|
+
//# sourceMappingURL=tracker-utils-CJ6BHjcD.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-
|
|
2
|
+
import { Fr as init_errors, Nr as TrackerError } from "./config-yaml-CxdwhAIA.js";
|
|
3
|
+
import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-BdZM4PvZ.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { readFileSync } from "fs";
|
|
6
6
|
import { resolve } from "path";
|
|
@@ -217,4 +217,4 @@ var init_tunnel = __esmMin((() => {
|
|
|
217
217
|
//#endregion
|
|
218
218
|
export { init_tunnel as n, removeTunnelIngress as r, addTunnelIngress as t };
|
|
219
219
|
|
|
220
|
-
//# sourceMappingURL=tunnel-
|
|
220
|
+
//# sourceMappingURL=tunnel-DUbUPElU.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as RateLimited, c as TrackerNotConfigured, d as init_typed_errors, i as PlanEmpty, l as WorkspaceCreateError, n as AgentStartError, o as TasksNotInitialized, r as IssueNotFound, s as TrackerApiError, t as AgentAlreadyRunning, u as WorkspaceNotFound } from "./typed-errors-
|
|
1
|
+
import { a as RateLimited, c as TrackerNotConfigured, d as init_typed_errors, i as PlanEmpty, l as WorkspaceCreateError, n as AgentStartError, o as TasksNotInitialized, r as IssueNotFound, s as TrackerApiError, t as AgentAlreadyRunning, u as WorkspaceNotFound } from "./typed-errors-DyjseiB6.js";
|
|
2
2
|
init_typed_errors();
|
|
3
3
|
export { AgentAlreadyRunning, AgentStartError, IssueNotFound, PlanEmpty, RateLimited, TasksNotInitialized, TrackerApiError, TrackerNotConfigured, WorkspaceCreateError, WorkspaceNotFound };
|
|
@@ -23,4 +23,4 @@ var init_typed_errors = __esmMin((() => {
|
|
|
23
23
|
//#endregion
|
|
24
24
|
export { RateLimited as a, TrackerNotConfigured as c, init_typed_errors as d, PlanEmpty as i, WorkspaceCreateError as l, AgentStartError as n, TasksNotInitialized as o, IssueNotFound as r, TrackerApiError as s, AgentAlreadyRunning as t, WorkspaceNotFound as u };
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=typed-errors-
|
|
26
|
+
//# sourceMappingURL=typed-errors-DyjseiB6.js.map
|
|
@@ -36,4 +36,4 @@ var init_types = __esmMin((() => {
|
|
|
36
36
|
//#endregion
|
|
37
37
|
export { PAN_DIRNAME as a, PAN_SESSIONS_FILENAME as c, WORKSPACE_RUNTIME_DIRNAME as d, asPanSpecDocument as f, PAN_CONTINUE_FILENAME as i, PAN_SPECS_DIRNAME as l, isPanSpecStatus as m, PAN_CONTEXT_FILENAME as n, PAN_DRAFTS_DIRNAME as o, init_types as p, PAN_CONTINUES_DIRNAME as r, PAN_FEEDBACK_DIRNAME as s, LEGACY_WORKSPACE_RUNTIME_DIRNAME as t, PAN_SPEC_FILENAME as u };
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=types-
|
|
39
|
+
//# sourceMappingURL=types-Cm5ASJbq.js.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Gn as init_projects, ar as resolveProjectFromIssueSync } from "./config-yaml-CxdwhAIA.js";
|
|
2
|
+
import { C as setReviewStatusSync, d as getReviewStatusSync, p as init_review_status } from "./review-status-CGvlA4o_.js";
|
|
3
|
+
import { A as listUatGenerationsSync, c as init_merge_sync } from "./merge-sync-kr4vqyjM.js";
|
|
4
|
+
import { a as init_git_utils, c as rehydrateHeadAnchor } from "./git-utils-CsvYfJU3.js";
|
|
5
|
+
import { execFile } from "node:child_process";
|
|
6
|
+
import { promisify } from "node:util";
|
|
7
|
+
//#region ../../lib/cloister/uat-promote-verification.ts
|
|
8
|
+
init_git_utils();
|
|
9
|
+
init_merge_sync();
|
|
10
|
+
init_projects();
|
|
11
|
+
init_review_status();
|
|
12
|
+
const execFileAsync = promisify(execFile);
|
|
13
|
+
/** Build the verification verdict recorded when an operator promotes a tested UAT batch. */
|
|
14
|
+
function buildUatPromotionStamp(current, member, evidence) {
|
|
15
|
+
if (current?.verificationStatus === "passed" || current?.verificationStatus === "skipped") return {};
|
|
16
|
+
const shortSha = evidence.mergeSha?.slice(0, 9);
|
|
17
|
+
const promotedAt = shortSha ? ` promoted to main at ${shortSha}` : " promoted to main";
|
|
18
|
+
return {
|
|
19
|
+
verificationStatus: "passed",
|
|
20
|
+
verificationNotes: `uat-promotion: operator UAT of batch ${evidence.generationName}${promotedAt} (PAN-3114)`,
|
|
21
|
+
...member.headSha ? { lastVerifiedCommit: rehydrateHeadAnchor(member.headSha) } : {}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** Record UAT-promotion verification verdicts through the review-status write door. */
|
|
25
|
+
function recordUatPromotionVerdicts(gen, mergeSha) {
|
|
26
|
+
const stampedIssueIds = [];
|
|
27
|
+
for (const member of gen.members) {
|
|
28
|
+
const current = getReviewStatusSync(member.issueId);
|
|
29
|
+
const stamp = buildUatPromotionStamp(current, member, {
|
|
30
|
+
generationName: gen.name,
|
|
31
|
+
mergeSha
|
|
32
|
+
});
|
|
33
|
+
if (Object.keys(stamp).length === 0) continue;
|
|
34
|
+
setReviewStatusSync(member.issueId, stamp, current ?? void 0);
|
|
35
|
+
stampedIssueIds.push(member.issueId);
|
|
36
|
+
console.log(`✓ Recorded UAT-promotion verification verdict for ${member.issueId} (${gen.name} at ${mergeSha.slice(0, 9)})`);
|
|
37
|
+
}
|
|
38
|
+
return stampedIssueIds;
|
|
39
|
+
}
|
|
40
|
+
async function findUatPromotionMergeSha(projectRoot, generationName) {
|
|
41
|
+
try {
|
|
42
|
+
const { stdout } = await execFileAsync("git", [
|
|
43
|
+
"log",
|
|
44
|
+
"--fixed-strings",
|
|
45
|
+
`--grep=Merge UAT batch ${generationName}`,
|
|
46
|
+
"--format=%H",
|
|
47
|
+
"-1",
|
|
48
|
+
"origin/main"
|
|
49
|
+
], {
|
|
50
|
+
cwd: projectRoot,
|
|
51
|
+
encoding: "utf-8",
|
|
52
|
+
timeout: 1e4
|
|
53
|
+
});
|
|
54
|
+
return stdout.trim() || void 0;
|
|
55
|
+
} catch {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const DEFAULT_HEAL_DEPS = {
|
|
60
|
+
resolveProject: resolveProjectFromIssueSync,
|
|
61
|
+
listGenerations: listUatGenerationsSync,
|
|
62
|
+
getReviewStatus: getReviewStatusSync,
|
|
63
|
+
setReviewStatus: setReviewStatusSync,
|
|
64
|
+
findMergeSha: findUatPromotionMergeSha
|
|
65
|
+
};
|
|
66
|
+
/** Restore discarded UAT-promotion evidence for a member of a previously promoted batch. */
|
|
67
|
+
async function healUatPromotionVerification(issueId, deps = DEFAULT_HEAL_DEPS) {
|
|
68
|
+
const project = deps.resolveProject(issueId);
|
|
69
|
+
if (!project) return null;
|
|
70
|
+
const generation = deps.listGenerations({
|
|
71
|
+
projectRoot: project.projectPath,
|
|
72
|
+
statuses: ["promoted"]
|
|
73
|
+
}).filter((candidate) => candidate.members.some((member) => member.issueId === issueId)).sort((left, right) => right.updatedAt.localeCompare(left.updatedAt))[0];
|
|
74
|
+
if (!generation) return null;
|
|
75
|
+
const member = generation.members.find((candidate) => candidate.issueId === issueId);
|
|
76
|
+
const current = deps.getReviewStatus(issueId);
|
|
77
|
+
if (current?.verificationStatus === "passed" || current?.verificationStatus === "skipped") return null;
|
|
78
|
+
const mergeSha = await deps.findMergeSha(project.projectPath, generation.name).catch(() => void 0);
|
|
79
|
+
const stamp = buildUatPromotionStamp(current, member, {
|
|
80
|
+
generationName: generation.name,
|
|
81
|
+
mergeSha
|
|
82
|
+
});
|
|
83
|
+
deps.setReviewStatus(issueId, stamp, current ?? void 0);
|
|
84
|
+
return {
|
|
85
|
+
generation: generation.name,
|
|
86
|
+
...mergeSha ? { mergeSha } : {}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { buildUatPromotionStamp, healUatPromotionVerification, recordUatPromotionVerdicts };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=uat-promote-verification-CoJuh7XO.js.map
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as postUatGenerationStackPayload, c as runUatTrainReconcileAllProjects, i as postUatGenerationPromotePayload, l as startUatTrainReconciler, n as getUatCandidatePayload, o as resolveUatProjectRoot, r as getUatGenerationsPayload, s as runUatTrainReconcile, t as canStartUatTrainReconciler, u as stopUatTrainReconciler } from "./uat-train-4Q0k06CQ.js";
|
|
2
|
+
export { canStartUatTrainReconciler, getUatCandidatePayload, getUatGenerationsPayload, postUatGenerationPromotePayload, postUatGenerationStackPayload, resolveUatProjectRoot, runUatTrainReconcile, runUatTrainReconcileAllProjects, startUatTrainReconciler, stopUatTrainReconciler };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-
|
|
2
|
-
import { H as liveOrderIssueLookup, V as listBooks } from "./flywheel-
|
|
1
|
+
import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-0GxOqeqF.js";
|
|
2
|
+
import { H as liveOrderIssueLookup, V as listBooks } from "./flywheel-BHx8XuMr.js";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
5
5
|
//#region ../../lib/cloister/merge-blockers.ts
|
|
6
6
|
init_review_status_sync();
|
|
7
7
|
/**
|
|
8
|
-
* PRs that passed review but cannot merge for a
|
|
9
|
-
*
|
|
8
|
+
* PRs that passed review but cannot merge for a native gate reason (PAN-1620):
|
|
9
|
+
* merge conflicts, failing checks, a not-mergeable state, or a sibling repo stranded
|
|
10
|
+
* with unmerged commits and no merged review artifact.
|
|
10
11
|
*
|
|
11
12
|
* Reads `review_status` directly from SQLite — NO HTTP — so it works inside a
|
|
12
13
|
* network-sandboxed harness (e.g. codex's bwrap sandbox) where a `curl` to the
|
|
@@ -17,7 +18,8 @@ init_review_status_sync();
|
|
|
17
18
|
const MERGE_BLOCKER_TYPES = new Set([
|
|
18
19
|
"merge_conflict",
|
|
19
20
|
"failing_checks",
|
|
20
|
-
"not_mergeable"
|
|
21
|
+
"not_mergeable",
|
|
22
|
+
"unmerged_sibling_repo"
|
|
21
23
|
]);
|
|
22
24
|
function getMergeBlockersPayload() {
|
|
23
25
|
const statuses = getAllReviewStatusesFromDb();
|
|
@@ -174,4 +176,4 @@ function validateBookForStart(stateRoot, book, options = {}) {
|
|
|
174
176
|
//#endregion
|
|
175
177
|
export { getMergeBlockersPayload as i, hasOrderIssuePrd as n, validateBookForStart as r, createOrderPrdLookup as t };
|
|
176
178
|
|
|
177
|
-
//# sourceMappingURL=validate-
|
|
179
|
+
//# sourceMappingURL=validate-B0C8p66t.js.map
|