@overdeck/desktop 0.45.24 → 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 +32 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DDCnXF58.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-BVwW4qRn.js → advancing-selfheal-De1L-Sb4.js} +6 -6
- package/server/{agent-gc-CHcnvonI.js → agent-gc-CBULruzm.js} +5 -5
- package/server/agent-state-VQk8fY9F.js +3 -0
- package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-BlnSkRFA.js} +5 -5
- package/server/{agent-state-service-D5UGKIJL.js → agent-state-service-hZpxIw1E.js} +1 -1
- package/server/agents-BKKkxKgK.js +3 -0
- package/server/{agents-EbI0zCJl.js → agents-C5rWYhb6.js} +4 -4
- package/server/archive-planning-0FJ6Xd3b.js +2 -0
- package/server/{archive-planning-Du25Jtst.js → archive-planning-C0lAbNB_.js} +16 -24
- package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
- package/server/{assemble-J2ZZ2C15.js → assemble-DnffNpOo.js} +2 -2
- package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
- package/server/{behavior-B3exJ42O.js → behavior-CfIg6pKp.js} +2 -2
- package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
- package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DHmCSLar.js} +2 -2
- package/server/{build-info-CZk_TITh.js → build-info-BP160gU7.js} +1 -1
- package/server/{build-info-Ie_D0_BT.js → build-info-CuFfxZxp.js} +5 -3
- package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DEWD82qK.js} +2 -2
- package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-CQB1h765.js → checkpoints-CZvbtLnr.js} +2 -2
- package/server/{checkpoints-BJIs5QIA.js → checkpoints-DMTgXuLG.js} +1 -1
- package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-CN-xo-do.js} +1 -1
- package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
- package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CN0cSCPp.js} +2 -2
- package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
- package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-Dabi9slj.js} +1 -1
- package/server/cli-DmXETsw-.js +3 -0
- package/server/{cli-RoOx5DUf.js → cli-oCWYA1pE.js} +9 -9
- package/server/{cliproxy-C8a1vtTU.js → cliproxy-C8mB3KuB.js} +2 -2
- package/server/{cliproxy-fHfIeiGd.js → cliproxy-PGwTX_o8.js} +1 -1
- package/server/{close-issue-DoOifFIK.js → close-issue-D5MF5GqF.js} +5 -5
- package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
- package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-Cltx86x5.js} +37 -16
- package/server/{codex-GcHuUF-k.js → codex-BdEsUFWh.js} +1 -1
- package/server/{codex-BZXGhUVB.js → codex-Drlf5Xhf.js} +36 -7
- package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-DpB89Vqa.js} +2 -2
- package/server/compaction-continuation-K2AxQX4H.js +200 -0
- package/server/{config-CKxYiCmX.js → config-B2IMcBxx.js} +4 -3
- package/server/{config-DzV30TOm.js → config-DV-grfQc.js} +1 -1
- package/server/{config-BZ0sHTju.js → config-Dr3pW6w6.js} +2 -2
- package/server/{config-yaml-DySPNmKN.js → config-yaml-CmOPzmBb.js} +268 -14
- package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-B9cN3SBi.js} +4 -4
- package/server/{conflict-gate-BhAY7TUd.js → conflict-gate-Dh754uyA.js} +1 -1
- package/server/{context-layers-BrPmE__h.js → context-layers-D6LZo3l1.js} +2 -2
- package/server/{context-layers-igZ4FI4_.js → context-layers-dR5YxHYB.js} +3 -3
- package/server/{control-settings-BQp7_4uD.js → control-settings-C7DUehE1.js} +49 -19
- package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-BoqdDXWF.js} +8 -8
- package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
- package/server/{conversation-service-DPJ71F33.js → conversation-service-5aCnq1zR.js} +8 -7
- package/server/conversation-service-BCxl4f8Z.js +3 -0
- package/server/{conversations-6AfUfbwc.js → conversations-BUpYsOZg.js} +4 -4
- package/server/{conversations-CAsJF9kh.js → conversations-C34dyIb9.js} +1 -1
- package/server/{cost-B2ddP6wq.js → cost-Bgcub5kW.js} +12 -2
- package/server/{cost-R-m6Yi-W.js → cost-CvxRrucd.js} +3 -3
- package/server/{cost-sync-BsN6ER0n.js → cost-sync-Dv3LUaNW.js} +3 -3
- package/server/{dag-B1ucnjDU.js → dag-ombYYt4s.js} +2 -2
- package/server/{dangerous-git-ops-BXqeWVSf.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-CU_cAYSR.js → deacon-hi9KLPLT.js} +2933 -2704
- package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-BNBebzeL.js} +3 -3
- package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
- package/server/{deacon-swarm-BXZZ1Z2-.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-AiFoP8dw.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-C3F-tihF.js → deploy-window-rpqpWqHA.js} +40 -16
- package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-CC46Ig8q.js} +2 -2
- package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-68CSCRnu.js} +3 -3
- package/server/{dist-Cb_0uvpS.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-DcMTFTUC.js → docker-Dam7mbIB.js} +2 -2
- package/server/{dod-C6n9RV3G.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-DNi-ono3.js → ensure-devcontainer-B057YA81.js} +4 -4
- package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-C98V8yW-.js} +1 -1
- package/server/{esm-shims-OSHAYaS1.js → esm-shims-Br9BPdkR.js} +1 -1
- package/server/{event-store-EV2cMiXj.js → event-store-ELqkVOn0.js} +1 -1
- package/server/{event-store-CQL6NeqB.js → event-store-zY5MJHgF.js} +23 -4
- package/server/{events-BTdrdEq8.js → events-D6pyqhzM.js} +1 -1
- package/server/{events-DTfAe4My.js → events-D9PR1IC0.js} +3 -3
- package/server/{factory-CFibJuaw.js → factory-CRoOpGsF.js} +5 -5
- package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population--YUXU999.js} +4 -4
- package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-BORBTo0y.js} +2 -2
- package/server/{features-ez2271oH.js → features--nFkJY8v.js} +2 -2
- package/server/{feedback-target-CoFDHiM8.js → feedback-target-C0ZzyHvU.js} +1 -1
- package/server/{feedback-target-7mqqwrX6.js → feedback-target-Dt9BsapX.js} +8 -8
- package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-BG0RUZiu.js} +5 -5
- package/server/{feedback-writer-D3a22RCd.js → feedback-writer-D1fm-5Z8.js} +1 -1
- package/server/{flywheel-SVF02Jpq.js → flywheel-BekukH4i.js} +1 -1
- package/server/{flywheel-DHrgCphM.js → flywheel-BiT3odRb.js} +23 -15
- package/server/{flywheel-DzGtWnJ1.js → flywheel-CLVB55Be.js} +16 -15
- 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-kNxT0bZC.js → from-D_4_dk7i.js} +1 -1
- package/server/{fts-db-CE46vDkZ.js → fts-db-BeOomFa-.js} +2 -2
- package/server/{fts-operations-CqY6zl-i.js → fts-operations-BdewJ_g9.js} +2 -2
- package/server/git-utils-CI6cwyyC.js +3 -0
- package/server/{git-utils-CRw2zLPC.js → git-utils-ameCgDdy.js} +30 -5
- package/server/{github-app-C3QrAUd0.js → github-app-CQ1Lo6LA.js} +3 -3
- package/server/{github-app-ClZ2lk8D.js → github-app-DtAsvwzK.js} +1 -1
- package/server/{github-client-BnIsSrEN.js → github-client-BfyDxuRN.js} +2 -2
- package/server/{github-client-DfQYVUaw.js → github-client-Cj0yl_07.js} +1 -1
- package/server/github-pr-lookup-BDq6Wznz.js +58 -0
- package/server/{harness-binary-DPUi-Pv8.js → harness-binary-DqkftwTb.js} +2 -2
- package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-CqMqM1Mb.js} +4 -4
- package/server/{health-events-BBcTYQKU.js → health-events-CazRxJUS.js} +2 -2
- package/server/{health-events-BDOHby5Q.js → health-events-_xfTaOUs.js} +1 -1
- package/server/{hooks-CKZgXlJb.js → hooks-BO3QT1sn.js} +2 -2
- package/server/{hooks-DPVX1rwQ.js → hooks-BnJsxlSq.js} +1 -1
- package/server/{hume-Cz8igP9E.js → hume-CDYJxqx-.js} +2 -2
- package/server/hume-Dq--7rOQ.js +3 -0
- package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-BYqERdkE.js} +1 -1
- package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
- package/server/in-flight-guard-Bq3epG58.js +45 -0
- package/server/{infra-BEqFxlJc.js → infra-BjuxvjdS.js} +70 -5
- package/server/{injection-CPUIqNhI.js → injection-DZxlV2al.js} +1 -1
- package/server/{injection-C8aiVJrF.js → injection-UCf8EsjX.js} +7 -7
- package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-6kylZnrm.js} +26 -25
- package/server/inspect-agent-BVwDrVrz.js +2 -0
- package/server/{internal-token-s0-oKybJ.js → internal-token-DvMTQSOS.js} +2 -2
- package/server/{internal-token-BrcU6qfe.js → internal-token-M9omeXM1.js} +1 -1
- package/server/{io-C9kF1wtJ.js → io-VHvc0Ssp.js} +43 -26
- package/server/{issue-closed-CDJk4pIp.js → issue-closed-B6KJkmHZ.js} +7 -7
- package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-9gk3fnXN.js} +1 -1
- package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
- package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-DmCh7EHj.js} +10 -10
- package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-PMx8F1jr.js} +1 -1
- package/server/{issues-BMmP_77e.js → issues-CgnQ1OGQ.js} +2 -2
- package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-DJOH_O-w.js} +5 -4
- package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dv7AV_R1.js} +3 -3
- package/server/{label-reconciler-B4iOAjlC.js → label-reconciler--F85rufp.js} +4 -4
- package/server/{lifecycle-yPd___5E.js → lifecycle-CTdOWYMi.js} +2 -2
- package/server/{lifecycle-xmBfK2GJ.js → lifecycle-DDN8ApVY.js} +6 -7
- package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-D-lGdzK3.js} +5 -5
- package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-D_zTLvP1.js} +1 -1
- package/server/{linear-client-BsuUvkdA.js → linear-client-BQU36QqE.js} +2 -2
- package/server/{linear-client-CTskEeT_.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-CefQNAnq.js → merge-Bpx4jjht.js} +13 -11
- package/server/{merge-agent-4WOWlSYA.js → merge-agent-DdMVSV2Y.js} +233 -83
- package/server/{merge-agent-CKkgIBPB.js → merge-agent-DrXa1CpW.js} +1 -1
- package/server/{merge-batch-ClFn2T-y.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-B1DiziGU.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-BfaTyXsw.js → merge-rebase-xLnMlw5h.js} +3 -3
- package/server/{merge-set-DJ8-UErs.js → merge-set-DH7ot3yz.js} +11 -5
- package/server/merge-set-DzsOTBg5.js +3 -0
- package/server/{merge-sync-VPV28g0g.js → merge-sync-CQ-LgZ1_.js} +406 -153
- package/server/merge-sync-Ca7F5JnQ.js +3 -0
- package/server/{merge-train-CHopycP0.js → merge-train-DTEMyIu4.js} +18 -8
- package/server/{merge-train-deps-D1cOZzy2.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-duPAfSBw.js → multipart-parser-IMSBfePV.js} +2 -2
- package/server/{no-resume-mode-Nw29vaFb.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/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-CTSGcK8p.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
- package/server/{orphan-proposed-reconciler-BvKkWMJQ.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-B0c3w0Ya.js → pan-dir-ubraCiUg.js} +24 -10
- package/server/{paths-D-xWGHdh.js → paths-cXmOwSbh.js} +2 -2
- package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
- package/server/{pickup-DUCLWrJY.js → pickup-D8xtG1J2.js} +1 -1
- package/server/pipeline-membership-BGSvkT2M.js +3 -0
- package/server/pipeline-membership-CrAPLYtf.js +57 -0
- package/server/{pipeline-membership-mY3GprlK.js → pipeline-membership-gather-CET40frr.js} +177 -109
- package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
- package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
- package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-ImNXknf0.js} +1 -1
- package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
- package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-Bim6bThI.js} +2 -2
- package/server/{project-repos-B6GycDh9.js → project-repos-C0nuoBGv.js} +7 -3
- package/server/project-repos-CRE6Ykow.js +3 -0
- package/server/projects-B03Wr-xc.js +3 -0
- package/server/{prompts-DxzFXuLl.js → prompts-BEx08AIu.js} +2 -2
- package/server/{providers-u4Ga0jOr.js → providers-D7IluJe0.js} +1 -1
- package/server/{providers-qQAwGQDW.js → providers-evXhiQeg.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
- package/server/public/assets/{dist-D7zYSEA6.js → dist-CxAOHbil.js} +1 -1
- package/server/public/assets/{dist-ByIuzMQW.js → dist-DqDRYW6P.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.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-BBbArIcK.js → linear-B4cuEFmO.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
- package/server/public/assets/{prod-B8vYiu52.js → prod-CN2nHBvX.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-7N8WKseP.js → pull-requests-Cv7LxzUN.js} +1 -1
- package/server/{pull-requests-_lHueOHW.js → pull-requests-DHWiKxo7.js} +19 -10
- package/server/{queries-CjNIf-Ub.js → queries-DHJm7bTd.js} +631 -110
- package/server/{rally-CyWT_lNO.js → rally-B71M9f4o.js} +3 -3
- package/server/rally-YDjU513q.js +3 -0
- package/server/{rally-api-ClOSd-Tt.js → rally-api-D5uXN08-.js} +1 -1
- package/server/{rally-api-C8e_1JRi.js → rally-api-Dkqmok65.js} +2 -2
- package/server/{rally-client-lc-nokqr.js → rally-client-Bfqm6XI4.js} +4 -4
- package/server/{rally-client-sgtVqzNU.js → rally-client-CxsA6ExK.js} +1 -1
- package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
- package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
- package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-0EEYReVZ.js} +16 -7
- package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-qeRqHZxH.js} +2 -2
- package/server/{reconstruct-cache-C3Ui7ojV.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-dE1Aw83j.js → record-update-Z0QCxmMp.js} +124 -34
- package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-eJe26h-f.js} +2 -2
- package/server/{release-engine-Cx48W7z8.js → release-engine-lPUp-MTd.js} +5 -5
- package/server/{release-set-CQfuN9-v.js → release-set-BwGeyZKX.js} +3 -3
- package/server/{remote-C_2hasl7.js → remote-BCd02Es1.js} +3 -3
- package/server/{remote-ChgimyYa.js → remote-CVGUhXMV.js} +3 -3
- package/server/{remote-agents-CA3Ihlxj.js → remote-agents-C1bssi41.js} +2 -2
- package/server/{remote-agents-By1ige5O.js → remote-agents-C_VxssLU.js} +300 -46
- package/server/{remote-completion-fVe9e_3u.js → remote-completion-DAB0P706.js} +12 -12
- package/server/resume-u9byntrq.js +3 -0
- package/server/{review-agent-DNboMyW4.js → review-agent-CD4RCI0Y.js} +1 -1
- package/server/{review-agent-CIGOQYBD.js → review-agent-CHhI66UP.js} +60 -47
- package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-DSMRIfuJ.js} +7 -6
- package/server/{review-context-2uj-YQ8J.js → review-context-oFuBbiEE.js} +8 -8
- package/server/{in-flight-guard-CAAkqPLu.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-Dci-ZwEt.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-BTOpxtTC.js → review-status-sync-483sujRo.js} +2 -2
- package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-NaWvI9Xf.js} +1 -1
- package/server/review-status-yljtTd-q.js +7521 -0
- package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-BPDn4li_.js} +1 -1
- package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-CELeUinh.js} +48 -8
- package/server/{rollup-FGsKki9R.js → rollup-DTNvelz9.js} +8 -8
- package/server/{rollup-BKQC7jp4.js → rollup-DYZfq1c4.js} +1 -1
- package/server/{scanner-CnqEZeDy.js → scanner-CV35oSn4.js} +8 -7
- package/server/{sequence-io-D909zgeH.js → sequence-io-DF_8iuhV.js} +4 -4
- package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-B2WeCtGi.js} +5 -5
- package/server/server.js +1952 -578
- package/server/{service-CLeAoU6G.js → service-Br9rpBNA.js} +81 -64
- package/server/{session-fork-CHI1XvL9.js → session-fork-D0LY152N.js} +2 -2
- package/server/{session-history-BT3IvqhC.js → session-history-BUyK29eq.js} +4 -4
- package/server/{settings-BTMvpNFU.js → settings-Bse1Pdcj.js} +3 -3
- package/server/settings-CdvIF84R.js +2 -0
- package/server/{settings-C0zgxOGf.js → settings-CvVGqNEs.js} +3 -2
- package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-BWLa8ODz.js} +2 -2
- package/server/{shadow-state-7a-524T8.js → shadow-state-B4fpKxOO.js} +2 -2
- package/server/{shadow-state-DnDyjujH.js → shadow-state-FV6PHfEW.js} +1 -1
- package/server/{shadow-utils-Db3oroFG.js → shadow-utils-D7asqxOZ.js} +2 -2
- package/server/{ship-log-D9MlVzYU.js → ship-log-xplJ8t75.js} +1 -1
- package/server/{smart-compaction-CV2ukKND.js → smart-compaction-CPp2Ykf6.js} +1 -1
- package/server/{smart-compaction-KCYScAU1.js → smart-compaction-D3U_79f-.js} +8 -7
- package/server/{spawn-planning-session-qUC2VWu3.js → spawn-planning-session-1nFi3gfk.js} +1 -1
- package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-DGfZ5B8D.js} +17 -17
- package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-Br48eiDP.js} +1 -1
- package/server/{specialist-context-Bn3dCGS2.js → specialist-context-cVbGnTa3.js} +5 -5
- package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
- package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Cl5-hqT8.js} +3 -3
- package/server/{specialists-CC4r-c2s.js → specialists-CNfYO3G2.js} +975 -227
- package/server/{specialists-jiuuyVkp.js → specialists-Cicieuzu.js} +18 -18
- package/server/{specialists-CShuVGWT.js → specialists-JHsdU3pA.js} +1 -1
- package/server/{specialists-DM6bWjsi.js → specialists-Tdezg_6N.js} +1 -1
- package/server/specs-Bt7WJDoC.js +3 -0
- package/server/src-CRmCHlma.js +11408 -0
- package/server/{src-CXmtj0im.js → src-Ck028hjO.js} +6 -6
- package/server/{src-CdmnTM2m.js → src-UWcGe0Ix.js} +3 -3
- package/server/{stack-health-Bn3o8FBX.js → stack-health-CJLMrLBl.js} +1 -1
- package/server/{stack-health-DxSdG9cW.js → stack-health-DqSqx0zv.js} +7 -5
- package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-CYFOUNlT.js} +4 -4
- package/server/{staleness-CT34nwr9.js → staleness-BQ-0gMYK.js} +1 -1
- package/server/{staleness-DPm7ClwA.js → staleness-D47CUJok.js} +1 -1
- package/server/{state-home-Cn_Qu8IX.js → state-home-BYV7qZTW.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
- package/server/{state-migrate-BGg2ZaOt.js → state-migrate-CvvBtS0Y.js} +4 -4
- package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-Wt0UVvu1.js} +1 -1
- package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-mkLC6G_t.js} +79 -22
- package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
- package/server/{summary-fork-DpcxN9tf.js → summary-fork-CD7GOts0.js} +2 -2
- package/server/{summary-fork-D1RAk9rJ.js → summary-fork-xiXBnWG9.js} +8 -8
- package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-B5SbvDx2.js} +1 -1
- package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
- package/server/supervisor/pty-supervisor.js +49 -3
- package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-B7lp0ElT.js} +2 -2
- package/server/{supervisor-wM4ooB5O.js → supervisor-DL788vos.js} +3 -3
- package/server/supervisor-UWiQNK-y.js +2 -0
- package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-BV14DF5N.js} +3 -3
- package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-pdWG6ZQs.js} +2 -2
- package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-l2F4_zim.js} +15 -16
- package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-qakFIIGz.js} +6 -6
- package/server/{test-verdict-bWYBtqBg.js → test-verdict-BJYDggMm.js} +1 -1
- package/server/{test-verdict-gscuksPv.js → test-verdict-Gw-btEfb.js} +1 -1
- package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-BKOYB616.js} +1 -1
- package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-CBaWkV9k.js} +2 -2
- package/server/{tmux-R7N7y-Mh.js → tmux-B1Wbxz5o.js} +3 -3
- package/server/{tmux-B6z7h_vZ.js → tmux-DQ6jB76i.js} +1 -1
- package/server/{launcher-generator-BBWG_SiS.js → tmux-dedup-DbN6MGzM.js} +428 -9
- package/server/{token-BK6t8BIT.js → token-Cxbk023d.js} +2 -2
- package/server/{token-util-DxXu-vd1.js → token-util-CLq2MmQt.js} +1 -1
- package/server/token-util-zlz9U0ki.js +3 -0
- package/server/{tracker-config-G6latr8C.js → tracker-config-DZ8Zn2nQ.js} +2 -2
- package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-L0FKtjq2.js} +3 -3
- package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-bNX6jKkb.js} +1 -1
- package/server/{tunnel-CDVKJpRv.js → tunnel-BAm1XgjG.js} +3 -3
- package/server/{tunnel-DGdUkGoZ.js → tunnel-CjSnHdTc.js} +1 -1
- package/server/{types-5M0lupud.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-IfDGkaVR.js → validate-Cxsx5Uz1.js} +8 -6
- package/server/{validation-CC9OPqJZ.js → validation-DEaTZafj.js} +1 -1
- package/server/{validation-Dw1pzDzr.js → validation-VZgJxmqc.js} +4 -4
- package/server/{verification-artifact-B3itKTxu.js → verification-artifact-C85cRTc_.js} +1 -1
- package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-g3yuxQDL.js} +1 -1
- package/server/{verification-runner-BW4HOKAz.js → verification-runner-DlZI8yhw.js} +1 -1
- package/server/{verification-runner-CkgX6EtI.js → verification-runner-KDZIsBj4.js} +40 -18
- package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-Jr94BF3Y.js} +1 -1
- package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-C-vuP3_J.js} +20 -9
- package/server/workflows-CHrx_hcW.js +2 -0
- package/server/{workflows-mbQzh6mQ.js → workflows-D0oip4eV.js} +161 -78
- package/server/{workspace--8tnhDI0.js → workspace-BqFg__wH.js} +1 -1
- package/server/{workspace-BPUws1-_.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-CIVWZOQr.js → workspace-config-B123aZl-.js} +1 -1
- package/server/workspace-manager-CDTKjjdU.js +3 -0
- package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-CwO-Hek7.js} +156 -117
- package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-CQv00QwK.js} +2 -2
- package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-D4M8BM4W.js} +1 -1
- package/server/{workspaces-Do_9J0LQ.js → workspaces-j1e_6aAT.js} +719 -292
- 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-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-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/agents-wi9NWzs2.js +0 -3
- package/server/archive-planning-BZDgzoEj.js +0 -3
- package/server/cli-B86rejVV.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/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/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/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/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,12 +1,13 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { C as
|
|
4
|
-
import { f as init_config, m as loadConfigSync } from "./config-
|
|
5
|
-
import { r as init_factory, t as createTracker } from "./factory-
|
|
6
|
-
import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-
|
|
7
|
-
import { n as init_label_reconciler, t as STALE_PIPELINE_LABELS } from "./label-reconciler
|
|
8
|
-
import { join } from "node:path";
|
|
2
|
+
import { Gn as init_projects, In as getIssuePrefix } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { C as listSpecs, S as init_specs } from "./io-VHvc0Ssp.js";
|
|
4
|
+
import { f as init_config, m as loadConfigSync } from "./config-Dr3pW6w6.js";
|
|
5
|
+
import { r as init_factory, t as createTracker } from "./factory-CRoOpGsF.js";
|
|
6
|
+
import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-CQ1Lo6LA.js";
|
|
7
|
+
import { n as init_label_reconciler, t as STALE_PIPELINE_LABELS } from "./label-reconciler--F85rufp.js";
|
|
8
|
+
import { join, resolve } from "node:path";
|
|
9
9
|
import { Effect } from "effect";
|
|
10
|
+
import { realpath } from "node:fs/promises";
|
|
10
11
|
import { execFile } from "node:child_process";
|
|
11
12
|
import { promisify } from "node:util";
|
|
12
13
|
//#region ../../lib/resource-utils.ts
|
|
@@ -112,11 +113,11 @@ function resolveProjectTrackerType(project) {
|
|
|
112
113
|
if (project.github_repo) return "github";
|
|
113
114
|
if (getIssuePrefix(project)) return "linear";
|
|
114
115
|
if (project.gitlab_repo) return "gitlab";
|
|
115
|
-
throw new
|
|
116
|
+
throw new PipelineMembershipUnavailableError("tracker_unconfigured", `Cannot resolve tracker for ${project.name}`);
|
|
116
117
|
}
|
|
117
118
|
async function listProjectTrackerIssues(project) {
|
|
118
119
|
const issuePrefix = getIssuePrefix(project)?.toUpperCase();
|
|
119
|
-
if (!issuePrefix) throw new
|
|
120
|
+
if (!issuePrefix) throw new PipelineMembershipUnavailableError("missing_issue_prefix", `Missing issue_prefix for project ${project.name}`);
|
|
120
121
|
const trackerType = resolveProjectTrackerType(project);
|
|
121
122
|
const trackerConfig = loadConfigSync().trackers[trackerType];
|
|
122
123
|
const tracker = createTracker({
|
|
@@ -144,6 +145,14 @@ async function listProjectTrackerIssues(project) {
|
|
|
144
145
|
}];
|
|
145
146
|
});
|
|
146
147
|
}
|
|
148
|
+
async function withUnavailableReason(reason, operation) {
|
|
149
|
+
try {
|
|
150
|
+
return await operation();
|
|
151
|
+
} catch (error) {
|
|
152
|
+
if (error instanceof PipelineMembershipUnavailableError) throw error;
|
|
153
|
+
throw new PipelineMembershipUnavailableError(reason, error instanceof Error ? error.message : String(error));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
147
156
|
function issueNumber(issueId) {
|
|
148
157
|
const match = issueId.match(/-(\d+)$/);
|
|
149
158
|
if (!match) throw new Error(`Cannot derive GitHub issue number from ${issueId}`);
|
|
@@ -164,52 +173,156 @@ function projectRepositories(project) {
|
|
|
164
173
|
defaultBranch: repo.default_branch ?? project.workspace?.default_branch ?? "main"
|
|
165
174
|
}));
|
|
166
175
|
}
|
|
176
|
+
async function normalizeRepoPath(path) {
|
|
177
|
+
return realpath(path).catch(() => resolve(path));
|
|
178
|
+
}
|
|
179
|
+
async function hasGitRef(repoPath, branch, run) {
|
|
180
|
+
const ref = branch.startsWith("origin/") ? `refs/remotes/${branch}` : `refs/heads/${branch}`;
|
|
181
|
+
try {
|
|
182
|
+
await run("git", [
|
|
183
|
+
"rev-parse",
|
|
184
|
+
"--verify",
|
|
185
|
+
"--quiet",
|
|
186
|
+
ref
|
|
187
|
+
], repoPath);
|
|
188
|
+
return true;
|
|
189
|
+
} catch {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async function resolveRepositoryDefaultBranch(repoPath, configured, run = defaultDeps.run) {
|
|
194
|
+
if (configured) {
|
|
195
|
+
if (await hasGitRef(repoPath, configured, run)) return configured;
|
|
196
|
+
if (await hasGitRef(repoPath, `origin/${configured}`, run)) return `origin/${configured}`;
|
|
197
|
+
}
|
|
198
|
+
for (const ref of ["refs/remotes/origin/HEAD", "HEAD"]) try {
|
|
199
|
+
const branch = (await run("git", [
|
|
200
|
+
"symbolic-ref",
|
|
201
|
+
"--quiet",
|
|
202
|
+
"--short",
|
|
203
|
+
ref
|
|
204
|
+
], repoPath)).trim();
|
|
205
|
+
if (branch && await hasGitRef(repoPath, branch, run)) return branch;
|
|
206
|
+
} catch {}
|
|
207
|
+
for (const branch of [
|
|
208
|
+
"main",
|
|
209
|
+
"master",
|
|
210
|
+
"origin/main",
|
|
211
|
+
"origin/master"
|
|
212
|
+
]) if (await hasGitRef(repoPath, branch, run)) return branch;
|
|
213
|
+
throw new PipelineMembershipUnavailableError("default_branch_unresolved", `Could not resolve default branch for repository ${repoPath} (configured: ${configured ?? "none"})`);
|
|
214
|
+
}
|
|
215
|
+
async function snapshotBranchRefs(repoPath, defaultBranch, refPatterns, run = defaultDeps.run) {
|
|
216
|
+
const unavailable = () => new PipelineMembershipUnavailableError("repo_unavailable", `Workspace repo path is not a git repository: ${repoPath}`);
|
|
217
|
+
let gitTopLevel;
|
|
218
|
+
try {
|
|
219
|
+
gitTopLevel = (await run("git", ["rev-parse", "--show-toplevel"], repoPath)).trim();
|
|
220
|
+
} catch (error) {
|
|
221
|
+
if (error instanceof PipelineMembershipUnavailableError) throw error;
|
|
222
|
+
throw unavailable();
|
|
223
|
+
}
|
|
224
|
+
const [normalizedRepoPath, normalizedGitTopLevel] = await Promise.all([normalizeRepoPath(repoPath), normalizeRepoPath(gitTopLevel)]);
|
|
225
|
+
if (normalizedRepoPath !== normalizedGitTopLevel) throw unavailable();
|
|
226
|
+
const resolvedDefaultBranch = await resolveRepositoryDefaultBranch(repoPath, defaultBranch, run);
|
|
227
|
+
const [refs, unmergedRefs, firstParentShas] = await Promise.all([
|
|
228
|
+
run("git", [
|
|
229
|
+
"for-each-ref",
|
|
230
|
+
"--format=%(objectname) %(refname:short)",
|
|
231
|
+
...refPatterns
|
|
232
|
+
], repoPath),
|
|
233
|
+
run("git", [
|
|
234
|
+
"for-each-ref",
|
|
235
|
+
`--no-merged=${resolvedDefaultBranch}`,
|
|
236
|
+
"--format=%(refname:short)",
|
|
237
|
+
...refPatterns
|
|
238
|
+
], repoPath),
|
|
239
|
+
run("git", [
|
|
240
|
+
"rev-list",
|
|
241
|
+
"--first-parent",
|
|
242
|
+
resolvedDefaultBranch
|
|
243
|
+
], repoPath)
|
|
244
|
+
]);
|
|
245
|
+
return {
|
|
246
|
+
refs,
|
|
247
|
+
unmergedRefs,
|
|
248
|
+
firstParentShas
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function parseBranchRefLine(line) {
|
|
252
|
+
const spaceIdx = line.indexOf(" ");
|
|
253
|
+
return {
|
|
254
|
+
tipSha: spaceIdx === -1 ? null : line.slice(0, spaceIdx),
|
|
255
|
+
ref: spaceIdx === -1 ? line : line.slice(spaceIdx + 1)
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function classifyBranchRefLine(line, unmergedSet, firstParentShas) {
|
|
259
|
+
const { tipSha, ref } = parseBranchRefLine(line);
|
|
260
|
+
if (unmergedSet.has(ref)) return "unmerged";
|
|
261
|
+
if (tipSha && !firstParentShas.has(tipSha)) return "merged-work";
|
|
262
|
+
return "pointer";
|
|
263
|
+
}
|
|
264
|
+
async function gatherIssueBranchContainment(project, issueId, run = defaultDeps.run) {
|
|
265
|
+
const normalizedIssueId = issueId.toLowerCase();
|
|
266
|
+
const refPatterns = [
|
|
267
|
+
`refs/heads/feature/${normalizedIssueId}`,
|
|
268
|
+
`refs/remotes/origin/feature/${normalizedIssueId}`,
|
|
269
|
+
`refs/heads/strike/${normalizedIssueId}`,
|
|
270
|
+
`refs/remotes/origin/strike/${normalizedIssueId}`
|
|
271
|
+
];
|
|
272
|
+
const snapshots = await Promise.all(projectRepositories(project).map(async (repository) => ({
|
|
273
|
+
repository,
|
|
274
|
+
snapshot: await snapshotBranchRefs(repository.path, repository.defaultBranch, refPatterns, run)
|
|
275
|
+
})));
|
|
276
|
+
const result = {
|
|
277
|
+
unmergedRefs: [],
|
|
278
|
+
mergedWorkRefs: [],
|
|
279
|
+
pointerRefs: []
|
|
280
|
+
};
|
|
281
|
+
for (const { repository, snapshot } of snapshots) {
|
|
282
|
+
const unmergedSet = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
|
|
283
|
+
const firstParentShas = new Set(snapshot.firstParentShas.split("\n").map((sha) => sha.trim()).filter(Boolean));
|
|
284
|
+
const refLines = snapshot.refs.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
285
|
+
for (const line of refLines) {
|
|
286
|
+
const { ref } = parseBranchRefLine(line);
|
|
287
|
+
const qualifiedRef = `${repository.path}:${ref}`;
|
|
288
|
+
switch (classifyBranchRefLine(line, unmergedSet, firstParentShas)) {
|
|
289
|
+
case "unmerged":
|
|
290
|
+
result.unmergedRefs.push(qualifiedRef);
|
|
291
|
+
break;
|
|
292
|
+
case "merged-work":
|
|
293
|
+
result.mergedWorkRefs.push(qualifiedRef);
|
|
294
|
+
break;
|
|
295
|
+
case "pointer":
|
|
296
|
+
result.pointerRefs.push(qualifiedRef);
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return result;
|
|
302
|
+
}
|
|
167
303
|
/** Gather all durable pipeline lenses for one project in batches. */
|
|
168
304
|
async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
169
305
|
const issuePrefix = getIssuePrefix(project)?.toUpperCase();
|
|
170
|
-
if (!issuePrefix) throw new
|
|
306
|
+
if (!issuePrefix) throw new PipelineMembershipUnavailableError("missing_issue_prefix", `Missing issue_prefix for project ${project.name}`);
|
|
171
307
|
const githubRepository = project.github_repo?.split("/");
|
|
172
308
|
const owner = githubRepository?.[0];
|
|
173
309
|
const repo = githubRepository?.[1];
|
|
174
310
|
if (project.github_repo && (!owner || !repo)) throw new Error(`Invalid github_repo for ${project.name}: ${project.github_repo}`);
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
"refs/remotes/origin/strike/*"
|
|
184
|
-
], repository.path),
|
|
185
|
-
deps.run("git", [
|
|
186
|
-
"for-each-ref",
|
|
187
|
-
`--no-merged=${repository.defaultBranch}`,
|
|
188
|
-
"--format=%(refname:short)",
|
|
189
|
-
"refs/heads/feature/*",
|
|
190
|
-
"refs/remotes/origin/feature/*",
|
|
191
|
-
"refs/heads/strike/*",
|
|
192
|
-
"refs/remotes/origin/strike/*"
|
|
193
|
-
], repository.path),
|
|
194
|
-
deps.run("git", [
|
|
195
|
-
"rev-list",
|
|
196
|
-
"--first-parent",
|
|
197
|
-
repository.defaultBranch
|
|
198
|
-
], repository.path)
|
|
199
|
-
]);
|
|
200
|
-
return {
|
|
201
|
-
refs,
|
|
202
|
-
unmergedRefs,
|
|
203
|
-
firstParentShas
|
|
204
|
-
};
|
|
205
|
-
});
|
|
311
|
+
const repositories = projectRepositories(project);
|
|
312
|
+
const branchRefPatterns = [
|
|
313
|
+
"refs/heads/feature/*",
|
|
314
|
+
"refs/remotes/origin/feature/*",
|
|
315
|
+
"refs/heads/strike/*",
|
|
316
|
+
"refs/remotes/origin/strike/*"
|
|
317
|
+
];
|
|
318
|
+
const branchSnapshots = repositories.map((repository) => snapshotBranchRefs(repository.path, repository.defaultBranch, branchRefPatterns, deps.run));
|
|
206
319
|
const [trackerIssues, openIssues, phaseLabeledIssues, openPrs, branches, specIssueIds] = await Promise.all([
|
|
207
|
-
project.github_repo ? Promise.resolve([]) : deps.listTrackerIssues(project),
|
|
208
|
-
owner && repo ? deps.listOpenIssues(owner, repo) : Promise.resolve([]),
|
|
209
|
-
owner && repo ? deps.listPhaseLabeledIssues(owner, repo) : Promise.resolve([]),
|
|
210
|
-
owner && repo ? deps.listOpenPullRequests(owner, repo) : Promise.resolve([]),
|
|
320
|
+
project.github_repo ? Promise.resolve([]) : withUnavailableReason("forge_unavailable", () => deps.listTrackerIssues(project)),
|
|
321
|
+
owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listOpenIssues(owner, repo)) : Promise.resolve([]),
|
|
322
|
+
owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listPhaseLabeledIssues(owner, repo)) : Promise.resolve([]),
|
|
323
|
+
owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listOpenPullRequests(owner, repo)) : Promise.resolve([]),
|
|
211
324
|
Promise.all(branchSnapshots),
|
|
212
|
-
deps.listSpecIssueIds(project.path)
|
|
325
|
+
withUnavailableReason("gather_failed", () => deps.listSpecIssueIds(project.path))
|
|
213
326
|
]);
|
|
214
327
|
const candidates = /* @__PURE__ */ new Set();
|
|
215
328
|
const labelsByIssue = /* @__PURE__ */ new Map();
|
|
@@ -254,17 +367,16 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
254
367
|
const unmerged = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
|
|
255
368
|
const firstParentShas = new Set(snapshot.firstParentShas.split("\n").map((sha) => sha.trim()).filter(Boolean));
|
|
256
369
|
for (const line of refLines) {
|
|
257
|
-
const
|
|
258
|
-
const tipSha = spaceIdx === -1 ? null : line.slice(0, spaceIdx);
|
|
259
|
-
const ref = spaceIdx === -1 ? line : line.slice(spaceIdx + 1);
|
|
370
|
+
const { ref } = parseBranchRefLine(line);
|
|
260
371
|
const id = issueIdFromRef(ref, issuePrefix);
|
|
261
372
|
if (id) {
|
|
262
373
|
candidates.add(id);
|
|
263
374
|
branchIssues.add(id);
|
|
264
375
|
const headRef = ref.replace(/^origin\//, "");
|
|
265
376
|
headRefsByIssue.set(id, new Set([...headRefsByIssue.get(id) ?? [], headRef]));
|
|
266
|
-
|
|
267
|
-
|
|
377
|
+
const classification = classifyBranchRefLine(line, unmerged, firstParentShas);
|
|
378
|
+
if (classification === "unmerged") unmergedBranchIssues.add(id);
|
|
379
|
+
else if (classification === "merged-work") mergedBranchWorkIssues.add(id);
|
|
268
380
|
}
|
|
269
381
|
}
|
|
270
382
|
}
|
|
@@ -274,7 +386,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
274
386
|
const issueStateCandidates = unknownIssueIds.filter((id) => openPrIssues.has(id) || branchIssues.has(id));
|
|
275
387
|
const issueStateCandidateSet = new Set(issueStateCandidates);
|
|
276
388
|
for (const id of unknownIssueIds) if (!issueStateCandidateSet.has(id)) candidates.delete(id);
|
|
277
|
-
const issueStates = issueStateCandidates.length > 0 ? await deps.listIssueStates(owner, repo, issueStateCandidates.map(issueNumber)) : [];
|
|
389
|
+
const issueStates = issueStateCandidates.length > 0 ? await withUnavailableReason("forge_unavailable", () => deps.listIssueStates(owner, repo, issueStateCandidates.map(issueNumber))) : [];
|
|
278
390
|
const stateByNumber = new Map(issueStates.map((entry) => [entry.number, entry.state]));
|
|
279
391
|
for (const id of issueStateCandidates) {
|
|
280
392
|
const state = stateByNumber.get(issueNumber(id));
|
|
@@ -287,7 +399,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
287
399
|
`feature/${id.toLowerCase()}`,
|
|
288
400
|
`strike/${id.toLowerCase()}`
|
|
289
401
|
]))];
|
|
290
|
-
const mergedHeads = new Set(await deps.listMergedPullRequestHeads(owner, repo, candidateHeads));
|
|
402
|
+
const mergedHeads = new Set(await withUnavailableReason("forge_unavailable", () => deps.listMergedPullRequestHeads(owner, repo, candidateHeads)));
|
|
291
403
|
for (const id of openCandidates) if ([
|
|
292
404
|
...headRefsByIssue.get(id) ?? [],
|
|
293
405
|
`feature/${id.toLowerCase()}`,
|
|
@@ -329,7 +441,7 @@ async function gatherProjectLensSignalsForProjects(projects, gather = gatherProj
|
|
|
329
441
|
error
|
|
330
442
|
}));
|
|
331
443
|
}
|
|
332
|
-
var execFileAsync, GRAPHQL_ALIAS_CHUNK_SIZE, cachedOpenPullRequests, defaultDeps;
|
|
444
|
+
var execFileAsync, GRAPHQL_ALIAS_CHUNK_SIZE, cachedOpenPullRequests, PipelineMembershipUnavailableError, defaultDeps, PIPELINE_PROJECT_CONCURRENCY;
|
|
333
445
|
var init_pipeline_membership_gather = __esmMin((() => {
|
|
334
446
|
init_github_app();
|
|
335
447
|
init_concurrency();
|
|
@@ -342,6 +454,14 @@ var init_pipeline_membership_gather = __esmMin((() => {
|
|
|
342
454
|
execFileAsync = promisify(execFile);
|
|
343
455
|
GRAPHQL_ALIAS_CHUNK_SIZE = 50;
|
|
344
456
|
cachedOpenPullRequests = createSettledTtlPromiseCache(3e4);
|
|
457
|
+
PipelineMembershipUnavailableError = class extends Error {
|
|
458
|
+
reason;
|
|
459
|
+
constructor(reason, message) {
|
|
460
|
+
super(message);
|
|
461
|
+
this.name = "PipelineMembershipUnavailableError";
|
|
462
|
+
this.reason = reason;
|
|
463
|
+
}
|
|
464
|
+
};
|
|
345
465
|
defaultDeps = {
|
|
346
466
|
listOpenIssues: listOpenIssuesWithLabelsPromise,
|
|
347
467
|
listPhaseLabeledIssues: (owner, repo) => listIssuesWithAnyLabelPromise(owner, repo, STALE_PIPELINE_LABELS),
|
|
@@ -360,61 +480,9 @@ var init_pipeline_membership_gather = __esmMin((() => {
|
|
|
360
480
|
return stdout;
|
|
361
481
|
}
|
|
362
482
|
};
|
|
483
|
+
PIPELINE_PROJECT_CONCURRENCY = 3;
|
|
363
484
|
}));
|
|
364
485
|
//#endregion
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* Classify a single issue's pipeline membership from its durable lens signals.
|
|
368
|
-
*
|
|
369
|
-
* Decisions (see PAN-1980):
|
|
370
|
-
* - A closed issue is subtracted from the pipeline regardless of lingering
|
|
371
|
-
* branch/label/agent/workspace state (§2d), EXCEPT a still-open PR — a live,
|
|
372
|
-
* mergeable artifact that must be closed (`zombie_pr`).
|
|
373
|
-
* - L1-merged is the merge oracle; a squash-merged branch that L2 still calls
|
|
374
|
-
* "unmerged" is treated as merged.
|
|
375
|
-
* - An open issue with a branch but no PR is `planned_backlog` (in the pipeline,
|
|
376
|
-
* needs a PR or disposition) — distinct from `in_flight` so it does not
|
|
377
|
-
* inflate throughput.
|
|
378
|
-
*/
|
|
379
|
-
function resolvePipelineMembership(s) {
|
|
380
|
-
const branchLive = s.hasConventionBranch && s.branchUnmerged && !s.hasMergedPr;
|
|
381
|
-
const lenses = {
|
|
382
|
-
L1_openPr: s.hasOpenPr,
|
|
383
|
-
L2_unmergedBranch: branchLive,
|
|
384
|
-
L3_issueOpen: s.issueOpen,
|
|
385
|
-
L4_phaseLabel: s.phaseLabel
|
|
386
|
-
};
|
|
387
|
-
const result = (bucket, reason) => {
|
|
388
|
-
const labelDrift = s.phaseLabel !== null && (bucket === "clean_terminal" || !s.issueOpen) ? "stale_present" : s.issueOpen && s.hasOpenPr && s.phaseLabel === null ? "stale_absent" : null;
|
|
389
|
-
return {
|
|
390
|
-
issueId: s.issueId,
|
|
391
|
-
inPipeline: bucket !== "clean_terminal",
|
|
392
|
-
bucket,
|
|
393
|
-
reasons: [reason],
|
|
394
|
-
labelDrift,
|
|
395
|
-
lenses
|
|
396
|
-
};
|
|
397
|
-
};
|
|
398
|
-
if (!s.issueOpen) {
|
|
399
|
-
if (s.hasOpenPr) return result("zombie_pr", "issue is closed but a PR is still open — close/reconcile the PR");
|
|
400
|
-
return result("clean_terminal", "issue closed; no open PR — terminal (any leftover branch/label/agent is cleanup, not pipeline)");
|
|
401
|
-
}
|
|
402
|
-
if (s.hasOpenPr) return result("in_flight", "open issue with an open PR — active work");
|
|
403
|
-
if (s.hasMergedPr) return result("post_merge_limbo", "open issue with a merged PR — merged but never closed out; run close-out");
|
|
404
|
-
if (branchLive) return result("planned_backlog", "open issue with an unmerged convention branch (feature/ or strike/) but no PR — needs a PR or disposition");
|
|
405
|
-
if (s.hasConventionBranch) {
|
|
406
|
-
if (s.hasMergedBranchWork) return result("post_merge_limbo", "open issue whose branch work is contained in main but with no merged PR — landed via a non-PR path; run close-out");
|
|
407
|
-
return result("planned_backlog", "open issue with a convention branch but no unique commits — created, work not yet landed; needs work or disposition");
|
|
408
|
-
}
|
|
409
|
-
if (s.hasXbriefSpec) return result("planned_backlog", PLANNED_BACKLOG_SPEC_ONLY_REASON);
|
|
410
|
-
if (s.explicitlyReady) return result("planned_backlog", "open issue carries the explicit ready label — ready to start");
|
|
411
|
-
return result("clean_terminal", "open issue with no branch and no PR — backlog, never started");
|
|
412
|
-
}
|
|
413
|
-
var PLANNED_BACKLOG_SPEC_ONLY_REASON;
|
|
414
|
-
var init_pipeline_membership = __esmMin((() => {
|
|
415
|
-
PLANNED_BACKLOG_SPEC_ONLY_REASON = "open issue with an xBRIEF spec but no branch/PR — planned work whose plan encodes code paths that age; needs starting or re-planning";
|
|
416
|
-
}));
|
|
417
|
-
//#endregion
|
|
418
|
-
export { gatherProjectLensSignalsForProjects as a, init_resource_utils as c, gatherProjectLensSignals as i, parseIssueIdFromTextSync as l, init_pipeline_membership as n, init_pipeline_membership_gather as o, resolvePipelineMembership as r, listOpenPullRequestsSnapshot as s, PLANNED_BACKLOG_SPEC_ONLY_REASON as t };
|
|
486
|
+
export { gatherProjectLensSignals as a, listIssueStatesBatched as c, mapPipelineProjects as d, projectRepositories as f, parseIssueIdFromTextSync as g, init_resource_utils as h, gatherIssueBranchContainment as i, listMergedPullRequestHeadsBatched as l, snapshotBranchRefs as m, PipelineMembershipUnavailableError as n, gatherProjectLensSignalsForProjects as o, resolveRepositoryDefaultBranch as p, classifyBranchRefLine as r, init_pipeline_membership_gather as s, PIPELINE_PROJECT_CONCURRENCY as t, listOpenPullRequestsSnapshot as u };
|
|
419
487
|
|
|
420
|
-
//# sourceMappingURL=pipeline-membership-
|
|
488
|
+
//# sourceMappingURL=pipeline-membership-gather-CET40frr.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { a as gatherProjectLensSignals, c as listIssueStatesBatched, d as mapPipelineProjects, f as projectRepositories, i as gatherIssueBranchContainment, l as listMergedPullRequestHeadsBatched, m as snapshotBranchRefs, n as PipelineMembershipUnavailableError, o as gatherProjectLensSignalsForProjects, p as resolveRepositoryDefaultBranch, r as classifyBranchRefLine, s as init_pipeline_membership_gather, t as PIPELINE_PROJECT_CONCURRENCY, u as listOpenPullRequestsSnapshot } from "./pipeline-membership-gather-CET40frr.js";
|
|
2
|
+
init_pipeline_membership_gather();
|
|
3
|
+
export { PIPELINE_PROJECT_CONCURRENCY, PipelineMembershipUnavailableError, classifyBranchRefLine, gatherIssueBranchContainment, gatherProjectLensSignals, gatherProjectLensSignalsForProjects, listIssueStatesBatched, listMergedPullRequestHeadsBatched, listOpenPullRequestsSnapshot, mapPipelineProjects, projectRepositories, resolveRepositoryDefaultBranch, snapshotBranchRefs };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
2
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DvMTQSOS.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
//#region ../../lib/pipeline-notifier.ts
|
|
5
5
|
/**
|
|
@@ -60,4 +60,4 @@ var init_pipeline_notifier = __esmMin((() => {
|
|
|
60
60
|
//#endregion
|
|
61
61
|
export { setPipelineHandlerSync as a, setPipelineHandler as i, notifyPipeline as n, notifyPipelineSync as r, init_pipeline_notifier as t };
|
|
62
62
|
|
|
63
|
-
//# sourceMappingURL=pipeline-notifier-
|
|
63
|
+
//# sourceMappingURL=pipeline-notifier-BuQ0e4hF.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-
|
|
1
|
+
import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BuQ0e4hF.js";
|
|
2
2
|
init_pipeline_notifier();
|
|
3
3
|
export { notifyPipeline, notifyPipelineSync, setPipelineHandler, setPipelineHandlerSync };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-CpvJnvnQ.js";
|
|
2
|
+
//#region ../../lib/cloister/post-merge-lifecycle-worker.ts
|
|
3
|
+
init_review_status_source();
|
|
4
|
+
const queue = /* @__PURE__ */ new Map();
|
|
5
|
+
let workerPromise = null;
|
|
6
|
+
function nextEntry() {
|
|
7
|
+
return [...queue.values()].find((entry) => !entry.running) ?? null;
|
|
8
|
+
}
|
|
9
|
+
async function drainQueue() {
|
|
10
|
+
for (let entry = nextEntry(); entry; entry = nextEntry()) {
|
|
11
|
+
entry.running = true;
|
|
12
|
+
const status = resolveCanonicalReviewStatus(entry.issueId);
|
|
13
|
+
if (!status.available || status.status?.mergeStatus !== "merged" || status.status.mergeStep !== "post-merge-cleanup") {
|
|
14
|
+
queue.delete(entry.issueId);
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
|
|
19
|
+
await postMergeLifecycle(entry.issueId, entry.projectPath, entry.sourceBranch, { skipDeploy: true });
|
|
20
|
+
console.log(`[deacon] Completed pending post-merge lifecycle for ${entry.issueId}`);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.warn(`[deacon] Pending post-merge lifecycle retry failed for ${entry.issueId}: ${error}`);
|
|
23
|
+
} finally {
|
|
24
|
+
queue.delete(entry.issueId);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function startWorker() {
|
|
29
|
+
if (workerPromise || !nextEntry()) return;
|
|
30
|
+
workerPromise = drainQueue().finally(() => {
|
|
31
|
+
workerPromise = null;
|
|
32
|
+
if (nextEntry()) startWorker();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function enqueuePostMergeLifecycle(issueId, projectPath, sourceBranch) {
|
|
36
|
+
const normalizedIssueId = issueId.trim().toUpperCase();
|
|
37
|
+
if (!normalizedIssueId || queue.has(normalizedIssueId)) return null;
|
|
38
|
+
queue.set(normalizedIssueId, {
|
|
39
|
+
issueId: normalizedIssueId,
|
|
40
|
+
projectPath,
|
|
41
|
+
sourceBranch,
|
|
42
|
+
running: false
|
|
43
|
+
});
|
|
44
|
+
startWorker();
|
|
45
|
+
return `Queued pending post-merge lifecycle for ${normalizedIssueId}`;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { enqueuePostMergeLifecycle };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=post-merge-lifecycle-worker-DbO10pum.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gn as init_projects, Yn as listProjectsSync } from "./config-yaml-CmOPzmBb.js";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
4
|
import { execFile } from "node:child_process";
|
|
@@ -159,4 +159,4 @@ async function fetchProjectReleaseStatus(projectKey, deps = {}) {
|
|
|
159
159
|
//#endregion
|
|
160
160
|
export { fetchProjectReleaseStatus };
|
|
161
161
|
|
|
162
|
-
//# sourceMappingURL=project-pipelines-
|
|
162
|
+
//# sourceMappingURL=project-pipelines-Bim6bThI.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, ar as resolveProjectFromIssueSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import "effect";
|
|
4
4
|
import { existsSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -85,10 +85,14 @@ function computeWorkspaceRepoRootsSync(repos, issueId, workspacePath) {
|
|
|
85
85
|
function resolveWorkspaceRepoRootsSync(issueId, workspacePath) {
|
|
86
86
|
return computeWorkspaceRepoRootsSync(resolveProjectReposForIssueSync(issueId), issueId, workspacePath);
|
|
87
87
|
}
|
|
88
|
+
/** Resolve the primary git checkout used by single-repo workspace probes. */
|
|
89
|
+
function resolvePrimaryWorkspaceRepoDirSync(issueId, workspacePath) {
|
|
90
|
+
return resolveWorkspaceRepoRootsSync(issueId, workspacePath)[0].dir;
|
|
91
|
+
}
|
|
88
92
|
var init_project_repos = __esmMin((() => {
|
|
89
93
|
init_projects();
|
|
90
94
|
}));
|
|
91
95
|
//#endregion
|
|
92
|
-
export { resolveConfiguredReposSync as a,
|
|
96
|
+
export { resolveConfiguredReposSync as a, resolveProjectReposFromResolvedIssueSync as c, normalizeForgeSync as i, resolveWorkspaceRepoRootsSync as l, inferProjectForgeSync as n, resolvePrimaryWorkspaceRepoDirSync as o, init_project_repos as r, resolveProjectReposForIssueSync as s, computeWorkspaceRepoRootsSync as t };
|
|
93
97
|
|
|
94
|
-
//# sourceMappingURL=project-repos-
|
|
98
|
+
//# sourceMappingURL=project-repos-C0nuoBGv.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { $n as registerProject, An as extractTeamPrefix, Bn as getSpecialistConfig, Dn as PROJECTS_CONFIG_FILE, Fn as findProjectsByRallyProject, Gn as init_projects, Hn as getSpecialistRetention, In as getIssuePrefix, Jn as listProjects, Kn as initializeProjectsConfig, Ln as getProject, Mn as findProjectByPathSync, Nn as findProjectByTeam, On as ProjectRenameError, Pn as findProjectByTeamSync, Rn as getProjectSwarmHotspots, Un as hasProjects, Vn as getSpecialistPromptOverride, Wn as hasProjectsSync, Xn as loadProjectsConfig, Yn as listProjectsSync, Zn as loadProjectsConfigSync, ar as resolveProjectFromIssueSync, cr as saveProjectsConfigSync, dr as setProjectSwarmPolicySync, er as registerProjectSync, fr as unregisterProject, ir as resolveProjectFromIssue, jn as findProjectByPath, kn as createDefaultProjectsConfig, lr as setProjectAutoMergeDefaultSync, nr as renameProjectSync, or as resolveProjectPath, pr as unregisterProjectSync, qn as initializeProjectsConfigSync, rr as resolveInfraRepo, sr as saveProjectsConfig, tr as renameProject, ur as setProjectMergeTrainSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
|
|
2
|
+
init_projects();
|
|
3
|
+
export { PROJECTS_CONFIG_FILE, ProjectRenameError, createDefaultProjectsConfig, extractTeamPrefix, findProjectByPath, findProjectByPathSync, findProjectByTeam, findProjectByTeamSync, findProjectsByRallyProject, getIssuePrefix, getProject, getProjectSwarmHotspots, getProjectSync, getSpecialistConfig, getSpecialistPromptOverride, getSpecialistRetention, hasProjects, hasProjectsSync, initializeProjectsConfig, initializeProjectsConfigSync, listProjects, listProjectsSync, loadProjectsConfig, loadProjectsConfigSync, registerProject, registerProjectSync, renameProject, renameProjectSync, resolveInfraRepo, resolveProjectFromIssue, resolveProjectFromIssueSync, resolveProjectPath, saveProjectsConfig, saveProjectsConfigSync, setProjectAutoMergeDefaultSync, setProjectMergeTrainSync, setProjectSwarmPolicySync, unregisterProject, unregisterProjectSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { h as jsYaml, m as init_js_yaml } from "./config-yaml-
|
|
2
|
+
import { h as jsYaml, m as init_js_yaml } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
import { existsSync, readFileSync } from "fs";
|
|
5
5
|
import { dirname, join } from "path";
|
|
@@ -669,4 +669,4 @@ var init_prompts = __esmMin((() => {
|
|
|
669
669
|
//#endregion
|
|
670
670
|
export { renderPrompt as n, init_prompts as t };
|
|
671
671
|
|
|
672
|
-
//# sourceMappingURL=prompts-
|
|
672
|
+
//# sourceMappingURL=prompts-BEx08AIu.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { B as getProviderEnvSync, H as init_providers, V as getProviderForModelSync } from "./config-yaml-
|
|
1
|
+
import { B as getProviderEnvSync, H as init_providers, V as getProviderForModelSync } from "./config-yaml-CmOPzmBb.js";
|
|
2
2
|
init_providers();
|
|
3
3
|
export { getProviderEnvSync, getProviderForModelSync };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { i as init_paths, r as ensureParentDir, s as resolveIssueMemoryRoot } from "./paths-
|
|
3
|
-
import { o as getPricingSync, s as init_cost } from "./cost-
|
|
4
|
-
import { d as init_cost_sync, f as insertCostEventSync, m as queryMemoryExtractionCostUsdSync } from "./cost-sync-
|
|
5
|
-
import { n as CLIPROXY_BASE_URL, t as CLIPROXY_AUTH_TOKEN, v as init_cliproxy$1 } from "./cliproxy-
|
|
6
|
-
import { i as init_settings, s as loadMemorySettings } from "./settings-
|
|
2
|
+
import { i as init_paths, r as ensureParentDir, s as resolveIssueMemoryRoot } from "./paths-cXmOwSbh.js";
|
|
3
|
+
import { o as getPricingSync, s as init_cost } from "./cost-Bgcub5kW.js";
|
|
4
|
+
import { d as init_cost_sync, f as insertCostEventSync, m as queryMemoryExtractionCostUsdSync } from "./cost-sync-Dv3LUaNW.js";
|
|
5
|
+
import { n as CLIPROXY_BASE_URL, t as CLIPROXY_AUTH_TOKEN, v as init_cliproxy$1 } from "./cliproxy-C8mB3KuB.js";
|
|
6
|
+
import { i as init_settings, s as loadMemorySettings } from "./settings-Bse1Pdcj.js";
|
|
7
7
|
import { join } from "path";
|
|
8
8
|
import { randomUUID } from "crypto";
|
|
9
9
|
import { readFile, writeFile } from "fs/promises";
|
|
@@ -8125,7 +8125,7 @@ async function readMemoryHealth(path) {
|
|
|
8125
8125
|
};
|
|
8126
8126
|
}
|
|
8127
8127
|
async function emitMemoryHealthChanged(payload, timestamp) {
|
|
8128
|
-
const { initEventStore } = await import("./event-store-
|
|
8128
|
+
const { initEventStore } = await import("./event-store-ELqkVOn0.js");
|
|
8129
8129
|
await (await initEventStore()).appendAsync({
|
|
8130
8130
|
type: "memory.health_changed",
|
|
8131
8131
|
timestamp,
|
|
@@ -8232,4 +8232,4 @@ var init_providers = __esmMin((() => {
|
|
|
8232
8232
|
//#endregion
|
|
8233
8233
|
export { updateMemoryHealth as i, extractWithProviderPolicy as n, init_health as r, init_providers as t };
|
|
8234
8234
|
|
|
8235
|
-
//# sourceMappingURL=providers-
|
|
8235
|
+
//# sourceMappingURL=providers-evXhiQeg.js.map
|