@overdeck/desktop 0.45.23 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drizzle/overdeck/0000_overdeck_init.sql +34 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-CCwFGICj.js} +2 -2
- package/server/activity-logger-CMthG6Vd.js +3 -0
- package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
- package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-De1L-Sb4.js} +6 -6
- package/server/{agent-gc-BV1q_2EV.js → agent-gc-CBULruzm.js} +5 -5
- package/server/agent-state-VQk8fY9F.js +3 -0
- package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BlnSkRFA.js} +5 -5
- package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-hZpxIw1E.js} +1 -1
- package/server/agents-BKKkxKgK.js +3 -0
- package/server/{agents-B4Bjbkfv.js → agents-C5rWYhb6.js} +4 -4
- package/server/archive-planning-0FJ6Xd3b.js +2 -0
- package/server/{archive-planning-DYrYojxl.js → archive-planning-C0lAbNB_.js} +16 -24
- package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
- package/server/assemble-DnffNpOo.js +339 -0
- package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
- package/server/{behavior-B_-4EKF3.js → behavior-CfIg6pKp.js} +2 -2
- package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
- package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-DHmCSLar.js} +2 -2
- package/server/{build-info-DgTqZkL5.js → build-info-BP160gU7.js} +1 -1
- package/server/{build-info-BT096lEl.js → build-info-CuFfxZxp.js} +5 -3
- package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-DEWD82qK.js} +2 -2
- package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-C-AXLfYT.js → checkpoints-CZvbtLnr.js} +2 -2
- package/server/{checkpoints-CpgCjAlN.js → checkpoints-DMTgXuLG.js} +1 -1
- package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-CN-xo-do.js} +1 -1
- package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
- package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-CN0cSCPp.js} +2 -2
- package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
- package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-Dabi9slj.js} +1 -1
- package/server/cli-DmXETsw-.js +3 -0
- package/server/{cli-vBeXbPrq.js → cli-oCWYA1pE.js} +9 -9
- package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8mB3KuB.js} +2 -2
- package/server/{cliproxy-DW0V86F8.js → cliproxy-PGwTX_o8.js} +1 -1
- package/server/{close-issue-Dn_4c4G8.js → close-issue-D5MF5GqF.js} +5 -5
- package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
- package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Cltx86x5.js} +37 -16
- package/server/{codex-Dg7Is5yb.js → codex-BdEsUFWh.js} +1 -1
- package/server/{codex-TmSi-yTv.js → codex-Drlf5Xhf.js} +37 -8
- package/server/{codex-parser-C4gSH-IR.js → codex-parser-DpB89Vqa.js} +2 -2
- package/server/compaction-continuation-K2AxQX4H.js +200 -0
- package/server/{config-DjLOdbgT.js → config-B2IMcBxx.js} +4 -3
- package/server/{config-DUIhMN_T.js → config-DV-grfQc.js} +1 -1
- package/server/{config-CCvjQf27.js → config-Dr3pW6w6.js} +2 -2
- package/server/{config-yaml-DvyMuOle.js → config-yaml-CmOPzmBb.js} +290 -22
- package/server/{conflict-gate-CmrYpa47.js → conflict-gate-B9cN3SBi.js} +4 -4
- package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-Dh754uyA.js} +1 -1
- package/server/context-layers-D6LZo3l1.js +4 -0
- package/server/context-layers-dR5YxHYB.js +37 -0
- package/server/{control-settings-aP1ANIlI.js → control-settings-C7DUehE1.js} +49 -19
- package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-BoqdDXWF.js} +8 -8
- package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
- package/server/{conversation-service-Du-MTNpJ.js → conversation-service-5aCnq1zR.js} +331 -20
- package/server/conversation-service-BCxl4f8Z.js +3 -0
- package/server/{conversations-DbOs1e9Q.js → conversations-BUpYsOZg.js} +5 -5
- package/server/{conversations-6mPANqvL.js → conversations-C34dyIb9.js} +1 -1
- package/server/{cost-Ca0YTWDw.js → cost-Bgcub5kW.js} +12 -2
- package/server/{cost-CW4WSe72.js → cost-CvxRrucd.js} +3 -3
- package/server/{cost-sync-C0VdGme1.js → cost-sync-Dv3LUaNW.js} +3 -3
- package/server/{dag-CdOjJVDT.js → dag-ombYYt4s.js} +2 -2
- package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-DrXqT9LQ.js +4 -0
- package/server/{deacon-pRnyD5w9.js → deacon-hi9KLPLT.js} +2998 -2659
- package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-BNBebzeL.js} +3 -3
- package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
- package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-DBxUaO-A.js} +13 -13
- package/server/deacon-swarm-I2JfX5Tg.js +2 -0
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-CQcP70ND.js +13 -0
- package/server/delivery-Da0zEMY4.js +3 -0
- package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-Df-Tmaq0.js} +69 -18
- package/server/deploy-queue-9SrhZR63.js +3 -0
- package/server/deploy-queue-UjKGYsDe.js +169 -0
- package/server/deploy-window-jOiPRHL0.js +3 -0
- package/server/{deploy-window-DeP_OIRk.js → deploy-window-rpqpWqHA.js} +40 -16
- package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-CC46Ig8q.js} +2 -2
- package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-68CSCRnu.js} +3 -3
- package/server/{dist-DyRx4cI7.js → dist-CJy72uEg.js} +1 -1
- package/server/dist-DSlxIU1H.js +3 -0
- package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
- package/server/docker-BMVTSFL5.js +3 -0
- package/server/{docker-BK7HIcBj.js → docker-Dam7mbIB.js} +2 -2
- package/server/{dod-BrSfUHm0.js → dod-Dar-yheg.js} +8 -4
- package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
- package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
- package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-B057YA81.js} +4 -4
- package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-C98V8yW-.js} +1 -1
- package/server/{esm-shims-CbI3BVkl.js → esm-shims-Br9BPdkR.js} +1 -1
- package/server/{event-store-Cr5PQwFC.js → event-store-ELqkVOn0.js} +1 -1
- package/server/{event-store-tdiY5eDZ.js → event-store-zY5MJHgF.js} +23 -4
- package/server/{events-CvvGK6LT.js → events-D6pyqhzM.js} +1 -1
- package/server/{events-CC1dgUpx.js → events-D9PR1IC0.js} +3 -3
- package/server/{factory-CynerjXO.js → factory-CRoOpGsF.js} +5 -5
- package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population--YUXU999.js} +4 -4
- package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BORBTo0y.js} +2 -2
- package/server/{features-Dhxz-wLc.js → features--nFkJY8v.js} +2 -2
- package/server/{feedback-target-iygZwmMc.js → feedback-target-C0ZzyHvU.js} +1 -1
- package/server/{feedback-target-CPS15Vte.js → feedback-target-Dt9BsapX.js} +8 -8
- package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-BG0RUZiu.js} +5 -5
- package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D1fm-5Z8.js} +1 -1
- package/server/flywheel-BekukH4i.js +2 -0
- package/server/flywheel-BiT3odRb.js +1092 -0
- package/server/flywheel-CLVB55Be.js +478 -0
- package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
- package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
- package/server/forge-CZbSg6Ds.js +383 -0
- package/server/forge-DK3blQb_.js +3 -0
- package/server/{from-CJ_aH5jD.js → from-D_4_dk7i.js} +1 -1
- package/server/{fts-db-CKgg0VKg.js → fts-db-BeOomFa-.js} +2 -2
- package/server/{fts-operations-BrL_VTRr.js → fts-operations-BdewJ_g9.js} +2 -2
- package/server/git-utils-CI6cwyyC.js +3 -0
- package/server/{git-utils-BVa07a4a.js → git-utils-ameCgDdy.js} +93 -3
- package/server/{github-app-CMBdIFBQ.js → github-app-CQ1Lo6LA.js} +19 -8
- package/server/{github-app-CPfoFAdV.js → github-app-DtAsvwzK.js} +1 -1
- package/server/{github-client--XVlDpwM.js → github-client-BfyDxuRN.js} +2 -2
- package/server/{github-client-B4QsdE-X.js → github-client-Cj0yl_07.js} +1 -1
- package/server/github-pr-lookup-BDq6Wznz.js +58 -0
- package/server/{harness-binary-CVio2m-u.js → harness-binary-DqkftwTb.js} +32 -6
- package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-CqMqM1Mb.js} +18 -9
- package/server/{health-events-C9B8y1Hm.js → health-events-CazRxJUS.js} +2 -2
- package/server/{health-events-CpfvuVmm.js → health-events-_xfTaOUs.js} +1 -1
- package/server/{hooks-DUXw8A0-.js → hooks-BO3QT1sn.js} +2 -2
- package/server/{hooks-ltecuFqZ.js → hooks-BnJsxlSq.js} +1 -1
- package/server/{hume-BEq0bUDg.js → hume-CDYJxqx-.js} +2 -2
- package/server/hume-Dq--7rOQ.js +3 -0
- package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-BYqERdkE.js} +1 -1
- package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
- package/server/in-flight-guard-Bq3epG58.js +45 -0
- package/server/{infra-CzaSOgul.js → infra-BjuxvjdS.js} +80 -5
- package/server/{injection-oNZeoDhL.js → injection-DZxlV2al.js} +1 -1
- package/server/{injection-DZ0PfYa4.js → injection-UCf8EsjX.js} +191 -183
- package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-6kylZnrm.js} +139 -82
- package/server/inspect-agent-BVwDrVrz.js +2 -0
- package/server/{internal-token-Bb4XeV2x.js → internal-token-DvMTQSOS.js} +2 -2
- package/server/{internal-token-DXdfprGr.js → internal-token-M9omeXM1.js} +1 -1
- package/server/{io-B3_AHDfr.js → io-VHvc0Ssp.js} +43 -26
- package/server/{issue-closed-zhdvQicO.js → issue-closed-B6KJkmHZ.js} +7 -7
- package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-9gk3fnXN.js} +1 -1
- package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
- package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-DmCh7EHj.js} +10 -10
- package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-PMx8F1jr.js} +1 -1
- package/server/{issues-B6ToV6x1.js → issues-CgnQ1OGQ.js} +2 -2
- package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-DJOH_O-w.js} +5 -4
- package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-Dv7AV_R1.js} +3 -3
- package/server/{label-reconciler-DdWbHEBu.js → label-reconciler--F85rufp.js} +4 -4
- package/server/{lifecycle-DfeyBDwA.js → lifecycle-CTdOWYMi.js} +2 -2
- package/server/{lifecycle-sycO16hj.js → lifecycle-DDN8ApVY.js} +6 -7
- package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-D-lGdzK3.js} +5 -5
- package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-D_zTLvP1.js} +1 -1
- package/server/{linear-client-D4zqMnX7.js → linear-client-BQU36QqE.js} +2 -2
- package/server/{linear-client-DqhDQO9k.js → linear-client-CY4O_Tu3.js} +1 -1
- package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
- package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-C_ZEhbqI.js → merge-Bpx4jjht.js} +13 -11
- package/server/{merge-agent-XrB80vfT.js → merge-agent-DdMVSV2Y.js} +233 -83
- package/server/{merge-agent-BQM3a8z5.js → merge-agent-DrXa1CpW.js} +1 -1
- package/server/{merge-batch-Bwoyr8Je.js → merge-batch-C5q1c1GX.js} +1 -1
- package/server/merge-completeness-BMm8tMyZ.js +277 -0
- package/server/merge-completeness-D0ljXbk3.js +3 -0
- package/server/{merge-DK23JEdS.js → merge-idOG--29.js} +1 -1
- package/server/merge-ops-DdpTiEMt.js +2 -0
- package/server/merge-rebase-DGQpYJU3.js +2 -0
- package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-xLnMlw5h.js} +3 -3
- package/server/merge-set-DH7ot3yz.js +89 -0
- package/server/merge-set-DzsOTBg5.js +3 -0
- package/server/{merge-sync-DZ9dojJn.js → merge-sync-CQ-LgZ1_.js} +406 -153
- package/server/merge-sync-Ca7F5JnQ.js +3 -0
- package/server/{merge-train-DxDfBTjr.js → merge-train-DTEMyIu4.js} +18 -8
- package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-CNPJzepw.js} +4 -4
- package/server/merge-verification-x3JO8Dtz.js +220 -0
- package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
- package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
- package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-IMSBfePV.js} +2 -2
- package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-C5ULAXwO.js} +1 -1
- package/server/node_modules/.package-lock.json +27 -27
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/@google-cloud/common/package.json +2 -2
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +1 -1
- package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/server/node_modules/google-auth-library/package.json +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
- package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
- package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
- package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
- package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
- package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
- package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
- package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
- package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
- package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
- package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
- package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
- package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
- package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
- package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
- package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
- package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
- package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
- package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
- package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
- package/server/node_modules/google-gax/package.json +5 -5
- package/server/node_modules/retry-request/package.json +4 -4
- package/server/node_modules/teeny-request/package.json +5 -5
- package/server/node_modules/undici/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/server/node_modules/undici/lib/core/request.js +13 -2
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +42 -8
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +269 -61
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +13 -3
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +30 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/server/node_modules/undici/lib/interceptor/decompress.js +9 -2
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +372 -68
- package/server/node_modules/undici/lib/util/date.js +23 -6
- package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
- package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
- package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
- package/server/package-lock.json +28 -28
- package/server/package.json +1 -1
- package/server/{pan-dir-DeVUgwA7.js → pan-dir-ubraCiUg.js} +24 -10
- package/server/{paths-_zEts6wc.js → paths-cXmOwSbh.js} +2 -2
- package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
- package/server/{pickup-Dd0Znxxy.js → pickup-D8xtG1J2.js} +17 -16
- package/server/pipeline-membership-BGSvkT2M.js +3 -0
- package/server/pipeline-membership-CrAPLYtf.js +57 -0
- package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-gather-CET40frr.js} +177 -109
- package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
- package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
- package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-ImNXknf0.js} +1 -1
- package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
- package/server/{project-pipelines-2sK1apsO.js → project-pipelines-Bim6bThI.js} +2 -2
- package/server/project-repos-C0nuoBGv.js +98 -0
- package/server/project-repos-CRE6Ykow.js +3 -0
- package/server/projects-B03Wr-xc.js +3 -0
- package/server/{prompts-Dp4Tpk39.js → prompts-BEx08AIu.js} +2 -2
- package/server/{providers-DKkBXhxU.js → providers-D7IluJe0.js} +1 -1
- package/server/{providers-DV7ec8l7.js → providers-evXhiQeg.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
- package/server/public/assets/{dist-BWR4qFiV.js → dist-CxAOHbil.js} +1 -1
- package/server/public/assets/{dist-DEmlBBNQ.js → dist-DqDRYW6P.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
- package/server/public/assets/index-Cc7cnFC4.css +1 -0
- package/server/public/assets/index-K0hAYCgV.js +807 -0
- package/server/public/assets/{linear-C9zFQpkX.js → linear-B4cuEFmO.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
- package/server/public/assets/{prod-B1jCQihw.js → prod-CN2nHBvX.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests--Ib2jTgy.js → pull-requests-Cv7LxzUN.js} +1 -1
- package/server/{pull-requests-CXIhdCYD.js → pull-requests-DHWiKxo7.js} +19 -10
- package/server/{queries-6d7Cdtm7.js → queries-DHJm7bTd.js} +1134 -203
- package/server/{rally-B708-nZn.js → rally-B71M9f4o.js} +3 -3
- package/server/rally-YDjU513q.js +3 -0
- package/server/{rally-api-yjQ0TfHd.js → rally-api-D5uXN08-.js} +1 -1
- package/server/{rally-api-nY0ZANw3.js → rally-api-Dkqmok65.js} +2 -2
- package/server/{rally-client-B1EJhfV0.js → rally-client-Bfqm6XI4.js} +4 -4
- package/server/{rally-client-CULK2XAY.js → rally-client-CxsA6ExK.js} +1 -1
- package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
- package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
- package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-0EEYReVZ.js} +36 -36
- package/server/rebuild-stack-qeRqHZxH.js +4 -0
- package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-BbYFsqLa.js} +7 -6
- package/server/record-CtroO946.js +3 -0
- package/server/record-update-DH6dLJID.js +3 -0
- package/server/{record-update-Dq0t2uBG.js → record-update-Z0QCxmMp.js} +124 -34
- package/server/{recovery-trip-BJtIQuag.js → recovery-trip-eJe26h-f.js} +2 -2
- package/server/{release-engine-DZpmGGzb.js → release-engine-lPUp-MTd.js} +5 -5
- package/server/{release-set-hnXd_kga.js → release-set-BwGeyZKX.js} +3 -3
- package/server/{remote-Br-ZWVIP.js → remote-BCd02Es1.js} +3 -3
- package/server/{remote-4tiENDaI.js → remote-CVGUhXMV.js} +3 -3
- package/server/{remote-agents-CRCg1L4H.js → remote-agents-C1bssi41.js} +2 -2
- package/server/{remote-agents-nmty1mLu.js → remote-agents-C_VxssLU.js} +300 -46
- package/server/{remote-completion-BbWNd10K.js → remote-completion-DAB0P706.js} +12 -12
- package/server/resume-u9byntrq.js +3 -0
- package/server/{review-agent-DJRO8EG8.js → review-agent-CD4RCI0Y.js} +1 -1
- package/server/{review-agent-sKkE1FEL.js → review-agent-CHhI66UP.js} +61 -44
- package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-DSMRIfuJ.js} +7 -6
- package/server/{review-context-BgX3lcCx.js → review-context-oFuBbiEE.js} +69 -25
- package/server/{in-flight-guard-aQ1IxeI3.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
- package/server/review-status-BZH8h-6W.js +3 -0
- package/server/review-status-emit-CUExtHd5.js +50 -0
- package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-QV_hQkgS.js} +4 -4
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
- package/server/review-status-source-ylw5QZUR.js +3 -0
- package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-483sujRo.js} +10 -5
- package/server/{review-status-sync-To3-iS-N.js → review-status-sync-NaWvI9Xf.js} +1 -1
- package/server/review-status-yljtTd-q.js +7521 -0
- package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-BPDn4li_.js} +1 -1
- package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CELeUinh.js} +48 -8
- package/server/{rollup-WA0VD-Rr.js → rollup-DTNvelz9.js} +8 -8
- package/server/{rollup-B53Y81xK.js → rollup-DYZfq1c4.js} +1 -1
- package/server/{scanner-D2743cp8.js → scanner-CV35oSn4.js} +42 -14
- package/server/{sequence-io-Cg0zYj_E.js → sequence-io-DF_8iuhV.js} +4 -4
- package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-B2WeCtGi.js} +5 -5
- package/server/server.js +3899 -672
- package/server/{service-DCpB_SGd.js → service-Br9rpBNA.js} +83 -65
- package/server/{session-fork-BQ8_6H32.js → session-fork-D0LY152N.js} +2 -2
- package/server/{session-history-CVZDpS3c.js → session-history-BUyK29eq.js} +4 -4
- package/server/{settings-BZ5m1UCl.js → settings-Bse1Pdcj.js} +3 -3
- package/server/settings-CdvIF84R.js +2 -0
- package/server/{settings-ylxwqwQG.js → settings-CvVGqNEs.js} +3 -2
- package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BWLa8ODz.js} +2 -2
- package/server/{shadow-state-Dh-HzF2J.js → shadow-state-B4fpKxOO.js} +2 -2
- package/server/{shadow-state-C2_epgx2.js → shadow-state-FV6PHfEW.js} +1 -1
- package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-D7asqxOZ.js} +2 -2
- package/server/{ship-log-ClSMIzZX.js → ship-log-xplJ8t75.js} +1 -1
- package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CPp2Ykf6.js} +1 -1
- package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-D3U_79f-.js} +8 -7
- package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-1nFi3gfk.js} +1 -1
- package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DGfZ5B8D.js} +30 -23
- package/server/{specialist-completion-BXhav38U.js → specialist-completion-Br48eiDP.js} +1 -1
- package/server/{specialist-context-DtrYvGJ-.js → specialist-context-cVbGnTa3.js} +5 -5
- package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
- package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-Cl5-hqT8.js} +3 -3
- package/server/{specialists-JVO00bs7.js → specialists-CNfYO3G2.js} +1634 -457
- package/server/{specialists-DyFeedjn.js → specialists-Cicieuzu.js} +21 -19
- package/server/{specialists-D5fRZXmN.js → specialists-JHsdU3pA.js} +1 -1
- package/server/{specialists-DVj0hvaL.js → specialists-Tdezg_6N.js} +1 -1
- package/server/specs-Bt7WJDoC.js +3 -0
- package/server/src-CRmCHlma.js +11408 -0
- package/server/{src-CG9mCkP6.js → src-Ck028hjO.js} +6 -6
- package/server/{src-CMTQGyCK.js → src-UWcGe0Ix.js} +5 -5
- package/server/stack-health-CJLMrLBl.js +3 -0
- package/server/{stack-health-puygdaMd.js → stack-health-DqSqx0zv.js} +68 -12
- package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-CYFOUNlT.js} +4 -4
- package/server/{staleness-Cbl_w4Bw.js → staleness-BQ-0gMYK.js} +1 -1
- package/server/{staleness-Bpy41ngS.js → staleness-D47CUJok.js} +1 -1
- package/server/{state-home-CIGjwNfJ.js → state-home-BYV7qZTW.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
- package/server/{state-migrate-Dkzaxvny.js → state-migrate-CvvBtS0Y.js} +4 -4
- package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-Wt0UVvu1.js} +1 -1
- package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-mkLC6G_t.js} +360 -26
- package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
- package/server/{summary-fork-D8bXjCr7.js → summary-fork-CD7GOts0.js} +2 -2
- package/server/{summary-fork-DHhJIsAL.js → summary-fork-xiXBnWG9.js} +78 -12
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-B5SbvDx2.js} +2 -41
- package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
- package/server/supervisor/pty-supervisor.js +49 -2
- package/server/supervisor/pty-token-B7lp0ElT.js +43 -0
- package/server/{supervisor-BO-Zk_h-.js → supervisor-DL788vos.js} +3 -3
- package/server/supervisor-UWiQNK-y.js +2 -0
- package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-BV14DF5N.js} +3 -3
- package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-pdWG6ZQs.js} +56 -29
- package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-l2F4_zim.js} +15 -16
- package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-qakFIIGz.js} +6 -6
- package/server/{test-verdict-CmUBK5cT.js → test-verdict-BJYDggMm.js} +1 -1
- package/server/{test-verdict-DFjjIHR5.js → test-verdict-Gw-btEfb.js} +1 -1
- package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BKOYB616.js} +1 -1
- package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-CBaWkV9k.js} +2 -2
- package/server/{tmux-ftABRAmc.js → tmux-B1Wbxz5o.js} +3 -3
- package/server/{tmux-DoThH6aj.js → tmux-DQ6jB76i.js} +1 -1
- package/server/tmux-dedup-DbN6MGzM.js +892 -0
- package/server/{token-CsOhvw42.js → token-Cxbk023d.js} +2 -2
- package/server/{token-util-CTmczIfW.js → token-util-CLq2MmQt.js} +1 -1
- package/server/token-util-zlz9U0ki.js +3 -0
- package/server/{tracker-config-B4itFzDo.js → tracker-config-DZ8Zn2nQ.js} +2 -2
- package/server/{tracker-utils-tnxxqROg.js → tracker-utils-L0FKtjq2.js} +3 -3
- package/server/{traefik-connect-m73vGebA.js → traefik-connect-bNX6jKkb.js} +1 -1
- package/server/{tunnel-B2vxjx_b.js → tunnel-BAm1XgjG.js} +3 -3
- package/server/{tunnel-Cgj-IGIl.js → tunnel-CjSnHdTc.js} +1 -1
- package/server/{types-BBNjPcqU.js → types-q67TYYg5.js} +1 -1
- package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
- package/server/uat-train-Cu-4nvbf.js +2 -0
- package/server/uat-train-D5UjcyAa.js +0 -0
- package/server/validate-Cxsx5Uz1.js +179 -0
- package/server/{validation-CIi6pnI2.js → validation-DEaTZafj.js} +1 -1
- package/server/{validation-B5JxoPUS.js → validation-VZgJxmqc.js} +4 -4
- package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-C85cRTc_.js} +1 -1
- package/server/{verification-artifact-BcnIbigL.js → verification-artifact-g3yuxQDL.js} +1 -1
- package/server/{verification-runner-CDj4lD4t.js → verification-runner-DlZI8yhw.js} +1 -1
- package/server/{verification-runner-Br0S_Ous.js → verification-runner-KDZIsBj4.js} +114 -107
- package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-Jr94BF3Y.js} +1 -1
- package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-C-vuP3_J.js} +20 -9
- package/server/workflows-CHrx_hcW.js +2 -0
- package/server/{workflows-C9WmILql.js → workflows-D0oip4eV.js} +161 -78
- package/server/{workspace-DuUdndHe.js → workspace-BqFg__wH.js} +1 -1
- package/server/{workspace-BVl4rihN.js → workspace-C0fH3aek.js} +3 -3
- package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
- package/server/workspace-anchor-drift-CZKofakh.js +224 -0
- package/server/{workspace-config-cEGcO6UT.js → workspace-config-B123aZl-.js} +1 -1
- package/server/workspace-manager-CDTKjjdU.js +3 -0
- package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CwO-Hek7.js} +206 -116
- package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-CQv00QwK.js} +2 -2
- package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-D4M8BM4W.js} +1 -1
- package/server/{workspaces-hWvy9eKs.js → workspaces-j1e_6aAT.js} +736 -290
- package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
- package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
- package/sync-sources/hooks/record-cost-event.js +6 -4
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
- package/sync-sources/skills/pan-reload/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +5 -4
- package/sync-sources/skills/pan-review/SKILL.md +7 -1
- package/sync-sources/skills/pan-start/SKILL.md +4 -0
- package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
- package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
- package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
- package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bg0lhqwj.js +0 -3
- package/server/agents-FlIgQ3ql.js +0 -3
- package/server/archive-planning-zkJb3BeM.js +0 -3
- package/server/cli-BsVIHwzC.js +0 -3
- package/server/context-layers-B3Nt58jl.js +0 -4
- package/server/context-layers-ZYFcWiyc.js +0 -165
- package/server/conversation-service-Up7FEzIC.js +0 -3
- package/server/deacon-DYSEJb48.js +0 -4
- package/server/deacon-swarm-9jRLS5Ke.js +0 -2
- package/server/deploy-window-CM6W1-c6.js +0 -3
- package/server/dist-Bd3vn0Hw.js +0 -3
- package/server/flywheel-DMCUzDWg.js +0 -2
- package/server/flywheel-DSSpWmqF.js +0 -522
- package/server/flywheel-DcBkQvgE.js +0 -207
- package/server/flywheel-merge-order-C-6zRLvM.js +0 -2
- package/server/flywheel-merge-order-DxbQKE1d.js +0 -244
- package/server/forge-B-ZWyTRm.js +0 -2
- package/server/forge-Ch9gCFod.js +0 -270
- package/server/git-utils-Dry_Ka_D.js +0 -3
- package/server/github-pr-lookup-BRbDW-qk.js +0 -44
- package/server/hume-B_DbflNM.js +0 -3
- package/server/inspect-agent-ch-F-5Ci.js +0 -2
- package/server/launcher-generator-CHVm7bGT.js +0 -379
- package/server/layers-DzxSTGNA.js +0 -93
- package/server/merge-blockers-BsFjGrQ8.js +0 -41
- package/server/merge-ops-DlB1IM0Y.js +0 -2
- package/server/merge-set-DLz0MkGT.js +0 -139
- package/server/merge-set-DnSYdBEp.js +0 -3
- package/server/merge-sync-SSv3E-pl.js +0 -3
- package/server/merge-verification-CSizH3HY.js +0 -124
- package/server/projects-9SkRpES9.js +0 -3
- package/server/public/assets/index-CUr1xv8w.css +0 -1
- package/server/public/assets/index-CsSuZQBI.js +0 -802
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
- package/server/rally-njs_mJrt.js +0 -3
- package/server/rebuild-stack-kA7XngID.js +0 -3
- package/server/record-t6V-3Dcj.js +0 -3
- package/server/record-update-DACtKh6_.js +0 -3
- package/server/resume-CcKqnTvE.js +0 -3
- package/server/review-status-A7quS5KJ.js +0 -1454
- package/server/review-status-C6n6-9f_.js +0 -3
- package/server/settings-D0OSwos5.js +0 -2
- package/server/specs-nN45DG2X.js +0 -3
- package/server/src-U7_kTPEE.js +0 -4733
- package/server/stack-health-Df0YEZKa.js +0 -3
- package/server/supervisor-BPy-o1A8.js +0 -2
- package/server/token-util-DrHg8abn.js +0 -3
- package/server/tracker-utils-BePq_oj-.js +0 -3
- package/server/uat-train-CuEn0t9M.js +0 -2152
- package/server/uat-train-cKfM-_WW.js +0 -2
- package/server/workflows-D90rMOya.js +0 -2
- package/server/workspace-manager-ZTdJAy9M.js +0 -3
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { O as killSessionSync, U as sessionExistsSync, a as capturePaneSync, i as capturePane, j as listPaneValuesSync, u as detectTerminalApiErrorSync, w as init_tmux, z as sendKeys } from "./tmux-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-
|
|
7
|
-
import { t as init_behavior } from "./behavior-
|
|
8
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
9
|
-
import { m as readWorkspacePlanSync, o as init_io } from "./io-
|
|
10
|
-
import {
|
|
11
|
-
import { i as createCodexRuntimeSync, l as init_codex } from "./codex-
|
|
12
|
-
import {
|
|
13
|
-
import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-
|
|
14
|
-
import { l as init_dag, o as getDispatchableItems } from "./dag-
|
|
15
|
-
import { a as loadCloisterConfigSync, r as init_config, t as DEFAULT_CLOISTER_CONFIG } from "./config-
|
|
16
|
-
import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-
|
|
17
|
-
import { t as recordRecoveryFailure } from "./recovery-trip-
|
|
18
|
-
import "node:path";
|
|
1
|
+
import { Fr as init_errors, Gn as init_projects, Mr as TmuxError, Tr as FsError, ar as resolveProjectFromIssueSync, ci as init_paths, ei as encodeClaudeProjectDir, gr as init_issue_id, hr as extractPrefixSync, si as getOverdeckHome, ui as packageRoot } from "./config-yaml-CmOPzmBb.js";
|
|
2
|
+
import { O as killSessionSync, U as sessionExistsSync, a as capturePaneSync, i as capturePane, j as listPaneValuesSync, u as detectTerminalApiErrorSync, w as init_tmux, z as sendKeys } from "./tmux-B1Wbxz5o.js";
|
|
3
|
+
import { c as getRuntimeBehavior, i as CLAUDE_CODE_BEHAVIOR } from "./src-CRmCHlma.js";
|
|
4
|
+
import { f as init_review_status, u as getReviewStatusSync } from "./review-status-yljtTd-q.js";
|
|
5
|
+
import { $n as getAgentDir, Cn as materializeAcpContextFile, Fr as getAgentRuntimeState, G as resumeAgent, Ht as BRIDGE_TOKEN_HEADER, Ir as getAgentRuntimeStateSync, On as determineModel, Rr as saveAgentRuntimeState, Sn as init_context, Ut as init_bridge_token, X as messageAgent, _r as saveAgentStateSync, a as listRunningAgentsSync, at as init_activity, b as init_agents, ct as init_ohmypi, dr as markAgentTroubled, n as init_queries, r as listAgentStates, rr as getAgentStateSync, rt as getLatestSessionIdSync, st as createOhmypiRuntimeSync, ut as spawnAgent, vn as init_pi_fifo } from "./queries-DHJm7bTd.js";
|
|
6
|
+
import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-BUyK29eq.js";
|
|
7
|
+
import { t as init_behavior } from "./behavior-CfIg6pKp.js";
|
|
8
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DZ8Zn2nQ.js";
|
|
9
|
+
import { m as readWorkspacePlanSync, o as init_io } from "./io-VHvc0Ssp.js";
|
|
10
|
+
import { f as init_launcher_generator } from "./tmux-dedup-DbN6MGzM.js";
|
|
11
|
+
import { _ as tmuxKillSession, g as tmuxCreateSession, h as init_tmux_cli, i as createCodexRuntimeSync, l as init_codex, v as tmuxSessionExists } from "./codex-Drlf5Xhf.js";
|
|
12
|
+
import { i as prepareHarnessLaunch, r as init_harness_binary } from "./harness-binary-DqkftwTb.js";
|
|
13
|
+
import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-C7DUehE1.js";
|
|
14
|
+
import { l as init_dag, o as getDispatchableItems } from "./dag-ombYYt4s.js";
|
|
15
|
+
import { a as loadCloisterConfigSync, r as init_config, t as DEFAULT_CLOISTER_CONFIG } from "./config-B2IMcBxx.js";
|
|
16
|
+
import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-DJOH_O-w.js";
|
|
17
|
+
import { t as recordRecoveryFailure } from "./recovery-trip-eJe26h-f.js";
|
|
18
|
+
import { join } from "node:path";
|
|
19
19
|
import { Effect } from "effect";
|
|
20
20
|
import { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
21
21
|
import { join as join$1 } from "path";
|
|
22
22
|
import { homedir } from "os";
|
|
23
23
|
import "node:os";
|
|
24
|
-
import "node:fs";
|
|
24
|
+
import { existsSync as existsSync$1, readFileSync as readFileSync$1, rmSync as rmSync$1, statSync as statSync$1 } from "node:fs";
|
|
25
25
|
import { readFile, readdir, stat as stat$1 } from "fs/promises";
|
|
26
26
|
import { exec } from "node:child_process";
|
|
27
27
|
import { promisify } from "node:util";
|
|
28
28
|
import { exec as exec$1 } from "child_process";
|
|
29
29
|
import { promisify as promisify$1 } from "util";
|
|
30
30
|
import "node:crypto";
|
|
31
|
+
import { request } from "node:http";
|
|
31
32
|
//#region ../../lib/agent-input-detection.ts
|
|
32
33
|
init_paths();
|
|
33
34
|
init_issue_id();
|
|
@@ -36,13 +37,16 @@ init_behavior();
|
|
|
36
37
|
init_persistent_logger();
|
|
37
38
|
init_review_status();
|
|
38
39
|
init_io();
|
|
40
|
+
init_tmux_cli();
|
|
39
41
|
init_harness_binary();
|
|
40
42
|
init_codex();
|
|
41
43
|
init_launcher_generator();
|
|
42
44
|
init_dag();
|
|
45
|
+
init_bridge_token();
|
|
43
46
|
init_ohmypi();
|
|
44
47
|
init_activity();
|
|
45
48
|
init_agents();
|
|
49
|
+
init_queries();
|
|
46
50
|
init_tmux();
|
|
47
51
|
init_errors();
|
|
48
52
|
const ANSI_PATTERN = /\x1b\[[0-9;?]*[ -/]*[@-~]/g;
|
|
@@ -50,6 +54,7 @@ const MAX_PROMPT_CHARS = 2e3;
|
|
|
50
54
|
const PANE_DETECTION_CACHE_TTL_MS = 1e4;
|
|
51
55
|
const MAX_PANE_DETECTION_CACHE_ENTRIES = 256;
|
|
52
56
|
const MAX_CONCURRENT_PANE_DETECTIONS = 4;
|
|
57
|
+
const MAX_MENU_FOOTER_LINES = 4;
|
|
53
58
|
const paneDetectionCache = /* @__PURE__ */ new Map();
|
|
54
59
|
const paneDetectionInFlight = /* @__PURE__ */ new Map();
|
|
55
60
|
const paneDetectionWaiters = [];
|
|
@@ -103,6 +108,32 @@ function isCurrentPromptIndex(lines, index, maxTrailingLines = 0) {
|
|
|
103
108
|
if (index < 0) return false;
|
|
104
109
|
return lines.length - index <= maxTrailingLines + 1;
|
|
105
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* PAN-3068 — a harness footer hint line: key/action pairs separated by "·",
|
|
113
|
+
* e.g. "Esc to cancel · Tab to amend · ctrl+e to explain". Every segment must
|
|
114
|
+
* open with a key name, so real post-answer output ("● Bash(git status)") never
|
|
115
|
+
* qualifies.
|
|
116
|
+
*/
|
|
117
|
+
function looksLikeHarnessFooterHint(line) {
|
|
118
|
+
const segments = line.split("·").map((segment) => segment.trim()).filter(Boolean);
|
|
119
|
+
if (segments.length === 0) return false;
|
|
120
|
+
return segments.every((segment) => /^(?:esc(?:ape)?|tab|enter|return|space|backspace|shift\+\S+|ctrl\+\S+|alt\+\S+|\?)\b/i.test(segment) || /^press\s+\S+/i.test(segment));
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* PAN-3068 — the permission menu is still on screen when nothing but harness
|
|
124
|
+
* footer chrome follows its final option. Claude Code renders "Esc to cancel ·
|
|
125
|
+
* Tab to amend · ctrl+e to explain" below "3. No", so the old rule (the option
|
|
126
|
+
* must be the literal last pane line) meant Claude permission prompts were
|
|
127
|
+
* *never* detected — agents froze on a permission gate while the dashboard
|
|
128
|
+
* reported them healthy and working. Real output below the menu means the
|
|
129
|
+
* prompt was answered and scrolled, so it still clears.
|
|
130
|
+
*/
|
|
131
|
+
function isPermissionMenuStillOnScreen(lines, menuEndIndex) {
|
|
132
|
+
if (menuEndIndex < 0) return false;
|
|
133
|
+
const trailing = lines.slice(menuEndIndex + 1);
|
|
134
|
+
if (trailing.length > MAX_MENU_FOOTER_LINES) return false;
|
|
135
|
+
return trailing.every(looksLikeHarnessFooterHint);
|
|
136
|
+
}
|
|
106
137
|
function findPermissionMenuEndIndex(lines, menuStartIndex) {
|
|
107
138
|
if (menuStartIndex < 0) return -1;
|
|
108
139
|
const end = Math.min(lines.length, menuStartIndex + 8);
|
|
@@ -162,7 +193,7 @@ function detectAwaitingInputFromPaneSync(pane, options = {}) {
|
|
|
162
193
|
if (looksLikeClaudePermissionMenu(recentText) && looksLikePermissionText(recentText)) {
|
|
163
194
|
const menuIndex = lastIndexMatching(lines, (line) => /❯?\s*1\.\s*Yes\b/i.test(line));
|
|
164
195
|
const menuEndIndex = findPermissionMenuEndIndex(lines, menuIndex);
|
|
165
|
-
if (isRecentPromptIndex(lines, menuIndex) &&
|
|
196
|
+
if (isRecentPromptIndex(lines, menuIndex) && isPermissionMenuStillOnScreen(lines, menuEndIndex)) return {
|
|
166
197
|
reason: "tool_permission",
|
|
167
198
|
prompt: snippetAround(lines, menuIndex, 10, 3)
|
|
168
199
|
};
|
|
@@ -303,10 +334,37 @@ function parseCodexApprovalPrompt(text) {
|
|
|
303
334
|
*/
|
|
304
335
|
init_errors();
|
|
305
336
|
init_tracker_config();
|
|
306
|
-
const execAsync$
|
|
337
|
+
const execAsync$2 = promisify$1(exec$1);
|
|
307
338
|
function appendPaneDetectionKind(detection, kinds) {
|
|
308
339
|
if (detection?.reason === "session_resume" && !kinds.includes("sessionResume")) kinds.push("sessionResume");
|
|
309
340
|
if (detection?.reason === "rate_limit" && !kinds.includes("rateLimit")) kinds.push("rateLimit");
|
|
341
|
+
if (detection?.reason === "tool_permission" && !kinds.includes("permissionRequest")) kinds.push("permissionRequest");
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* PAN-3070 — the reasons that mean the agent is parked and cannot advance a
|
|
345
|
+
* single tool call until a human answers. An agent in this state must never be
|
|
346
|
+
* reported as `resolution: working` / `status: healthy`.
|
|
347
|
+
*
|
|
348
|
+
* `other` is deliberately excluded. PAN-1591 showed it is set by the generic
|
|
349
|
+
* pane/runtime/fallback detections that carry no answerable prompt — trusting it
|
|
350
|
+
* here would report agents as blocked while they are working normally.
|
|
351
|
+
*/
|
|
352
|
+
const BLOCKING_AWAITING_INPUT_REASONS = new Set([
|
|
353
|
+
"tool_permission",
|
|
354
|
+
"user_question",
|
|
355
|
+
"disambiguation",
|
|
356
|
+
"confirmation",
|
|
357
|
+
"planning_done",
|
|
358
|
+
"session_resume",
|
|
359
|
+
"rate_limit"
|
|
360
|
+
]);
|
|
361
|
+
/**
|
|
362
|
+
* PAN-3070 — the single predicate every "is this agent stuck?" surface consults.
|
|
363
|
+
* Takes the detection fields rather than a whole enrichment so the REST listing,
|
|
364
|
+
* the enrichment itself, and tests all judge from the same two values.
|
|
365
|
+
*/
|
|
366
|
+
function isBlockedOnPendingInput(agent) {
|
|
367
|
+
return agent.hasPendingQuestion === true && BLOCKING_AWAITING_INPUT_REASONS.has(agent.pendingQuestionReason ?? "");
|
|
310
368
|
}
|
|
311
369
|
function isOwnActiveSpecialist(role) {
|
|
312
370
|
return role === "review" || role === "test" || role === "ship";
|
|
@@ -357,7 +415,7 @@ async function getAgentWorkspacePromise(agentId) {
|
|
|
357
415
|
const workspace = getAgentStateSync(agentId)?.workspace;
|
|
358
416
|
if (workspace) return workspace;
|
|
359
417
|
try {
|
|
360
|
-
const { stdout: paneCwd } = await execAsync$
|
|
418
|
+
const { stdout: paneCwd } = await execAsync$2(`tmux display-message -t ${agentId} -p '#{pane_current_path}' 2>/dev/null`, { encoding: "utf-8" });
|
|
361
419
|
const trimmed = paneCwd.trim();
|
|
362
420
|
if (trimmed && existsSync(trimmed)) return trimmed;
|
|
363
421
|
} catch {}
|
|
@@ -655,7 +713,10 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
|
|
|
655
713
|
pendingInputKinds,
|
|
656
714
|
pendingAskUserQuestion,
|
|
657
715
|
pendingProposedPlan: shouldSuppressPendingInput ? void 0 : scan.pendingProposedPlan,
|
|
658
|
-
resolution:
|
|
716
|
+
resolution: isBlockedOnPendingInput({
|
|
717
|
+
hasPendingQuestion,
|
|
718
|
+
pendingQuestionReason: detection?.reason
|
|
719
|
+
}) ? "needs_input" : runtimeState?.resolution || "working",
|
|
659
720
|
resolutionCount: runtimeState?.resolutionCount || 0,
|
|
660
721
|
jsonlScan: scan
|
|
661
722
|
};
|
|
@@ -986,6 +1047,277 @@ init_errors();
|
|
|
986
1047
|
init_paths();
|
|
987
1048
|
promisify(exec);
|
|
988
1049
|
//#endregion
|
|
1050
|
+
//#region ../../lib/runtimes/acp.ts
|
|
1051
|
+
init_context();
|
|
1052
|
+
init_harness_binary();
|
|
1053
|
+
init_paths();
|
|
1054
|
+
init_behavior();
|
|
1055
|
+
const execAsync = promisify(exec);
|
|
1056
|
+
const HOST_REQUEST_TIMEOUT_MS = 5e3;
|
|
1057
|
+
const SPAWN_READY_TIMEOUT_MS = 3e4;
|
|
1058
|
+
const POLL_INTERVAL_MS = 100;
|
|
1059
|
+
var AcpSpawnTimeout = class extends Error {
|
|
1060
|
+
code = "ACP_SPAWN_TIMEOUT";
|
|
1061
|
+
constructor(agentId) {
|
|
1062
|
+
super(`ACP agent ${agentId} did not write acp-session-id within ${SPAWN_READY_TIMEOUT_MS}ms`);
|
|
1063
|
+
this.name = "AcpSpawnTimeout";
|
|
1064
|
+
}
|
|
1065
|
+
};
|
|
1066
|
+
var AcpRuntimeSync = class {
|
|
1067
|
+
name = "acp";
|
|
1068
|
+
provider;
|
|
1069
|
+
overdeckHome;
|
|
1070
|
+
execCommand;
|
|
1071
|
+
prepareLaunch;
|
|
1072
|
+
resolveAgentStates;
|
|
1073
|
+
constructor(options = {}) {
|
|
1074
|
+
this.provider = options.provider ?? "kimi";
|
|
1075
|
+
this.overdeckHome = options.overdeckHome;
|
|
1076
|
+
this.execCommand = options.execCommand ?? execAsync;
|
|
1077
|
+
this.prepareLaunch = options.prepareLaunch ?? (() => prepareHarnessLaunch("acp"));
|
|
1078
|
+
this.resolveAgentStates = options.listAgentStates ?? (() => listAgentStates());
|
|
1079
|
+
}
|
|
1080
|
+
getHarnessBehavior() {
|
|
1081
|
+
return getRuntimeBehavior("acp");
|
|
1082
|
+
}
|
|
1083
|
+
getSessionPath(agentId) {
|
|
1084
|
+
return join(this.home(), "agents", agentId, "acp-session.jsonl");
|
|
1085
|
+
}
|
|
1086
|
+
getLastActivity(agentId) {
|
|
1087
|
+
try {
|
|
1088
|
+
return statSync$1(this.getSessionPath(agentId)).mtime;
|
|
1089
|
+
} catch {
|
|
1090
|
+
return null;
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
getHeartbeat(agentId) {
|
|
1094
|
+
const lastActivity = this.getLastActivity(agentId);
|
|
1095
|
+
if (!lastActivity) return null;
|
|
1096
|
+
return {
|
|
1097
|
+
timestamp: lastActivity,
|
|
1098
|
+
agentId,
|
|
1099
|
+
source: "jsonl",
|
|
1100
|
+
confidence: "medium"
|
|
1101
|
+
};
|
|
1102
|
+
}
|
|
1103
|
+
getTokenUsage(_agentId) {
|
|
1104
|
+
return null;
|
|
1105
|
+
}
|
|
1106
|
+
getSessionCost(_agentId) {
|
|
1107
|
+
return null;
|
|
1108
|
+
}
|
|
1109
|
+
async sendMessage(agentId, message) {
|
|
1110
|
+
const socketPath = this.socketPath(agentId);
|
|
1111
|
+
if (!existsSync$1(socketPath)) throw new Error(`ACP agent ${agentId}: host socket is not available`);
|
|
1112
|
+
const token = this.readToken(agentId);
|
|
1113
|
+
if (!token) throw new Error(`ACP agent ${agentId}: missing acp-token`);
|
|
1114
|
+
await postUnixSocketJson(socketPath, token, {
|
|
1115
|
+
op: "message",
|
|
1116
|
+
content: message
|
|
1117
|
+
}, HOST_REQUEST_TIMEOUT_MS);
|
|
1118
|
+
}
|
|
1119
|
+
async killAgent(agentId) {
|
|
1120
|
+
const socketPath = this.socketPath(agentId);
|
|
1121
|
+
const token = this.readToken(agentId);
|
|
1122
|
+
if (existsSync$1(socketPath) && token) try {
|
|
1123
|
+
await postUnixSocketJson(socketPath, token, { op: "interrupt" }, HOST_REQUEST_TIMEOUT_MS);
|
|
1124
|
+
} catch {}
|
|
1125
|
+
if (await pollUntilSessionGone(agentId, 2e3)) return;
|
|
1126
|
+
let panePid = null;
|
|
1127
|
+
try {
|
|
1128
|
+
const { stdout } = await this.execCommand(`tmux -L overdeck list-panes -t ${shellQuote(agentId)} -F '#{pane_pid}' 2>/dev/null`);
|
|
1129
|
+
panePid = stdout.trim() || null;
|
|
1130
|
+
if (panePid) await this.execCommand(`kill -TERM -- -${panePid} 2>/dev/null || kill -TERM ${panePid} 2>/dev/null || true`);
|
|
1131
|
+
} catch {}
|
|
1132
|
+
if (await pollUntilSessionGone(agentId, 5e3)) return;
|
|
1133
|
+
if (panePid) try {
|
|
1134
|
+
await this.execCommand(`kill -KILL -- -${panePid} 2>/dev/null || kill -KILL ${panePid} 2>/dev/null || true`);
|
|
1135
|
+
} catch {}
|
|
1136
|
+
if (await tmuxSessionExists(agentId)) await tmuxKillSession(agentId);
|
|
1137
|
+
}
|
|
1138
|
+
async spawnAgent(config) {
|
|
1139
|
+
const provider = config.provider ?? this.provider;
|
|
1140
|
+
const { binaryPath } = await this.prepareLaunch();
|
|
1141
|
+
const contextFile = materializeAcpContextFile(join(this.home(), "agents", config.agentId), config.workspace);
|
|
1142
|
+
const command = [
|
|
1143
|
+
"node",
|
|
1144
|
+
shellQuote(join(packageRoot, "dist", "acp-host.js")),
|
|
1145
|
+
"--agent",
|
|
1146
|
+
shellQuote(config.agentId),
|
|
1147
|
+
"--provider",
|
|
1148
|
+
shellQuote(provider),
|
|
1149
|
+
"--workspace",
|
|
1150
|
+
shellQuote(config.workspace),
|
|
1151
|
+
"--binary-path",
|
|
1152
|
+
shellQuote(binaryPath),
|
|
1153
|
+
"--context-file",
|
|
1154
|
+
shellQuote(contextFile)
|
|
1155
|
+
];
|
|
1156
|
+
if (config.sessionId) command.push("--resume", shellQuote(config.sessionId));
|
|
1157
|
+
if (config.model) command.push("--model", shellQuote(config.model));
|
|
1158
|
+
rmSync$1(this.agentPath(config.agentId, "acp-session-id"), { force: true });
|
|
1159
|
+
rmSync$1(this.agentPath(config.agentId, "acp-launch-error"), { force: true });
|
|
1160
|
+
await tmuxCreateSession(config.agentId, config.workspace, command.join(" "), {
|
|
1161
|
+
...config.env,
|
|
1162
|
+
OVERDECK_AGENT_ID: config.agentId
|
|
1163
|
+
});
|
|
1164
|
+
try {
|
|
1165
|
+
const sessionId = await this.waitForSessionId(config.agentId);
|
|
1166
|
+
if (!sessionId) throw new AcpSpawnTimeout(config.agentId);
|
|
1167
|
+
if (config.prompt) await this.sendMessage(config.agentId, config.prompt);
|
|
1168
|
+
return {
|
|
1169
|
+
id: config.agentId,
|
|
1170
|
+
sessionId,
|
|
1171
|
+
runtime: "acp",
|
|
1172
|
+
model: config.model ?? "",
|
|
1173
|
+
workspace: config.workspace,
|
|
1174
|
+
startedAt: /* @__PURE__ */ new Date()
|
|
1175
|
+
};
|
|
1176
|
+
} catch (error) {
|
|
1177
|
+
if (await tmuxSessionExists(config.agentId)) await tmuxKillSession(config.agentId);
|
|
1178
|
+
throw error;
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
listSessions(workspace) {
|
|
1182
|
+
const sessions = [];
|
|
1183
|
+
for (const state of this.resolveAgentStates()) {
|
|
1184
|
+
if (state.harness !== "acp") continue;
|
|
1185
|
+
if (workspace && state.workspace !== workspace) continue;
|
|
1186
|
+
const sessionId = this.readSessionId(state.id);
|
|
1187
|
+
if (!sessionId) continue;
|
|
1188
|
+
const sessionPath = this.getSessionPath(state.id);
|
|
1189
|
+
let lastActivity;
|
|
1190
|
+
try {
|
|
1191
|
+
lastActivity = statSync$1(sessionPath).mtime;
|
|
1192
|
+
} catch {
|
|
1193
|
+
try {
|
|
1194
|
+
lastActivity = statSync$1(this.agentPath(state.id, "acp-session-id")).mtime;
|
|
1195
|
+
} catch {
|
|
1196
|
+
continue;
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
sessions.push({
|
|
1200
|
+
id: sessionId,
|
|
1201
|
+
agentId: state.id,
|
|
1202
|
+
workspace: state.workspace,
|
|
1203
|
+
model: state.model ?? "",
|
|
1204
|
+
startedAt: new Date(state.startedAt),
|
|
1205
|
+
lastActivity,
|
|
1206
|
+
tokenUsage: {
|
|
1207
|
+
inputTokens: 0,
|
|
1208
|
+
outputTokens: 0
|
|
1209
|
+
}
|
|
1210
|
+
});
|
|
1211
|
+
}
|
|
1212
|
+
return sessions;
|
|
1213
|
+
}
|
|
1214
|
+
async isRunning(agentId) {
|
|
1215
|
+
return tmuxSessionExists(agentId);
|
|
1216
|
+
}
|
|
1217
|
+
home() {
|
|
1218
|
+
return this.overdeckHome ?? getOverdeckHome();
|
|
1219
|
+
}
|
|
1220
|
+
agentPath(agentId, file) {
|
|
1221
|
+
return join(this.home(), "agents", agentId, file);
|
|
1222
|
+
}
|
|
1223
|
+
socketPath(agentId) {
|
|
1224
|
+
return join(this.home(), "sockets", `acp-${agentId}.sock`);
|
|
1225
|
+
}
|
|
1226
|
+
readToken(agentId) {
|
|
1227
|
+
try {
|
|
1228
|
+
return readFileSync$1(this.agentPath(agentId, "acp-token"), "utf8").trim() || null;
|
|
1229
|
+
} catch {
|
|
1230
|
+
return null;
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
readLaunchError(agentId) {
|
|
1234
|
+
try {
|
|
1235
|
+
return readFileSync$1(this.agentPath(agentId, "acp-launch-error"), "utf8").trim() || null;
|
|
1236
|
+
} catch {
|
|
1237
|
+
return null;
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
readSessionId(agentId) {
|
|
1241
|
+
try {
|
|
1242
|
+
return readFileSync$1(this.agentPath(agentId, "acp-session-id"), "utf8").trim() || null;
|
|
1243
|
+
} catch {
|
|
1244
|
+
return null;
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
async waitForSessionId(agentId) {
|
|
1248
|
+
const deadline = Date.now() + SPAWN_READY_TIMEOUT_MS;
|
|
1249
|
+
while (Date.now() < deadline) {
|
|
1250
|
+
const launchError = this.readLaunchError(agentId);
|
|
1251
|
+
if (launchError) throw new Error(`ACP host ${agentId} failed to start: ${launchError}`);
|
|
1252
|
+
const sessionId = this.readSessionId(agentId);
|
|
1253
|
+
if (sessionId) return sessionId;
|
|
1254
|
+
await delay(POLL_INTERVAL_MS);
|
|
1255
|
+
}
|
|
1256
|
+
return null;
|
|
1257
|
+
}
|
|
1258
|
+
};
|
|
1259
|
+
async function pollUntilSessionGone(agentId, timeoutMs) {
|
|
1260
|
+
const deadline = Date.now() + timeoutMs;
|
|
1261
|
+
while (Date.now() < deadline) {
|
|
1262
|
+
if (!await tmuxSessionExists(agentId)) return true;
|
|
1263
|
+
await delay(POLL_INTERVAL_MS);
|
|
1264
|
+
}
|
|
1265
|
+
return false;
|
|
1266
|
+
}
|
|
1267
|
+
function delay(ms) {
|
|
1268
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
1269
|
+
}
|
|
1270
|
+
function shellQuote(value) {
|
|
1271
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
1272
|
+
}
|
|
1273
|
+
function postUnixSocketJson(socketPath, token, body, timeoutMs) {
|
|
1274
|
+
return new Promise((resolve, reject) => {
|
|
1275
|
+
let settled = false;
|
|
1276
|
+
let timeout;
|
|
1277
|
+
const finish = (callback) => {
|
|
1278
|
+
if (settled) return;
|
|
1279
|
+
settled = true;
|
|
1280
|
+
if (timeout) clearTimeout(timeout);
|
|
1281
|
+
callback();
|
|
1282
|
+
};
|
|
1283
|
+
const client = request({
|
|
1284
|
+
socketPath,
|
|
1285
|
+
path: "/",
|
|
1286
|
+
method: "POST",
|
|
1287
|
+
headers: {
|
|
1288
|
+
"content-type": "application/json",
|
|
1289
|
+
[BRIDGE_TOKEN_HEADER]: token
|
|
1290
|
+
}
|
|
1291
|
+
}, (response) => {
|
|
1292
|
+
const chunks = [];
|
|
1293
|
+
response.on("data", (chunk) => chunks.push(chunk));
|
|
1294
|
+
response.on("end", () => {
|
|
1295
|
+
const responseBody = Buffer.concat(chunks).toString("utf8");
|
|
1296
|
+
const status = response.statusCode ?? 0;
|
|
1297
|
+
if (status < 200 || status >= 300) {
|
|
1298
|
+
finish(() => reject(/* @__PURE__ */ new Error(`ACP host returned HTTP ${status}: ${responseBody}`)));
|
|
1299
|
+
return;
|
|
1300
|
+
}
|
|
1301
|
+
finish(() => resolve({
|
|
1302
|
+
status,
|
|
1303
|
+
body: responseBody
|
|
1304
|
+
}));
|
|
1305
|
+
});
|
|
1306
|
+
});
|
|
1307
|
+
if (timeoutMs !== void 0) {
|
|
1308
|
+
timeout = setTimeout(() => {
|
|
1309
|
+
client.destroy(/* @__PURE__ */ new Error(`ACP host request timed out after ${timeoutMs}ms`));
|
|
1310
|
+
}, timeoutMs);
|
|
1311
|
+
timeout.unref?.();
|
|
1312
|
+
}
|
|
1313
|
+
client.once("error", (error) => finish(() => reject(error)));
|
|
1314
|
+
client.end(JSON.stringify(body));
|
|
1315
|
+
});
|
|
1316
|
+
}
|
|
1317
|
+
function createAcpRuntimeSync(options = {}) {
|
|
1318
|
+
return new AcpRuntimeSync(options);
|
|
1319
|
+
}
|
|
1320
|
+
//#endregion
|
|
989
1321
|
//#region ../../lib/runtimes/index.ts
|
|
990
1322
|
init_behavior();
|
|
991
1323
|
init_agents();
|
|
@@ -1028,6 +1360,7 @@ var RuntimeRegistry = class {
|
|
|
1028
1360
|
const harness = state.harness;
|
|
1029
1361
|
if (harness === "ohmypi" || harness === "pi") return this.get("ohmypi") ?? null;
|
|
1030
1362
|
if (harness === "codex") return this.get("codex") ?? null;
|
|
1363
|
+
if (harness === "acp") return this.get("acp") ?? null;
|
|
1031
1364
|
return this.get("claude-code") ?? null;
|
|
1032
1365
|
}
|
|
1033
1366
|
};
|
|
@@ -1047,6 +1380,7 @@ function getGlobalRegistry() {
|
|
|
1047
1380
|
globalRegistry.register(createClaudeCodeRuntimeSync());
|
|
1048
1381
|
globalRegistry.register(createOhmypiRuntimeSync());
|
|
1049
1382
|
globalRegistry.register(createCodexRuntimeSync());
|
|
1383
|
+
globalRegistry.register(createAcpRuntimeSync());
|
|
1050
1384
|
}
|
|
1051
1385
|
return globalRegistry;
|
|
1052
1386
|
}
|
|
@@ -1421,7 +1755,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
|
|
|
1421
1755
|
now
|
|
1422
1756
|
});
|
|
1423
1757
|
if (decision.kind === "noop") return;
|
|
1424
|
-
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-
|
|
1758
|
+
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-BekukH4i.js");
|
|
1425
1759
|
const prev = readStuckRemediationState(agentId);
|
|
1426
1760
|
const nowIso = new Date(now).toISOString();
|
|
1427
1761
|
if (decision.kind === "escalate") {
|
|
@@ -1525,6 +1859,6 @@ async function checkStuckAgentRemediation(opts = {}) {
|
|
|
1525
1859
|
return actions;
|
|
1526
1860
|
}
|
|
1527
1861
|
//#endregion
|
|
1528
|
-
export {
|
|
1862
|
+
export { normalizeAwaitingInputPrompt as _, isAgentIdleForNudge as a, countPendingAskUserQuestionsForAgent as c, getAgentPendingQuestions as d, getAgentWorkspace as f, detectAwaitingInputFromPaneSync as g, detectAwaitingInputForAgent as h, shouldSkipReviewStatus as i, getAgentJsonlMtime as l, scanPendingInputsPromise as m, decideFlywheelRemediation as n, getRuntimeForAgent as o, isBlockedOnPendingInput as p, shouldSkipIdlePokeForAgent as r, computeAgentEnrichment as s, checkStuckAgentRemediation as t, getAgentJsonlPath as u, parseCodexApprovalPrompt as v };
|
|
1529
1863
|
|
|
1530
|
-
//# sourceMappingURL=stuck-remediation-
|
|
1864
|
+
//# sourceMappingURL=stuck-remediation-mkLC6G_t.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
2
|
-
import { a as init_event_store, i as initEventStore, r as getSharedDb } from "./event-store-
|
|
1
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BjuxvjdS.js";
|
|
2
|
+
import { a as init_event_store, i as initEventStore, r as getSharedDb } from "./event-store-zY5MJHgF.js";
|
|
3
3
|
//#region ../../lib/overdeck/flywheel-substrate-bugs.ts
|
|
4
4
|
init_infra();
|
|
5
5
|
function parseAffectedCriteriaColumn(value) {
|
|
@@ -871,4 +871,4 @@ async function listSubstrateBugWeights(window = "30d", deps = {}) {
|
|
|
871
871
|
//#endregion
|
|
872
872
|
export { getByIssueId as a, parseFlywheelStatsWindow as i, derivePipelineRunStatsInputs as n, markFixed as o, computeFlywheelStats as r, upsert as s, listSubstrateBugWeights as t };
|
|
873
873
|
|
|
874
|
-
//# sourceMappingURL=substrate-bug-weights-service-
|
|
874
|
+
//# sourceMappingURL=substrate-bug-weights-service-XfLAKnmK.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./smart-compaction-
|
|
2
|
-
import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-
|
|
1
|
+
import "./smart-compaction-D3U_79f-.js";
|
|
2
|
+
import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-xiXBnWG9.js";
|
|
3
3
|
init_summary_fork();
|
|
4
4
|
export { generateFallbackSummary };
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { k as init_conversations } from "./conversations-
|
|
5
|
-
import { a as
|
|
6
|
-
import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-
|
|
2
|
+
import { Fr as init_errors, Tr as FsError, ai as getHandoffsDir, ci as init_paths, f as loadConfigSync, fi as sessionFilePath, si as getOverdeckHome, t as init_config_yaml, ui as packageRoot } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { Mt as deliverAgentMessage, b as init_agents } from "./queries-DHJm7bTd.js";
|
|
4
|
+
import { k as init_conversations } from "./conversations-BUpYsOZg.js";
|
|
5
|
+
import { a as getWorkspaceStackHealth, s as init_stack_health } from "./stack-health-DqSqx0zv.js";
|
|
6
|
+
import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-D3U_79f-.js";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
import { Effect } from "effect";
|
|
9
9
|
import { join as join$1 } from "path";
|
|
10
|
-
import { homedir } from "node:os";
|
|
11
10
|
import { existsSync } from "node:fs";
|
|
12
11
|
import { access, readFile, readdir, writeFile } from "node:fs/promises";
|
|
13
12
|
import { mkdir as mkdir$1 } from "fs/promises";
|
|
@@ -24,6 +23,8 @@ import "node:crypto";
|
|
|
24
23
|
* - Pi records have top-level `type: 'message'|'session'|'model_change'|
|
|
25
24
|
* 'thinking_level_change'|...`, with the user/assistant role nested in
|
|
26
25
|
* `entry.message.role` and blocks of type `text|thinking|toolCall|toolResult`.
|
|
26
|
+
* - ACP records have top-level `role`, `content`, and optional normalized
|
|
27
|
+
* `toolCalls` written by the persistent ACP host.
|
|
27
28
|
* - Future harnesses (Codex, etc.) will have their own shapes.
|
|
28
29
|
*
|
|
29
30
|
* The handoff authoring pipeline doesn't care about any of that. It needs
|
|
@@ -43,7 +44,7 @@ import "node:crypto";
|
|
|
43
44
|
* ISO timestamp prefix so this is deterministic.
|
|
44
45
|
*/
|
|
45
46
|
async function resolvePiSessionFileFromTmux(tmuxSession) {
|
|
46
|
-
const sessionDir = join(
|
|
47
|
+
const sessionDir = join(getOverdeckHome(), "agents", tmuxSession, "sessions");
|
|
47
48
|
if (!existsSync(sessionDir)) return null;
|
|
48
49
|
try {
|
|
49
50
|
const entries = (await readdir(sessionDir)).filter((name) => name.endsWith(".jsonl"));
|
|
@@ -75,6 +76,28 @@ function serializePiEntry(entry, includeThinking) {
|
|
|
75
76
|
if (lines.length === 1) return void 0;
|
|
76
77
|
return lines.join("\n");
|
|
77
78
|
}
|
|
79
|
+
function truncateAcpToolDetail(value) {
|
|
80
|
+
return value.length > ACP_TOOL_DETAIL_MAX_CHARS ? `${value.slice(0, ACP_TOOL_DETAIL_MAX_CHARS)}…` : value;
|
|
81
|
+
}
|
|
82
|
+
function serializeAcpToolCall(toolCall) {
|
|
83
|
+
const name = toolCall.title?.trim() || toolCall.kind?.trim();
|
|
84
|
+
if (!name) return void 0;
|
|
85
|
+
const lines = [`[tool_use: ${name}${toolCall.status ? ` (${toolCall.status})` : ""}]`];
|
|
86
|
+
if (toolCall.command?.trim()) lines.push(`$ ${truncateAcpToolDetail(toolCall.command.trim())}`);
|
|
87
|
+
if (toolCall.detail?.trim()) lines.push(truncateAcpToolDetail(toolCall.detail.trim()));
|
|
88
|
+
return lines.join("\n");
|
|
89
|
+
}
|
|
90
|
+
function serializeAcpEntry(entry) {
|
|
91
|
+
if (entry.role !== "user" && entry.role !== "assistant" && entry.role !== "tool" && entry.role !== "system") return;
|
|
92
|
+
const lines = [`[${entry.role}]`];
|
|
93
|
+
if (typeof entry.content === "string" && entry.content.trim()) lines.push(entry.content);
|
|
94
|
+
if (Array.isArray(entry.toolCalls)) for (const toolCall of entry.toolCalls) {
|
|
95
|
+
if (!toolCall || typeof toolCall !== "object") continue;
|
|
96
|
+
const serialized = serializeAcpToolCall(toolCall);
|
|
97
|
+
if (serialized) lines.push(serialized);
|
|
98
|
+
}
|
|
99
|
+
return lines.length > 1 ? lines.join("\n") : void 0;
|
|
100
|
+
}
|
|
78
101
|
/**
|
|
79
102
|
* Look up the transcript adapter for a harness. Unknown harnesses default to
|
|
80
103
|
* the Claude Code adapter — that matches the conservative behavior of the rest
|
|
@@ -83,7 +106,7 @@ function serializePiEntry(entry, includeThinking) {
|
|
|
83
106
|
function getTranscriptAdapter(harness) {
|
|
84
107
|
return REGISTRY[harness ?? "claude-code"] ?? claudeCodeAdapter;
|
|
85
108
|
}
|
|
86
|
-
var claudeCodeAdapter, piAdapter, REGISTRY;
|
|
109
|
+
var claudeCodeAdapter, piAdapter, ACP_TOOL_DETAIL_MAX_CHARS, acpAdapter, REGISTRY;
|
|
87
110
|
var init_transcript_adapter = __esmMin((() => {
|
|
88
111
|
init_paths();
|
|
89
112
|
init_smart_compaction();
|
|
@@ -155,10 +178,53 @@ var init_transcript_adapter = __esmMin((() => {
|
|
|
155
178
|
};
|
|
156
179
|
}
|
|
157
180
|
};
|
|
181
|
+
ACP_TOOL_DETAIL_MAX_CHARS = 500;
|
|
182
|
+
acpAdapter = {
|
|
183
|
+
name: "acp",
|
|
184
|
+
supportsPlainForkAsSource: false,
|
|
185
|
+
supportsSourceAuthoredHandoff: false,
|
|
186
|
+
async resolveSessionFile(conv) {
|
|
187
|
+
const path = join(getOverdeckHome(), "agents", conv.tmuxSession, "acp-session.jsonl");
|
|
188
|
+
return existsSync(path) ? path : null;
|
|
189
|
+
},
|
|
190
|
+
async serializeTranscript(sessionFile) {
|
|
191
|
+
const content = await readFile(sessionFile, "utf-8");
|
|
192
|
+
const parts = [];
|
|
193
|
+
for (const line of content.split("\n")) {
|
|
194
|
+
if (!line.trim()) continue;
|
|
195
|
+
let entry;
|
|
196
|
+
try {
|
|
197
|
+
entry = JSON.parse(line);
|
|
198
|
+
} catch {
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
const serialized = serializeAcpEntry(entry);
|
|
202
|
+
if (serialized) parts.push(serialized);
|
|
203
|
+
}
|
|
204
|
+
return parts.join("\n\n");
|
|
205
|
+
},
|
|
206
|
+
async compactSummary(sessionFile, options) {
|
|
207
|
+
const serialized = await acpAdapter.serializeTranscript(sessionFile);
|
|
208
|
+
if (!serialized.trim()) return {
|
|
209
|
+
summary: "",
|
|
210
|
+
summaryModel: null
|
|
211
|
+
};
|
|
212
|
+
return {
|
|
213
|
+
summary: await summarizeSerializedText(serialized, {
|
|
214
|
+
model: options?.model,
|
|
215
|
+
richMode: options?.richMode ?? false,
|
|
216
|
+
harness: options?.harness ?? "claude-code",
|
|
217
|
+
timeoutMs: options?.timeoutMs
|
|
218
|
+
}),
|
|
219
|
+
summaryModel: options?.model ?? null
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
};
|
|
158
223
|
REGISTRY = {
|
|
159
224
|
"claude-code": claudeCodeAdapter,
|
|
160
225
|
"ohmypi": piAdapter,
|
|
161
|
-
"codex": claudeCodeAdapter
|
|
226
|
+
"codex": claudeCodeAdapter,
|
|
227
|
+
"acp": acpAdapter
|
|
162
228
|
};
|
|
163
229
|
}));
|
|
164
230
|
//#endregion
|
|
@@ -442,11 +508,11 @@ async function generateSummaryForFork(jsonlPath, summaryModel, includeThinkingIn
|
|
|
442
508
|
}
|
|
443
509
|
}
|
|
444
510
|
async function reserveSummaryForkSessionPromise(cwd) {
|
|
445
|
-
const { reserveForkSession } = await import("./session-fork-
|
|
511
|
+
const { reserveForkSession } = await import("./session-fork-D0LY152N.js");
|
|
446
512
|
return reserveForkSession(cwd);
|
|
447
513
|
}
|
|
448
514
|
async function copySessionFromCompactBoundaryPromise(sourcePath, destPath) {
|
|
449
|
-
const { copySessionForFork } = await import("./session-fork-
|
|
515
|
+
const { copySessionForFork } = await import("./session-fork-D0LY152N.js");
|
|
450
516
|
return copySessionForFork(sourcePath, destPath, { fullHistory: false });
|
|
451
517
|
}
|
|
452
518
|
/** Effect variant of generateFallbackSummary. */
|
|
@@ -521,4 +587,4 @@ var init_summary_fork = __esmMin((() => {
|
|
|
521
587
|
//#endregion
|
|
522
588
|
export { init_transcript_adapter as _, generateFallbackSummary as a, handoffPreconditionFallbackReason as c, prependFallbackFocus as d, requestHandoffFromAgent as f, getTranscriptAdapter as g, validateHandoffDoc as h, copySessionFromCompactBoundary as i, init_summary_fork as l, sanitizeHandoffDoc as m, HandoffValidationError as n, generateSummaryForFork as o, reserveSummaryForkSession as p, authorHandoffExternal as r, handoffFailureReason as s, HandoffStallError as t, logHandoffFallback as u };
|
|
523
589
|
|
|
524
|
-
//# sourceMappingURL=summary-fork-
|
|
590
|
+
//# sourceMappingURL=summary-fork-xiXBnWG9.js.map
|