@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
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
import { S as parsePullRequestRef, d as getPullRequestState, f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead, x as mergePullRequestWithApp } from "./github-app-CQ1Lo6LA.js";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { Data, Effect } from "effect";
|
|
5
|
+
import { tmpdir } from "node:os";
|
|
6
|
+
import { unlink, writeFile } from "node:fs/promises";
|
|
7
|
+
import { exec } from "node:child_process";
|
|
8
|
+
import { promisify } from "node:util";
|
|
9
|
+
//#region ../../lib/forge.ts
|
|
10
|
+
/**
|
|
11
|
+
* Parse a review-artifact URL into its forge type and numeric identifier.
|
|
12
|
+
* Detection is by path pattern (not host) so self-hosted GitLab is supported.
|
|
13
|
+
* Returns `null` for unrecognised input.
|
|
14
|
+
*/
|
|
15
|
+
function parseArtifactRef(url) {
|
|
16
|
+
if (!url) return null;
|
|
17
|
+
const gitlabMatch = url.match(/\/-\/merge_requests\/(\d+)(?:$|[/?#])/);
|
|
18
|
+
if (gitlabMatch) return {
|
|
19
|
+
forge: "gitlab",
|
|
20
|
+
number: Number.parseInt(gitlabMatch[1], 10)
|
|
21
|
+
};
|
|
22
|
+
const githubMatch = url.match(/\/pull\/(\d+)(?:$|[/?#])/);
|
|
23
|
+
if (githubMatch) return {
|
|
24
|
+
forge: "github",
|
|
25
|
+
number: Number.parseInt(githubMatch[1], 10)
|
|
26
|
+
};
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
async function withBodyFile(body, prefix, fn) {
|
|
30
|
+
if (!body) return fn(void 0);
|
|
31
|
+
const bodyFile = join(tmpdir(), `${prefix}-${Date.now()}.md`);
|
|
32
|
+
await writeFile(bodyFile, body, "utf-8");
|
|
33
|
+
try {
|
|
34
|
+
return await fn(bodyFile);
|
|
35
|
+
} finally {
|
|
36
|
+
await unlink(bodyFile).catch(() => {});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function buildRepositoryFlag(repository) {
|
|
40
|
+
return repository ? ` --repo ${repository}` : "";
|
|
41
|
+
}
|
|
42
|
+
function buildGitHubReviewTarget(input) {
|
|
43
|
+
return input.url || input.id || "";
|
|
44
|
+
}
|
|
45
|
+
function buildGitLabReviewTarget(input) {
|
|
46
|
+
return input.id || input.url || "";
|
|
47
|
+
}
|
|
48
|
+
function parseRepository(repository) {
|
|
49
|
+
const [owner, repo] = (repository ?? "").split("/");
|
|
50
|
+
return owner && repo ? {
|
|
51
|
+
owner,
|
|
52
|
+
repo
|
|
53
|
+
} : null;
|
|
54
|
+
}
|
|
55
|
+
async function getExistingGitHubArtifact(branchName, cwd, repository) {
|
|
56
|
+
const parsedRepo = parseRepository(repository);
|
|
57
|
+
if (isGitHubAppConfigured() && parsedRepo) {
|
|
58
|
+
const pr = (await Effect.runPromise(listPullRequestsForHead(parsedRepo.owner, parsedRepo.repo, branchName, "all")))[0];
|
|
59
|
+
if (!pr) return null;
|
|
60
|
+
return {
|
|
61
|
+
forge: "github",
|
|
62
|
+
created: false,
|
|
63
|
+
url: pr.url ?? `https://github.com/${parsedRepo.owner}/${parsedRepo.repo}/pull/${pr.number}`,
|
|
64
|
+
id: String(pr.number)
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const { stdout } = await execAsync(`gh pr view ${branchName}${buildRepositoryFlag(repository)} --json url,number 2>/dev/null || true`, {
|
|
68
|
+
cwd,
|
|
69
|
+
encoding: "utf-8"
|
|
70
|
+
});
|
|
71
|
+
const trimmed = stdout.trim();
|
|
72
|
+
if (!trimmed) return null;
|
|
73
|
+
const parsed = JSON.parse(trimmed);
|
|
74
|
+
return {
|
|
75
|
+
forge: "github",
|
|
76
|
+
created: false,
|
|
77
|
+
url: parsed.url,
|
|
78
|
+
id: parsed.number ? String(parsed.number) : void 0
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async function getExistingGitLabArtifact(branchName, cwd, repository) {
|
|
82
|
+
const { stdout } = await execAsync(`glab mr list --source-branch ${branchName}${buildRepositoryFlag(repository)} --output json 2>/dev/null || true`, {
|
|
83
|
+
cwd,
|
|
84
|
+
encoding: "utf-8"
|
|
85
|
+
});
|
|
86
|
+
const trimmed = stdout.trim();
|
|
87
|
+
if (!trimmed) return null;
|
|
88
|
+
const existing = JSON.parse(trimmed)[0];
|
|
89
|
+
if (!existing) return null;
|
|
90
|
+
return {
|
|
91
|
+
forge: "gitlab",
|
|
92
|
+
created: false,
|
|
93
|
+
url: existing.web_url,
|
|
94
|
+
id: existing.iid ? String(existing.iid) : void 0
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function matchesCurrentArtifact(input, artifact) {
|
|
98
|
+
return artifact.sourceBranch === void 0 || artifact.sourceBranch === input.sourceBranch ? (input.targetBranch === void 0 || artifact.targetBranch === input.targetBranch) && (input.headSha === void 0 || artifact.headSha === input.headSha) : false;
|
|
99
|
+
}
|
|
100
|
+
async function findMergedGitHubArtifact(input) {
|
|
101
|
+
const parsedRepo = parseRepository(input.repository);
|
|
102
|
+
const parsedId = input.artifactId ? Number.parseInt(input.artifactId, 10) : NaN;
|
|
103
|
+
const parsedUrl = parseArtifactRef(input.artifactUrl);
|
|
104
|
+
const exactNumber = Number.isFinite(parsedId) ? parsedId : parsedUrl?.forge === "github" ? parsedUrl.number : void 0;
|
|
105
|
+
if (isGitHubAppConfigured() && parsedRepo) {
|
|
106
|
+
if (Number.isFinite(exactNumber)) {
|
|
107
|
+
const state = await Effect.runPromise(getPullRequestState(parsedRepo.owner, parsedRepo.repo, exactNumber));
|
|
108
|
+
if (!state.merged || !matchesCurrentArtifact(input, {
|
|
109
|
+
sourceBranch: input.sourceBranch,
|
|
110
|
+
targetBranch: state.baseBranch,
|
|
111
|
+
headSha: state.headSha
|
|
112
|
+
})) return null;
|
|
113
|
+
return {
|
|
114
|
+
forge: "github",
|
|
115
|
+
created: false,
|
|
116
|
+
url: state.url ?? input.artifactUrl,
|
|
117
|
+
id: String(state.number)
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const prs = await Effect.runPromise(listPullRequestsForHead(parsedRepo.owner, parsedRepo.repo, input.sourceBranch, "all"));
|
|
121
|
+
for (const pr of prs.filter((candidate) => candidate.merged === true || candidate.mergedAt != null)) {
|
|
122
|
+
if (input.targetBranch === void 0 && input.headSha === void 0) return {
|
|
123
|
+
forge: "github",
|
|
124
|
+
created: false,
|
|
125
|
+
url: pr.url ?? `https://github.com/${parsedRepo.owner}/${parsedRepo.repo}/pull/${pr.number}`,
|
|
126
|
+
id: String(pr.number)
|
|
127
|
+
};
|
|
128
|
+
const state = await Effect.runPromise(getPullRequestState(parsedRepo.owner, parsedRepo.repo, pr.number));
|
|
129
|
+
if (state.merged && matchesCurrentArtifact(input, {
|
|
130
|
+
sourceBranch: input.sourceBranch,
|
|
131
|
+
targetBranch: state.baseBranch,
|
|
132
|
+
headSha: state.headSha
|
|
133
|
+
})) return {
|
|
134
|
+
forge: "github",
|
|
135
|
+
created: false,
|
|
136
|
+
url: state.url ?? pr.url,
|
|
137
|
+
id: String(pr.number)
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
if (Number.isFinite(exactNumber)) {
|
|
143
|
+
const { stdout } = await execAsync(`gh pr view ${input.artifactUrl || input.artifactId}${buildRepositoryFlag(input.repository)} --json url,number,state,mergedAt,headRefOid,baseRefName,headRefName`, {
|
|
144
|
+
cwd: input.cwd,
|
|
145
|
+
encoding: "utf-8",
|
|
146
|
+
timeout: FORGE_OBSERVATION_TIMEOUT_MS
|
|
147
|
+
});
|
|
148
|
+
const pr = JSON.parse(stdout.trim());
|
|
149
|
+
if (!pr.mergedAt || !matchesCurrentArtifact(input, {
|
|
150
|
+
sourceBranch: pr.headRefName,
|
|
151
|
+
targetBranch: pr.baseRefName,
|
|
152
|
+
headSha: pr.headRefOid
|
|
153
|
+
})) return null;
|
|
154
|
+
return {
|
|
155
|
+
forge: "github",
|
|
156
|
+
created: false,
|
|
157
|
+
url: pr.url,
|
|
158
|
+
id: pr.number ? String(pr.number) : input.artifactId
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
const { stdout } = await execAsync(`gh pr list --state merged --head ${input.sourceBranch}${buildRepositoryFlag(input.repository)} --json url,number,mergedAt,headRefOid,baseRefName,headRefName`, {
|
|
162
|
+
cwd: input.cwd,
|
|
163
|
+
encoding: "utf-8",
|
|
164
|
+
timeout: FORGE_OBSERVATION_TIMEOUT_MS
|
|
165
|
+
});
|
|
166
|
+
const merged = JSON.parse(stdout.trim() || "[]").find((pr) => pr.mergedAt && matchesCurrentArtifact(input, {
|
|
167
|
+
sourceBranch: pr.headRefName,
|
|
168
|
+
targetBranch: pr.baseRefName,
|
|
169
|
+
headSha: pr.headRefOid
|
|
170
|
+
}));
|
|
171
|
+
return merged ? {
|
|
172
|
+
forge: "github",
|
|
173
|
+
created: false,
|
|
174
|
+
url: merged.url,
|
|
175
|
+
id: merged.number ? String(merged.number) : void 0
|
|
176
|
+
} : null;
|
|
177
|
+
}
|
|
178
|
+
async function findMergedGitLabArtifact(input) {
|
|
179
|
+
const parsedId = input.artifactId ? Number.parseInt(input.artifactId, 10) : NaN;
|
|
180
|
+
const parsedUrl = parseArtifactRef(input.artifactUrl);
|
|
181
|
+
const target = Number.isFinite(parsedId) ? String(parsedId) : parsedUrl?.forge === "gitlab" ? String(parsedUrl.number) : void 0;
|
|
182
|
+
const { stdout } = await execAsync(target ? `glab mr view ${target}${buildRepositoryFlag(input.repository)} --output json` : `glab mr list --source-branch ${input.sourceBranch}${buildRepositoryFlag(input.repository)} --all --output json`, {
|
|
183
|
+
cwd: input.cwd,
|
|
184
|
+
encoding: "utf-8",
|
|
185
|
+
timeout: FORGE_OBSERVATION_TIMEOUT_MS
|
|
186
|
+
});
|
|
187
|
+
const merged = (target ? [JSON.parse(stdout.trim())] : JSON.parse(stdout.trim() || "[]")).find((artifact) => artifact.state === "merged" && matchesCurrentArtifact(input, {
|
|
188
|
+
sourceBranch: artifact.source_branch,
|
|
189
|
+
targetBranch: artifact.target_branch,
|
|
190
|
+
headSha: artifact.sha
|
|
191
|
+
}));
|
|
192
|
+
return merged ? {
|
|
193
|
+
forge: "gitlab",
|
|
194
|
+
created: false,
|
|
195
|
+
url: merged.web_url,
|
|
196
|
+
id: merged.iid ? String(merged.iid) : input.artifactId
|
|
197
|
+
} : null;
|
|
198
|
+
}
|
|
199
|
+
function delay(ms) {
|
|
200
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
201
|
+
}
|
|
202
|
+
function isTransientGitHubMergeState(state) {
|
|
203
|
+
if (state.merged) return false;
|
|
204
|
+
if (state.draft) return false;
|
|
205
|
+
if (state.checksFailed) return false;
|
|
206
|
+
if (state.checksPending) return true;
|
|
207
|
+
if (state.mergeable === null) return true;
|
|
208
|
+
return [
|
|
209
|
+
"unknown",
|
|
210
|
+
"blocked",
|
|
211
|
+
"behind",
|
|
212
|
+
"unstable",
|
|
213
|
+
"has_hooks"
|
|
214
|
+
].includes(state.mergeableState || "");
|
|
215
|
+
}
|
|
216
|
+
function getForgeAdapter(forge) {
|
|
217
|
+
return forge === "gitlab" ? gitlabForgeAdapter : githubForgeAdapter;
|
|
218
|
+
}
|
|
219
|
+
var execAsync, GITHUB_MERGE_POLL_INTERVAL_MS, FORGE_OBSERVATION_TIMEOUT_MS, GITHUB_MERGE_TIMEOUT_MS, githubForgeAdapter, gitlabForgeAdapter;
|
|
220
|
+
var init_forge = __esmMin((() => {
|
|
221
|
+
init_github_app();
|
|
222
|
+
Data.TaggedError("ForgeError");
|
|
223
|
+
execAsync = promisify(exec);
|
|
224
|
+
GITHUB_MERGE_POLL_INTERVAL_MS = 5e3;
|
|
225
|
+
FORGE_OBSERVATION_TIMEOUT_MS = 3e4;
|
|
226
|
+
GITHUB_MERGE_TIMEOUT_MS = 900 * 1e3;
|
|
227
|
+
githubForgeAdapter = {
|
|
228
|
+
forge: "github",
|
|
229
|
+
async createReviewArtifact(input) {
|
|
230
|
+
const existing = await getExistingGitHubArtifact(input.sourceBranch, input.cwd, input.repository);
|
|
231
|
+
if (existing) return existing;
|
|
232
|
+
return withBodyFile(input.body, "pan-gh-pr-body", async (bodyFile) => {
|
|
233
|
+
const bodyFlag = bodyFile ? ` --body-file "${bodyFile}"` : "";
|
|
234
|
+
const { stdout } = await execAsync(`gh pr create --head ${input.sourceBranch} --base ${input.targetBranch} --title "${input.title}"${bodyFlag}${buildRepositoryFlag(input.repository)}`, {
|
|
235
|
+
cwd: input.cwd,
|
|
236
|
+
encoding: "utf-8"
|
|
237
|
+
});
|
|
238
|
+
return {
|
|
239
|
+
forge: "github",
|
|
240
|
+
created: true,
|
|
241
|
+
url: stdout.trim().split("\n").pop()?.trim() || stdout.trim(),
|
|
242
|
+
id: (await getExistingGitHubArtifact(input.sourceBranch, input.cwd, input.repository))?.id
|
|
243
|
+
};
|
|
244
|
+
});
|
|
245
|
+
},
|
|
246
|
+
async mergeReviewArtifact(input) {
|
|
247
|
+
const target = buildGitHubReviewTarget(input);
|
|
248
|
+
const method = input.method || "squash";
|
|
249
|
+
console.log(`[forge] mergeReviewArtifact: ${input.forge} ${target} method=${method} repo=${input.repository ?? "default"}`);
|
|
250
|
+
if (!isGitHubAppConfigured()) try {
|
|
251
|
+
console.log(`[forge] gh pr merge: executing ${method} merge for ${target}`);
|
|
252
|
+
await execAsync(`gh pr merge ${target}${buildRepositoryFlag(input.repository)} --${method}`, {
|
|
253
|
+
cwd: input.cwd,
|
|
254
|
+
encoding: "utf-8"
|
|
255
|
+
});
|
|
256
|
+
console.log(`[forge] gh pr merge: completed successfully for ${target}`);
|
|
257
|
+
return;
|
|
258
|
+
} catch (err) {
|
|
259
|
+
console.error(`[forge] gh pr merge: failed for ${target}: exitCode=${err.code} message=${err.message}`);
|
|
260
|
+
throw err;
|
|
261
|
+
}
|
|
262
|
+
const ref = parsePullRequestRef(input);
|
|
263
|
+
const deadline = Date.now() + GITHUB_MERGE_TIMEOUT_MS;
|
|
264
|
+
console.log(`[forge] mergeReviewArtifact: GitHub App path for ${ref.owner}/${ref.repo}#${ref.number}, timeout=${GITHUB_MERGE_TIMEOUT_MS}ms`);
|
|
265
|
+
while (Date.now() < deadline) {
|
|
266
|
+
const state = await Effect.runPromise(getPullRequestState(ref.owner, ref.repo, ref.number));
|
|
267
|
+
console.log(`[forge] mergeReviewArtifact: PR #${ref.number} state=${state.state} merged=${state.merged} draft=${state.draft} checksFailed=${state.checksFailed}`);
|
|
268
|
+
if (state.merged) return;
|
|
269
|
+
if (state.state !== "OPEN") throw new Error(`GitHub PR #${ref.number} is closed but not merged`);
|
|
270
|
+
if (state.draft) throw new Error(`GitHub PR #${ref.number} is still marked as draft`);
|
|
271
|
+
if (state.checksFailed) throw new Error(`GitHub PR #${ref.number} has failing required checks`);
|
|
272
|
+
if (isTransientGitHubMergeState(state)) {
|
|
273
|
+
await delay(GITHUB_MERGE_POLL_INTERVAL_MS);
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
const mergeResult = await Effect.runPromise(mergePullRequestWithApp(ref.owner, ref.repo, ref.number, method, state.headSha || void 0));
|
|
278
|
+
console.log(`[forge] mergePullRequestWithApp: result merged=${mergeResult.merged} for ${ref.owner}/${ref.repo}#${ref.number}`);
|
|
279
|
+
if (mergeResult.merged) return;
|
|
280
|
+
} catch (err) {
|
|
281
|
+
const message = String(err?.message || err);
|
|
282
|
+
console.error(`[forge] mergePullRequestWithApp: threw for ${ref.number}: ${message}`);
|
|
283
|
+
if (message.includes("405") || message.includes("409") || message.includes("422") || message.includes("not mergeable") || message.includes("Base branch was modified") || message.includes("required status check") || message.includes("Head branch was modified")) {
|
|
284
|
+
await delay(GITHUB_MERGE_POLL_INTERVAL_MS);
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
throw err;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
throw new Error(`Timed out waiting for GitHub PR #${ref.number} to become mergeable`);
|
|
291
|
+
},
|
|
292
|
+
async commentOnArtifact(input) {
|
|
293
|
+
const target = buildGitHubReviewTarget(input);
|
|
294
|
+
await withBodyFile(input.body, "pan-gh-pr-comment", async (bodyFile) => {
|
|
295
|
+
const bodyFlag = bodyFile ? ` --body-file "${bodyFile}"` : ` --body "${input.body.replace(/"/g, "\\\"")}"`;
|
|
296
|
+
await execAsync(`gh pr comment ${target}${buildRepositoryFlag(input.repository)}${bodyFlag}`, {
|
|
297
|
+
cwd: input.cwd,
|
|
298
|
+
encoding: "utf-8"
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
},
|
|
302
|
+
async approveReviewArtifact(input) {
|
|
303
|
+
await execAsync(`gh pr review ${buildGitHubReviewTarget(input)} --approve${buildRepositoryFlag(input.repository)}`, {
|
|
304
|
+
cwd: input.cwd,
|
|
305
|
+
encoding: "utf-8"
|
|
306
|
+
});
|
|
307
|
+
},
|
|
308
|
+
async discoverArtifact(input) {
|
|
309
|
+
return getExistingGitHubArtifact(input.sourceBranch, input.cwd, input.repository);
|
|
310
|
+
},
|
|
311
|
+
async findMergedArtifact(input) {
|
|
312
|
+
return findMergedGitHubArtifact(input);
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
gitlabForgeAdapter = {
|
|
316
|
+
forge: "gitlab",
|
|
317
|
+
async createReviewArtifact(input) {
|
|
318
|
+
const existing = await getExistingGitLabArtifact(input.sourceBranch, input.cwd, input.repository);
|
|
319
|
+
if (existing) return existing;
|
|
320
|
+
const bodyEnv = input.body ? { PAN_MR_BODY: input.body } : {};
|
|
321
|
+
const bodyFlag = input.body ? " --description \"$PAN_MR_BODY\"" : "";
|
|
322
|
+
let stdout;
|
|
323
|
+
try {
|
|
324
|
+
({stdout} = await execAsync(`glab mr create --source-branch ${input.sourceBranch} --target-branch ${input.targetBranch} --title "${input.title}"${bodyFlag}${buildRepositoryFlag(input.repository)}`, {
|
|
325
|
+
cwd: input.cwd,
|
|
326
|
+
encoding: "utf-8",
|
|
327
|
+
env: {
|
|
328
|
+
...process.env,
|
|
329
|
+
...bodyEnv
|
|
330
|
+
},
|
|
331
|
+
shell: "/bin/bash"
|
|
332
|
+
}));
|
|
333
|
+
} catch (error) {
|
|
334
|
+
const message = String(error?.message ?? error);
|
|
335
|
+
if (message.includes("409") && message.includes("open merge request already exists")) {
|
|
336
|
+
const existingAfterConflict = await getExistingGitLabArtifact(input.sourceBranch, input.cwd, input.repository);
|
|
337
|
+
if (existingAfterConflict) return existingAfterConflict;
|
|
338
|
+
}
|
|
339
|
+
throw error;
|
|
340
|
+
}
|
|
341
|
+
return {
|
|
342
|
+
forge: "gitlab",
|
|
343
|
+
created: true,
|
|
344
|
+
url: stdout.trim().split("\n").pop()?.trim() || stdout.trim(),
|
|
345
|
+
id: (await getExistingGitLabArtifact(input.sourceBranch, input.cwd, input.repository))?.id
|
|
346
|
+
};
|
|
347
|
+
},
|
|
348
|
+
async mergeReviewArtifact(input) {
|
|
349
|
+
const target = buildGitLabReviewTarget(input);
|
|
350
|
+
const squashFlag = input.method === "squash" || !input.method ? " --squash" : "";
|
|
351
|
+
await execAsync(`glab mr merge ${target}${buildRepositoryFlag(input.repository)}${squashFlag}`, {
|
|
352
|
+
cwd: input.cwd,
|
|
353
|
+
encoding: "utf-8"
|
|
354
|
+
});
|
|
355
|
+
},
|
|
356
|
+
async commentOnArtifact(input) {
|
|
357
|
+
const target = buildGitLabReviewTarget(input);
|
|
358
|
+
await withBodyFile(input.body, "pan-gl-mr-comment", async (bodyFile) => {
|
|
359
|
+
const bodyFlag = bodyFile ? ` --message-file "${bodyFile}"` : ` --message "${input.body.replace(/"/g, "\\\"")}"`;
|
|
360
|
+
await execAsync(`glab mr note ${target}${buildRepositoryFlag(input.repository)}${bodyFlag}`, {
|
|
361
|
+
cwd: input.cwd,
|
|
362
|
+
encoding: "utf-8"
|
|
363
|
+
});
|
|
364
|
+
});
|
|
365
|
+
},
|
|
366
|
+
async approveReviewArtifact(input) {
|
|
367
|
+
await execAsync(`glab mr approve ${buildGitLabReviewTarget(input)}${buildRepositoryFlag(input.repository)}`, {
|
|
368
|
+
cwd: input.cwd,
|
|
369
|
+
encoding: "utf-8"
|
|
370
|
+
});
|
|
371
|
+
},
|
|
372
|
+
async discoverArtifact(input) {
|
|
373
|
+
return getExistingGitLabArtifact(input.sourceBranch, input.cwd, input.repository);
|
|
374
|
+
},
|
|
375
|
+
async findMergedArtifact(input) {
|
|
376
|
+
return findMergedGitLabArtifact(input);
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
}));
|
|
380
|
+
//#endregion
|
|
381
|
+
export { parseArtifactRef as i, getForgeAdapter as n, init_forge as r, GITHUB_MERGE_TIMEOUT_MS as t };
|
|
382
|
+
|
|
383
|
+
//# sourceMappingURL=forge-CZbSg6Ds.js.map
|
|
@@ -3841,4 +3841,4 @@ var init_from = __esmMin((() => {
|
|
|
3841
3841
|
//#endregion
|
|
3842
3842
|
export { File as a, init_esm_min as i, FormData as n, Blob as o, formDataToBlob as r, init_fetch_blob as s, init_from as t };
|
|
3843
3843
|
|
|
3844
|
-
//# sourceMappingURL=from-
|
|
3844
|
+
//# sourceMappingURL=from-D_4_dk7i.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-
|
|
2
|
+
import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-BdewJ_g9.js";
|
|
3
3
|
import { Worker } from "node:worker_threads";
|
|
4
4
|
//#region ../../lib/memory/fts-db.ts
|
|
5
5
|
async function getMemoryFtsDatabase(projectId) {
|
|
@@ -143,4 +143,4 @@ var init_fts_db = __esmMin((() => {
|
|
|
143
143
|
//#endregion
|
|
144
144
|
export { withMemoryFtsDatabase as a, runMemoryFtsTransaction as i, init_fts_db as n, runMemoryFtsStatement as r, closeMemoryFtsDatabases as t };
|
|
145
145
|
|
|
146
|
-
//# sourceMappingURL=fts-db-
|
|
146
|
+
//# sourceMappingURL=fts-db-BeOomFa-.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
2
|
import { n as openDatabase, t as init_driver } from "./driver-CKVGi51s.js";
|
|
3
|
-
import { i as init_paths, o as resolveFtsDbPath } from "./paths-
|
|
3
|
+
import { i as init_paths, o as resolveFtsDbPath } from "./paths-cXmOwSbh.js";
|
|
4
4
|
import { dirname } from "node:path";
|
|
5
5
|
import { mkdirSync } from "node:fs";
|
|
6
6
|
//#region ../../lib/memory/fts-operations.ts
|
|
@@ -131,4 +131,4 @@ var init_fts_operations = __esmMin((() => {
|
|
|
131
131
|
//#endregion
|
|
132
132
|
export { runMemoryFtsTransactionSync as a, runMemoryFtsStatementSync as i, getMemoryFtsDatabaseSync as n, init_fts_operations as r, closeMemoryFtsDatabasesInProcess as t };
|
|
133
133
|
|
|
134
|
-
//# sourceMappingURL=fts-operations-
|
|
134
|
+
//# sourceMappingURL=fts-operations-BdewJ_g9.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { a as init_git_utils, c as rehydrateHeadAnchor, i as hasStaleLocks, l as renderWorkspaceGitShowPromise, n as formatAnchorShort, o as parseCompositeSnapshot, r as getWorkspaceGitInfo, s as parseWorkspaceHeadAnchor, t as cleanupStaleLocks, u as snapshotWorkspaceHeadsPromise } from "./git-utils-ameCgDdy.js";
|
|
2
|
+
init_git_utils();
|
|
3
|
+
export { cleanupStaleLocks, formatAnchorShort, getWorkspaceGitInfo, hasStaleLocks, parseCompositeSnapshot, parseWorkspaceHeadAnchor, rehydrateHeadAnchor, renderWorkspaceGitShowPromise, snapshotWorkspaceHeadsPromise };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Er as GitError, Fr as init_errors, Tr as FsError } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
import { existsSync, readdirSync, unlinkSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -171,7 +171,7 @@ async function renderWorkspaceGitShowPromise(issueId, workspacePath, anchor, arg
|
|
|
171
171
|
const entries = parseWorkspaceHeadAnchor(anchor);
|
|
172
172
|
if (!entries) return gitShow(workspacePath, anchor.trim(), args);
|
|
173
173
|
if (!issueId) throw new Error(`Cannot resolve composite workspace head anchor '${anchor}' without an issue id`);
|
|
174
|
-
const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-
|
|
174
|
+
const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-CRE6Ykow.js");
|
|
175
175
|
const rootsByKey = new Map(resolveWorkspaceRepoRootsSync(issueId, workspacePath).map((root) => [root.repoKey, root]));
|
|
176
176
|
return (await Promise.all(entries.map(async ({ repoKey, sha }) => {
|
|
177
177
|
const root = rootsByKey.get(repoKey);
|
|
@@ -191,6 +191,27 @@ async function getWorkspaceGitInfoPromise(workspacePath) {
|
|
|
191
191
|
throw new Error(`getWorkspaceGitInfo failed for ${workspacePath}: ${msg}`);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
+
/** Rehydrate a persisted anchor after it crosses an unbranded storage boundary. */
|
|
195
|
+
function rehydrateHeadAnchor(anchor) {
|
|
196
|
+
return anchor;
|
|
197
|
+
}
|
|
198
|
+
function parseCompositeSnapshot(snapshot) {
|
|
199
|
+
const heads = /* @__PURE__ */ new Map();
|
|
200
|
+
if (!snapshot) return heads;
|
|
201
|
+
for (const token of snapshot.split(/\s+/)) {
|
|
202
|
+
const separator = token.lastIndexOf("@");
|
|
203
|
+
if (separator <= 0 || separator === token.length - 1) continue;
|
|
204
|
+
heads.set(token.slice(0, separator), token.slice(separator + 1));
|
|
205
|
+
}
|
|
206
|
+
return heads;
|
|
207
|
+
}
|
|
208
|
+
function formatAnchorShort(anchor) {
|
|
209
|
+
return anchor.split(/\s+/).map((token) => {
|
|
210
|
+
const separator = token.lastIndexOf("@");
|
|
211
|
+
if (separator <= 0 || separator === token.length - 1) return token.substring(0, 8);
|
|
212
|
+
return `${token.slice(0, separator)}@${token.slice(separator + 1, separator + 9)}`;
|
|
213
|
+
}).join(" ");
|
|
214
|
+
}
|
|
194
215
|
/**
|
|
195
216
|
* Snapshot the code HEAD(s) of a workspace for drift comparison (PAN-2948).
|
|
196
217
|
*
|
|
@@ -202,9 +223,13 @@ async function getWorkspaceGitInfoPromise(workspacePath) {
|
|
|
202
223
|
* "no drift" forever. Composite snapshots compare equal iff every sub-repo
|
|
203
224
|
* head is unchanged; consumers that try to use the anchor as a git ref fail
|
|
204
225
|
* the ref lookup and fall back to their conservative full-rerun path.
|
|
226
|
+
*
|
|
227
|
+
* Its branded return value is the only legitimate source for reviewedAtCommit,
|
|
228
|
+
* lastVerifiedCommit, and roleRunHead. Persisted values regain that brand only
|
|
229
|
+
* through rehydrateHeadAnchor at an explicitly documented storage boundary.
|
|
205
230
|
*/
|
|
206
231
|
async function snapshotWorkspaceHeadsPromise(issueId, workspacePath) {
|
|
207
|
-
const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-
|
|
232
|
+
const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-CRE6Ykow.js");
|
|
208
233
|
const roots = resolveWorkspaceRepoRootsSync(issueId, workspacePath);
|
|
209
234
|
const isPolyrepo = roots.some((root) => root.isPolyrepo);
|
|
210
235
|
const heads = [];
|
|
@@ -258,6 +283,6 @@ var init_git_utils = __esmMin((() => {
|
|
|
258
283
|
hasStaleLocks = (repoPath) => Effect.promise(() => hasStaleLocksPromise(repoPath));
|
|
259
284
|
}));
|
|
260
285
|
//#endregion
|
|
261
|
-
export {
|
|
286
|
+
export { init_git_utils as a, rehydrateHeadAnchor as c, hasStaleLocks as i, renderWorkspaceGitShowPromise as l, formatAnchorShort as n, parseCompositeSnapshot as o, getWorkspaceGitInfo as r, parseWorkspaceHeadAnchor as s, cleanupStaleLocks as t, snapshotWorkspaceHeadsPromise as u };
|
|
262
287
|
|
|
263
|
-
//# sourceMappingURL=git-utils-
|
|
288
|
+
//# sourceMappingURL=git-utils-ameCgDdy.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Dr as GitHubApiError, Fr as init_errors, Tr as FsError, wr as ConfigError } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
import { existsSync, readFileSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -200,7 +200,7 @@ function generateJWT(appId, privateKey) {
|
|
|
200
200
|
})).toString("base64url");
|
|
201
201
|
const payload = Buffer.from(JSON.stringify({
|
|
202
202
|
iat: now - 60,
|
|
203
|
-
exp: now +
|
|
203
|
+
exp: now + 540,
|
|
204
204
|
iss: appId
|
|
205
205
|
})).toString("base64url");
|
|
206
206
|
const signer = createSign("SHA256");
|
|
@@ -664,4 +664,4 @@ var init_github_app = __esmMin((() => {
|
|
|
664
664
|
//#endregion
|
|
665
665
|
export { createSettledTtlPromiseCache as A, postOverdeckTestsStatus as C, init_advisory_checks as D, verifyAppCanMerge as E, withConcurrencyLimit as M, withConcurrencyLimitPromise as N, isAdvisoryCheckName as O, parsePullRequestRef as S, reportCommitStatus as T, listOpenIssuesWithLabelsPromise as _, getCiCheckRunsState as a, loadGitHubAppConfig as b, getIssueStatePromise as c, getPullRequestState as d, init_github_app as f, listOpenIssuesWithLabels as g, listIssuesWithAnyLabelPromise as h, getBotIdentity as i, init_concurrency as j, createPromiseConcurrencyLimiter as k, getMergeBackendStatus as l, isIntegrationPermissionError as m, generateInstallationToken as n, getCiCheckRunsStatePromise as o, isGitHubAppConfigured as p, getAppStatus as r, getIssueState as s, configureWorkspaceForBot as t, getPullRequestHeadState as u, listPullRequestsForHead as v, refreshWorkspaceToken as w, mergePullRequestWithApp as x, listPullRequestsForHeadPromise as y };
|
|
666
666
|
|
|
667
|
-
//# sourceMappingURL=github-app-
|
|
667
|
+
//# sourceMappingURL=github-app-CQ1Lo6LA.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as postOverdeckTestsStatus, E as verifyAppCanMerge, S as parsePullRequestRef, T as reportCommitStatus, _ as listOpenIssuesWithLabelsPromise, a as getCiCheckRunsState, b as loadGitHubAppConfig, c as getIssueStatePromise, d as getPullRequestState, f as init_github_app, g as listOpenIssuesWithLabels, h as listIssuesWithAnyLabelPromise, i as getBotIdentity, l as getMergeBackendStatus, m as isIntegrationPermissionError, n as generateInstallationToken, o as getCiCheckRunsStatePromise, p as isGitHubAppConfigured, r as getAppStatus, s as getIssueState, t as configureWorkspaceForBot, u as getPullRequestHeadState, v as listPullRequestsForHead, w as refreshWorkspaceToken, x as mergePullRequestWithApp, y as listPullRequestsForHeadPromise } from "./github-app-
|
|
1
|
+
import { C as postOverdeckTestsStatus, E as verifyAppCanMerge, S as parsePullRequestRef, T as reportCommitStatus, _ as listOpenIssuesWithLabelsPromise, a as getCiCheckRunsState, b as loadGitHubAppConfig, c as getIssueStatePromise, d as getPullRequestState, f as init_github_app, g as listOpenIssuesWithLabels, h as listIssuesWithAnyLabelPromise, i as getBotIdentity, l as getMergeBackendStatus, m as isIntegrationPermissionError, n as generateInstallationToken, o as getCiCheckRunsStatePromise, p as isGitHubAppConfigured, r as getAppStatus, s as getIssueState, t as configureWorkspaceForBot, u as getPullRequestHeadState, v as listPullRequestsForHead, w as refreshWorkspaceToken, x as mergePullRequestWithApp, y as listPullRequestsForHeadPromise } from "./github-app-CQ1Lo6LA.js";
|
|
2
2
|
init_github_app();
|
|
3
3
|
export { configureWorkspaceForBot, generateInstallationToken, getAppStatus, getBotIdentity, getCiCheckRunsState, getCiCheckRunsStatePromise, getIssueState, getIssueStatePromise, getMergeBackendStatus, getPullRequestHeadState, getPullRequestState, isGitHubAppConfigured, isIntegrationPermissionError, listIssuesWithAnyLabelPromise, listOpenIssuesWithLabels, listOpenIssuesWithLabelsPromise, listPullRequestsForHead, listPullRequestsForHeadPromise, loadGitHubAppConfig, mergePullRequestWithApp, parsePullRequestRef, postOverdeckTestsStatus, refreshWorkspaceToken, reportCommitStatus, verifyAppCanMerge };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
2
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DZ8Zn2nQ.js";
|
|
3
3
|
import { a as RateLimited, c as TrackerNotConfigured, d as init_typed_errors, r as IssueNotFound, s as TrackerApiError } from "./typed-errors-2BTMxkZq.js";
|
|
4
4
|
import { Context, Effect, Layer } from "effect";
|
|
5
5
|
//#region services/github-client.ts
|
|
@@ -241,4 +241,4 @@ var init_github_client = __esmMin((() => {
|
|
|
241
241
|
//#endregion
|
|
242
242
|
export { init_github_client as i, GitHubClientLive as n, GitHubClientOptionalLive as r, GitHubClient as t };
|
|
243
243
|
|
|
244
|
-
//# sourceMappingURL=github-client-
|
|
244
|
+
//# sourceMappingURL=github-client-BfyDxuRN.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as init_github_client, n as GitHubClientLive, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-
|
|
1
|
+
import { i as init_github_client, n as GitHubClientLive, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-BfyDxuRN.js";
|
|
2
2
|
init_github_client();
|
|
3
3
|
export { GitHubClient, GitHubClientLive, GitHubClientOptionalLive };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-CQ1Lo6LA.js";
|
|
3
|
+
import { Effect } from "effect";
|
|
4
|
+
import { execFile } from "node:child_process";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
//#region ../../lib/github-pr-lookup.ts
|
|
7
|
+
function githubPrLookupSource() {
|
|
8
|
+
return isGitHubAppConfigured() ? "GitHub App PR lookup" : "gh pr list";
|
|
9
|
+
}
|
|
10
|
+
async function lookupPullRequestForBranch(owner, repo, branchName) {
|
|
11
|
+
if (isGitHubAppConfigured()) {
|
|
12
|
+
const pr = (await Effect.runPromise(listPullRequestsForHead(owner, repo, branchName, "all")))[0];
|
|
13
|
+
if (!pr) return null;
|
|
14
|
+
return {
|
|
15
|
+
number: pr.number,
|
|
16
|
+
state: pr.merged ? "MERGED" : pr.state.toUpperCase(),
|
|
17
|
+
mergedAt: pr.mergedAt
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const { stdout } = await execFileAsync("gh", [
|
|
21
|
+
"pr",
|
|
22
|
+
"list",
|
|
23
|
+
"--repo",
|
|
24
|
+
`${owner}/${repo}`,
|
|
25
|
+
"--head",
|
|
26
|
+
branchName,
|
|
27
|
+
"--state",
|
|
28
|
+
"all",
|
|
29
|
+
"--json",
|
|
30
|
+
"number,state,mergedAt",
|
|
31
|
+
"--limit",
|
|
32
|
+
"1"
|
|
33
|
+
], {
|
|
34
|
+
encoding: "utf-8",
|
|
35
|
+
timeout: 15e3
|
|
36
|
+
});
|
|
37
|
+
const trimmed = stdout.trim();
|
|
38
|
+
if (!trimmed) return null;
|
|
39
|
+
const [pr] = JSON.parse(trimmed);
|
|
40
|
+
if (!pr || !Number.isFinite(pr.number)) return null;
|
|
41
|
+
return {
|
|
42
|
+
number: pr.number,
|
|
43
|
+
state: typeof pr.state === "string" ? pr.state.toUpperCase() : "CLOSED",
|
|
44
|
+
mergedAt: typeof pr.mergedAt === "string" ? pr.mergedAt : null
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async function lookupPullRequestNumberForBranch(owner, repo, branchName) {
|
|
48
|
+
return (await lookupPullRequestForBranch(owner, repo, branchName))?.number ?? null;
|
|
49
|
+
}
|
|
50
|
+
var execFileAsync;
|
|
51
|
+
var init_github_pr_lookup = __esmMin((() => {
|
|
52
|
+
init_github_app();
|
|
53
|
+
execFileAsync = promisify(execFile);
|
|
54
|
+
}));
|
|
55
|
+
//#endregion
|
|
56
|
+
export { lookupPullRequestNumberForBranch as i, init_github_pr_lookup as n, lookupPullRequestForBranch as r, githubPrLookupSource as t };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=github-pr-lookup-BDq6Wznz.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-
|
|
2
|
+
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { delimiter, dirname, isAbsolute, join, resolve } from "node:path";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
5
|
import { constants } from "node:fs";
|
|
@@ -129,4 +129,4 @@ var init_harness_binary = __esmMin((() => {
|
|
|
129
129
|
//#endregion
|
|
130
130
|
export { resolveExecutable as a, prepareHarnessLaunch as i, harnessBinaryName as n, resolveHarnessBinary as o, init_harness_binary as r, configuredHarnessBinaryPath as t };
|
|
131
131
|
|
|
132
|
-
//# sourceMappingURL=harness-binary-
|
|
132
|
+
//# sourceMappingURL=harness-binary-DqkftwTb.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { A as canUseHarnessSync, H as init_providers, M as init_harness_policy, R as getBuiltInDefaultHarness, V as getProviderForModelSync, f as loadConfigSync, j as canUseModelWithAuthSync, t as init_config_yaml } from "./config-yaml-
|
|
3
|
-
import { n as harnessBinaryName, o as resolveHarnessBinary, r as init_harness_binary, t as configuredHarnessBinaryPath } from "./harness-binary-
|
|
2
|
+
import { A as canUseHarnessSync, H as init_providers, M as init_harness_policy, R as getBuiltInDefaultHarness, V as getProviderForModelSync, f as loadConfigSync, j as canUseModelWithAuthSync, t as init_config_yaml } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { n as harnessBinaryName, o as resolveHarnessBinary, r as init_harness_binary, t as configuredHarnessBinaryPath } from "./harness-binary-DqkftwTb.js";
|
|
4
4
|
//#region ../../lib/harness-resolve.ts
|
|
5
5
|
async function getProviderAuthModeForModel(model) {
|
|
6
|
-
const { getProviderAuthMode } = await import("./agents-
|
|
6
|
+
const { getProviderAuthMode } = await import("./agents-BKKkxKgK.js");
|
|
7
7
|
return getProviderAuthMode(model);
|
|
8
8
|
}
|
|
9
9
|
function assertHarnessProviderSupported(harness, provider) {
|
|
@@ -72,4 +72,4 @@ var init_harness_resolve = __esmMin((() => {
|
|
|
72
72
|
//#endregion
|
|
73
73
|
export { resolveHarness as n, init_harness_resolve as t };
|
|
74
74
|
|
|
75
|
-
//# sourceMappingURL=harness-resolve-
|
|
75
|
+
//# sourceMappingURL=harness-resolve-CqMqM1Mb.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
1
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BjuxvjdS.js";
|
|
2
2
|
//#region ../../lib/overdeck/health-events.ts
|
|
3
3
|
init_infra();
|
|
4
4
|
function parseMetadata(row) {
|
|
@@ -66,4 +66,4 @@ function getHealthHistory(agentId, startTime, endTime) {
|
|
|
66
66
|
//#endregion
|
|
67
67
|
export { getLatestHealthEvent as n, writeHealthEvent as r, getHealthHistory as t };
|
|
68
68
|
|
|
69
|
-
//# sourceMappingURL=health-events-
|
|
69
|
+
//# sourceMappingURL=health-events-CazRxJUS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as getLatestHealthEvent, r as writeHealthEvent, t as getHealthHistory } from "./health-events-
|
|
1
|
+
import { n as getLatestHealthEvent, r as writeHealthEvent, t as getHealthHistory } from "./health-events-CazRxJUS.js";
|
|
2
2
|
export { getHealthHistory, getLatestHealthEvent, writeHealthEvent };
|