@overdeck/desktop 0.45.24 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drizzle/overdeck/0000_overdeck_init.sql +32 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DDCnXF58.js → acceptance-criteria-CCwFGICj.js} +2 -2
- package/server/activity-logger-CMthG6Vd.js +3 -0
- package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
- package/server/{advancing-selfheal-BVwW4qRn.js → advancing-selfheal-De1L-Sb4.js} +6 -6
- package/server/{agent-gc-CHcnvonI.js → agent-gc-CBULruzm.js} +5 -5
- package/server/agent-state-VQk8fY9F.js +3 -0
- package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-BlnSkRFA.js} +5 -5
- package/server/{agent-state-service-D5UGKIJL.js → agent-state-service-hZpxIw1E.js} +1 -1
- package/server/agents-BKKkxKgK.js +3 -0
- package/server/{agents-EbI0zCJl.js → agents-C5rWYhb6.js} +4 -4
- package/server/archive-planning-0FJ6Xd3b.js +2 -0
- package/server/{archive-planning-Du25Jtst.js → archive-planning-C0lAbNB_.js} +16 -24
- package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
- package/server/{assemble-J2ZZ2C15.js → assemble-DnffNpOo.js} +2 -2
- package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
- package/server/{behavior-B3exJ42O.js → behavior-CfIg6pKp.js} +2 -2
- package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
- package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DHmCSLar.js} +2 -2
- package/server/{build-info-CZk_TITh.js → build-info-BP160gU7.js} +1 -1
- package/server/{build-info-Ie_D0_BT.js → build-info-CuFfxZxp.js} +5 -3
- package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DEWD82qK.js} +2 -2
- package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-CQB1h765.js → checkpoints-CZvbtLnr.js} +2 -2
- package/server/{checkpoints-BJIs5QIA.js → checkpoints-DMTgXuLG.js} +1 -1
- package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-CN-xo-do.js} +1 -1
- package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
- package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CN0cSCPp.js} +2 -2
- package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
- package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-Dabi9slj.js} +1 -1
- package/server/cli-DmXETsw-.js +3 -0
- package/server/{cli-RoOx5DUf.js → cli-oCWYA1pE.js} +9 -9
- package/server/{cliproxy-C8a1vtTU.js → cliproxy-C8mB3KuB.js} +2 -2
- package/server/{cliproxy-fHfIeiGd.js → cliproxy-PGwTX_o8.js} +1 -1
- package/server/{close-issue-DoOifFIK.js → close-issue-D5MF5GqF.js} +5 -5
- package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
- package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-Cltx86x5.js} +37 -16
- package/server/{codex-GcHuUF-k.js → codex-BdEsUFWh.js} +1 -1
- package/server/{codex-BZXGhUVB.js → codex-Drlf5Xhf.js} +36 -7
- package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-DpB89Vqa.js} +2 -2
- package/server/compaction-continuation-K2AxQX4H.js +200 -0
- package/server/{config-CKxYiCmX.js → config-B2IMcBxx.js} +4 -3
- package/server/{config-DzV30TOm.js → config-DV-grfQc.js} +1 -1
- package/server/{config-BZ0sHTju.js → config-Dr3pW6w6.js} +2 -2
- package/server/{config-yaml-DySPNmKN.js → config-yaml-CmOPzmBb.js} +268 -14
- package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-B9cN3SBi.js} +4 -4
- package/server/{conflict-gate-BhAY7TUd.js → conflict-gate-Dh754uyA.js} +1 -1
- package/server/{context-layers-BrPmE__h.js → context-layers-D6LZo3l1.js} +2 -2
- package/server/{context-layers-igZ4FI4_.js → context-layers-dR5YxHYB.js} +3 -3
- package/server/{control-settings-BQp7_4uD.js → control-settings-C7DUehE1.js} +49 -19
- package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-BoqdDXWF.js} +8 -8
- package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
- package/server/{conversation-service-DPJ71F33.js → conversation-service-5aCnq1zR.js} +8 -7
- package/server/conversation-service-BCxl4f8Z.js +3 -0
- package/server/{conversations-6AfUfbwc.js → conversations-BUpYsOZg.js} +4 -4
- package/server/{conversations-CAsJF9kh.js → conversations-C34dyIb9.js} +1 -1
- package/server/{cost-B2ddP6wq.js → cost-Bgcub5kW.js} +12 -2
- package/server/{cost-R-m6Yi-W.js → cost-CvxRrucd.js} +3 -3
- package/server/{cost-sync-BsN6ER0n.js → cost-sync-Dv3LUaNW.js} +3 -3
- package/server/{dag-B1ucnjDU.js → dag-ombYYt4s.js} +2 -2
- package/server/{dangerous-git-ops-BXqeWVSf.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-DrXqT9LQ.js +4 -0
- package/server/{deacon-CU_cAYSR.js → deacon-hi9KLPLT.js} +2933 -2704
- package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-BNBebzeL.js} +3 -3
- package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
- package/server/{deacon-swarm-BXZZ1Z2-.js → deacon-swarm-DBxUaO-A.js} +13 -13
- package/server/deacon-swarm-I2JfX5Tg.js +2 -0
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-CQcP70ND.js +13 -0
- package/server/delivery-Da0zEMY4.js +3 -0
- package/server/{deploy-patrol-AiFoP8dw.js → deploy-patrol-Df-Tmaq0.js} +69 -18
- package/server/deploy-queue-9SrhZR63.js +3 -0
- package/server/deploy-queue-UjKGYsDe.js +169 -0
- package/server/deploy-window-jOiPRHL0.js +3 -0
- package/server/{deploy-window-C3F-tihF.js → deploy-window-rpqpWqHA.js} +40 -16
- package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-CC46Ig8q.js} +2 -2
- package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-68CSCRnu.js} +3 -3
- package/server/{dist-Cb_0uvpS.js → dist-CJy72uEg.js} +1 -1
- package/server/dist-DSlxIU1H.js +3 -0
- package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
- package/server/docker-BMVTSFL5.js +3 -0
- package/server/{docker-DcMTFTUC.js → docker-Dam7mbIB.js} +2 -2
- package/server/{dod-C6n9RV3G.js → dod-Dar-yheg.js} +8 -4
- package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
- package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
- package/server/{ensure-devcontainer-DNi-ono3.js → ensure-devcontainer-B057YA81.js} +4 -4
- package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-C98V8yW-.js} +1 -1
- package/server/{esm-shims-OSHAYaS1.js → esm-shims-Br9BPdkR.js} +1 -1
- package/server/{event-store-EV2cMiXj.js → event-store-ELqkVOn0.js} +1 -1
- package/server/{event-store-CQL6NeqB.js → event-store-zY5MJHgF.js} +23 -4
- package/server/{events-BTdrdEq8.js → events-D6pyqhzM.js} +1 -1
- package/server/{events-DTfAe4My.js → events-D9PR1IC0.js} +3 -3
- package/server/{factory-CFibJuaw.js → factory-CRoOpGsF.js} +5 -5
- package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population--YUXU999.js} +4 -4
- package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-BORBTo0y.js} +2 -2
- package/server/{features-ez2271oH.js → features--nFkJY8v.js} +2 -2
- package/server/{feedback-target-CoFDHiM8.js → feedback-target-C0ZzyHvU.js} +1 -1
- package/server/{feedback-target-7mqqwrX6.js → feedback-target-Dt9BsapX.js} +8 -8
- package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-BG0RUZiu.js} +5 -5
- package/server/{feedback-writer-D3a22RCd.js → feedback-writer-D1fm-5Z8.js} +1 -1
- package/server/{flywheel-SVF02Jpq.js → flywheel-BekukH4i.js} +1 -1
- package/server/{flywheel-DHrgCphM.js → flywheel-BiT3odRb.js} +23 -15
- package/server/{flywheel-DzGtWnJ1.js → flywheel-CLVB55Be.js} +16 -15
- package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
- package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
- package/server/forge-CZbSg6Ds.js +383 -0
- package/server/forge-DK3blQb_.js +3 -0
- package/server/{from-kNxT0bZC.js → from-D_4_dk7i.js} +1 -1
- package/server/{fts-db-CE46vDkZ.js → fts-db-BeOomFa-.js} +2 -2
- package/server/{fts-operations-CqY6zl-i.js → fts-operations-BdewJ_g9.js} +2 -2
- package/server/git-utils-CI6cwyyC.js +3 -0
- package/server/{git-utils-CRw2zLPC.js → git-utils-ameCgDdy.js} +30 -5
- package/server/{github-app-C3QrAUd0.js → github-app-CQ1Lo6LA.js} +3 -3
- package/server/{github-app-ClZ2lk8D.js → github-app-DtAsvwzK.js} +1 -1
- package/server/{github-client-BnIsSrEN.js → github-client-BfyDxuRN.js} +2 -2
- package/server/{github-client-DfQYVUaw.js → github-client-Cj0yl_07.js} +1 -1
- package/server/github-pr-lookup-BDq6Wznz.js +58 -0
- package/server/{harness-binary-DPUi-Pv8.js → harness-binary-DqkftwTb.js} +2 -2
- package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-CqMqM1Mb.js} +4 -4
- package/server/{health-events-BBcTYQKU.js → health-events-CazRxJUS.js} +2 -2
- package/server/{health-events-BDOHby5Q.js → health-events-_xfTaOUs.js} +1 -1
- package/server/{hooks-CKZgXlJb.js → hooks-BO3QT1sn.js} +2 -2
- package/server/{hooks-DPVX1rwQ.js → hooks-BnJsxlSq.js} +1 -1
- package/server/{hume-Cz8igP9E.js → hume-CDYJxqx-.js} +2 -2
- package/server/hume-Dq--7rOQ.js +3 -0
- package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-BYqERdkE.js} +1 -1
- package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
- package/server/in-flight-guard-Bq3epG58.js +45 -0
- package/server/{infra-BEqFxlJc.js → infra-BjuxvjdS.js} +70 -5
- package/server/{injection-CPUIqNhI.js → injection-DZxlV2al.js} +1 -1
- package/server/{injection-C8aiVJrF.js → injection-UCf8EsjX.js} +7 -7
- package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-6kylZnrm.js} +26 -25
- package/server/inspect-agent-BVwDrVrz.js +2 -0
- package/server/{internal-token-s0-oKybJ.js → internal-token-DvMTQSOS.js} +2 -2
- package/server/{internal-token-BrcU6qfe.js → internal-token-M9omeXM1.js} +1 -1
- package/server/{io-C9kF1wtJ.js → io-VHvc0Ssp.js} +43 -26
- package/server/{issue-closed-CDJk4pIp.js → issue-closed-B6KJkmHZ.js} +7 -7
- package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-9gk3fnXN.js} +1 -1
- package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
- package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-DmCh7EHj.js} +10 -10
- package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-PMx8F1jr.js} +1 -1
- package/server/{issues-BMmP_77e.js → issues-CgnQ1OGQ.js} +2 -2
- package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-DJOH_O-w.js} +5 -4
- package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dv7AV_R1.js} +3 -3
- package/server/{label-reconciler-B4iOAjlC.js → label-reconciler--F85rufp.js} +4 -4
- package/server/{lifecycle-yPd___5E.js → lifecycle-CTdOWYMi.js} +2 -2
- package/server/{lifecycle-xmBfK2GJ.js → lifecycle-DDN8ApVY.js} +6 -7
- package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-D-lGdzK3.js} +5 -5
- package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-D_zTLvP1.js} +1 -1
- package/server/{linear-client-BsuUvkdA.js → linear-client-BQU36QqE.js} +2 -2
- package/server/{linear-client-CTskEeT_.js → linear-client-CY4O_Tu3.js} +1 -1
- package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
- package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-CefQNAnq.js → merge-Bpx4jjht.js} +13 -11
- package/server/{merge-agent-4WOWlSYA.js → merge-agent-DdMVSV2Y.js} +233 -83
- package/server/{merge-agent-CKkgIBPB.js → merge-agent-DrXa1CpW.js} +1 -1
- package/server/{merge-batch-ClFn2T-y.js → merge-batch-C5q1c1GX.js} +1 -1
- package/server/merge-completeness-BMm8tMyZ.js +277 -0
- package/server/merge-completeness-D0ljXbk3.js +3 -0
- package/server/{merge-B1DiziGU.js → merge-idOG--29.js} +1 -1
- package/server/merge-ops-DdpTiEMt.js +2 -0
- package/server/merge-rebase-DGQpYJU3.js +2 -0
- package/server/{merge-rebase-BfaTyXsw.js → merge-rebase-xLnMlw5h.js} +3 -3
- package/server/{merge-set-DJ8-UErs.js → merge-set-DH7ot3yz.js} +11 -5
- package/server/merge-set-DzsOTBg5.js +3 -0
- package/server/{merge-sync-VPV28g0g.js → merge-sync-CQ-LgZ1_.js} +406 -153
- package/server/merge-sync-Ca7F5JnQ.js +3 -0
- package/server/{merge-train-CHopycP0.js → merge-train-DTEMyIu4.js} +18 -8
- package/server/{merge-train-deps-D1cOZzy2.js → merge-train-deps-CNPJzepw.js} +4 -4
- package/server/merge-verification-x3JO8Dtz.js +220 -0
- package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
- package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
- package/server/{multipart-parser-duPAfSBw.js → multipart-parser-IMSBfePV.js} +2 -2
- package/server/{no-resume-mode-Nw29vaFb.js → no-resume-mode-C5ULAXwO.js} +1 -1
- package/server/node_modules/.package-lock.json +27 -27
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/@google-cloud/common/package.json +2 -2
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +1 -1
- package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/server/node_modules/google-auth-library/package.json +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
- package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
- package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
- package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
- package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
- package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
- package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
- package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
- package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
- package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
- package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
- package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
- package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
- package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
- package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
- package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
- package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
- package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
- package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
- package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
- package/server/node_modules/google-gax/package.json +5 -5
- package/server/node_modules/retry-request/package.json +4 -4
- package/server/node_modules/teeny-request/package.json +5 -5
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/server/node_modules/undici/lib/core/request.js +12 -1
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +236 -116
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
- package/server/node_modules/undici/lib/handler/retry-handler.js +24 -0
- package/server/node_modules/undici/lib/interceptor/cache.js +152 -62
- package/server/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/server/node_modules/undici/lib/util/cache.js +328 -66
- package/server/node_modules/undici/lib/util/date.js +23 -6
- package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
- package/server/node_modules/undici/package.json +1 -1
- package/server/{orphan-proposed-reconciler-CTSGcK8p.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
- package/server/{orphan-proposed-reconciler-BvKkWMJQ.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
- package/server/package-lock.json +28 -28
- package/server/package.json +1 -1
- package/server/{pan-dir-B0c3w0Ya.js → pan-dir-ubraCiUg.js} +24 -10
- package/server/{paths-D-xWGHdh.js → paths-cXmOwSbh.js} +2 -2
- package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
- package/server/{pickup-DUCLWrJY.js → pickup-D8xtG1J2.js} +1 -1
- package/server/pipeline-membership-BGSvkT2M.js +3 -0
- package/server/pipeline-membership-CrAPLYtf.js +57 -0
- package/server/{pipeline-membership-mY3GprlK.js → pipeline-membership-gather-CET40frr.js} +177 -109
- package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
- package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
- package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-ImNXknf0.js} +1 -1
- package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
- package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-Bim6bThI.js} +2 -2
- package/server/{project-repos-B6GycDh9.js → project-repos-C0nuoBGv.js} +7 -3
- package/server/project-repos-CRE6Ykow.js +3 -0
- package/server/projects-B03Wr-xc.js +3 -0
- package/server/{prompts-DxzFXuLl.js → prompts-BEx08AIu.js} +2 -2
- package/server/{providers-u4Ga0jOr.js → providers-D7IluJe0.js} +1 -1
- package/server/{providers-qQAwGQDW.js → providers-evXhiQeg.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
- package/server/public/assets/{dist-D7zYSEA6.js → dist-CxAOHbil.js} +1 -1
- package/server/public/assets/{dist-ByIuzMQW.js → dist-DqDRYW6P.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
- package/server/public/assets/index-Cc7cnFC4.css +1 -0
- package/server/public/assets/index-K0hAYCgV.js +807 -0
- package/server/public/assets/{linear-BBbArIcK.js → linear-B4cuEFmO.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
- package/server/public/assets/{prod-B8vYiu52.js → prod-CN2nHBvX.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-7N8WKseP.js → pull-requests-Cv7LxzUN.js} +1 -1
- package/server/{pull-requests-_lHueOHW.js → pull-requests-DHWiKxo7.js} +19 -10
- package/server/{queries-CjNIf-Ub.js → queries-DHJm7bTd.js} +631 -110
- package/server/{rally-CyWT_lNO.js → rally-B71M9f4o.js} +3 -3
- package/server/rally-YDjU513q.js +3 -0
- package/server/{rally-api-ClOSd-Tt.js → rally-api-D5uXN08-.js} +1 -1
- package/server/{rally-api-C8e_1JRi.js → rally-api-Dkqmok65.js} +2 -2
- package/server/{rally-client-lc-nokqr.js → rally-client-Bfqm6XI4.js} +4 -4
- package/server/{rally-client-sgtVqzNU.js → rally-client-CxsA6ExK.js} +1 -1
- package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
- package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
- package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-0EEYReVZ.js} +16 -7
- package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-qeRqHZxH.js} +2 -2
- package/server/{reconstruct-cache-C3Ui7ojV.js → reconstruct-cache-BbYFsqLa.js} +7 -6
- package/server/record-CtroO946.js +3 -0
- package/server/record-update-DH6dLJID.js +3 -0
- package/server/{record-update-dE1Aw83j.js → record-update-Z0QCxmMp.js} +124 -34
- package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-eJe26h-f.js} +2 -2
- package/server/{release-engine-Cx48W7z8.js → release-engine-lPUp-MTd.js} +5 -5
- package/server/{release-set-CQfuN9-v.js → release-set-BwGeyZKX.js} +3 -3
- package/server/{remote-C_2hasl7.js → remote-BCd02Es1.js} +3 -3
- package/server/{remote-ChgimyYa.js → remote-CVGUhXMV.js} +3 -3
- package/server/{remote-agents-CA3Ihlxj.js → remote-agents-C1bssi41.js} +2 -2
- package/server/{remote-agents-By1ige5O.js → remote-agents-C_VxssLU.js} +300 -46
- package/server/{remote-completion-fVe9e_3u.js → remote-completion-DAB0P706.js} +12 -12
- package/server/resume-u9byntrq.js +3 -0
- package/server/{review-agent-DNboMyW4.js → review-agent-CD4RCI0Y.js} +1 -1
- package/server/{review-agent-CIGOQYBD.js → review-agent-CHhI66UP.js} +60 -47
- package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-DSMRIfuJ.js} +7 -6
- package/server/{review-context-2uj-YQ8J.js → review-context-oFuBbiEE.js} +8 -8
- package/server/{in-flight-guard-CAAkqPLu.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
- package/server/review-status-BZH8h-6W.js +3 -0
- package/server/review-status-emit-CUExtHd5.js +50 -0
- package/server/{review-status-enrichment-Dci-ZwEt.js → review-status-enrichment-QV_hQkgS.js} +4 -4
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
- package/server/review-status-source-ylw5QZUR.js +3 -0
- package/server/{review-status-sync-BTOpxtTC.js → review-status-sync-483sujRo.js} +2 -2
- package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-NaWvI9Xf.js} +1 -1
- package/server/review-status-yljtTd-q.js +7521 -0
- package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-BPDn4li_.js} +1 -1
- package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-CELeUinh.js} +48 -8
- package/server/{rollup-FGsKki9R.js → rollup-DTNvelz9.js} +8 -8
- package/server/{rollup-BKQC7jp4.js → rollup-DYZfq1c4.js} +1 -1
- package/server/{scanner-CnqEZeDy.js → scanner-CV35oSn4.js} +8 -7
- package/server/{sequence-io-D909zgeH.js → sequence-io-DF_8iuhV.js} +4 -4
- package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-B2WeCtGi.js} +5 -5
- package/server/server.js +1952 -578
- package/server/{service-CLeAoU6G.js → service-Br9rpBNA.js} +81 -64
- package/server/{session-fork-CHI1XvL9.js → session-fork-D0LY152N.js} +2 -2
- package/server/{session-history-BT3IvqhC.js → session-history-BUyK29eq.js} +4 -4
- package/server/{settings-BTMvpNFU.js → settings-Bse1Pdcj.js} +3 -3
- package/server/settings-CdvIF84R.js +2 -0
- package/server/{settings-C0zgxOGf.js → settings-CvVGqNEs.js} +3 -2
- package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-BWLa8ODz.js} +2 -2
- package/server/{shadow-state-7a-524T8.js → shadow-state-B4fpKxOO.js} +2 -2
- package/server/{shadow-state-DnDyjujH.js → shadow-state-FV6PHfEW.js} +1 -1
- package/server/{shadow-utils-Db3oroFG.js → shadow-utils-D7asqxOZ.js} +2 -2
- package/server/{ship-log-D9MlVzYU.js → ship-log-xplJ8t75.js} +1 -1
- package/server/{smart-compaction-CV2ukKND.js → smart-compaction-CPp2Ykf6.js} +1 -1
- package/server/{smart-compaction-KCYScAU1.js → smart-compaction-D3U_79f-.js} +8 -7
- package/server/{spawn-planning-session-qUC2VWu3.js → spawn-planning-session-1nFi3gfk.js} +1 -1
- package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-DGfZ5B8D.js} +17 -17
- package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-Br48eiDP.js} +1 -1
- package/server/{specialist-context-Bn3dCGS2.js → specialist-context-cVbGnTa3.js} +5 -5
- package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
- package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Cl5-hqT8.js} +3 -3
- package/server/{specialists-CC4r-c2s.js → specialists-CNfYO3G2.js} +975 -227
- package/server/{specialists-jiuuyVkp.js → specialists-Cicieuzu.js} +18 -18
- package/server/{specialists-CShuVGWT.js → specialists-JHsdU3pA.js} +1 -1
- package/server/{specialists-DM6bWjsi.js → specialists-Tdezg_6N.js} +1 -1
- package/server/specs-Bt7WJDoC.js +3 -0
- package/server/src-CRmCHlma.js +11408 -0
- package/server/{src-CXmtj0im.js → src-Ck028hjO.js} +6 -6
- package/server/{src-CdmnTM2m.js → src-UWcGe0Ix.js} +3 -3
- package/server/{stack-health-Bn3o8FBX.js → stack-health-CJLMrLBl.js} +1 -1
- package/server/{stack-health-DxSdG9cW.js → stack-health-DqSqx0zv.js} +7 -5
- package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-CYFOUNlT.js} +4 -4
- package/server/{staleness-CT34nwr9.js → staleness-BQ-0gMYK.js} +1 -1
- package/server/{staleness-DPm7ClwA.js → staleness-D47CUJok.js} +1 -1
- package/server/{state-home-Cn_Qu8IX.js → state-home-BYV7qZTW.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
- package/server/{state-migrate-BGg2ZaOt.js → state-migrate-CvvBtS0Y.js} +4 -4
- package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-Wt0UVvu1.js} +1 -1
- package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-mkLC6G_t.js} +79 -22
- package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
- package/server/{summary-fork-DpcxN9tf.js → summary-fork-CD7GOts0.js} +2 -2
- package/server/{summary-fork-D1RAk9rJ.js → summary-fork-xiXBnWG9.js} +8 -8
- package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-B5SbvDx2.js} +1 -1
- package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
- package/server/supervisor/pty-supervisor.js +49 -3
- package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-B7lp0ElT.js} +2 -2
- package/server/{supervisor-wM4ooB5O.js → supervisor-DL788vos.js} +3 -3
- package/server/supervisor-UWiQNK-y.js +2 -0
- package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-BV14DF5N.js} +3 -3
- package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-pdWG6ZQs.js} +2 -2
- package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-l2F4_zim.js} +15 -16
- package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-qakFIIGz.js} +6 -6
- package/server/{test-verdict-bWYBtqBg.js → test-verdict-BJYDggMm.js} +1 -1
- package/server/{test-verdict-gscuksPv.js → test-verdict-Gw-btEfb.js} +1 -1
- package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-BKOYB616.js} +1 -1
- package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-CBaWkV9k.js} +2 -2
- package/server/{tmux-R7N7y-Mh.js → tmux-B1Wbxz5o.js} +3 -3
- package/server/{tmux-B6z7h_vZ.js → tmux-DQ6jB76i.js} +1 -1
- package/server/{launcher-generator-BBWG_SiS.js → tmux-dedup-DbN6MGzM.js} +428 -9
- package/server/{token-BK6t8BIT.js → token-Cxbk023d.js} +2 -2
- package/server/{token-util-DxXu-vd1.js → token-util-CLq2MmQt.js} +1 -1
- package/server/token-util-zlz9U0ki.js +3 -0
- package/server/{tracker-config-G6latr8C.js → tracker-config-DZ8Zn2nQ.js} +2 -2
- package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-L0FKtjq2.js} +3 -3
- package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-bNX6jKkb.js} +1 -1
- package/server/{tunnel-CDVKJpRv.js → tunnel-BAm1XgjG.js} +3 -3
- package/server/{tunnel-DGdUkGoZ.js → tunnel-CjSnHdTc.js} +1 -1
- package/server/{types-5M0lupud.js → types-q67TYYg5.js} +1 -1
- package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
- package/server/uat-train-Cu-4nvbf.js +2 -0
- package/server/uat-train-D5UjcyAa.js +0 -0
- package/server/{validate-IfDGkaVR.js → validate-Cxsx5Uz1.js} +8 -6
- package/server/{validation-CC9OPqJZ.js → validation-DEaTZafj.js} +1 -1
- package/server/{validation-Dw1pzDzr.js → validation-VZgJxmqc.js} +4 -4
- package/server/{verification-artifact-B3itKTxu.js → verification-artifact-C85cRTc_.js} +1 -1
- package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-g3yuxQDL.js} +1 -1
- package/server/{verification-runner-BW4HOKAz.js → verification-runner-DlZI8yhw.js} +1 -1
- package/server/{verification-runner-CkgX6EtI.js → verification-runner-KDZIsBj4.js} +40 -18
- package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-Jr94BF3Y.js} +1 -1
- package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-C-vuP3_J.js} +20 -9
- package/server/workflows-CHrx_hcW.js +2 -0
- package/server/{workflows-mbQzh6mQ.js → workflows-D0oip4eV.js} +161 -78
- package/server/{workspace--8tnhDI0.js → workspace-BqFg__wH.js} +1 -1
- package/server/{workspace-BPUws1-_.js → workspace-C0fH3aek.js} +3 -3
- package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
- package/server/workspace-anchor-drift-CZKofakh.js +224 -0
- package/server/{workspace-config-CIVWZOQr.js → workspace-config-B123aZl-.js} +1 -1
- package/server/workspace-manager-CDTKjjdU.js +3 -0
- package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-CwO-Hek7.js} +156 -117
- package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-CQv00QwK.js} +2 -2
- package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-D4M8BM4W.js} +1 -1
- package/server/{workspaces-Do_9J0LQ.js → workspaces-j1e_6aAT.js} +719 -292
- package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
- package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
- package/sync-sources/skills/pan-reload/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +5 -4
- package/sync-sources/skills/pan-review/SKILL.md +7 -1
- package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
- package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
- package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bc3tzUC8.js +0 -3
- package/server/agents-wi9NWzs2.js +0 -3
- package/server/archive-planning-BZDgzoEj.js +0 -3
- package/server/cli-B86rejVV.js +0 -3
- package/server/conversation-service-BLd3MYsG.js +0 -3
- package/server/deacon-kiQrb4ZT.js +0 -4
- package/server/deacon-swarm-C-GwfjJy.js +0 -2
- package/server/deploy-window-DkZraDyj.js +0 -3
- package/server/dist-Bzy0y69j.js +0 -3
- package/server/flywheel-merge-order-UU0tiUld.js +0 -245
- package/server/flywheel-merge-order-UUcsCDb6.js +0 -2
- package/server/forge-CNFnyqps.js +0 -270
- package/server/forge-DXnS_YFH.js +0 -2
- package/server/git-utils-D0_yhCgF.js +0 -3
- package/server/github-pr-lookup-D16NGsSO.js +0 -44
- package/server/hume-ccTf4wTX.js +0 -3
- package/server/inspect-agent-Brtz0URj.js +0 -2
- package/server/merge-ops-CR44oU9-.js +0 -2
- package/server/merge-set-bUqbm3yc.js +0 -3
- package/server/merge-sync-BJYeOODr.js +0 -3
- package/server/merge-verification-BkaOqPsw.js +0 -124
- package/server/project-repos-DXKQsc_m.js +0 -3
- package/server/projects-vjjcmiN8.js +0 -3
- package/server/public/assets/index-CWeMerGO.js +0 -804
- package/server/public/assets/index-CenuJ3Cw.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +0 -1
- package/server/rally-zhhtXuDP.js +0 -3
- package/server/record-CN0pj4_5.js +0 -3
- package/server/record-update-bLJxAXH4.js +0 -3
- package/server/resume-BFv1PGpA.js +0 -3
- package/server/review-status-btEYlaxA.js +0 -3
- package/server/review-status-kZj_KyCk.js +0 -1470
- package/server/settings-66A6uvIA.js +0 -2
- package/server/specs-C8Wsn2XO.js +0 -3
- package/server/src-DtcUOZCq.js +0 -4826
- package/server/supervisor-FTJAIsAK.js +0 -2
- package/server/token-util-DuPuNriz.js +0 -3
- package/server/tracker-utils-B4ylXZQK.js +0 -3
- package/server/uat-train-B05BWkp-.js +0 -2
- package/server/uat-train-DDSrSoV1.js +0 -2152
- package/server/workflows-BQu4RFQ-.js +0 -2
- package/server/workspace-manager-CWT55qeI.js +0 -3
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { n as __esmMin, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { w as init_tmux, y as getManagedTmuxSocketName } from "./tmux-
|
|
4
|
-
import {
|
|
5
|
-
import { a as init_claude_permissions, i as getClaudePermissionFlagsSync, n as buildClaudeUserSettingsSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-
|
|
6
|
-
import { c as isStateMigrated, o as init_state_home } from "./state-home-
|
|
2
|
+
import { Fr as init_errors, Pt as init_record, Vt as resolveProjectForIssue, xr as require_dist } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { w as init_tmux, y as getManagedTmuxSocketName } from "./tmux-B1Wbxz5o.js";
|
|
4
|
+
import { a as dedupPendingOptionName, c as dedupTerminalOptionName, d as generateLauncherScriptSync, f as init_launcher_generator, l as init_tmux_dedup, n as KeyedSubmitTargetDeadError, o as dedupPoisonOptionName, r as assertValidDedupKey, s as dedupTargetOptionName, t as KeyedMarkerVerificationError } from "./tmux-dedup-DbN6MGzM.js";
|
|
5
|
+
import { a as init_claude_permissions, i as getClaudePermissionFlagsSync, n as buildClaudeUserSettingsSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-CN0cSCPp.js";
|
|
6
|
+
import { c as isStateMigrated, o as init_state_home } from "./state-home-BYV7qZTW.js";
|
|
7
7
|
import { Data, Effect, Stream } from "effect";
|
|
8
8
|
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
|
|
9
9
|
import { join } from "path";
|
|
10
10
|
import { homedir } from "os";
|
|
11
11
|
import { exec, spawn } from "child_process";
|
|
12
12
|
import { promisify } from "util";
|
|
13
|
+
import { randomUUID } from "node:crypto";
|
|
13
14
|
//#region ../../lib/claude-mcp.ts
|
|
14
15
|
function ensurePlaywrightIsolationSync(mcpConfig) {
|
|
15
16
|
const playwright = mcpConfig?.mcpServers?.playwright;
|
|
@@ -661,6 +662,293 @@ with open(path, "w") as f:
|
|
|
661
662
|
};
|
|
662
663
|
}));
|
|
663
664
|
//#endregion
|
|
665
|
+
//#region ../../lib/remote/remote-tmux.ts
|
|
666
|
+
/**
|
|
667
|
+
* Remote tmux/SSH plumbing for Fly-hosted agents.
|
|
668
|
+
*
|
|
669
|
+
* Extracted from remote-agents.ts (file-size ceiling) — the remote tmux
|
|
670
|
+
* server is the crash-independent component for remote sessions, and both
|
|
671
|
+
* remote-agents.ts and remote-keyed-delivery.ts build on these primitives.
|
|
672
|
+
*/
|
|
673
|
+
function shellQuote(value) {
|
|
674
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
675
|
+
}
|
|
676
|
+
function getRemoteTmuxBaseArgs() {
|
|
677
|
+
return [
|
|
678
|
+
"-L",
|
|
679
|
+
getManagedTmuxSocketName(),
|
|
680
|
+
"-f",
|
|
681
|
+
REMOTE_TMUX_CONFIG_PATH
|
|
682
|
+
];
|
|
683
|
+
}
|
|
684
|
+
function buildRemoteTmuxCommand(args) {
|
|
685
|
+
return [
|
|
686
|
+
"tmux",
|
|
687
|
+
...getRemoteTmuxBaseArgs(),
|
|
688
|
+
...args
|
|
689
|
+
].map(shellQuote).join(" ");
|
|
690
|
+
}
|
|
691
|
+
/** Run a FlyProvider Effect at the async/Promise boundary. */
|
|
692
|
+
function runSsh(provider, vmName, command) {
|
|
693
|
+
return Effect.runPromise(provider.ssh(vmName, command));
|
|
694
|
+
}
|
|
695
|
+
async function ensureRemoteTmuxContext(provider, vmName) {
|
|
696
|
+
const configBase64 = Buffer.from(REMOTE_TMUX_CONFIG_CONTENT).toString("base64");
|
|
697
|
+
await runSsh(provider, vmName, `mkdir -p ${shellQuote(REMOTE_TMUX_DIR)} && echo ${shellQuote(configBase64)} | base64 -d > ${shellQuote(REMOTE_TMUX_CONFIG_PATH)}`);
|
|
698
|
+
}
|
|
699
|
+
var REMOTE_PAN_DIR, REMOTE_TMUX_DIR, REMOTE_TMUX_CONFIG_PATH, REMOTE_TMUX_CONFIG_CONTENT;
|
|
700
|
+
var init_remote_tmux = __esmMin((() => {
|
|
701
|
+
init_tmux();
|
|
702
|
+
REMOTE_PAN_DIR = "/workspace/.pan";
|
|
703
|
+
REMOTE_TMUX_DIR = `${REMOTE_PAN_DIR}/tmux`;
|
|
704
|
+
REMOTE_TMUX_CONFIG_PATH = `${REMOTE_TMUX_DIR}/overdeck.tmux.conf`;
|
|
705
|
+
REMOTE_TMUX_CONFIG_CONTENT = [
|
|
706
|
+
"# Overdeck-managed tmux config",
|
|
707
|
+
"# Keep this minimal and include only behavior Overdeck intentionally depends on.",
|
|
708
|
+
"set -g mouse on",
|
|
709
|
+
""
|
|
710
|
+
].join("\n");
|
|
711
|
+
}));
|
|
712
|
+
//#endregion
|
|
713
|
+
//#region ../../lib/remote/remote-keyed-delivery.ts
|
|
714
|
+
/**
|
|
715
|
+
* Keyed remote delivery (PAN-2997). The REMOTE tmux server is the
|
|
716
|
+
* crash-independent component for a remote session: it survives both the
|
|
717
|
+
* local dashboard and the remote agent shell, so the same two-phase
|
|
718
|
+
* pending/terminal marker protocol as the local tmux tier
|
|
719
|
+
* (src/lib/tmux-dedup.ts) enforces the dedup key across the complete
|
|
720
|
+
* paste-settle-submit transaction — paste under an atomic pending claim, a
|
|
721
|
+
* liveness-gated Enter-first submit, post-submit target verification with a
|
|
722
|
+
* verified rollback under a poison breadcrumb. A local dashboard crash
|
|
723
|
+
* anywhere in the sequence replays into either a completed pending
|
|
724
|
+
* submission (no second paste) or a terminal-marker dedup — never a lost or
|
|
725
|
+
* duplicated wake.
|
|
726
|
+
*/
|
|
727
|
+
async function sendToRemoteAgentKeyed(agentId, vmName, message, dedupKey, exec) {
|
|
728
|
+
assertValidDedupKey(dedupKey);
|
|
729
|
+
let run;
|
|
730
|
+
if (exec) run = exec;
|
|
731
|
+
else {
|
|
732
|
+
const fly = createFlyProvider();
|
|
733
|
+
await ensureRemoteTmuxContext(fly, vmName);
|
|
734
|
+
run = async (command) => {
|
|
735
|
+
const result = await runSsh(fly, vmName, command);
|
|
736
|
+
if (result.exitCode !== 0) throw new Error(`remote keyed-delivery command failed (exit ${result.exitCode}): ${result.stderr.slice(0, 200)}`);
|
|
737
|
+
return result.stdout;
|
|
738
|
+
};
|
|
739
|
+
}
|
|
740
|
+
const pendingOption = dedupPendingOptionName(dedupKey);
|
|
741
|
+
const terminalOption = dedupTerminalOptionName(dedupKey);
|
|
742
|
+
const poisonOption = dedupPoisonOptionName(dedupKey);
|
|
743
|
+
const sendId = randomUUID();
|
|
744
|
+
const bufferName = `pan-keyed-${sendId}`;
|
|
745
|
+
const promptFile = `${REMOTE_PAN_DIR}/prompts/${agentId}-keyed-${sendId}.txt`;
|
|
746
|
+
const innerTmux = ["tmux", ...getRemoteTmuxBaseArgs()].map(shellQuote).join(" ");
|
|
747
|
+
const cleanup = async () => {
|
|
748
|
+
await run(buildRemoteTmuxCommand([
|
|
749
|
+
"delete-buffer",
|
|
750
|
+
"-b",
|
|
751
|
+
bufferName
|
|
752
|
+
])).catch(() => "");
|
|
753
|
+
await run(`rm -f ${shellQuote(promptFile)}`).catch(() => "");
|
|
754
|
+
};
|
|
755
|
+
const readMarker = async (option) => run(buildRemoteTmuxCommand([
|
|
756
|
+
"show-option",
|
|
757
|
+
"-qv",
|
|
758
|
+
"-t",
|
|
759
|
+
agentId,
|
|
760
|
+
option
|
|
761
|
+
])).then((stdout) => stdout.trim(), () => "");
|
|
762
|
+
const readMarkerStrict = async (option) => run(buildRemoteTmuxCommand([
|
|
763
|
+
"show-option",
|
|
764
|
+
"-qv",
|
|
765
|
+
"-t",
|
|
766
|
+
agentId,
|
|
767
|
+
option
|
|
768
|
+
])).then((stdout) => stdout.trim());
|
|
769
|
+
const clearPoisonVerified = async (context) => {
|
|
770
|
+
try {
|
|
771
|
+
await run(buildRemoteTmuxCommand([
|
|
772
|
+
"set-option",
|
|
773
|
+
"-u",
|
|
774
|
+
"-t",
|
|
775
|
+
agentId,
|
|
776
|
+
poisonOption
|
|
777
|
+
]));
|
|
778
|
+
} catch (error) {
|
|
779
|
+
throw new KeyedMarkerVerificationError(agentId, `poison clear command failed (${context})`, { cause: error });
|
|
780
|
+
}
|
|
781
|
+
let remaining;
|
|
782
|
+
try {
|
|
783
|
+
remaining = await readMarkerStrict(poisonOption);
|
|
784
|
+
} catch (error) {
|
|
785
|
+
throw new KeyedMarkerVerificationError(agentId, `post-clear verification read failed (${context})`, { cause: error });
|
|
786
|
+
}
|
|
787
|
+
if (remaining !== "") throw new KeyedMarkerVerificationError(agentId, `poison breadcrumb survived the clear (${context})`);
|
|
788
|
+
};
|
|
789
|
+
const readPaneTarget = async () => run(buildRemoteTmuxCommand([
|
|
790
|
+
"display-message",
|
|
791
|
+
"-p",
|
|
792
|
+
"-t",
|
|
793
|
+
agentId,
|
|
794
|
+
"#{pane_pid} #{pane_dead}"
|
|
795
|
+
])).then((stdout) => {
|
|
796
|
+
const [pid = "", dead = ""] = stdout.trim().split(/\s+/);
|
|
797
|
+
return {
|
|
798
|
+
pid,
|
|
799
|
+
dead: dead === "1"
|
|
800
|
+
};
|
|
801
|
+
}).catch(() => ({
|
|
802
|
+
pid: "",
|
|
803
|
+
dead: true
|
|
804
|
+
}));
|
|
805
|
+
try {
|
|
806
|
+
let poisonMarker;
|
|
807
|
+
try {
|
|
808
|
+
poisonMarker = await readMarkerStrict(poisonOption);
|
|
809
|
+
} catch (error) {
|
|
810
|
+
throw new KeyedMarkerVerificationError(agentId, `initial poison read (key "${dedupKey}")`, { cause: error });
|
|
811
|
+
}
|
|
812
|
+
const repaired = poisonMarker !== "";
|
|
813
|
+
if (repaired) {
|
|
814
|
+
await run(buildRemoteTmuxCommand([
|
|
815
|
+
"set-option",
|
|
816
|
+
"-u",
|
|
817
|
+
"-t",
|
|
818
|
+
agentId,
|
|
819
|
+
terminalOption,
|
|
820
|
+
";",
|
|
821
|
+
"set-option",
|
|
822
|
+
"-t",
|
|
823
|
+
agentId,
|
|
824
|
+
pendingOption,
|
|
825
|
+
sendId
|
|
826
|
+
]));
|
|
827
|
+
let repairedTerminal;
|
|
828
|
+
let repairedPending;
|
|
829
|
+
try {
|
|
830
|
+
[repairedTerminal, repairedPending] = await Promise.all([readMarkerStrict(terminalOption), readMarkerStrict(pendingOption)]);
|
|
831
|
+
} catch {
|
|
832
|
+
throw new KeyedMarkerVerificationError(agentId, `repair verification of key "${dedupKey}"`);
|
|
833
|
+
}
|
|
834
|
+
if (repairedTerminal !== "" || repairedPending === "") throw new Error(`Keyed remote markers for ${agentId} are poisoned and could not be repaired (key "${dedupKey}")`);
|
|
835
|
+
await clearPoisonVerified(`repair of key "${dedupKey}"`);
|
|
836
|
+
}
|
|
837
|
+
const targetOption = dedupTargetOptionName(dedupKey);
|
|
838
|
+
const messageBase64 = Buffer.from(message).toString("base64");
|
|
839
|
+
await run(`mkdir -p ${shellQuote(`${REMOTE_PAN_DIR}/prompts`)} && echo ${shellQuote(messageBase64)} | base64 -d > ${shellQuote(promptFile)}`);
|
|
840
|
+
await run(buildRemoteTmuxCommand([
|
|
841
|
+
"load-buffer",
|
|
842
|
+
"-b",
|
|
843
|
+
bufferName,
|
|
844
|
+
promptFile
|
|
845
|
+
]));
|
|
846
|
+
let pendingMarker;
|
|
847
|
+
if (repaired) pendingMarker = sendId;
|
|
848
|
+
else {
|
|
849
|
+
const condition = `test -z "$(${innerTmux} show-option -qv -t ${agentId} ${pendingOption})" && test -z "$(${innerTmux} show-option -qv -t ${agentId} ${terminalOption})"`;
|
|
850
|
+
const onTrue = `paste-buffer -b ${bufferName} -p -t ${agentId} \; set-option -t ${agentId} ${pendingOption} ${sendId} \; set-option -F -t ${agentId} ${targetOption} '#{pane_pid}'`;
|
|
851
|
+
await run(buildRemoteTmuxCommand([
|
|
852
|
+
"if-shell",
|
|
853
|
+
"-t",
|
|
854
|
+
agentId,
|
|
855
|
+
condition,
|
|
856
|
+
onTrue
|
|
857
|
+
]));
|
|
858
|
+
const terminalMarker = await readMarker(terminalOption);
|
|
859
|
+
pendingMarker = await readMarker(pendingOption);
|
|
860
|
+
if (terminalMarker !== "") return "deduplicated";
|
|
861
|
+
if (pendingMarker === "") throw new Error(`Keyed remote paste for ${agentId} did not land and no dedup marker was recorded`);
|
|
862
|
+
}
|
|
863
|
+
const recordedTarget = await readMarker(targetOption);
|
|
864
|
+
const currentPid = (await readPaneTarget()).pid;
|
|
865
|
+
if (!(recordedTarget !== "" && currentPid !== "" && recordedTarget === currentPid)) {
|
|
866
|
+
const repasteCondition = `test -n "$(${innerTmux} show-option -qv -t ${agentId} ${pendingOption})" && test -z "$(${innerTmux} show-option -qv -t ${agentId} ${terminalOption})" && ! test "$(${innerTmux} display-message -p -t ${agentId} '#{pane_pid}')" = "$(${innerTmux} show-option -qv -t ${agentId} ${targetOption})"`;
|
|
867
|
+
const repasteOnTrue = `paste-buffer -b ${bufferName} -p -t ${agentId} \; set-option -t ${agentId} ${pendingOption} ${sendId} \; set-option -F -t ${agentId} ${targetOption} '#{pane_pid}'`;
|
|
868
|
+
await run(buildRemoteTmuxCommand([
|
|
869
|
+
"if-shell",
|
|
870
|
+
"-t",
|
|
871
|
+
agentId,
|
|
872
|
+
repasteCondition,
|
|
873
|
+
repasteOnTrue
|
|
874
|
+
]));
|
|
875
|
+
const [repastedPending, repastedTerminal] = await Promise.all([readMarker(pendingOption), readMarker(terminalOption)]);
|
|
876
|
+
if (repastedTerminal !== "") return "deduplicated";
|
|
877
|
+
if (repastedPending === "") throw new Error(`Keyed remote paste for ${agentId} did not land and no dedup marker was recorded`);
|
|
878
|
+
pendingMarker = repastedPending;
|
|
879
|
+
}
|
|
880
|
+
const preTarget = await readPaneTarget();
|
|
881
|
+
const pendingBefore = pendingMarker;
|
|
882
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
883
|
+
const submitCondition = `test -z "$(${innerTmux} show-option -qv -t ${agentId} ${terminalOption})" && test -n "$(${innerTmux} show-option -qv -t ${agentId} ${pendingOption})" && test "$(${innerTmux} display-message -p -t ${agentId} '#{pane_dead}')" = "0" && test "$(${innerTmux} display-message -p -t ${agentId} '#{pane_pid}')" = "$(${innerTmux} show-option -qv -t ${agentId} ${targetOption})"`;
|
|
884
|
+
const submitOnTrue = `send-keys -t ${agentId} C-m \; set-option -t ${agentId} ${poisonOption} 1 \; set-option -t ${agentId} ${terminalOption} 1 \; set-option -u -t ${agentId} ${pendingOption}`;
|
|
885
|
+
await run(buildRemoteTmuxCommand([
|
|
886
|
+
"if-shell",
|
|
887
|
+
"-t",
|
|
888
|
+
agentId,
|
|
889
|
+
submitCondition,
|
|
890
|
+
submitOnTrue
|
|
891
|
+
]));
|
|
892
|
+
const [terminalAfter, pendingAfter, postTarget, recordedTargetAfter] = await Promise.all([
|
|
893
|
+
readMarker(terminalOption),
|
|
894
|
+
readMarker(pendingOption),
|
|
895
|
+
readPaneTarget(),
|
|
896
|
+
readMarker(targetOption)
|
|
897
|
+
]);
|
|
898
|
+
const targetLost = preTarget.dead || preTarget.pid === "" || postTarget.dead || postTarget.pid !== preTarget.pid;
|
|
899
|
+
if (terminalAfter === "" && pendingAfter === "") throw new Error(`Keyed remote submit for ${agentId} found neither a pending claim nor a terminal marker — the paste vanished without submission`);
|
|
900
|
+
if (terminalAfter === "" && (targetLost || recordedTargetAfter === "" || recordedTargetAfter !== postTarget.pid)) throw new KeyedSubmitTargetDeadError(agentId, dedupKey);
|
|
901
|
+
if (targetLost) {
|
|
902
|
+
if (terminalAfter !== "") {
|
|
903
|
+
await run(buildRemoteTmuxCommand(pendingBefore === "" ? [
|
|
904
|
+
"set-option",
|
|
905
|
+
"-u",
|
|
906
|
+
"-t",
|
|
907
|
+
agentId,
|
|
908
|
+
terminalOption,
|
|
909
|
+
";",
|
|
910
|
+
"set-option",
|
|
911
|
+
"-u",
|
|
912
|
+
"-t",
|
|
913
|
+
agentId,
|
|
914
|
+
pendingOption
|
|
915
|
+
] : [
|
|
916
|
+
"set-option",
|
|
917
|
+
"-u",
|
|
918
|
+
"-t",
|
|
919
|
+
agentId,
|
|
920
|
+
terminalOption,
|
|
921
|
+
";",
|
|
922
|
+
"set-option",
|
|
923
|
+
"-t",
|
|
924
|
+
agentId,
|
|
925
|
+
pendingOption,
|
|
926
|
+
pendingBefore
|
|
927
|
+
])).catch(() => "");
|
|
928
|
+
let rolledTerminal;
|
|
929
|
+
let restoredPending;
|
|
930
|
+
try {
|
|
931
|
+
[rolledTerminal, restoredPending] = await Promise.all([readMarkerStrict(terminalOption), readMarkerStrict(pendingOption)]);
|
|
932
|
+
} catch {
|
|
933
|
+
throw new KeyedMarkerVerificationError(agentId, `rollback verification of key "${dedupKey}"`);
|
|
934
|
+
}
|
|
935
|
+
if (rolledTerminal === "" && restoredPending !== "") await clearPoisonVerified(`verified rollback of key "${dedupKey}"`).catch(() => "");
|
|
936
|
+
}
|
|
937
|
+
throw new KeyedSubmitTargetDeadError(agentId, dedupKey);
|
|
938
|
+
}
|
|
939
|
+
if (terminalAfter === "") throw new Error(`Keyed remote submit for ${agentId} was rejected with the pending claim intact on a live pane`);
|
|
940
|
+
await clearPoisonVerified(`verified delivery of key "${dedupKey}"`);
|
|
941
|
+
return "delivered";
|
|
942
|
+
} finally {
|
|
943
|
+
await cleanup();
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
var init_remote_keyed_delivery = __esmMin((() => {
|
|
947
|
+
init_tmux_dedup();
|
|
948
|
+
init_fly_provider();
|
|
949
|
+
init_remote_tmux();
|
|
950
|
+
}));
|
|
951
|
+
//#endregion
|
|
664
952
|
//#region ../../lib/remote/remote-agents.ts
|
|
665
953
|
/**
|
|
666
954
|
* Remote Agent Management
|
|
@@ -680,7 +968,7 @@ with open(path, "w") as f:
|
|
|
680
968
|
*/
|
|
681
969
|
function generatePushDaemonScript(options) {
|
|
682
970
|
const intervalSeconds = options.intervalSeconds ?? PUSH_DAEMON_INTERVAL_SECONDS;
|
|
683
|
-
const logFile = options.logFile ??
|
|
971
|
+
const logFile = options.logFile ?? `/workspace/.pan/push-daemon.log`;
|
|
684
972
|
const issueIdLiteral = JSON.stringify(options.issueId);
|
|
685
973
|
const branchLiteral = JSON.stringify(options.branch);
|
|
686
974
|
return [
|
|
@@ -787,7 +1075,7 @@ async function installPushDaemon(provider, vmName, issueId) {
|
|
|
787
1075
|
*/
|
|
788
1076
|
function generateEphemeralWatchdogScript(options) {
|
|
789
1077
|
const heartbeatPathLiteral = JSON.stringify(options.heartbeatPath);
|
|
790
|
-
const logFileLiteral = JSON.stringify(options.logFile ??
|
|
1078
|
+
const logFileLiteral = JSON.stringify(options.logFile ?? `/workspace/.pan/ephemeral-watchdog.log`);
|
|
791
1079
|
const intervalSeconds = options.intervalSeconds ?? EPHEMERAL_WATCHDOG_INTERVAL_SECONDS;
|
|
792
1080
|
const staleThresholdSeconds = options.staleThresholdSeconds ?? EPHEMERAL_HEARTBEAT_STALE_THRESHOLD_SECONDS;
|
|
793
1081
|
return [
|
|
@@ -903,10 +1191,6 @@ function listActiveRemoteAgentStates() {
|
|
|
903
1191
|
if (!existsSync(AGENTS_DIR)) return [];
|
|
904
1192
|
return readdirSync(AGENTS_DIR).map((agentId) => loadRemoteAgentState(agentId)).filter((state) => state?.location === "remote" && (state.status === "running" || state.status === "starting"));
|
|
905
1193
|
}
|
|
906
|
-
/** Run a FlyProvider Effect at the async/Promise boundary. */
|
|
907
|
-
function runSsh(provider, vmName, command) {
|
|
908
|
-
return Effect.runPromise(provider.ssh(vmName, command));
|
|
909
|
-
}
|
|
910
1194
|
/**
|
|
911
1195
|
* Refresh the host-heartbeat freshness file on every active ephemeral-tier VM.
|
|
912
1196
|
* The deacon patrol calls this each cycle; the VM-side ephemeral watchdog uses
|
|
@@ -986,28 +1270,6 @@ async function remoteSessionExists(provider, vmName, sessionName) {
|
|
|
986
1270
|
function assertFlyRemoteStateSupported(issueId, migrated) {
|
|
987
1271
|
if (migrated) throw new Error(`Fly remote spawn blocked for ${issueId.toUpperCase()}: PAN-2541 D14 forbids remote work on migrated projects until PAN-2549 implements overdeck-state synchronization.`);
|
|
988
1272
|
}
|
|
989
|
-
function shellQuote(value) {
|
|
990
|
-
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
991
|
-
}
|
|
992
|
-
function getRemoteTmuxBaseArgs() {
|
|
993
|
-
return [
|
|
994
|
-
"-L",
|
|
995
|
-
getManagedTmuxSocketName(),
|
|
996
|
-
"-f",
|
|
997
|
-
REMOTE_TMUX_CONFIG_PATH
|
|
998
|
-
];
|
|
999
|
-
}
|
|
1000
|
-
function buildRemoteTmuxCommand(args) {
|
|
1001
|
-
return [
|
|
1002
|
-
"tmux",
|
|
1003
|
-
...getRemoteTmuxBaseArgs(),
|
|
1004
|
-
...args
|
|
1005
|
-
].map(shellQuote).join(" ");
|
|
1006
|
-
}
|
|
1007
|
-
async function ensureRemoteTmuxContext(provider, vmName) {
|
|
1008
|
-
const configBase64 = Buffer.from(REMOTE_TMUX_CONFIG_CONTENT).toString("base64");
|
|
1009
|
-
await runSsh(provider, vmName, `mkdir -p ${shellQuote(REMOTE_TMUX_DIR)} && echo ${shellQuote(configBase64)} | base64 -d > ${shellQuote(REMOTE_TMUX_CONFIG_PATH)}`);
|
|
1010
|
-
}
|
|
1011
1273
|
/**
|
|
1012
1274
|
* Write a file on the VM via base64 chunks. The Machines exec API rejects
|
|
1013
1275
|
* payloads somewhere above 4KB (PayloadTooLarge), so large content — agent
|
|
@@ -1206,30 +1468,22 @@ async function pollRemoteAgentStatus(agentId, vmName) {
|
|
|
1206
1468
|
toolUses
|
|
1207
1469
|
};
|
|
1208
1470
|
}
|
|
1209
|
-
var AGENTS_DIR,
|
|
1471
|
+
var AGENTS_DIR, REMOTE_HOST_HEARTBEAT_PATH, PUSH_DAEMON_INTERVAL_SECONDS, EPHEMERAL_WATCHDOG_INTERVAL_SECONDS, EPHEMERAL_HEARTBEAT_STALE_THRESHOLD_SECONDS;
|
|
1210
1472
|
var init_remote_agents = __esmMin((() => {
|
|
1211
1473
|
init_fly_provider();
|
|
1212
|
-
|
|
1474
|
+
init_remote_tmux();
|
|
1213
1475
|
init_launcher_generator();
|
|
1214
1476
|
init_claude_permissions();
|
|
1215
1477
|
init_record();
|
|
1216
1478
|
init_state_home();
|
|
1479
|
+
init_remote_keyed_delivery();
|
|
1217
1480
|
AGENTS_DIR = join(homedir(), ".overdeck", "agents");
|
|
1218
|
-
REMOTE_PAN_DIR = "/workspace/.pan";
|
|
1219
|
-
REMOTE_TMUX_DIR = `${REMOTE_PAN_DIR}/tmux`;
|
|
1220
|
-
REMOTE_TMUX_CONFIG_PATH = `${REMOTE_TMUX_DIR}/overdeck.tmux.conf`;
|
|
1221
1481
|
REMOTE_HOST_HEARTBEAT_PATH = `${REMOTE_PAN_DIR}/host-heartbeat`;
|
|
1222
|
-
REMOTE_TMUX_CONFIG_CONTENT = [
|
|
1223
|
-
"# Overdeck-managed tmux config",
|
|
1224
|
-
"# Keep this minimal and include only behavior Overdeck intentionally depends on.",
|
|
1225
|
-
"set -g mouse on",
|
|
1226
|
-
""
|
|
1227
|
-
].join("\n");
|
|
1228
1482
|
PUSH_DAEMON_INTERVAL_SECONDS = 300;
|
|
1229
1483
|
EPHEMERAL_WATCHDOG_INTERVAL_SECONDS = 60;
|
|
1230
1484
|
EPHEMERAL_HEARTBEAT_STALE_THRESHOLD_SECONDS = 300;
|
|
1231
1485
|
}));
|
|
1232
1486
|
//#endregion
|
|
1233
|
-
export {
|
|
1487
|
+
export { createFlyProvider as C, FlyProvider as S, saveRemoteAgentState as _, generatePushDaemonScript as a, writeRemoteFile as b, installEphemeralWatchdog as c, killRemoteAgent as d, listActiveRemoteAgentStates as f, refreshHostHeartbeatForEphemeralVms as g, pollRemoteAgentStatus as h, generateEphemeralWatchdogScript as i, installPushDaemon as l, loadRemoteAgentState as m, checkRemoteDurabilityPreflight as n, getRemoteAgentOutput as o, listRemoteAgents as p, checkRemoteSpendCap as r, init_remote_agents as s, assertFlyRemoteStateSupported as t, isRemoteAgentRunning as u, sendToRemoteAgent as v, init_fly_provider as w, sendToRemoteAgentKeyed as x, spawnRemoteAgent as y };
|
|
1234
1488
|
|
|
1235
|
-
//# sourceMappingURL=remote-agents-
|
|
1489
|
+
//# sourceMappingURL=remote-agents-C_VxssLU.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { An as extractTeamPrefix, Gn as init_projects, Pn as findProjectByTeamSync, ar as resolveProjectFromIssueSync } from "./config-yaml-CmOPzmBb.js";
|
|
2
2
|
import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME } from "./types-hraoaQIp.js";
|
|
3
|
-
import { f as init_config, m as loadConfigSync } from "./config-
|
|
4
|
-
import { t as init_pan_dir } from "./pan-dir-
|
|
5
|
-
import { r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-
|
|
6
|
-
import { _ as saveRemoteAgentState, f as listActiveRemoteAgentStates, m as loadRemoteAgentState, o as getRemoteAgentOutput, s as init_remote_agents, u as isRemoteAgentRunning, v as sendToRemoteAgent } from "./remote-agents-
|
|
7
|
-
import { t as createFlyProviderFromConfig } from "./remote-
|
|
3
|
+
import { f as init_config, m as loadConfigSync } from "./config-Dr3pW6w6.js";
|
|
4
|
+
import { t as init_pan_dir } from "./pan-dir-ubraCiUg.js";
|
|
5
|
+
import { r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-CwO-Hek7.js";
|
|
6
|
+
import { _ as saveRemoteAgentState, f as listActiveRemoteAgentStates, m as loadRemoteAgentState, o as getRemoteAgentOutput, s as init_remote_agents, u as isRemoteAgentRunning, v as sendToRemoteAgent } from "./remote-agents-C_VxssLU.js";
|
|
7
|
+
import { t as createFlyProviderFromConfig } from "./remote-BCd02Es1.js";
|
|
8
8
|
import { Effect } from "effect";
|
|
9
9
|
import { existsSync, mkdirSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
10
10
|
import { basename, join } from "path";
|
|
@@ -309,7 +309,7 @@ async function reapCompletedRemoteAgents(opts = {}) {
|
|
|
309
309
|
} catch {
|
|
310
310
|
details.push("No continue.json retrieved from VM (skipped)");
|
|
311
311
|
}
|
|
312
|
-
const { getAgentStateSync, saveAgentStateSync } = await import("./agents-
|
|
312
|
+
const { getAgentStateSync, saveAgentStateSync } = await import("./agents-BKKkxKgK.js");
|
|
313
313
|
const existing = getAgentStateSync(agentId);
|
|
314
314
|
if (existing) {
|
|
315
315
|
existing.workspace = existing.workspace || workspacePath;
|
|
@@ -327,8 +327,8 @@ async function reapCompletedRemoteAgents(opts = {}) {
|
|
|
327
327
|
startedAt: remoteState.startedAt,
|
|
328
328
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString()
|
|
329
329
|
});
|
|
330
|
-
const { createReviewArtifactsForIssue } = await import("./review-artifacts-
|
|
331
|
-
const { setReviewStatusSync } = await import("./review-status-
|
|
330
|
+
const { createReviewArtifactsForIssue } = await import("./review-artifacts-DSMRIfuJ.js");
|
|
331
|
+
const { setReviewStatusSync } = await import("./review-status-BZH8h-6W.js");
|
|
332
332
|
const primaryArtifact = (await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath))).mergeSet?.repos.find((repo) => !!repo.artifactUrl);
|
|
333
333
|
if (primaryArtifact?.artifactUrl) {
|
|
334
334
|
setReviewStatusSync(issueId, { prUrl: primaryArtifact.artifactUrl });
|
|
@@ -349,7 +349,7 @@ async function reapCompletedRemoteAgents(opts = {}) {
|
|
|
349
349
|
try {
|
|
350
350
|
const fly = createFlyProviderFromConfig(loadConfigSync().remote);
|
|
351
351
|
if (sessionAlive) {
|
|
352
|
-
const { killRemoteAgent } = await import("./remote-agents-
|
|
352
|
+
const { killRemoteAgent } = await import("./remote-agents-C1bssi41.js");
|
|
353
353
|
await killRemoteAgent(agentId, vmName).catch(() => void 0);
|
|
354
354
|
}
|
|
355
355
|
await Effect.runPromise(fly.deleteVm(vmName));
|
|
@@ -357,7 +357,7 @@ async function reapCompletedRemoteAgents(opts = {}) {
|
|
|
357
357
|
} catch (err) {
|
|
358
358
|
details.push(`Warning: could not destroy machine: ${err.message}`);
|
|
359
359
|
}
|
|
360
|
-
const { deleteWorkspaceMetadataSync } = await import("./workspace-metadata-
|
|
360
|
+
const { deleteWorkspaceMetadataSync } = await import("./workspace-metadata-D4M8BM4W.js");
|
|
361
361
|
deleteWorkspaceMetadataSync(issueId);
|
|
362
362
|
details.push("Removed remote workspace metadata (pipeline is local from here)");
|
|
363
363
|
saveRemoteAgentState({
|
|
@@ -386,4 +386,4 @@ async function reapCompletedRemoteAgents(opts = {}) {
|
|
|
386
386
|
//#endregion
|
|
387
387
|
export { reapCompletedRemoteAgents, refreshClaudeCredentialsForActiveRemoteAgents };
|
|
388
388
|
|
|
389
|
-
//# sourceMappingURL=remote-completion-
|
|
389
|
+
//# sourceMappingURL=remote-completion-DAB0P706.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as isReviewStaleSync, c as purgeReviewAgentsForIssue, d as buildConvoyPrompt, f as handleReviewDiscoveryReady, h as reviewResumeDecision, i as isReviewSessionForIssue, l as resolveReviewMode, m as spawnReviewSubRoleForIssue, n as init_review_agent, o as killAllReviewSessions, p as resolveReReviewScope, r as isExtendedReviewEnabled, s as killAllReviewerSessions, t as PARENT_REVIEW_TIMEOUT_MS, u as spawnReviewRoleForIssue } from "./review-agent-
|
|
1
|
+
import { a as isReviewStaleSync, c as purgeReviewAgentsForIssue, d as buildConvoyPrompt, f as handleReviewDiscoveryReady, h as reviewResumeDecision, i as isReviewSessionForIssue, l as resolveReviewMode, m as spawnReviewSubRoleForIssue, n as init_review_agent, o as killAllReviewSessions, p as resolveReReviewScope, r as isExtendedReviewEnabled, s as killAllReviewerSessions, t as PARENT_REVIEW_TIMEOUT_MS, u as spawnReviewRoleForIssue } from "./review-agent-CHhI66UP.js";
|
|
2
2
|
init_review_agent();
|
|
3
3
|
export { PARENT_REVIEW_TIMEOUT_MS, buildConvoyPrompt, handleReviewDiscoveryReady, isExtendedReviewEnabled, isReviewSessionForIssue, isReviewStaleSync, killAllReviewSessions, killAllReviewerSessions, purgeReviewAgentsForIssue, resolveReReviewScope, resolveReviewMode, reviewResumeDecision, spawnReviewRoleForIssue, spawnReviewSubRoleForIssue };
|