@overdeck/desktop 0.45.23 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drizzle/overdeck/0000_overdeck_init.sql +34 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-CCwFGICj.js} +2 -2
- package/server/activity-logger-CMthG6Vd.js +3 -0
- package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
- package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-De1L-Sb4.js} +6 -6
- package/server/{agent-gc-BV1q_2EV.js → agent-gc-CBULruzm.js} +5 -5
- package/server/agent-state-VQk8fY9F.js +3 -0
- package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BlnSkRFA.js} +5 -5
- package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-hZpxIw1E.js} +1 -1
- package/server/agents-BKKkxKgK.js +3 -0
- package/server/{agents-B4Bjbkfv.js → agents-C5rWYhb6.js} +4 -4
- package/server/archive-planning-0FJ6Xd3b.js +2 -0
- package/server/{archive-planning-DYrYojxl.js → archive-planning-C0lAbNB_.js} +16 -24
- package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
- package/server/assemble-DnffNpOo.js +339 -0
- package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
- package/server/{behavior-B_-4EKF3.js → behavior-CfIg6pKp.js} +2 -2
- package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
- package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-DHmCSLar.js} +2 -2
- package/server/{build-info-DgTqZkL5.js → build-info-BP160gU7.js} +1 -1
- package/server/{build-info-BT096lEl.js → build-info-CuFfxZxp.js} +5 -3
- package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-DEWD82qK.js} +2 -2
- package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-C-AXLfYT.js → checkpoints-CZvbtLnr.js} +2 -2
- package/server/{checkpoints-CpgCjAlN.js → checkpoints-DMTgXuLG.js} +1 -1
- package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-CN-xo-do.js} +1 -1
- package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
- package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-CN0cSCPp.js} +2 -2
- package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
- package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-Dabi9slj.js} +1 -1
- package/server/cli-DmXETsw-.js +3 -0
- package/server/{cli-vBeXbPrq.js → cli-oCWYA1pE.js} +9 -9
- package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8mB3KuB.js} +2 -2
- package/server/{cliproxy-DW0V86F8.js → cliproxy-PGwTX_o8.js} +1 -1
- package/server/{close-issue-Dn_4c4G8.js → close-issue-D5MF5GqF.js} +5 -5
- package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
- package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Cltx86x5.js} +37 -16
- package/server/{codex-Dg7Is5yb.js → codex-BdEsUFWh.js} +1 -1
- package/server/{codex-TmSi-yTv.js → codex-Drlf5Xhf.js} +37 -8
- package/server/{codex-parser-C4gSH-IR.js → codex-parser-DpB89Vqa.js} +2 -2
- package/server/compaction-continuation-K2AxQX4H.js +200 -0
- package/server/{config-DjLOdbgT.js → config-B2IMcBxx.js} +4 -3
- package/server/{config-DUIhMN_T.js → config-DV-grfQc.js} +1 -1
- package/server/{config-CCvjQf27.js → config-Dr3pW6w6.js} +2 -2
- package/server/{config-yaml-DvyMuOle.js → config-yaml-CmOPzmBb.js} +290 -22
- package/server/{conflict-gate-CmrYpa47.js → conflict-gate-B9cN3SBi.js} +4 -4
- package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-Dh754uyA.js} +1 -1
- package/server/context-layers-D6LZo3l1.js +4 -0
- package/server/context-layers-dR5YxHYB.js +37 -0
- package/server/{control-settings-aP1ANIlI.js → control-settings-C7DUehE1.js} +49 -19
- package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-BoqdDXWF.js} +8 -8
- package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
- package/server/{conversation-service-Du-MTNpJ.js → conversation-service-5aCnq1zR.js} +331 -20
- package/server/conversation-service-BCxl4f8Z.js +3 -0
- package/server/{conversations-DbOs1e9Q.js → conversations-BUpYsOZg.js} +5 -5
- package/server/{conversations-6mPANqvL.js → conversations-C34dyIb9.js} +1 -1
- package/server/{cost-Ca0YTWDw.js → cost-Bgcub5kW.js} +12 -2
- package/server/{cost-CW4WSe72.js → cost-CvxRrucd.js} +3 -3
- package/server/{cost-sync-C0VdGme1.js → cost-sync-Dv3LUaNW.js} +3 -3
- package/server/{dag-CdOjJVDT.js → dag-ombYYt4s.js} +2 -2
- package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-DrXqT9LQ.js +4 -0
- package/server/{deacon-pRnyD5w9.js → deacon-hi9KLPLT.js} +2998 -2659
- package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-BNBebzeL.js} +3 -3
- package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
- package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-DBxUaO-A.js} +13 -13
- package/server/deacon-swarm-I2JfX5Tg.js +2 -0
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-CQcP70ND.js +13 -0
- package/server/delivery-Da0zEMY4.js +3 -0
- package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-Df-Tmaq0.js} +69 -18
- package/server/deploy-queue-9SrhZR63.js +3 -0
- package/server/deploy-queue-UjKGYsDe.js +169 -0
- package/server/deploy-window-jOiPRHL0.js +3 -0
- package/server/{deploy-window-DeP_OIRk.js → deploy-window-rpqpWqHA.js} +40 -16
- package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-CC46Ig8q.js} +2 -2
- package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-68CSCRnu.js} +3 -3
- package/server/{dist-DyRx4cI7.js → dist-CJy72uEg.js} +1 -1
- package/server/dist-DSlxIU1H.js +3 -0
- package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
- package/server/docker-BMVTSFL5.js +3 -0
- package/server/{docker-BK7HIcBj.js → docker-Dam7mbIB.js} +2 -2
- package/server/{dod-BrSfUHm0.js → dod-Dar-yheg.js} +8 -4
- package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
- package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
- package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-B057YA81.js} +4 -4
- package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-C98V8yW-.js} +1 -1
- package/server/{esm-shims-CbI3BVkl.js → esm-shims-Br9BPdkR.js} +1 -1
- package/server/{event-store-Cr5PQwFC.js → event-store-ELqkVOn0.js} +1 -1
- package/server/{event-store-tdiY5eDZ.js → event-store-zY5MJHgF.js} +23 -4
- package/server/{events-CvvGK6LT.js → events-D6pyqhzM.js} +1 -1
- package/server/{events-CC1dgUpx.js → events-D9PR1IC0.js} +3 -3
- package/server/{factory-CynerjXO.js → factory-CRoOpGsF.js} +5 -5
- package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population--YUXU999.js} +4 -4
- package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BORBTo0y.js} +2 -2
- package/server/{features-Dhxz-wLc.js → features--nFkJY8v.js} +2 -2
- package/server/{feedback-target-iygZwmMc.js → feedback-target-C0ZzyHvU.js} +1 -1
- package/server/{feedback-target-CPS15Vte.js → feedback-target-Dt9BsapX.js} +8 -8
- package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-BG0RUZiu.js} +5 -5
- package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D1fm-5Z8.js} +1 -1
- package/server/flywheel-BekukH4i.js +2 -0
- package/server/flywheel-BiT3odRb.js +1092 -0
- package/server/flywheel-CLVB55Be.js +478 -0
- package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
- package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
- package/server/forge-CZbSg6Ds.js +383 -0
- package/server/forge-DK3blQb_.js +3 -0
- package/server/{from-CJ_aH5jD.js → from-D_4_dk7i.js} +1 -1
- package/server/{fts-db-CKgg0VKg.js → fts-db-BeOomFa-.js} +2 -2
- package/server/{fts-operations-BrL_VTRr.js → fts-operations-BdewJ_g9.js} +2 -2
- package/server/git-utils-CI6cwyyC.js +3 -0
- package/server/{git-utils-BVa07a4a.js → git-utils-ameCgDdy.js} +93 -3
- package/server/{github-app-CMBdIFBQ.js → github-app-CQ1Lo6LA.js} +19 -8
- package/server/{github-app-CPfoFAdV.js → github-app-DtAsvwzK.js} +1 -1
- package/server/{github-client--XVlDpwM.js → github-client-BfyDxuRN.js} +2 -2
- package/server/{github-client-B4QsdE-X.js → github-client-Cj0yl_07.js} +1 -1
- package/server/github-pr-lookup-BDq6Wznz.js +58 -0
- package/server/{harness-binary-CVio2m-u.js → harness-binary-DqkftwTb.js} +32 -6
- package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-CqMqM1Mb.js} +18 -9
- package/server/{health-events-C9B8y1Hm.js → health-events-CazRxJUS.js} +2 -2
- package/server/{health-events-CpfvuVmm.js → health-events-_xfTaOUs.js} +1 -1
- package/server/{hooks-DUXw8A0-.js → hooks-BO3QT1sn.js} +2 -2
- package/server/{hooks-ltecuFqZ.js → hooks-BnJsxlSq.js} +1 -1
- package/server/{hume-BEq0bUDg.js → hume-CDYJxqx-.js} +2 -2
- package/server/hume-Dq--7rOQ.js +3 -0
- package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-BYqERdkE.js} +1 -1
- package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
- package/server/in-flight-guard-Bq3epG58.js +45 -0
- package/server/{infra-CzaSOgul.js → infra-BjuxvjdS.js} +80 -5
- package/server/{injection-oNZeoDhL.js → injection-DZxlV2al.js} +1 -1
- package/server/{injection-DZ0PfYa4.js → injection-UCf8EsjX.js} +191 -183
- package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-6kylZnrm.js} +139 -82
- package/server/inspect-agent-BVwDrVrz.js +2 -0
- package/server/{internal-token-Bb4XeV2x.js → internal-token-DvMTQSOS.js} +2 -2
- package/server/{internal-token-DXdfprGr.js → internal-token-M9omeXM1.js} +1 -1
- package/server/{io-B3_AHDfr.js → io-VHvc0Ssp.js} +43 -26
- package/server/{issue-closed-zhdvQicO.js → issue-closed-B6KJkmHZ.js} +7 -7
- package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-9gk3fnXN.js} +1 -1
- package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
- package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-DmCh7EHj.js} +10 -10
- package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-PMx8F1jr.js} +1 -1
- package/server/{issues-B6ToV6x1.js → issues-CgnQ1OGQ.js} +2 -2
- package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-DJOH_O-w.js} +5 -4
- package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-Dv7AV_R1.js} +3 -3
- package/server/{label-reconciler-DdWbHEBu.js → label-reconciler--F85rufp.js} +4 -4
- package/server/{lifecycle-DfeyBDwA.js → lifecycle-CTdOWYMi.js} +2 -2
- package/server/{lifecycle-sycO16hj.js → lifecycle-DDN8ApVY.js} +6 -7
- package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-D-lGdzK3.js} +5 -5
- package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-D_zTLvP1.js} +1 -1
- package/server/{linear-client-D4zqMnX7.js → linear-client-BQU36QqE.js} +2 -2
- package/server/{linear-client-DqhDQO9k.js → linear-client-CY4O_Tu3.js} +1 -1
- package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
- package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-C_ZEhbqI.js → merge-Bpx4jjht.js} +13 -11
- package/server/{merge-agent-XrB80vfT.js → merge-agent-DdMVSV2Y.js} +233 -83
- package/server/{merge-agent-BQM3a8z5.js → merge-agent-DrXa1CpW.js} +1 -1
- package/server/{merge-batch-Bwoyr8Je.js → merge-batch-C5q1c1GX.js} +1 -1
- package/server/merge-completeness-BMm8tMyZ.js +277 -0
- package/server/merge-completeness-D0ljXbk3.js +3 -0
- package/server/{merge-DK23JEdS.js → merge-idOG--29.js} +1 -1
- package/server/merge-ops-DdpTiEMt.js +2 -0
- package/server/merge-rebase-DGQpYJU3.js +2 -0
- package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-xLnMlw5h.js} +3 -3
- package/server/merge-set-DH7ot3yz.js +89 -0
- package/server/merge-set-DzsOTBg5.js +3 -0
- package/server/{merge-sync-DZ9dojJn.js → merge-sync-CQ-LgZ1_.js} +406 -153
- package/server/merge-sync-Ca7F5JnQ.js +3 -0
- package/server/{merge-train-DxDfBTjr.js → merge-train-DTEMyIu4.js} +18 -8
- package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-CNPJzepw.js} +4 -4
- package/server/merge-verification-x3JO8Dtz.js +220 -0
- package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
- package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
- package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-IMSBfePV.js} +2 -2
- package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-C5ULAXwO.js} +1 -1
- package/server/node_modules/.package-lock.json +27 -27
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/@google-cloud/common/package.json +2 -2
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +1 -1
- package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/server/node_modules/google-auth-library/package.json +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
- package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
- package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
- package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
- package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
- package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
- package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
- package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
- package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
- package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
- package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
- package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
- package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
- package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
- package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
- package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
- package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
- package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
- package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
- package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
- package/server/node_modules/google-gax/package.json +5 -5
- package/server/node_modules/retry-request/package.json +4 -4
- package/server/node_modules/teeny-request/package.json +5 -5
- package/server/node_modules/undici/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/server/node_modules/undici/lib/core/request.js +13 -2
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +42 -8
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +269 -61
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +13 -3
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +30 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/server/node_modules/undici/lib/interceptor/decompress.js +9 -2
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +372 -68
- package/server/node_modules/undici/lib/util/date.js +23 -6
- package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
- package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
- package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
- package/server/package-lock.json +28 -28
- package/server/package.json +1 -1
- package/server/{pan-dir-DeVUgwA7.js → pan-dir-ubraCiUg.js} +24 -10
- package/server/{paths-_zEts6wc.js → paths-cXmOwSbh.js} +2 -2
- package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
- package/server/{pickup-Dd0Znxxy.js → pickup-D8xtG1J2.js} +17 -16
- package/server/pipeline-membership-BGSvkT2M.js +3 -0
- package/server/pipeline-membership-CrAPLYtf.js +57 -0
- package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-gather-CET40frr.js} +177 -109
- package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
- package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
- package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-ImNXknf0.js} +1 -1
- package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
- package/server/{project-pipelines-2sK1apsO.js → project-pipelines-Bim6bThI.js} +2 -2
- package/server/project-repos-C0nuoBGv.js +98 -0
- package/server/project-repos-CRE6Ykow.js +3 -0
- package/server/projects-B03Wr-xc.js +3 -0
- package/server/{prompts-Dp4Tpk39.js → prompts-BEx08AIu.js} +2 -2
- package/server/{providers-DKkBXhxU.js → providers-D7IluJe0.js} +1 -1
- package/server/{providers-DV7ec8l7.js → providers-evXhiQeg.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
- package/server/public/assets/{dist-BWR4qFiV.js → dist-CxAOHbil.js} +1 -1
- package/server/public/assets/{dist-DEmlBBNQ.js → dist-DqDRYW6P.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
- package/server/public/assets/index-Cc7cnFC4.css +1 -0
- package/server/public/assets/index-K0hAYCgV.js +807 -0
- package/server/public/assets/{linear-C9zFQpkX.js → linear-B4cuEFmO.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
- package/server/public/assets/{prod-B1jCQihw.js → prod-CN2nHBvX.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests--Ib2jTgy.js → pull-requests-Cv7LxzUN.js} +1 -1
- package/server/{pull-requests-CXIhdCYD.js → pull-requests-DHWiKxo7.js} +19 -10
- package/server/{queries-6d7Cdtm7.js → queries-DHJm7bTd.js} +1134 -203
- package/server/{rally-B708-nZn.js → rally-B71M9f4o.js} +3 -3
- package/server/rally-YDjU513q.js +3 -0
- package/server/{rally-api-yjQ0TfHd.js → rally-api-D5uXN08-.js} +1 -1
- package/server/{rally-api-nY0ZANw3.js → rally-api-Dkqmok65.js} +2 -2
- package/server/{rally-client-B1EJhfV0.js → rally-client-Bfqm6XI4.js} +4 -4
- package/server/{rally-client-CULK2XAY.js → rally-client-CxsA6ExK.js} +1 -1
- package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
- package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
- package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-0EEYReVZ.js} +36 -36
- package/server/rebuild-stack-qeRqHZxH.js +4 -0
- package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-BbYFsqLa.js} +7 -6
- package/server/record-CtroO946.js +3 -0
- package/server/record-update-DH6dLJID.js +3 -0
- package/server/{record-update-Dq0t2uBG.js → record-update-Z0QCxmMp.js} +124 -34
- package/server/{recovery-trip-BJtIQuag.js → recovery-trip-eJe26h-f.js} +2 -2
- package/server/{release-engine-DZpmGGzb.js → release-engine-lPUp-MTd.js} +5 -5
- package/server/{release-set-hnXd_kga.js → release-set-BwGeyZKX.js} +3 -3
- package/server/{remote-Br-ZWVIP.js → remote-BCd02Es1.js} +3 -3
- package/server/{remote-4tiENDaI.js → remote-CVGUhXMV.js} +3 -3
- package/server/{remote-agents-CRCg1L4H.js → remote-agents-C1bssi41.js} +2 -2
- package/server/{remote-agents-nmty1mLu.js → remote-agents-C_VxssLU.js} +300 -46
- package/server/{remote-completion-BbWNd10K.js → remote-completion-DAB0P706.js} +12 -12
- package/server/resume-u9byntrq.js +3 -0
- package/server/{review-agent-DJRO8EG8.js → review-agent-CD4RCI0Y.js} +1 -1
- package/server/{review-agent-sKkE1FEL.js → review-agent-CHhI66UP.js} +61 -44
- package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-DSMRIfuJ.js} +7 -6
- package/server/{review-context-BgX3lcCx.js → review-context-oFuBbiEE.js} +69 -25
- package/server/{in-flight-guard-aQ1IxeI3.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
- package/server/review-status-BZH8h-6W.js +3 -0
- package/server/review-status-emit-CUExtHd5.js +50 -0
- package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-QV_hQkgS.js} +4 -4
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
- package/server/review-status-source-ylw5QZUR.js +3 -0
- package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-483sujRo.js} +10 -5
- package/server/{review-status-sync-To3-iS-N.js → review-status-sync-NaWvI9Xf.js} +1 -1
- package/server/review-status-yljtTd-q.js +7521 -0
- package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-BPDn4li_.js} +1 -1
- package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CELeUinh.js} +48 -8
- package/server/{rollup-WA0VD-Rr.js → rollup-DTNvelz9.js} +8 -8
- package/server/{rollup-B53Y81xK.js → rollup-DYZfq1c4.js} +1 -1
- package/server/{scanner-D2743cp8.js → scanner-CV35oSn4.js} +42 -14
- package/server/{sequence-io-Cg0zYj_E.js → sequence-io-DF_8iuhV.js} +4 -4
- package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-B2WeCtGi.js} +5 -5
- package/server/server.js +3899 -672
- package/server/{service-DCpB_SGd.js → service-Br9rpBNA.js} +83 -65
- package/server/{session-fork-BQ8_6H32.js → session-fork-D0LY152N.js} +2 -2
- package/server/{session-history-CVZDpS3c.js → session-history-BUyK29eq.js} +4 -4
- package/server/{settings-BZ5m1UCl.js → settings-Bse1Pdcj.js} +3 -3
- package/server/settings-CdvIF84R.js +2 -0
- package/server/{settings-ylxwqwQG.js → settings-CvVGqNEs.js} +3 -2
- package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BWLa8ODz.js} +2 -2
- package/server/{shadow-state-Dh-HzF2J.js → shadow-state-B4fpKxOO.js} +2 -2
- package/server/{shadow-state-C2_epgx2.js → shadow-state-FV6PHfEW.js} +1 -1
- package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-D7asqxOZ.js} +2 -2
- package/server/{ship-log-ClSMIzZX.js → ship-log-xplJ8t75.js} +1 -1
- package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CPp2Ykf6.js} +1 -1
- package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-D3U_79f-.js} +8 -7
- package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-1nFi3gfk.js} +1 -1
- package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DGfZ5B8D.js} +30 -23
- package/server/{specialist-completion-BXhav38U.js → specialist-completion-Br48eiDP.js} +1 -1
- package/server/{specialist-context-DtrYvGJ-.js → specialist-context-cVbGnTa3.js} +5 -5
- package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
- package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-Cl5-hqT8.js} +3 -3
- package/server/{specialists-JVO00bs7.js → specialists-CNfYO3G2.js} +1634 -457
- package/server/{specialists-DyFeedjn.js → specialists-Cicieuzu.js} +21 -19
- package/server/{specialists-D5fRZXmN.js → specialists-JHsdU3pA.js} +1 -1
- package/server/{specialists-DVj0hvaL.js → specialists-Tdezg_6N.js} +1 -1
- package/server/specs-Bt7WJDoC.js +3 -0
- package/server/src-CRmCHlma.js +11408 -0
- package/server/{src-CG9mCkP6.js → src-Ck028hjO.js} +6 -6
- package/server/{src-CMTQGyCK.js → src-UWcGe0Ix.js} +5 -5
- package/server/stack-health-CJLMrLBl.js +3 -0
- package/server/{stack-health-puygdaMd.js → stack-health-DqSqx0zv.js} +68 -12
- package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-CYFOUNlT.js} +4 -4
- package/server/{staleness-Cbl_w4Bw.js → staleness-BQ-0gMYK.js} +1 -1
- package/server/{staleness-Bpy41ngS.js → staleness-D47CUJok.js} +1 -1
- package/server/{state-home-CIGjwNfJ.js → state-home-BYV7qZTW.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
- package/server/{state-migrate-Dkzaxvny.js → state-migrate-CvvBtS0Y.js} +4 -4
- package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-Wt0UVvu1.js} +1 -1
- package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-mkLC6G_t.js} +360 -26
- package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
- package/server/{summary-fork-D8bXjCr7.js → summary-fork-CD7GOts0.js} +2 -2
- package/server/{summary-fork-DHhJIsAL.js → summary-fork-xiXBnWG9.js} +78 -12
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-B5SbvDx2.js} +2 -41
- package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
- package/server/supervisor/pty-supervisor.js +49 -2
- package/server/supervisor/pty-token-B7lp0ElT.js +43 -0
- package/server/{supervisor-BO-Zk_h-.js → supervisor-DL788vos.js} +3 -3
- package/server/supervisor-UWiQNK-y.js +2 -0
- package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-BV14DF5N.js} +3 -3
- package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-pdWG6ZQs.js} +56 -29
- package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-l2F4_zim.js} +15 -16
- package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-qakFIIGz.js} +6 -6
- package/server/{test-verdict-CmUBK5cT.js → test-verdict-BJYDggMm.js} +1 -1
- package/server/{test-verdict-DFjjIHR5.js → test-verdict-Gw-btEfb.js} +1 -1
- package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BKOYB616.js} +1 -1
- package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-CBaWkV9k.js} +2 -2
- package/server/{tmux-ftABRAmc.js → tmux-B1Wbxz5o.js} +3 -3
- package/server/{tmux-DoThH6aj.js → tmux-DQ6jB76i.js} +1 -1
- package/server/tmux-dedup-DbN6MGzM.js +892 -0
- package/server/{token-CsOhvw42.js → token-Cxbk023d.js} +2 -2
- package/server/{token-util-CTmczIfW.js → token-util-CLq2MmQt.js} +1 -1
- package/server/token-util-zlz9U0ki.js +3 -0
- package/server/{tracker-config-B4itFzDo.js → tracker-config-DZ8Zn2nQ.js} +2 -2
- package/server/{tracker-utils-tnxxqROg.js → tracker-utils-L0FKtjq2.js} +3 -3
- package/server/{traefik-connect-m73vGebA.js → traefik-connect-bNX6jKkb.js} +1 -1
- package/server/{tunnel-B2vxjx_b.js → tunnel-BAm1XgjG.js} +3 -3
- package/server/{tunnel-Cgj-IGIl.js → tunnel-CjSnHdTc.js} +1 -1
- package/server/{types-BBNjPcqU.js → types-q67TYYg5.js} +1 -1
- package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
- package/server/uat-train-Cu-4nvbf.js +2 -0
- package/server/uat-train-D5UjcyAa.js +0 -0
- package/server/validate-Cxsx5Uz1.js +179 -0
- package/server/{validation-CIi6pnI2.js → validation-DEaTZafj.js} +1 -1
- package/server/{validation-B5JxoPUS.js → validation-VZgJxmqc.js} +4 -4
- package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-C85cRTc_.js} +1 -1
- package/server/{verification-artifact-BcnIbigL.js → verification-artifact-g3yuxQDL.js} +1 -1
- package/server/{verification-runner-CDj4lD4t.js → verification-runner-DlZI8yhw.js} +1 -1
- package/server/{verification-runner-Br0S_Ous.js → verification-runner-KDZIsBj4.js} +114 -107
- package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-Jr94BF3Y.js} +1 -1
- package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-C-vuP3_J.js} +20 -9
- package/server/workflows-CHrx_hcW.js +2 -0
- package/server/{workflows-C9WmILql.js → workflows-D0oip4eV.js} +161 -78
- package/server/{workspace-DuUdndHe.js → workspace-BqFg__wH.js} +1 -1
- package/server/{workspace-BVl4rihN.js → workspace-C0fH3aek.js} +3 -3
- package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
- package/server/workspace-anchor-drift-CZKofakh.js +224 -0
- package/server/{workspace-config-cEGcO6UT.js → workspace-config-B123aZl-.js} +1 -1
- package/server/workspace-manager-CDTKjjdU.js +3 -0
- package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CwO-Hek7.js} +206 -116
- package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-CQv00QwK.js} +2 -2
- package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-D4M8BM4W.js} +1 -1
- package/server/{workspaces-hWvy9eKs.js → workspaces-j1e_6aAT.js} +736 -290
- package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
- package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
- package/sync-sources/hooks/record-cost-event.js +6 -4
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
- package/sync-sources/skills/pan-reload/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +5 -4
- package/sync-sources/skills/pan-review/SKILL.md +7 -1
- package/sync-sources/skills/pan-start/SKILL.md +4 -0
- package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
- package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
- package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
- package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bg0lhqwj.js +0 -3
- package/server/agents-FlIgQ3ql.js +0 -3
- package/server/archive-planning-zkJb3BeM.js +0 -3
- package/server/cli-BsVIHwzC.js +0 -3
- package/server/context-layers-B3Nt58jl.js +0 -4
- package/server/context-layers-ZYFcWiyc.js +0 -165
- package/server/conversation-service-Up7FEzIC.js +0 -3
- package/server/deacon-DYSEJb48.js +0 -4
- package/server/deacon-swarm-9jRLS5Ke.js +0 -2
- package/server/deploy-window-CM6W1-c6.js +0 -3
- package/server/dist-Bd3vn0Hw.js +0 -3
- package/server/flywheel-DMCUzDWg.js +0 -2
- package/server/flywheel-DSSpWmqF.js +0 -522
- package/server/flywheel-DcBkQvgE.js +0 -207
- package/server/flywheel-merge-order-C-6zRLvM.js +0 -2
- package/server/flywheel-merge-order-DxbQKE1d.js +0 -244
- package/server/forge-B-ZWyTRm.js +0 -2
- package/server/forge-Ch9gCFod.js +0 -270
- package/server/git-utils-Dry_Ka_D.js +0 -3
- package/server/github-pr-lookup-BRbDW-qk.js +0 -44
- package/server/hume-B_DbflNM.js +0 -3
- package/server/inspect-agent-ch-F-5Ci.js +0 -2
- package/server/launcher-generator-CHVm7bGT.js +0 -379
- package/server/layers-DzxSTGNA.js +0 -93
- package/server/merge-blockers-BsFjGrQ8.js +0 -41
- package/server/merge-ops-DlB1IM0Y.js +0 -2
- package/server/merge-set-DLz0MkGT.js +0 -139
- package/server/merge-set-DnSYdBEp.js +0 -3
- package/server/merge-sync-SSv3E-pl.js +0 -3
- package/server/merge-verification-CSizH3HY.js +0 -124
- package/server/projects-9SkRpES9.js +0 -3
- package/server/public/assets/index-CUr1xv8w.css +0 -1
- package/server/public/assets/index-CsSuZQBI.js +0 -802
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
- package/server/rally-njs_mJrt.js +0 -3
- package/server/rebuild-stack-kA7XngID.js +0 -3
- package/server/record-t6V-3Dcj.js +0 -3
- package/server/record-update-DACtKh6_.js +0 -3
- package/server/resume-CcKqnTvE.js +0 -3
- package/server/review-status-A7quS5KJ.js +0 -1454
- package/server/review-status-C6n6-9f_.js +0 -3
- package/server/settings-D0OSwos5.js +0 -2
- package/server/specs-nN45DG2X.js +0 -3
- package/server/src-U7_kTPEE.js +0 -4733
- package/server/stack-health-Df0YEZKa.js +0 -3
- package/server/supervisor-BPy-o1A8.js +0 -2
- package/server/token-util-DrHg8abn.js +0 -3
- package/server/tracker-utils-BePq_oj-.js +0 -3
- package/server/uat-train-CuEn0t9M.js +0 -2152
- package/server/uat-train-cKfM-_WW.js +0 -2
- package/server/workflows-D90rMOya.js +0 -2
- package/server/workspace-manager-ZTdJAy9M.js +0 -3
|
@@ -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,4 +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-CmOPzmBb.js";
|
|
2
3
|
import { delimiter, dirname, isAbsolute, join, resolve } from "node:path";
|
|
3
4
|
import { homedir } from "node:os";
|
|
4
5
|
import { constants } from "node:fs";
|
|
@@ -28,6 +29,15 @@ async function resolveExecutable(binary, options = {}) {
|
|
|
28
29
|
const pathValue = options.pathValue ?? process.env["PATH"] ?? "";
|
|
29
30
|
const accessExecutable = options.accessExecutable ?? ((path) => access(path, constants.X_OK));
|
|
30
31
|
const runCommand = options.runCommand ?? defaultRunCommand;
|
|
32
|
+
if (options.executablePath !== void 0) {
|
|
33
|
+
if (!isAbsolute(options.executablePath)) throw new Error(`Configured executable path must be absolute: ${options.executablePath}`);
|
|
34
|
+
try {
|
|
35
|
+
await accessExecutable(options.executablePath);
|
|
36
|
+
return options.executablePath;
|
|
37
|
+
} catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
31
41
|
const pathMatch = await firstExecutable(pathValue.split(delimiter).filter(Boolean).map((directory) => isAbsolute(directory) ? directory : resolve(cwd, directory)), binary, accessExecutable);
|
|
32
42
|
if (pathMatch) return pathMatch;
|
|
33
43
|
const fixedMatch = await firstExecutable([
|
|
@@ -60,14 +70,28 @@ async function resolveExecutable(binary, options = {}) {
|
|
|
60
70
|
function harnessBinaryName(harness) {
|
|
61
71
|
return HARNESS_BINARY_BY_RUNTIME[harness];
|
|
62
72
|
}
|
|
73
|
+
function configuredHarnessBinaryPath(harness) {
|
|
74
|
+
if (harness !== "acp") return void 0;
|
|
75
|
+
return loadConfigSync().config.acp?.kimi?.binaryPath;
|
|
76
|
+
}
|
|
77
|
+
function withConfiguredExecutable(harness, options = {}) {
|
|
78
|
+
if (options.executablePath !== void 0) return options;
|
|
79
|
+
const executablePath = configuredHarnessBinaryPath(harness);
|
|
80
|
+
return executablePath === void 0 ? options : {
|
|
81
|
+
...options,
|
|
82
|
+
executablePath
|
|
83
|
+
};
|
|
84
|
+
}
|
|
63
85
|
async function resolveHarnessBinary(harness, options) {
|
|
64
|
-
return resolveExecutable(harnessBinaryName(harness), options);
|
|
86
|
+
return resolveExecutable(harnessBinaryName(harness), withConfiguredExecutable(harness, options));
|
|
65
87
|
}
|
|
66
88
|
async function requireHarnessBinary(harness, options) {
|
|
67
89
|
const binary = harnessBinaryName(harness);
|
|
68
|
-
const
|
|
90
|
+
const effectiveOptions = withConfiguredExecutable(harness, options);
|
|
91
|
+
const resolved = await resolveExecutable(binary, effectiveOptions);
|
|
69
92
|
if (resolved) return resolved;
|
|
70
|
-
const harnessName = harness === "claude-code" ? "Claude Code" : harness === "ohmypi" ? "OhMyPi" : "Codex CLI";
|
|
93
|
+
const harnessName = harness === "claude-code" ? "Claude Code" : harness === "ohmypi" ? "OhMyPi" : harness === "codex" ? "Codex CLI" : "Kimi Code CLI";
|
|
94
|
+
if (effectiveOptions.executablePath) throw new Error(`${harnessName} configured executable "${effectiveOptions.executablePath}" was not found or is not executable. Fix its configured path, then restart Overdeck. No terminal session was created.`);
|
|
71
95
|
throw new Error(`${harnessName} executable "${binary}" was not found. Install ${harnessName} or add its installation directory to PATH, then restart Overdeck. No terminal session was created.`);
|
|
72
96
|
}
|
|
73
97
|
function shellQuote(value) {
|
|
@@ -85,12 +109,14 @@ async function prepareHarnessLaunch(harness, options) {
|
|
|
85
109
|
}
|
|
86
110
|
var execFileAsync, SAFE_BINARY_NAME, HARNESS_BINARY_BY_RUNTIME, defaultRunCommand;
|
|
87
111
|
var init_harness_binary = __esmMin((() => {
|
|
112
|
+
init_config_yaml();
|
|
88
113
|
execFileAsync = promisify(execFile);
|
|
89
114
|
SAFE_BINARY_NAME = /^[A-Za-z0-9._+-]+$/;
|
|
90
115
|
HARNESS_BINARY_BY_RUNTIME = {
|
|
91
116
|
"claude-code": "claude",
|
|
92
117
|
ohmypi: "omp",
|
|
93
|
-
codex: "codex"
|
|
118
|
+
codex: "codex",
|
|
119
|
+
acp: "kimi"
|
|
94
120
|
};
|
|
95
121
|
defaultRunCommand = async (command, args) => {
|
|
96
122
|
const { stdout } = await execFileAsync(command, args, {
|
|
@@ -101,6 +127,6 @@ var init_harness_binary = __esmMin((() => {
|
|
|
101
127
|
};
|
|
102
128
|
}));
|
|
103
129
|
//#endregion
|
|
104
|
-
export {
|
|
130
|
+
export { resolveExecutable as a, prepareHarnessLaunch as i, harnessBinaryName as n, resolveHarnessBinary as o, init_harness_binary as r, configuredHarnessBinaryPath as t };
|
|
105
131
|
|
|
106
|
-
//# sourceMappingURL=harness-binary-
|
|
132
|
+
//# sourceMappingURL=harness-binary-DqkftwTb.js.map
|
|
@@ -1,17 +1,22 @@
|
|
|
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 {
|
|
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
|
+
function assertHarnessProviderSupported(harness, provider) {
|
|
10
|
+
if (harness === "acp" && provider !== "kimi") throw new HarnessResolutionError(`ACP provider ${provider} is not supported; Kimi is the only ACP provider in v1.`);
|
|
11
|
+
}
|
|
9
12
|
async function hasHarnessBinary(harness) {
|
|
10
13
|
if (harness === "claude-code") return true;
|
|
11
|
-
const
|
|
14
|
+
const executablePath = configuredHarnessBinaryPath(harness);
|
|
15
|
+
const cacheKey = `${harness}\0${executablePath ?? ""}`;
|
|
16
|
+
const cached = harnessAvailabilityCache.get(cacheKey);
|
|
12
17
|
if (cached) return cached;
|
|
13
|
-
const check = resolveHarnessBinary(harness).then((resolved) => resolved !== null);
|
|
14
|
-
harnessAvailabilityCache.set(
|
|
18
|
+
const check = resolveHarnessBinary(harness, executablePath ? { executablePath } : void 0).then((resolved) => resolved !== null);
|
|
19
|
+
harnessAvailabilityCache.set(cacheKey, check);
|
|
15
20
|
return check;
|
|
16
21
|
}
|
|
17
22
|
function logBuiltInDefaultNotice(provider, harness) {
|
|
@@ -37,9 +42,13 @@ async function resolveHarness(input) {
|
|
|
37
42
|
console.warn(`harness ${winner} denied for ${provider}: ${decision.reason ?? "policy denied"} — falling back to native claude-code`);
|
|
38
43
|
return "claude-code";
|
|
39
44
|
}
|
|
45
|
+
assertHarnessProviderSupported(winner, provider);
|
|
40
46
|
if (!await hasHarnessBinary(winner)) {
|
|
41
|
-
const binary = harnessBinaryName(winner);
|
|
42
|
-
if (builtInHarness && builtInHarness !== "claude-code")
|
|
47
|
+
const binary = configuredHarnessBinaryPath(winner) ?? harnessBinaryName(winner);
|
|
48
|
+
if (winner === "acp" || builtInHarness && builtInHarness !== "claude-code") {
|
|
49
|
+
const remediation = configuredHarnessBinaryPath(winner) ? `Fix the configured executable path ${binary} and retry.` : `Install ${binary} (check its PATH) and retry.`;
|
|
50
|
+
throw new HarnessResolutionError(`Harness ${winner} for ${input.model} has no installed ${binary} binary at spawn — refusing to silently fall back to claude-code. ${remediation}`);
|
|
51
|
+
}
|
|
43
52
|
console.warn(`harness ${winner} requested for ${provider}, but ${binary} is not installed — falling back to native claude-code`);
|
|
44
53
|
return "claude-code";
|
|
45
54
|
}
|
|
@@ -63,4 +72,4 @@ var init_harness_resolve = __esmMin((() => {
|
|
|
63
72
|
//#endregion
|
|
64
73
|
export { resolveHarness as n, init_harness_resolve as t };
|
|
65
74
|
|
|
66
|
-
//# 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 };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Fr as init_errors, Ir as AGENTS_DIR, Tr as FsError, ci as init_paths } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFileSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -294,4 +294,4 @@ var init_hooks = __esmMin((() => {
|
|
|
294
294
|
//#endregion
|
|
295
295
|
export { pushToHookSync as _, collectMail as a, sendMail as b, generateFixedPointPromptSync as c, initHook as d, initHookSync as f, pushToHook as g, popFromHookSync as h, clearHookSync as i, getHook as l, popFromHook as m, checkHookSync as n, collectMailSync as o, init_hooks as p, clearHook as r, generateFixedPointPrompt as s, checkHook as t, getHookSync as u, reorderHookItems as v, sendMailSync as x, reorderHookItemsSync as y };
|
|
296
296
|
|
|
297
|
-
//# sourceMappingURL=hooks-
|
|
297
|
+
//# sourceMappingURL=hooks-BO3QT1sn.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as pushToHookSync, a as collectMail, b as sendMail, c as generateFixedPointPromptSync, d as initHook, f as initHookSync, g as pushToHook, h as popFromHookSync, i as clearHookSync, l as getHook, m as popFromHook, n as checkHookSync, o as collectMailSync, p as init_hooks, r as clearHook, s as generateFixedPointPrompt, t as checkHook, u as getHookSync, v as reorderHookItems, x as sendMailSync, y as reorderHookItemsSync } from "./hooks-
|
|
1
|
+
import { _ as pushToHookSync, a as collectMail, b as sendMail, c as generateFixedPointPromptSync, d as initHook, f as initHookSync, g as pushToHook, h as popFromHookSync, i as clearHookSync, l as getHook, m as popFromHook, n as checkHookSync, o as collectMailSync, p as init_hooks, r as clearHook, s as generateFixedPointPrompt, t as checkHook, u as getHookSync, v as reorderHookItems, x as sendMailSync, y as reorderHookItemsSync } from "./hooks-BO3QT1sn.js";
|
|
2
2
|
init_hooks();
|
|
3
3
|
export { checkHook, checkHookSync, clearHook, clearHookSync, collectMail, collectMailSync, generateFixedPointPrompt, generateFixedPointPromptSync, getHook, getHookSync, initHook, initHookSync, popFromHook, popFromHookSync, pushToHook, pushToHookSync, reorderHookItems, reorderHookItemsSync, sendMail, sendMailSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-
|
|
2
|
+
import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-B123aZl-.js";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
//#region ../../lib/hume.ts
|
|
5
5
|
/**
|
|
@@ -189,4 +189,4 @@ var init_hume = __esmMin((() => {
|
|
|
189
189
|
//#endregion
|
|
190
190
|
export { init_hume as i, createHumeConfig as n, deleteHumeConfig as r, HumeApiError as t };
|
|
191
191
|
|
|
192
|
-
//# sourceMappingURL=hume-
|
|
192
|
+
//# sourceMappingURL=hume-CDYJxqx-.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as handleAgentLifecycleEventForIdleStack } from "./idle-stack-reaper-
|
|
1
|
+
import { t as handleAgentLifecycleEventForIdleStack } from "./idle-stack-reaper-CnGx_PO_.js";
|
|
2
2
|
export { handleAgentLifecycleEventForIdleStack };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { M as listSessionNames, w as init_tmux } from "./tmux-
|
|
1
|
+
import { o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
|
|
2
|
+
import { M as listSessionNames, w as init_tmux } from "./tmux-B1Wbxz5o.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
import { exec } from "child_process";
|
|
5
5
|
import { promisify } from "util";
|
|
@@ -36,8 +36,21 @@ const execAsync = promisify(exec);
|
|
|
36
36
|
*/
|
|
37
37
|
/** Idle duration before a workspace's UI stack is reaped. */
|
|
38
38
|
const GRACE_MS = 600 * 1e3;
|
|
39
|
+
/**
|
|
40
|
+
* Idle duration before a workspace's FULL stack is reaped (all services except
|
|
41
|
+
* the dev attach target). The 10-minute UI tier only matches the overdeck
|
|
42
|
+
* project's own server/frontend naming, so other projects' stacks (postgres,
|
|
43
|
+
* redis, api/JVM, vite) lived forever — 35 myn-feature containers were resident
|
|
44
|
+
* for agents stopped 17h+, and that idle RSS feeds the memory-governor pressure
|
|
45
|
+
* that forces scheduler yields (MIN-858/MIN-891 yielded under it, 2026-07-25).
|
|
46
|
+
*/
|
|
47
|
+
const FULL_STACK_GRACE_MS = 7200 * 1e3;
|
|
39
48
|
/** `overdeck-feature-<issue>-server-1` / `-frontend-1`. */
|
|
40
49
|
const UI_CONTAINER_RE = /^overdeck-feature-([a-z0-9]+-\d+)-(server|frontend)-1$/i;
|
|
50
|
+
/** Compose project names end in `feature-<issue>` by construction (stack-health). */
|
|
51
|
+
const FEATURE_PROJECT_RE = /(?:^|[-_])feature-([a-z0-9]+-\d+)$/i;
|
|
52
|
+
/** Never stop the `dev` container — it is the operator's VS Code attach target. */
|
|
53
|
+
const DEV_CONTAINER_RE = /-dev-1$/i;
|
|
41
54
|
/**
|
|
42
55
|
* issueLower -> epoch ms first observed idle. Module-level so the grace clock
|
|
43
56
|
* survives across patrol cycles within the deacon process. Tolerates transient
|
|
@@ -63,13 +76,34 @@ function defaultDeps() {
|
|
|
63
76
|
const { stdout } = await execAsync(`docker ps --format '{{.Names}}'`, { timeout: 15e3 });
|
|
64
77
|
return stdout.split("\n").map((s) => s.trim()).filter(Boolean);
|
|
65
78
|
},
|
|
79
|
+
listComposeContainers: async () => {
|
|
80
|
+
const { stdout } = await execAsync(`docker ps --format '{{.Names}}\t{{json .Labels}}'`, { timeout: 15e3 });
|
|
81
|
+
const out = [];
|
|
82
|
+
for (const line of stdout.split("\n")) {
|
|
83
|
+
const tab = line.indexOf(" ");
|
|
84
|
+
if (tab <= 0) continue;
|
|
85
|
+
const name = line.slice(0, tab).trim();
|
|
86
|
+
if (!name) continue;
|
|
87
|
+
try {
|
|
88
|
+
const labels = JSON.parse(line.slice(tab + 1));
|
|
89
|
+
out.push({
|
|
90
|
+
name,
|
|
91
|
+
composeProject: labels["com.docker.compose.project"]
|
|
92
|
+
});
|
|
93
|
+
} catch {
|
|
94
|
+
out.push({ name });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return out;
|
|
98
|
+
},
|
|
66
99
|
listSessions: () => Effect.runPromise(listSessionNames()),
|
|
67
100
|
stopContainers: async (names) => {
|
|
68
101
|
if (names.length === 0) return;
|
|
69
102
|
await execAsync(`docker stop ${names.map((n) => `"${n}"`).join(" ")}`, { timeout: 6e4 });
|
|
70
103
|
},
|
|
71
104
|
now: () => Date.now(),
|
|
72
|
-
graceMs: GRACE_MS
|
|
105
|
+
graceMs: GRACE_MS,
|
|
106
|
+
fullStackGraceMs: FULL_STACK_GRACE_MS
|
|
73
107
|
};
|
|
74
108
|
}
|
|
75
109
|
async function reconcileIdleWorkspaceStacks(deps = {}) {
|
|
@@ -94,8 +128,10 @@ async function reconcileIdleWorkspaceStacks(deps = {}) {
|
|
|
94
128
|
arr.push(name);
|
|
95
129
|
byIssue.set(issueLower, arr);
|
|
96
130
|
}
|
|
97
|
-
for (const issue of [...firstIdleAt.keys()])
|
|
98
|
-
|
|
131
|
+
for (const issue of [...firstIdleAt.keys()]) {
|
|
132
|
+
if (issue.startsWith("full:")) continue;
|
|
133
|
+
if (!byIssue.has(issue)) firstIdleAt.delete(issue);
|
|
134
|
+
}
|
|
99
135
|
const sessionBlob = (await d.listSessions().catch(() => [])).join("\n").toLowerCase();
|
|
100
136
|
const nowMs = d.now();
|
|
101
137
|
for (const [issueLower, names] of byIssue) {
|
|
@@ -127,9 +163,66 @@ async function reconcileIdleWorkspaceStacks(deps = {}) {
|
|
|
127
163
|
console.warn(`[deacon] idle-stack reaper: failed to stop ${issueLower} UI containers: ${err?.message ?? err}`);
|
|
128
164
|
}
|
|
129
165
|
}
|
|
166
|
+
let composeContainers = [];
|
|
167
|
+
try {
|
|
168
|
+
composeContainers = await d.listComposeContainers();
|
|
169
|
+
} catch {
|
|
170
|
+
composeContainers = [];
|
|
171
|
+
}
|
|
172
|
+
const byProject = /* @__PURE__ */ new Map();
|
|
173
|
+
for (const c of composeContainers) {
|
|
174
|
+
if (!c.composeProject) continue;
|
|
175
|
+
const m = c.composeProject.match(FEATURE_PROJECT_RE);
|
|
176
|
+
if (!m) continue;
|
|
177
|
+
const entry = byProject.get(c.composeProject) ?? {
|
|
178
|
+
issueLower: m[1].toLowerCase(),
|
|
179
|
+
names: []
|
|
180
|
+
};
|
|
181
|
+
entry.names.push(c.name);
|
|
182
|
+
byProject.set(c.composeProject, entry);
|
|
183
|
+
}
|
|
184
|
+
for (const key of [...firstIdleAt.keys()]) {
|
|
185
|
+
if (!key.startsWith("full:")) continue;
|
|
186
|
+
if (!byProject.has(key.slice(5))) firstIdleAt.delete(key);
|
|
187
|
+
}
|
|
188
|
+
for (const [project, { issueLower, names }] of byProject) {
|
|
189
|
+
const clockKey = `full:${project}`;
|
|
190
|
+
if (sessionBlob.includes(issueLower)) {
|
|
191
|
+
firstIdleAt.delete(clockKey);
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const since = firstIdleAt.get(clockKey);
|
|
195
|
+
if (since === void 0) {
|
|
196
|
+
firstIdleAt.set(clockKey, nowMs);
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (nowMs - since < d.fullStackGraceMs) continue;
|
|
200
|
+
const targets = names.filter((n) => !DEV_CONTAINER_RE.test(n));
|
|
201
|
+
if (targets.length === 0) {
|
|
202
|
+
firstIdleAt.delete(clockKey);
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
await d.stopContainers(targets);
|
|
207
|
+
firstIdleAt.delete(clockKey);
|
|
208
|
+
const issueId = issueLower.toUpperCase();
|
|
209
|
+
const idleMin = Math.round((nowMs - since) / 6e4);
|
|
210
|
+
const action = `Reaped idle workspace stack for ${issueId} — stopped ${targets.length}/${names.length} container(s) in ${project} after ${idleMin}m idle (no agent, no tmux)`;
|
|
211
|
+
actions.push(action);
|
|
212
|
+
console.log(`[deacon] ${action}`);
|
|
213
|
+
emitActivityEntrySync({
|
|
214
|
+
source: "cloister",
|
|
215
|
+
level: "info",
|
|
216
|
+
issueId,
|
|
217
|
+
message: `[deacon] reaped idle workspace stack for ${issueId} — ${targets.length} container(s) stopped, dev attach target preserved`
|
|
218
|
+
});
|
|
219
|
+
} catch (err) {
|
|
220
|
+
console.warn(`[deacon] idle-stack reaper: failed to stop ${project} containers: ${err?.message ?? err}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
130
223
|
return actions;
|
|
131
224
|
}
|
|
132
225
|
//#endregion
|
|
133
226
|
export { reconcileIdleWorkspaceStacks as n, handleAgentLifecycleEventForIdleStack as t };
|
|
134
227
|
|
|
135
|
-
//# sourceMappingURL=idle-stack-reaper-
|
|
228
|
+
//# sourceMappingURL=idle-stack-reaper-CnGx_PO_.js.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
//#region ../../lib/cloister/in-flight-guard.ts
|
|
3
|
+
function createPromiseCoalescer() {
|
|
4
|
+
const inFlight = /* @__PURE__ */ new Map();
|
|
5
|
+
return {
|
|
6
|
+
run(key, task) {
|
|
7
|
+
const existing = inFlight.get(key);
|
|
8
|
+
if (existing) return existing;
|
|
9
|
+
const p = task();
|
|
10
|
+
inFlight.set(key, p);
|
|
11
|
+
p.catch(() => {}).finally(() => inFlight.delete(key));
|
|
12
|
+
return p;
|
|
13
|
+
},
|
|
14
|
+
isInFlight(key) {
|
|
15
|
+
return inFlight.has(key);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function createInFlightGuard() {
|
|
20
|
+
const inFlight = /* @__PURE__ */ new Set();
|
|
21
|
+
return {
|
|
22
|
+
run(key, task, onError) {
|
|
23
|
+
if (inFlight.has(key)) return false;
|
|
24
|
+
inFlight.add(key);
|
|
25
|
+
(async () => {
|
|
26
|
+
try {
|
|
27
|
+
await task();
|
|
28
|
+
} catch (err) {
|
|
29
|
+
onError?.(err);
|
|
30
|
+
} finally {
|
|
31
|
+
inFlight.delete(key);
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
34
|
+
return true;
|
|
35
|
+
},
|
|
36
|
+
isInFlight(key) {
|
|
37
|
+
return inFlight.has(key);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
var init_in_flight_guard = __esmMin((() => {}));
|
|
42
|
+
//#endregion
|
|
43
|
+
export { createPromiseCoalescer as n, init_in_flight_guard as r, createInFlightGuard as t };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=in-flight-guard-Bq3epG58.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { At as getIssueRecordPath, Pt as init_record, ci as init_paths$1, si as getOverdeckHome, ui as packageRoot, zt as readIssueRecordSync } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { n as openDatabase, t as init_driver$1 } from "./driver-CKVGi51s.js";
|
|
4
|
-
import {
|
|
5
|
-
import { D as killSession, H as sessionExists, _ as getAgentSessions, w as init_tmux } from "./tmux-
|
|
4
|
+
import { i as updateIssueRecord, r as init_record_update } from "./record-update-Z0QCxmMp.js";
|
|
5
|
+
import { D as killSession, H as sessionExists, _ as getAgentSessions, w as init_tmux } from "./tmux-B1Wbxz5o.js";
|
|
6
6
|
import { dirname, isAbsolute, join } from "node:path";
|
|
7
7
|
import { Context, Effect, Layer, Queue, Stream } from "effect";
|
|
8
8
|
import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
@@ -4720,8 +4720,11 @@ function ensureRuntimeIndexesSync(db) {
|
|
|
4720
4720
|
runSchemaTopUp(db, "ALTER TABLE `review_status` ADD COLUMN `strike_ready_at` integer");
|
|
4721
4721
|
runSchemaTopUp(db, "ALTER TABLE `review_status` ADD COLUMN `strike_landing_state` text");
|
|
4722
4722
|
runSchemaTopUp(db, "ALTER TABLE `review_status` ADD COLUMN `strike_recovery_count` integer DEFAULT 0");
|
|
4723
|
+
runSchemaTopUp(db, "ALTER TABLE `review_status` ADD COLUMN `strike_transport_retry_count` integer");
|
|
4724
|
+
runSchemaTopUp(db, "ALTER TABLE `review_status` ADD COLUMN `strike_next_attempt_at` integer");
|
|
4723
4725
|
runSchemaTopUp(db, "ALTER TABLE `review_status` ADD COLUMN `strike_landing_attempts` text");
|
|
4724
4726
|
ensureReleaseSetTablesSync(db);
|
|
4727
|
+
ensureUatGenerationRepoTablesSync(db);
|
|
4725
4728
|
runSchemaTopUp(db, "ALTER TABLE `flywheel_substrate_bugs` ADD COLUMN `affected_criteria` text");
|
|
4726
4729
|
runSchemaTopUp(db, "CREATE INDEX IF NOT EXISTS `cost_session_id_idx` ON `cost_events` (`session_id`)");
|
|
4727
4730
|
runSchemaTopUp(db, "CREATE INDEX IF NOT EXISTS `idx_cost_agent_id` ON `cost_events` (`agent_id`, `ts`)");
|
|
@@ -4776,6 +4779,51 @@ function ensureReleaseSetTablesSync(db) {
|
|
|
4776
4779
|
db.exec("CREATE UNIQUE INDEX IF NOT EXISTS `release_set_components_issue_component_idx` ON `release_set_components` (`issue_id`,`component_key`)");
|
|
4777
4780
|
db.exec("CREATE INDEX IF NOT EXISTS `release_set_components_issue_order_idx` ON `release_set_components` (`issue_id`,`release_order`,`component_key`)");
|
|
4778
4781
|
}
|
|
4782
|
+
/**
|
|
4783
|
+
* Idempotent schema top-up for per-repo UAT generation tables (PAN-3093).
|
|
4784
|
+
* A polyrepo generation spans N member repos, so its per-repo branch, base SHA,
|
|
4785
|
+
* worktree, and publish state cannot live in the single-valued `uat_generations`
|
|
4786
|
+
* columns. Existing overdeck.db files predate these tables and need them added
|
|
4787
|
+
* without a migration reset — same shape as ensureReleaseSetTablesSync above.
|
|
4788
|
+
*/
|
|
4789
|
+
function ensureUatGenerationRepoTablesSync(db) {
|
|
4790
|
+
db.exec(`
|
|
4791
|
+
CREATE TABLE IF NOT EXISTS \`uat_generation_repos\` (
|
|
4792
|
+
\`uat_name\` text NOT NULL,
|
|
4793
|
+
\`repo_key\` text NOT NULL,
|
|
4794
|
+
\`repo_path\` text NOT NULL,
|
|
4795
|
+
\`branch\` text NOT NULL,
|
|
4796
|
+
\`base_sha\` text NOT NULL,
|
|
4797
|
+
\`target_branch\` text DEFAULT 'main' NOT NULL,
|
|
4798
|
+
\`worktree_path\` text NOT NULL,
|
|
4799
|
+
\`merge_order\` integer DEFAULT 0 NOT NULL,
|
|
4800
|
+
\`promoted_at\` integer,
|
|
4801
|
+
\`merge_sha\` text,
|
|
4802
|
+
PRIMARY KEY(\`uat_name\`, \`repo_key\`),
|
|
4803
|
+
FOREIGN KEY (\`uat_name\`) REFERENCES \`uat_generations\`(\`name\`) ON UPDATE no action ON DELETE no action
|
|
4804
|
+
)
|
|
4805
|
+
`);
|
|
4806
|
+
db.exec("CREATE INDEX IF NOT EXISTS `uat_generation_repos_uat_order_idx` ON `uat_generation_repos` (`uat_name`,`merge_order`)");
|
|
4807
|
+
db.exec(`
|
|
4808
|
+
CREATE TABLE IF NOT EXISTS \`uat_generation_member_repos\` (
|
|
4809
|
+
\`uat_name\` text NOT NULL,
|
|
4810
|
+
\`issue_id\` text NOT NULL,
|
|
4811
|
+
\`repo_key\` text NOT NULL,
|
|
4812
|
+
\`branch\` text NOT NULL,
|
|
4813
|
+
\`head_sha\` text NOT NULL,
|
|
4814
|
+
\`merge_order_in_repo\` integer DEFAULT 0 NOT NULL,
|
|
4815
|
+
PRIMARY KEY(\`uat_name\`, \`issue_id\`, \`repo_key\`),
|
|
4816
|
+
FOREIGN KEY (\`uat_name\`) REFERENCES \`uat_generations\`(\`name\`) ON UPDATE no action ON DELETE no action,
|
|
4817
|
+
FOREIGN KEY (\`issue_id\`) REFERENCES \`issues\`(\`id\`) ON UPDATE no action ON DELETE no action
|
|
4818
|
+
)
|
|
4819
|
+
`);
|
|
4820
|
+
db.exec("CREATE INDEX IF NOT EXISTS `uat_generation_member_repos_uat_idx` ON `uat_generation_member_repos` (`uat_name`,`issue_id`)");
|
|
4821
|
+
runSchemaTopUp(db, "CREATE INDEX IF NOT EXISTS `uat_generations_uncleaned_terminal_idx` ON `uat_generations` (`project_root`,`status`) WHERE `cleaned_at` IS NULL");
|
|
4822
|
+
runSchemaTopUp(db, "ALTER TABLE `uat_generation_repos` ADD COLUMN `target_branch` text DEFAULT 'main' NOT NULL");
|
|
4823
|
+
runSchemaTopUp(db, "ALTER TABLE `uat_generation_repos` ADD COLUMN `merge_sha` text");
|
|
4824
|
+
runSchemaTopUp(db, "ALTER TABLE `uat_generation_resolutions` ADD COLUMN `kind` text");
|
|
4825
|
+
runSchemaTopUp(db, "ALTER TABLE `uat_generation_resolutions` ADD COLUMN `note` text");
|
|
4826
|
+
}
|
|
4779
4827
|
function warnSchemaDriftSync(db) {
|
|
4780
4828
|
try {
|
|
4781
4829
|
const report = auditOverdeckSchemaSync(db, OVERDECK_SCHEMA_TOP_UP_EXPECTATIONS);
|
|
@@ -4927,6 +4975,14 @@ var init_infra = __esmMin((() => {
|
|
|
4927
4975
|
table: "review_status",
|
|
4928
4976
|
column: "strike_recovery_count"
|
|
4929
4977
|
},
|
|
4978
|
+
{
|
|
4979
|
+
table: "review_status",
|
|
4980
|
+
column: "strike_transport_retry_count"
|
|
4981
|
+
},
|
|
4982
|
+
{
|
|
4983
|
+
table: "review_status",
|
|
4984
|
+
column: "strike_next_attempt_at"
|
|
4985
|
+
},
|
|
4930
4986
|
{
|
|
4931
4987
|
table: "review_status",
|
|
4932
4988
|
column: "strike_landing_attempts"
|
|
@@ -4966,6 +5022,22 @@ var init_infra = __esmMin((() => {
|
|
|
4966
5022
|
{
|
|
4967
5023
|
table: "agents",
|
|
4968
5024
|
column: "last_yield_resume_at"
|
|
5025
|
+
},
|
|
5026
|
+
{
|
|
5027
|
+
table: "uat_generation_repos",
|
|
5028
|
+
column: "target_branch"
|
|
5029
|
+
},
|
|
5030
|
+
{
|
|
5031
|
+
table: "uat_generation_repos",
|
|
5032
|
+
column: "merge_sha"
|
|
5033
|
+
},
|
|
5034
|
+
{
|
|
5035
|
+
table: "uat_generation_resolutions",
|
|
5036
|
+
column: "kind"
|
|
5037
|
+
},
|
|
5038
|
+
{
|
|
5039
|
+
table: "uat_generation_resolutions",
|
|
5040
|
+
column: "note"
|
|
4969
5041
|
}
|
|
4970
5042
|
],
|
|
4971
5043
|
indexes: [
|
|
@@ -4974,7 +5046,10 @@ var init_infra = __esmMin((() => {
|
|
|
4974
5046
|
"idx_cost_issue_upper",
|
|
4975
5047
|
"release_sets_project_idx",
|
|
4976
5048
|
"release_set_components_issue_component_idx",
|
|
4977
|
-
"release_set_components_issue_order_idx"
|
|
5049
|
+
"release_set_components_issue_order_idx",
|
|
5050
|
+
"uat_generation_repos_uat_order_idx",
|
|
5051
|
+
"uat_generation_member_repos_uat_idx",
|
|
5052
|
+
"uat_generations_uncleaned_terminal_idx"
|
|
4978
5053
|
]
|
|
4979
5054
|
};
|
|
4980
5055
|
overdeckEvents = sqliteTable("events", {
|
|
@@ -5093,4 +5168,4 @@ var init_infra = __esmMin((() => {
|
|
|
5093
5168
|
//#endregion
|
|
5094
5169
|
export { init_paths as A, inArray as C, sql as D, like as E, OVERDECK_MIGRATION_PATH as O, gte as S, isNull as T, integer as _, EventBus as a, and as b, Records as c, getOverdeckDatabaseSync as d, init_infra as f, real as g, text as h, DbLive as i, getOverdeckDatabasePath as k, Tmux as l, sqliteTable as m, CostArchiveLive as n, EventBusLive as o, init_sqlite_core as p, Db as r, Forge as s, CostArchive as t, TmuxLive as u, init_drizzle_orm as v, isNotNull as w, eq as x, desc as y };
|
|
5095
5170
|
|
|
5096
|
-
//# sourceMappingURL=infra-
|
|
5171
|
+
//# sourceMappingURL=infra-BjuxvjdS.js.map
|