@sema-agent/server 7.146.0 → 7.148.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/MIGRATION.md +1423 -24
- package/README.md +21 -8
- package/README.zh-CN.md +15 -9
- package/USAGE.md +537 -216
- package/deploy/facts/lanes.json +7 -0
- package/deploy/sema-up/README.md +18 -7
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/templates/_helpers.tpl +42 -4
- package/deploy/sema-up/chart/templates/server-v4pro.yaml +5 -4
- package/deploy/sema-up/chart/templates/server.yaml +5 -4
- package/deploy/sema-up/chart/values.yaml +4 -3
- package/deploy/sema-up/cluster-up.sh +75 -176
- package/deploy/sema-up/kube-up.sh +29 -49
- package/deploy/sema-up/lib/chart-run.sh +23 -0
- package/deploy/sema-up/lib/dataroot.sh +3 -3
- package/deploy/sema-up/lib/flagshape.sh +4 -0
- package/deploy/sema-up/lib/health.sh +62 -13
- package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
- package/deploy/sema-up/lib/helm-values-kube.py +35 -0
- package/deploy/sema-up/lib/lanes.json +2 -5
- package/deploy/sema-up/lib/regcred.py +8 -0
- package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
- package/deploy/sema-up/lib/remote/image-import.sh +6 -0
- package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
- package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
- package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
- package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
- package/deploy/sema-up/lib/render-stack.py +17 -0
- package/deploy/sema-up/lib/shell-text.sh +87 -0
- package/deploy/sema-up/lib/usage-flags.txt +10 -0
- package/deploy/sema-up/lib/usage-head.txt +1 -0
- package/deploy/sema-up/lib/usage-tail.txt +13 -0
- package/deploy/sema-up/preflight.sh +10 -8
- package/deploy/sema-up/sema-up.sh +26 -48
- package/deploy/sema-up/smoke.sh +7 -6
- package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
- package/deploy/sema-up/stack/compose.yaml +18 -5
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +25 -3
- package/dist/adoption/plan.d.ts +24 -0
- package/dist/adoption/plan.js +53 -1
- package/dist/adoption/runner.d.ts +10 -1
- package/dist/adoption/runner.js +36 -16
- package/dist/adoption/wire.d.ts +3 -3
- package/dist/approval-card.d.ts +32 -34
- package/dist/approval-gate-currency.js +3 -2
- package/dist/approval-reconciler.d.ts +4 -13
- package/dist/approval-reconciler.js +2 -2
- package/dist/approval.d.ts +16 -14
- package/dist/approval.js +3 -3
- package/dist/audit.d.ts +10 -3
- package/dist/audit.js +17 -9
- package/dist/auth-bridge.d.ts +0 -14
- package/dist/auth-bridge.js +0 -7
- package/dist/auto-mode-face.d.ts +10 -7
- package/dist/auto-mode-face.js +7 -4
- package/dist/background-agent-name.d.ts +19 -1
- package/dist/background-agent-name.js +12 -2
- package/dist/background-session-reap.d.ts +1 -1
- package/dist/bake-runner/main.js +9 -6
- package/dist/bench/s1/arms.js +6 -5
- package/dist/bench/s1/live-deps.js +8 -3
- package/dist/bench/s1/run-firm.js +6 -5
- package/dist/bind-host.d.ts +25 -0
- package/dist/bind-host.js +25 -0
- package/dist/boot/adoption.d.ts +3 -0
- package/dist/boot/adoption.js +1 -0
- package/dist/boot/crash-last.js +2 -1
- package/dist/boot/deployment-mods.d.ts +1 -1
- package/dist/boot/device-lane.js +5 -5
- package/dist/boot/engine-lease.d.ts +12 -11
- package/dist/boot/execution-env.d.ts +19 -8
- package/dist/boot/execution-env.js +80 -62
- package/dist/boot/execution-lane.d.ts +37 -9
- package/dist/boot/execution-lane.js +74 -20
- package/dist/boot/exit-boundary.d.ts +3 -3
- package/dist/boot/exit-boundary.js +6 -5
- package/dist/boot/exit-last.js +2 -1
- package/dist/boot/fatal-exit.d.ts +3 -5
- package/dist/boot/fatal-exit.js +2 -2
- package/dist/boot/governance-seams.d.ts +2 -2
- package/dist/boot/leader.d.ts +15 -0
- package/dist/boot/leader.js +18 -16
- package/dist/boot/memory-boundary.d.ts +11 -11
- package/dist/boot/memory-boundary.js +3 -3
- package/dist/boot/memory-consolidation.d.ts +50 -53
- package/dist/boot/memory-consolidation.js +11 -18
- package/dist/boot/org-memory.js +4 -3
- package/dist/boot/parked-revive-gate.d.ts +1 -1
- package/dist/boot/parked-revive-gate.js +3 -3
- package/dist/boot/reapers.d.ts +4 -3
- package/dist/boot/reapers.js +20 -17
- package/dist/boot/resolve-spec.d.ts +5 -3
- package/dist/boot/resolve-spec.js +133 -165
- package/dist/boot/retention-lane.d.ts +7 -45
- package/dist/boot/retention-lane.js +2 -2
- package/dist/boot/runner-deps.d.ts +28 -7
- package/dist/boot/runner-deps.js +11 -4
- package/dist/boot/runtime-caps.d.ts +2 -2
- package/dist/boot/runtime-caps.js +16 -2
- package/dist/boot/session-faces.d.ts +17 -7
- package/dist/boot/session-faces.js +122 -96
- package/dist/boot/shutdown.d.ts +5 -4
- package/dist/boot/shutdown.js +6 -4
- package/dist/boot/stage-01-config.d.ts +1 -1
- package/dist/boot/stage-01-config.js +14 -2
- package/dist/boot/stage-02-web-admin-pull.d.ts +2 -1
- package/dist/boot/stage-02-web-admin-pull.js +15 -8
- package/dist/boot/stage-03-store-backend.d.ts +4 -1
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +3 -1
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +9 -5
- package/dist/boot/stage-05-execution-env.js +5 -5
- package/dist/boot/stage-06-runners.d.ts +13 -15
- package/dist/boot/stage-06-runners.js +24 -18
- package/dist/boot/stage-07-capability-layer.d.ts +14 -11
- package/dist/boot/stage-07-capability-layer.js +9 -12
- package/dist/boot/stage-08-reapers.d.ts +14 -11
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +16 -18
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +16 -18
- package/dist/boot/stage-10-http-server.js +9 -5
- package/dist/boot/store-evidence.d.ts +20 -0
- package/dist/boot/store-evidence.js +13 -0
- package/dist/boot/stores.d.ts +12 -0
- package/dist/boot/stores.js +39 -17
- package/dist/boot/task-list-lane.d.ts +4 -4
- package/dist/boot/web-admin.d.ts +4 -2
- package/dist/boot/web-admin.js +58 -38
- package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
- package/dist/boot-reclaim.d.ts +3 -1
- package/dist/boot-reclaim.js +1 -1
- package/dist/brain.d.ts +7 -18
- package/dist/brain.js +5 -17
- package/dist/budget.js +6 -6
- package/dist/capabilities/center-plugins.d.ts +9 -1
- package/dist/capabilities/center-plugins.js +37 -11
- package/dist/capabilities/center-wiring.js +1 -1
- package/dist/capabilities/composite-members.d.ts +3 -2
- package/dist/capabilities/composite-members.js +3 -2
- package/dist/capabilities/execution-lane.d.ts +7 -7
- package/dist/capabilities/execution-lane.js +2 -2
- package/dist/capabilities/hands-lane.d.ts +1 -1
- package/dist/capabilities/repo-tools.d.ts +2 -0
- package/dist/capabilities/repo-tools.js +14 -12
- package/dist/capabilities/scenarios.d.ts +38 -33
- package/dist/capabilities/scenarios.js +24 -25
- package/dist/capabilities/settings-contract.d.ts +29 -0
- package/dist/capabilities/settings-contract.js +14 -0
- package/dist/capabilities/skills.d.ts +6 -6
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +69 -4
- package/dist/capability-facts.js +77 -5
- package/dist/card-void.d.ts +4 -4
- package/dist/card-void.js +1 -1
- package/dist/center-credential-renewer.d.ts +6 -2
- package/dist/center-credential-renewer.js +10 -5
- package/dist/config-catalog.d.ts +16 -1
- package/dist/config-catalog.js +68 -61
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +58 -4
- package/dist/config-invariants.js +104 -23
- package/dist/config-lkg.d.ts +24 -2
- package/dist/config-lkg.js +22 -9
- package/dist/config-provider.d.ts +9 -9
- package/dist/config-provider.js +25 -108
- package/dist/config-pull-failure.d.ts +50 -0
- package/dist/config-pull-failure.js +48 -0
- package/dist/config-types.d.ts +215 -202
- package/dist/config.d.ts +69 -14
- package/dist/config.js +188 -96
- package/dist/degenerate-instrument.js +1 -1
- package/dist/delegated-session-owner.d.ts +1 -1
- package/dist/deleted-session-ids.d.ts +3 -2
- package/dist/deploy-facts.js +3 -2
- package/dist/deployment-governance.d.ts +3 -3
- package/dist/deployment-shape.d.ts +51 -16
- package/dist/deployment-shape.js +31 -6
- package/dist/egress-redirect.d.ts +25 -7
- package/dist/egress-redirect.js +20 -2
- package/dist/elicitation.d.ts +6 -5
- package/dist/elicitation.js +23 -22
- package/dist/engine-identity.d.ts +28 -0
- package/dist/engine-identity.js +10 -0
- package/dist/entry-problems.d.ts +5 -7
- package/dist/entry-problems.js +1 -1
- package/dist/env-facts.d.ts +7 -5
- package/dist/env-facts.js +12 -7
- package/dist/env-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-config-root.d.ts +5 -5
- package/dist/execution-config-root.js +5 -5
- package/dist/execution-env-purpose.d.ts +14 -0
- package/dist/execution-env-purpose.js +29 -0
- package/dist/execution-lane-caps.d.ts +53 -103
- package/dist/execution-lane-caps.js +51 -83
- package/dist/execution-placement.d.ts +65 -9
- package/dist/execution-placement.js +58 -0
- package/dist/field-conflict.d.ts +7 -11
- package/dist/field-conflict.js +3 -3
- package/dist/file-history-capture.d.ts +3 -3
- package/dist/file-history-disclosure.d.ts +2 -2
- package/dist/file-history-disclosure.js +1 -0
- package/dist/fleet/drain-entry.d.ts +17 -10
- package/dist/fleet/drain-entry.js +1 -1
- package/dist/fleet/fleet-bus.d.ts +21 -3
- package/dist/fleet/fleet-bus.js +35 -25
- package/dist/fleet/fleet-reconciler.js +2 -2
- package/dist/fleet/serving-lease.js +6 -7
- package/dist/fleet-client.js +3 -3
- package/dist/fleet-lease.d.ts +0 -1
- package/dist/fleet-lease.js +4 -5
- package/dist/history-anchor.d.ts +42 -0
- package/dist/history-anchor.js +34 -0
- package/dist/hitl-delivery.d.ts +90 -0
- package/dist/hitl-delivery.js +98 -0
- package/dist/hooks/classic-stations.d.ts +8 -11
- package/dist/hooks/classic-stations.js +0 -7
- package/dist/hooks/command-spawn.d.ts +1 -4
- package/dist/hooks/command-spawn.js +0 -11
- package/dist/hooks/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +119 -65
- package/dist/hooks/hook-runner.js +415 -217
- package/dist/host-lsp-manager.d.ts +22 -8
- package/dist/host-lsp-manager.js +4 -1
- package/dist/http/active-run-conflict.d.ts +2 -43
- package/dist/http/active-run-conflict.js +3 -7
- package/dist/http/admission.d.ts +4 -18
- package/dist/http/admission.js +75 -78
- package/dist/http/approval-sweeps.d.ts +5 -8
- package/dist/http/approval-sweeps.js +55 -30
- package/dist/http/caller-trust.d.ts +8 -10
- package/dist/http/caller-trust.js +1 -2
- package/dist/http/checkpoint-ctx.d.ts +17 -0
- package/dist/http/checkpoint-ctx.js +6 -0
- package/dist/http/claim-heartbeat.d.ts +49 -0
- package/dist/http/claim-heartbeat.js +46 -0
- package/dist/http/claim-latency.d.ts +10 -0
- package/dist/http/claim-latency.js +12 -0
- package/dist/http/claimed-run.d.ts +4 -3
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +77 -31
- package/dist/http/durable-run-leg.d.ts +3 -3
- package/dist/http/durable-run-leg.js +18 -12
- package/dist/http/execution-context.d.ts +18 -42
- package/dist/http/execution-context.js +11 -5
- package/dist/http/health-reader.d.ts +36 -0
- package/dist/http/health-reader.js +21 -0
- package/dist/http/health-self-report.d.ts +9 -9
- package/dist/http/health-self-report.js +4 -4
- package/dist/http/idempotency.d.ts +9 -5
- package/dist/http/idempotency.js +4 -4
- package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
- package/dist/http/memory-compliance-failure-reply.js +7 -2
- package/dist/http/memory-face-fault-reply.d.ts +67 -0
- package/dist/http/memory-face-fault-reply.js +71 -0
- package/dist/http/memory-store-refusal-reply.d.ts +3 -3
- package/dist/http/memory-store-refusal-reply.js +6 -0
- package/dist/http/owner-access.d.ts +391 -56
- package/dist/http/owner-access.js +372 -33
- package/dist/http/principal-gate.d.ts +26 -94
- package/dist/http/principal-gate.js +24 -81
- package/dist/http/refusal-body.d.ts +35 -2
- package/dist/http/refusal-body.js +34 -0
- package/dist/http/request-guards.d.ts +10 -14
- package/dist/http/request-guards.js +34 -68
- package/dist/http/resume-composition.d.ts +37 -0
- package/dist/http/resume-composition.js +18 -0
- package/dist/http/resume-ctx-read.d.ts +35 -12
- package/dist/http/resume-ctx-read.js +25 -6
- package/dist/http/resume-legs.d.ts +24 -24
- package/dist/http/resume-legs.js +260 -171
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/rewind-files-reply.d.ts +34 -0
- package/dist/http/rewind-files-reply.js +36 -0
- package/dist/http/route-ctx.d.ts +56 -47
- package/dist/http/route-table.js +2 -0
- package/dist/http/routes/a2a-serve.d.ts +43 -5
- package/dist/http/routes/a2a-serve.js +58 -37
- package/dist/http/routes/admin-config-refresh.js +2 -2
- package/dist/http/routes/admin-drain.js +2 -2
- package/dist/http/routes/admin-memory-optout.js +4 -3
- package/dist/http/routes/adoption.d.ts +3 -0
- package/dist/http/routes/adoption.js +17 -10
- package/dist/http/routes/agents-roster.js +13 -7
- package/dist/http/routes/approvals-assistant.js +73 -88
- package/dist/http/routes/attachments.js +2 -2
- package/dist/http/routes/background.d.ts +3 -3
- package/dist/http/routes/background.js +9 -17
- package/dist/http/routes/capabilities.js +23 -20
- package/dist/http/routes/config-catalog.js +2 -2
- package/dist/http/routes/devices.d.ts +3 -3
- package/dist/http/routes/devices.js +5 -5
- package/dist/http/routes/diagnostics.d.ts +27 -3
- package/dist/http/routes/diagnostics.js +27 -21
- package/dist/http/routes/engine.js +2 -2
- package/dist/http/routes/fleet.js +5 -3
- package/dist/http/routes/images.js +10 -6
- package/dist/http/routes/leader.d.ts +7 -2
- package/dist/http/routes/leader.js +12 -3
- package/dist/http/routes/mcp-reconnect.d.ts +1 -1
- package/dist/http/routes/mcp-reconnect.js +7 -15
- package/dist/http/routes/memory-bundle.js +4 -7
- package/dist/http/routes/memory-compliance.js +4 -4
- package/dist/http/routes/memory-consolidation.js +6 -9
- package/dist/http/routes/memory-origin.d.ts +3 -1
- package/dist/http/routes/memory-origin.js +7 -8
- package/dist/http/routes/memory-policy.js +17 -12
- package/dist/http/routes/notify-wake.js +12 -20
- package/dist/http/routes/observability.js +3 -3
- package/dist/http/routes/principal-inbox.d.ts +1 -1
- package/dist/http/routes/principal-inbox.js +2 -2
- package/dist/http/routes/projects.d.ts +70 -0
- package/dist/http/routes/projects.js +87 -0
- package/dist/http/routes/retention-ops.js +6 -9
- package/dist/http/routes/rules.js +50 -7
- package/dist/http/routes/run-memory-capture.d.ts +2 -2
- package/dist/http/routes/run-memory-capture.js +6 -12
- package/dist/http/routes/run-permission-mode.d.ts +2 -2
- package/dist/http/routes/run-permission-mode.js +10 -17
- package/dist/http/routes/runs.js +148 -233
- package/dist/http/routes/session-memory-sync.d.ts +2 -2
- package/dist/http/routes/session-memory-sync.js +7 -13
- package/dist/http/routes/session-sync.d.ts +4 -2
- package/dist/http/routes/session-sync.js +48 -30
- package/dist/http/routes/sessions-list.d.ts +3 -3
- package/dist/http/routes/sessions-list.js +9 -9
- package/dist/http/routes/sessions.d.ts +7 -1
- package/dist/http/routes/sessions.js +177 -112
- package/dist/http/routes/shared-memory.js +6 -6
- package/dist/http/routes/side-query.js +2 -2
- package/dist/http/routes/tasks.js +144 -122
- package/dist/http/routes/trace-usage.d.ts +0 -12
- package/dist/http/routes/trace-usage.js +40 -46
- package/dist/http/routes/workflows.d.ts +39 -4
- package/dist/http/routes/workflows.js +42 -14
- package/dist/http/run-concurrency-cap.d.ts +20 -12
- package/dist/http/run-concurrency-cap.js +39 -26
- package/dist/http/run-read-face.d.ts +3 -5
- package/dist/http/run-read-face.js +8 -13
- package/dist/http/send.d.ts +12 -3
- package/dist/http/send.js +42 -6
- package/dist/http/server.d.ts +63 -50
- package/dist/http/server.js +52 -16
- package/dist/http/sse-log.d.ts +17 -10
- package/dist/http/sse-log.js +7 -7
- package/dist/http/stored-body-replay.d.ts +17 -3
- package/dist/http/stored-body-replay.js +11 -2
- package/dist/http/submit-ctx.d.ts +16 -8
- package/dist/http/submit-ctx.js +6 -2
- package/dist/http/submit-replay.d.ts +19 -6
- package/dist/http/submit-replay.js +18 -6
- package/dist/http/sync-submit-body.d.ts +3 -4
- package/dist/http/sync-submit-body.js +4 -5
- package/dist/http/wire-types.d.ts +23 -13
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/instruction-source-notice.d.ts +1 -1
- package/dist/key-resolver.d.ts +32 -0
- package/dist/key-resolver.js +23 -9
- package/dist/leader/diffup.js +2 -1
- package/dist/leader/endpoint.d.ts +26 -5
- package/dist/leader/endpoint.js +154 -14
- package/dist/leader/fanout.d.ts +3 -0
- package/dist/leader/fanout.js +78 -63
- package/dist/leader/leader.d.ts +16 -0
- package/dist/leader/leader.js +43 -3
- package/dist/leader/merge.d.ts +9 -1
- package/dist/leader/merge.js +16 -1
- package/dist/leader/repair-wire.js +1 -1
- package/dist/leader/wire.d.ts +36 -3
- package/dist/leader/wire.js +59 -18
- package/dist/lsp-evict.d.ts +6 -4
- package/dist/lsp-evict.js +2 -3
- package/dist/memory-embedder-reembed.d.ts +38 -0
- package/dist/memory-embedder-reembed.js +20 -0
- package/dist/memory-incident-sink.d.ts +0 -28
- package/dist/memory-incident-sink.js +5 -0
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-scope.d.ts +31 -4
- package/dist/memory-scope.js +65 -16
- package/dist/memory-store-refusal.d.ts +20 -4
- package/dist/memory-store-refusal.js +1 -1
- package/dist/memory-sync-client.d.ts +5 -2
- package/dist/memory-sync-client.js +19 -14
- package/dist/memory-sync.js +1 -1
- package/dist/model-compat.d.ts +51 -28
- package/dist/model-compat.js +55 -23
- package/dist/model-context-window.d.ts +18 -0
- package/dist/model-context-window.js +2 -0
- package/dist/model-entry-headers.d.ts +46 -4
- package/dist/model-entry-headers.js +2 -2
- package/dist/model-entry-refusal.d.ts +46 -17
- package/dist/model-entry-refusal.js +47 -27
- package/dist/model-plane-face.d.ts +19 -11
- package/dist/model-plane-face.js +9 -1
- package/dist/model-plane-probe.d.ts +2 -0
- package/dist/model-plane-probe.js +17 -0
- package/dist/model-provider.d.ts +3 -3
- package/dist/model-route-endpoint.d.ts +9 -5
- package/dist/model-route-endpoint.js +29 -7
- package/dist/model-select.d.ts +16 -0
- package/dist/model-select.js +4 -0
- package/dist/mountinfo.d.ts +37 -0
- package/dist/mountinfo.js +47 -0
- package/dist/namespaced-rule-name.d.ts +28 -2
- package/dist/namespaced-rule-name.js +10 -1
- package/dist/net-address.d.ts +1 -1
- package/dist/observability/corrupt-read-seat.d.ts +4 -4
- package/dist/observability/corrupt-read-seat.js +5 -3
- package/dist/observability/fail-open.d.ts +75 -47
- package/dist/observability/fail-open.js +77 -47
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.d.ts +2 -0
- package/dist/observability/metrics.js +5 -4
- package/dist/observability/otel-exporter.js +2 -1
- package/dist/observability/principal-context.d.ts +14 -7
- package/dist/observability/principal-context.js +8 -3
- package/dist/observability/run-terminal.d.ts +7 -1
- package/dist/observability/run-terminal.js +5 -2
- package/dist/observability/secret-env-scrub.d.ts +30 -4
- package/dist/observability/secret-env-scrub.js +15 -3
- package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
- package/dist/orchestration/hardened-vm-runner.js +11 -5
- package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
- package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
- package/dist/orchestration/hardened-vm-worker.js +2 -1
- package/dist/orchestration/workflow-agent-session-index.d.ts +7 -12
- package/dist/orchestration/workflow-agent-session-index.js +1 -6
- package/dist/orchestration/workflow-completion-inbox.d.ts +29 -9
- package/dist/orchestration/workflow-completion-inbox.js +65 -46
- package/dist/org-delivery-gate.d.ts +5 -4
- package/dist/org-delivery-gate.js +7 -6
- package/dist/org-memory-admission.d.ts +5 -2
- package/dist/org-memory-admission.js +25 -10
- package/dist/outbound-dispatcher.d.ts +1 -1
- package/dist/outbound-dispatcher.js +6 -12
- package/dist/owner-brands.d.ts +81 -0
- package/dist/owner-brands.js +42 -0
- package/dist/owner-faces.d.ts +531 -0
- package/dist/owner-faces.js +126 -0
- package/dist/parked-decide.d.ts +100 -31
- package/dist/parked-decide.js +162 -48
- package/dist/parked-revive-surface.d.ts +14 -4
- package/dist/parked-revive-surface.js +5 -4
- package/dist/peer-directory.d.ts +6 -8
- package/dist/peer-directory.js +3 -2
- package/dist/permission-rule-vocab.d.ts +53 -8
- package/dist/permission-rule-vocab.js +30 -2
- package/dist/plugins/adoption-log-sql.d.ts +0 -22
- package/dist/plugins/adoption-log-sql.js +5 -3
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
- package/dist/plugins/approval-ask-store-file.d.ts +28 -9
- package/dist/plugins/approval-ask-store-file.js +74 -18
- package/dist/plugins/approval-ask-store-memory.d.ts +17 -7
- package/dist/plugins/approval-ask-store-memory.js +35 -12
- package/dist/plugins/approval-ask-store-sql.d.ts +42 -20
- package/dist/plugins/approval-ask-store-sql.js +44 -11
- package/dist/plugins/approval-exemption-skill-m46.d.ts +20 -0
- package/dist/plugins/approval-exemption-skill-m46.js +25 -0
- package/dist/plugins/approval-exemption-store.d.ts +6 -1
- package/dist/plugins/approval-exemption-store.js +14 -0
- package/dist/plugins/approval-nonce-store.d.ts +39 -12
- package/dist/plugins/approval-nonce-store.js +72 -23
- package/dist/plugins/blob-backend.d.ts +40 -195
- package/dist/plugins/blob-backend.js +41 -234
- package/dist/plugins/caching-session-store.d.ts +22 -5
- package/dist/plugins/caching-session-store.js +43 -4
- package/dist/plugins/checkpoint-index-columns.d.ts +33 -6
- package/dist/plugins/checkpoint-index-columns.js +39 -3
- package/dist/plugins/checkpoint-store-face.d.ts +84 -11
- package/dist/plugins/checkpoint-store-face.js +18 -1
- package/dist/plugins/device-store-sql.d.ts +2 -2
- package/dist/plugins/device-store-sql.js +6 -10
- package/dist/plugins/ensure-index.d.ts +13 -1
- package/dist/plugins/ensure-index.js +154 -21
- package/dist/plugins/ensure-schema-lock-policy.d.ts +0 -15
- package/dist/plugins/ensure-schema-lock-policy.js +3 -2
- package/dist/plugins/execution-lane-rename-m40.d.ts +20 -0
- package/dist/plugins/execution-lane-rename-m40.js +10 -0
- package/dist/plugins/execution-placement-sql.d.ts +63 -88
- package/dist/plugins/execution-placement-sql.js +94 -54
- package/dist/plugins/file-run-store.d.ts +89 -35
- package/dist/plugins/file-run-store.js +197 -142
- package/dist/plugins/host-platform.d.ts +24 -3
- package/dist/plugins/host-platform.js +15 -1
- package/dist/plugins/image-bake-store-sql.js +2 -0
- package/dist/plugins/imported-layer-root-retirement.d.ts +19 -10
- package/dist/plugins/imported-layer-root-retirement.js +4 -8
- package/dist/plugins/inbox-payload-column.d.ts +14 -0
- package/dist/plugins/inbox-payload-column.js +13 -0
- package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
- package/dist/plugins/k8s-pod-reaper.js +0 -1
- package/dist/plugins/leader-run-store-sql.d.ts +22 -0
- package/dist/plugins/leader-run-store-sql.js +34 -4
- package/dist/plugins/local-checkpoint-store.d.ts +63 -23
- package/dist/plugins/local-checkpoint-store.js +204 -81
- package/dist/plugins/local-data-dir-modes-m39.d.ts +48 -0
- package/dist/plugins/local-data-dir-modes-m39.js +183 -0
- package/dist/plugins/local-docker-capacity.d.ts +93 -0
- package/dist/plugins/local-docker-capacity.js +194 -0
- package/dist/plugins/local-docker-reaper.d.ts +92 -0
- package/dist/plugins/local-docker-reaper.js +102 -0
- package/dist/plugins/local-engine-high-water.d.ts +13 -0
- package/dist/plugins/local-engine-high-water.js +62 -0
- package/dist/plugins/local-session-store.d.ts +442 -143
- package/dist/plugins/local-session-store.js +941 -289
- package/dist/plugins/local-session-window.d.ts +3 -2
- package/dist/plugins/local-session-window.js +3 -2
- package/dist/plugins/local-sidecar-quarantine.js +3 -2
- package/dist/plugins/local-task-attachment-store.d.ts +20 -1
- package/dist/plugins/local-task-attachment-store.js +32 -12
- package/dist/plugins/memory-embedder-fingerprint.d.ts +33 -10
- package/dist/plugins/memory-embedder-fingerprint.js +52 -12
- package/dist/plugins/memory-embedder.d.ts +1 -1
- package/dist/plugins/memory-embedder.js +11 -9
- package/dist/plugins/memory-engine-pg.d.ts +7 -5
- package/dist/plugins/memory-engine-pg.js +18 -9
- package/dist/plugins/memory-engine-sql-apply.d.ts +21 -8
- package/dist/plugins/memory-engine-sql-apply.js +7 -9
- package/dist/plugins/memory-engine-tidb.d.ts +12 -7
- package/dist/plugins/memory-engine-tidb.js +18 -10
- package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
- package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
- package/dist/plugins/memory-run-store.d.ts +39 -27
- package/dist/plugins/memory-run-store.js +72 -70
- package/dist/plugins/one-time-migration-marker.d.ts +10 -0
- package/dist/plugins/one-time-migration-marker.js +7 -0
- package/dist/plugins/one-time-migrations.d.ts +325 -74
- package/dist/plugins/one-time-migrations.js +705 -230
- package/dist/plugins/org-delivery-quota-store.js +2 -1
- package/dist/plugins/owner-only-file-mode.d.ts +29 -0
- package/dist/plugins/owner-only-file-mode.js +141 -0
- package/dist/plugins/permission-rule-store-file.d.ts +11 -11
- package/dist/plugins/permission-rule-store-file.js +14 -2
- package/dist/plugins/permission-rule-store-sql.d.ts +4 -63
- package/dist/plugins/permission-rule-store-sql.js +6 -86
- package/dist/plugins/pg-pool.d.ts +3 -32
- package/dist/plugins/pg-pool.js +27 -11
- package/dist/plugins/release-version.d.ts +20 -0
- package/dist/plugins/release-version.js +28 -0
- package/dist/plugins/remote-env-adb.d.ts +20 -4
- package/dist/plugins/remote-env-adb.js +39 -11
- package/dist/plugins/remote-env-e2b.d.ts +19 -28
- package/dist/plugins/remote-env-e2b.js +40 -29
- package/dist/plugins/remote-env-host.d.ts +11 -10
- package/dist/plugins/remote-env-host.js +40 -27
- package/dist/plugins/remote-env-k8s.d.ts +45 -47
- package/dist/plugins/remote-env-k8s.js +122 -62
- package/dist/plugins/remote-env-local-docker.d.ts +152 -15
- package/dist/plugins/remote-env-local-docker.js +370 -75
- package/dist/plugins/remote-env-ssh.d.ts +8 -2
- package/dist/plugins/remote-env-ssh.js +26 -24
- package/dist/plugins/remote-scratchpad.js +4 -0
- package/dist/plugins/remote-shell.d.ts +59 -30
- package/dist/plugins/remote-shell.js +175 -62
- package/dist/plugins/retention-declaration.d.ts +37 -0
- package/dist/plugins/retention-declaration.js +9 -0
- package/dist/plugins/retention-deployment.d.ts +158 -0
- package/dist/plugins/retention-deployment.js +119 -0
- package/dist/plugins/retention-lane-store-sql.d.ts +74 -4
- package/dist/plugins/retention-lane-store-sql.js +103 -1
- package/dist/plugins/retention-sql.d.ts +29 -0
- package/dist/plugins/retention-sql.js +8 -0
- package/dist/plugins/run-preview-m45.d.ts +11 -0
- package/dist/plugins/run-preview-m45.js +19 -0
- package/dist/plugins/run-store-sql.d.ts +56 -68
- package/dist/plugins/run-store-sql.js +127 -116
- package/dist/plugins/s3-answer.d.ts +2 -1
- package/dist/plugins/sandbox-reaper.d.ts +26 -0
- package/dist/plugins/sandbox-reaper.js +2 -0
- package/dist/plugins/scenario-prefix-switch-m42.d.ts +54 -0
- package/dist/plugins/scenario-prefix-switch-m42.js +55 -0
- package/dist/plugins/scheduler-support.d.ts +16 -1
- package/dist/plugins/scheduler-support.js +22 -2
- package/dist/plugins/schema-consistency.d.ts +42 -15
- package/dist/plugins/schema-consistency.js +213 -13
- package/dist/plugins/schema-drift-sentence.d.ts +4 -1
- package/dist/plugins/schema-drift-sentence.js +4 -4
- package/dist/plugins/schema-ensure-legs.d.ts +10 -1
- package/dist/plugins/schema-ensure-legs.js +12 -2
- package/dist/plugins/schema-indexes.js +3 -0
- package/dist/plugins/schema-live-columns.d.ts +14 -5
- package/dist/plugins/schema-live-columns.js +10 -10
- package/dist/plugins/send-user-file.js +2 -1
- package/dist/plugins/session-birth.d.ts +37 -0
- package/dist/plugins/session-birth.js +38 -0
- package/dist/plugins/session-epoch-anchor.d.ts +40 -12
- package/dist/plugins/session-epoch-anchor.js +33 -11
- package/dist/plugins/session-ext-table.d.ts +98 -0
- package/dist/plugins/session-ext-table.js +134 -0
- package/dist/plugins/session-fork.d.ts +16 -2
- package/dist/plugins/session-fork.js +3 -0
- package/dist/plugins/session-ownership.d.ts +1 -1
- package/dist/plugins/session-placement.d.ts +22 -16
- package/dist/plugins/session-placement.js +15 -12
- package/dist/plugins/session-row-sql.d.ts +20 -7
- package/dist/plugins/session-row-sql.js +16 -8
- package/dist/plugins/session-run-rollup.d.ts +29 -0
- package/dist/plugins/session-run-rollup.js +40 -0
- package/dist/plugins/session-store-sql.d.ts +157 -0
- package/dist/plugins/session-store-sql.js +398 -0
- package/dist/plugins/session-withdraw-sql.d.ts +36 -0
- package/dist/plugins/session-withdraw-sql.js +42 -0
- package/dist/plugins/session-workspace-cell.d.ts +2 -2
- package/dist/plugins/session-workspace-cell.js +2 -2
- package/dist/plugins/shared-memory-store-sql.d.ts +10 -69
- package/dist/plugins/shared-memory-store-sql.js +15 -14
- package/dist/plugins/shell-sentinel-owner-m48.d.ts +20 -0
- package/dist/plugins/shell-sentinel-owner-m48.js +3 -0
- package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
- package/dist/plugins/snapshot-bucket-presence.js +1 -1
- package/dist/plugins/sql-driver.d.ts +24 -8
- package/dist/plugins/sql-driver.js +43 -9
- package/dist/plugins/sql-errors.d.ts +35 -5
- package/dist/plugins/sql-errors.js +55 -3
- package/dist/plugins/sql-json-column.d.ts +8 -7
- package/dist/plugins/sql-json-column.js +10 -6
- package/dist/plugins/store-backend.d.ts +114 -18
- package/dist/plugins/store-backend.js +340 -87
- package/dist/plugins/store-contracts.d.ts +97 -30
- package/dist/plugins/store-contracts.js +23 -1
- package/dist/plugins/store-fault.d.ts +28 -2
- package/dist/plugins/store-fault.js +20 -2
- package/dist/plugins/task-attachment-store.d.ts +21 -11
- package/dist/plugins/task-attachment-store.js +37 -19
- package/dist/plugins/task-list-store-sql.d.ts +1 -1
- package/dist/plugins/text-column-capacity.d.ts +21 -0
- package/dist/plugins/text-column-capacity.js +5 -0
- package/dist/plugins/tidb-pool.d.ts +3 -2
- package/dist/plugins/tidb-pool.js +42 -39
- package/dist/plugins/user-input-ledger-sql.d.ts +1 -1
- package/dist/plugins/web-search.js +5 -3
- package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
- package/dist/plugins/workflow-run-store-sql.js +11 -5
- package/dist/principal-jwt.d.ts +4 -4
- package/dist/principal-jwt.js +20 -5
- package/dist/principal-shape.d.ts +41 -0
- package/dist/principal-shape.js +19 -0
- package/dist/question.d.ts +13 -23
- package/dist/question.js +21 -39
- package/dist/read-face-posture.d.ts +6 -6
- package/dist/read-face-posture.js +2 -2
- package/dist/request-declaration-refusal.d.ts +35 -12
- package/dist/request-declaration-refusal.js +21 -9
- package/dist/request-form.d.ts +58 -0
- package/dist/request-form.js +72 -0
- package/dist/request-image-urls.d.ts +8 -2
- package/dist/request-image-urls.js +2 -1
- package/dist/request-images.d.ts +20 -0
- package/dist/request-images.js +59 -0
- package/dist/request-key-closure.d.ts +6 -7
- package/dist/request-key-closure.js +15 -2
- package/dist/request-value-closure.d.ts +5 -5
- package/dist/request-value-closure.js +1 -1
- package/dist/resource-suspend.d.ts +7 -16
- package/dist/resource-suspend.js +1 -1
- package/dist/retired-name-host-notice.d.ts +21 -0
- package/dist/retired-name-host-notice.js +12 -0
- package/dist/rule-entry-list.d.ts +2 -2
- package/dist/rule-entry-list.js +3 -4
- package/dist/rule-issue-reading.d.ts +58 -0
- package/dist/rule-issue-reading.js +14 -0
- package/dist/rules-consent.d.ts +46 -16
- package/dist/rules-consent.js +102 -53
- package/dist/run-acceptance.d.ts +3 -1
- package/dist/run-acceptance.js +3 -0
- package/dist/run-local.d.ts +14 -6
- package/dist/run-local.js +109 -93
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +73 -44
- package/dist/runs.js +65 -43
- package/dist/runtime-caps-resolver.d.ts +36 -14
- package/dist/runtime-caps-resolver.js +31 -14
- package/dist/runtime-governance.d.ts +2 -2
- package/dist/runtime-governance.js +5 -3
- package/dist/sealed-key-layout.d.ts +12 -6
- package/dist/sealed-key-layout.js +5 -1
- package/dist/sealed-key.d.ts +12 -2
- package/dist/sealed-key.js +116 -26
- package/dist/security.d.ts +133 -161
- package/dist/security.js +163 -59
- package/dist/sema-config-dir.d.ts +20 -0
- package/dist/sema-config-dir.js +27 -2
- package/dist/server-secret-env.d.ts +23 -5
- package/dist/server-secret-env.js +14 -4
- package/dist/service-version.d.ts +2 -1
- package/dist/service-version.js +2 -2
- package/dist/session-children-retire.d.ts +7 -5
- package/dist/session-children-retire.js +7 -2
- package/dist/session-deletion.d.ts +88 -0
- package/dist/session-deletion.js +8 -0
- package/dist/session-erase.d.ts +145 -0
- package/dist/session-erase.js +115 -0
- package/dist/session-error-wire.d.ts +6 -6
- package/dist/session-error-wire.js +1 -1
- package/dist/session-incarnation.d.ts +60 -10
- package/dist/session-incarnation.js +19 -2
- package/dist/session-policy-wire.d.ts +6 -3
- package/dist/session-policy-wire.js +11 -1
- package/dist/session-resident-background.d.ts +29 -47
- package/dist/session-resident-background.js +77 -8
- package/dist/session-row.d.ts +3 -2
- package/dist/session-rules-seat.d.ts +12 -0
- package/dist/session-rules-seat.js +19 -0
- package/dist/session-sync-kernel.d.ts +1 -1
- package/dist/session-titler.d.ts +7 -15
- package/dist/session-titler.js +1 -1
- package/dist/session-workspace.d.ts +11 -2
- package/dist/session-workspace.js +5 -0
- package/dist/sighup-idle.d.ts +1 -1
- package/dist/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-posture.d.ts +138 -21
- package/dist/store-posture.js +188 -3
- package/dist/stored-request-hooks-m20.d.ts +3 -2
- package/dist/stored-request-hooks-m20.js +21 -16
- package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
- package/dist/stores-sql/background-agent-store-sql.js +73 -20
- package/dist/stores-sql/blob-index-sql.d.ts +148 -0
- package/dist/stores-sql/blob-index-sql.js +154 -0
- package/dist/stores-sql/checkpoint-store-sql.d.ts +34 -29
- package/dist/stores-sql/checkpoint-store-sql.js +86 -71
- package/dist/{plugins → stores-sql}/file-history-store-sql.d.ts +23 -11
- package/dist/{plugins → stores-sql}/file-history-store-sql.js +23 -18
- package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
- package/dist/stores-sql/mailbox-store-sql.js +31 -32
- package/dist/{plugins → stores-sql}/pg-session-storage.d.ts +30 -81
- package/dist/{plugins → stores-sql}/pg-session-storage.js +123 -244
- package/dist/{plugins → stores-sql}/retention-store-sql.d.ts +197 -223
- package/dist/{plugins → stores-sql}/retention-store-sql.js +148 -207
- package/dist/{plugins → stores-sql}/session-event-payload.d.ts +1 -1
- package/dist/{plugins → stores-sql}/session-event-payload.js +1 -1
- package/dist/stores-sql/session-policy-store-sql.d.ts +33 -11
- package/dist/stores-sql/session-policy-store-sql.js +44 -36
- package/dist/stores-sql/session-write-hooks.d.ts +65 -0
- package/dist/stores-sql/session-write-hooks.js +2 -0
- package/dist/{plugins → stores-sql}/tidb-session-storage.d.ts +14 -15
- package/dist/{plugins → stores-sql}/tidb-session-storage.js +22 -28
- package/dist/{plugins → stores-sql}/tidb-session-store.d.ts +67 -138
- package/dist/{plugins → stores-sql}/tidb-session-store.js +130 -200
- package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
- package/dist/stores-sql/tool-result-store-sql.js +1 -1
- package/dist/stores-sql/windowed-session-storage.d.ts +61 -0
- package/dist/stores-sql/windowed-session-storage.js +70 -0
- package/dist/submission-exit.d.ts +50 -0
- package/dist/submission-exit.js +108 -0
- package/dist/task-a2a.d.ts +7 -1
- package/dist/task-a2a.js +18 -17
- package/dist/task-cwd.d.ts +31 -3
- package/dist/task-cwd.js +25 -1
- package/dist/task-mcp.d.ts +11 -3
- package/dist/task-mcp.js +16 -19
- package/dist/task-settings.d.ts +23 -14
- package/dist/task-settings.js +35 -13
- package/dist/terminal.d.ts +25 -43
- package/dist/terminal.js +31 -11
- package/dist/tool-approval.d.ts +152 -137
- package/dist/tool-approval.js +199 -199
- package/dist/trace/core-keyset-guard.d.ts +22 -9
- package/dist/trace/core-vocab-wire.d.ts +95 -0
- package/dist/trace/core-vocab-wire.js +15 -0
- package/dist/trace/engine-notice-wire.d.ts +1 -1
- package/dist/trace/engine-notice-wire.js +2 -0
- package/dist/trace/exit-seat.d.ts +52 -4
- package/dist/trace/exit-seat.js +43 -36
- package/dist/trace/extension-call-face.d.ts +3 -2
- package/dist/trace/extension-call-face.js +3 -1
- package/dist/trace/ledger-events.d.ts +4 -7
- package/dist/trace/ledger-sink.d.ts +1 -30
- package/dist/trace/ledger-sink.js +0 -11
- package/dist/trace/model-segment.d.ts +5 -5
- package/dist/trace/model-segment.js +5 -5
- package/dist/trace/project.d.ts +88 -58
- package/dist/trace/project.js +64 -28
- package/dist/trace/redact.d.ts +124 -28
- package/dist/trace/redact.js +936 -328
- package/dist/trace/self-minted-wire.d.ts +750 -29
- package/dist/trace/self-minted-wire.js +262 -25
- package/dist/trace/sema-provenance.d.ts +45 -41
- package/dist/trace/sema-provenance.js +81 -10
- package/dist/trace/task-notification-facets.d.ts +70 -2
- package/dist/trace/task-notification-facets.js +71 -1
- package/dist/trace/wire-projection-faces.d.ts +43 -8
- package/dist/trace/wire-projection-faces.js +28 -3
- package/dist/unread-request-members.d.ts +66 -0
- package/dist/unread-request-members.js +41 -0
- package/dist/upstream-body.d.ts +23 -0
- package/dist/upstream-body.js +16 -0
- package/dist/url-refusal.d.ts +3 -3
- package/dist/url-refusal.js +11 -4
- package/dist/user-authored-text.d.ts +1 -1
- package/dist/user-input-ledger.d.ts +7 -8
- package/dist/user-input-ledger.js +1 -1
- package/dist/web-admin-client/apply-effective.d.ts +6 -3
- package/dist/web-admin-client/apply-effective.js +33 -40
- package/dist/web-admin-client/apply-ledger.d.ts +16 -7
- package/dist/web-admin-client/apply-ledger.js +5 -2
- package/dist/web-admin-client/candidate-gate.d.ts +35 -3
- package/dist/web-admin-client/candidate-gate.js +53 -5
- package/dist/web-admin-client/center-request.d.ts +6 -3
- package/dist/web-admin-client/center-request.js +17 -16
- package/dist/web-admin-client/effective-keys.d.ts +1 -1
- package/dist/web-admin-client/effective-keys.js +1 -2
- package/dist/web-admin-client/entry-metadata.d.ts +8 -0
- package/dist/web-admin-client/entry-metadata.js +13 -0
- package/dist/web-admin-client/facade.d.ts +1 -1
- package/dist/web-admin-client/http-client.d.ts +2 -1
- package/dist/web-admin-client/http-client.js +40 -13
- package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
- package/dist/web-admin-client/mcp-revocation.js +2 -1
- package/dist/web-admin-client/read-warnings.d.ts +1 -0
- package/dist/web-admin-client/read-warnings.js +1 -0
- package/dist/web-admin-client/restart-signal.js +13 -6
- package/dist/web-admin-client/skills-mcp.d.ts +22 -8
- package/dist/web-admin-client/skills-mcp.js +26 -21
- package/dist/web-admin-client/types.d.ts +35 -51
- package/dist/workspace-space.d.ts +3 -2
- package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
- package/package.json +16 -12
- package/scripts/drain-check-local.mjs +118 -173
- package/scripts/drain-check.mysql.sql +20 -16
- package/scripts/drain-check.pg.sql +20 -16
- package/wire-changes/server@7.147.0.json +813 -0
- package/wire-changes/server@7.148.0.json +1517 -0
- package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
- package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
- package/dist/http/memory-layer-reply.d.ts +0 -30
- package/dist/http/memory-layer-reply.js +0 -24
- package/dist/lsp/e2b-bridge.d.ts +0 -57
- package/dist/lsp/e2b-bridge.js +0 -139
- package/dist/lsp/e2b-manager.d.ts +0 -93
- package/dist/lsp/e2b-manager.js +0 -178
- package/dist/lsp/lsp-frames.d.ts +0 -14
- package/dist/lsp/lsp-frames.js +0 -25
- package/dist/lsp/manager.d.ts +0 -129
- package/dist/lsp/manager.js +0 -127
- package/dist/lsp/types.d.ts +0 -12
- package/dist/lsp/types.js +0 -2
- package/dist/lsp/ws-transport.d.ts +0 -40
- package/dist/lsp/ws-transport.js +0 -210
|
@@ -48,6 +48,8 @@ export { applyPodSpecPatch } from "./k8s-exec-protocol.js";
|
|
|
48
48
|
import { sandboxRunEndHoldMs } from "./k8s-pod-reaper.js";
|
|
49
49
|
import { BROKER_COMMAND, BROKER_CONTAINER_NAME, BROKER_LEASE_DIR, BROKER_LEASE_KEY, BROKER_PROBE_ARG, BROKER_VOLUME_NAME } from "../broker/constants.js";
|
|
50
50
|
import { buildSandboxLeaseFile, placeholderLeaseEntries, sandboxGitRouteEnv } from "../sandbox-git-lease.js";
|
|
51
|
+
import { witnessEnv } from "../env-witness.js";
|
|
52
|
+
import { createEgressFetch } from "../egress-redirect.js";
|
|
51
53
|
function minted(c) {
|
|
52
54
|
return c.ok ? { ...c, origin: "minted" } : c;
|
|
53
55
|
}
|
|
@@ -108,6 +110,8 @@ const RESTORE_DOWNLOAD_EXIT = 22;
|
|
|
108
110
|
const RESTORE_TRANSFER_EXIT = 75;
|
|
109
111
|
const RESTORE_STORE_BUSY_STATUSES = [408, 429, 500, 502, 503, 504];
|
|
110
112
|
const RESTORE_STORE_BUSY_EXIT = 69;
|
|
113
|
+
const RESTORE_404_MARKER = "SNAPSHOT_GET_404";
|
|
114
|
+
const RESTORE_404_ANSWER_BYTES = 4096;
|
|
111
115
|
function restoreClassOfExit(exitCode) {
|
|
112
116
|
switch (exitCode) {
|
|
113
117
|
case RESTORE_STORE_BUSY_EXIT:
|
|
@@ -209,7 +213,6 @@ export class RemoteK8sExecutionEnv {
|
|
|
209
213
|
floor;
|
|
210
214
|
cwd;
|
|
211
215
|
podName;
|
|
212
|
-
podIP;
|
|
213
216
|
leaseRef;
|
|
214
217
|
destroyed = false;
|
|
215
218
|
handleSnapshotId;
|
|
@@ -445,7 +448,7 @@ export class RemoteK8sExecutionEnv {
|
|
|
445
448
|
return r.ok ? { ok: true, exitCode: r.value.exitCode, stdout: r.value.stdout, stderr: r.value.stderr } : { ok: false, error: r.error.message };
|
|
446
449
|
},
|
|
447
450
|
write: async (abs, bytes) => {
|
|
448
|
-
const w = await this.writeChunked(abs, bytes, true,
|
|
451
|
+
const w = await this.writeChunked(abs, bytes, true, exec);
|
|
449
452
|
return w.ok ? { ok: true } : { ok: false, error: w.error.message };
|
|
450
453
|
},
|
|
451
454
|
};
|
|
@@ -453,13 +456,14 @@ export class RemoteK8sExecutionEnv {
|
|
|
453
456
|
async releasePod() {
|
|
454
457
|
const name = this.podName;
|
|
455
458
|
this.podName = undefined;
|
|
456
|
-
this.podIP = undefined;
|
|
457
459
|
if (name)
|
|
458
460
|
await this.deletePod(name).catch(() => { });
|
|
459
461
|
}
|
|
460
462
|
armSpace() {
|
|
461
|
-
if (this.spaceLane.state
|
|
462
|
-
|
|
463
|
+
if (this.spaceLane.state !== "open")
|
|
464
|
+
return;
|
|
465
|
+
this.spaceLane.space.fence.arm(this.cfg.dataTimeoutMs);
|
|
466
|
+
witnessEnv(this.cfg.runId);
|
|
463
467
|
}
|
|
464
468
|
async endSpace(space) {
|
|
465
469
|
await this.fenceCall(() => space.fence.end(), "delete").catch(() => undefined);
|
|
@@ -581,6 +585,7 @@ export class RemoteK8sExecutionEnv {
|
|
|
581
585
|
this.cacheUnavailable("claim_failed", ensured.detail, lane.cache);
|
|
582
586
|
return undefined;
|
|
583
587
|
}
|
|
588
|
+
witnessEnv(this.cfg.runId);
|
|
584
589
|
return { ...lane.cache, fresh: ensured.fresh, bindDeadline: Date.now() + this.cfg.dataTimeoutMs };
|
|
585
590
|
}
|
|
586
591
|
default: {
|
|
@@ -798,7 +803,6 @@ export class RemoteK8sExecutionEnv {
|
|
|
798
803
|
}
|
|
799
804
|
}
|
|
800
805
|
const deadline = Date.now() + this.cfg.readyTimeoutMs;
|
|
801
|
-
let podIP;
|
|
802
806
|
for (;;) {
|
|
803
807
|
if (signal?.aborted) {
|
|
804
808
|
await this.deletePod(name).catch(() => { });
|
|
@@ -815,10 +819,8 @@ export class RemoteK8sExecutionEnv {
|
|
|
815
819
|
const status = got.json?.status;
|
|
816
820
|
const phase = status?.phase;
|
|
817
821
|
const brokerStatus = status?.containerStatuses?.find((c) => c.name === BROKER_CONTAINER_NAME);
|
|
818
|
-
if (phase === "Running" && (broker === undefined || brokerStatus?.ready === true))
|
|
819
|
-
podIP = status?.podIP;
|
|
822
|
+
if (phase === "Running" && (broker === undefined || brokerStatus?.ready === true))
|
|
820
823
|
break;
|
|
821
|
-
}
|
|
822
824
|
if (phase === "Failed" || phase === "Succeeded") {
|
|
823
825
|
await this.deletePod(name).catch(() => { });
|
|
824
826
|
return this.refusePod(name, phase, status?.reason, status?.message);
|
|
@@ -858,14 +860,12 @@ export class RemoteK8sExecutionEnv {
|
|
|
858
860
|
return { ok: false, error: new RemoteExecutionError("connect_failed", "env destroyed during connect") };
|
|
859
861
|
}
|
|
860
862
|
this.podName = name;
|
|
861
|
-
this.podIP = podIP;
|
|
862
863
|
this.leaseRef = leaseName !== undefined && broker !== undefined ? { namespace: ns, podName: name, leaseSecretName: leaseName, origins: [...broker.origins] } : undefined;
|
|
863
864
|
const askHome = this.homeSeat.asks;
|
|
864
865
|
const mk = await this.runExec(ADAPTER_START, `mkdir -p ${shellQuote(this.cfg.mountPath)}${askHome ? ` && { ${LANE_HOME_PROBE_COMMAND} || true; }` : ""}`);
|
|
865
866
|
if (!mk.ok || mk.value.exitCode !== 0) {
|
|
866
867
|
await this.deletePod(name).catch(() => { });
|
|
867
868
|
this.podName = undefined;
|
|
868
|
-
this.podIP = undefined;
|
|
869
869
|
return { ok: false, error: new RemoteExecutionError("connect_failed", `workspace mkdir failed: ${mk.ok ? mk.value.stderr : mk.error.message}`) };
|
|
870
870
|
}
|
|
871
871
|
if (askHome) {
|
|
@@ -873,7 +873,6 @@ export class RemoteK8sExecutionEnv {
|
|
|
873
873
|
if (verdict !== undefined) {
|
|
874
874
|
await this.deletePod(name).catch(() => { });
|
|
875
875
|
this.podName = undefined;
|
|
876
|
-
this.podIP = undefined;
|
|
877
876
|
const error = new RemoteExecutionError("connect_failed", verdict.refusal);
|
|
878
877
|
return verdict.answered ? this.holdRefusal(error) : { ok: false, error };
|
|
879
878
|
}
|
|
@@ -1081,9 +1080,9 @@ export class RemoteK8sExecutionEnv {
|
|
|
1081
1080
|
storeFetch(url, init) {
|
|
1082
1081
|
const bound = AbortSignal.timeout(Math.max(1, Math.min(this.cfg.rpcTimeoutMs, init.timeoutMs ?? this.cfg.rpcTimeoutMs)));
|
|
1083
1082
|
const signal = init.signal ? AbortSignal.any([init.signal, bound]) : bound;
|
|
1084
|
-
return (this.deps.fetch
|
|
1083
|
+
return createEgressFetch("declare the final object-store address as MINIO_ENDPOINT", this.deps.fetch)(url, { method: init.method, ...(init.body !== undefined ? { body: init.body } : {}), signal });
|
|
1085
1084
|
}
|
|
1086
|
-
async readPointer(space, pointer, signal) {
|
|
1085
|
+
async readPointer(space, pointer, signal, timeoutMs) {
|
|
1087
1086
|
const url = this.presignSnapshot({ lane: "space", space, method: "GET", pointer });
|
|
1088
1087
|
if (!url.ok)
|
|
1089
1088
|
return url;
|
|
@@ -1091,50 +1090,83 @@ export class RemoteK8sExecutionEnv {
|
|
|
1091
1090
|
let res;
|
|
1092
1091
|
let body;
|
|
1093
1092
|
try {
|
|
1094
|
-
res = await this.storeFetch(url.value, { method: "GET", ...(signal ? { signal } : {}) });
|
|
1093
|
+
res = await this.storeFetch(url.value, { method: "GET", ...(signal ? { signal } : {}), ...(timeoutMs !== undefined ? { timeoutMs } : {}) });
|
|
1095
1094
|
body = await res.text();
|
|
1096
1095
|
}
|
|
1097
1096
|
catch (e) {
|
|
1098
1097
|
return spaceReadFailed(what, `: ${this.redactUrl(errorMessageOf(e), url.value)}`, e);
|
|
1099
1098
|
}
|
|
1100
1099
|
if (isNoSuchBucketAnswer(res.status, body))
|
|
1101
|
-
return
|
|
1100
|
+
return { ...spaceReadFailed(what, ` (${SNAPSHOT_BUCKET_MISSING})`), bucketMissing: true };
|
|
1102
1101
|
if (res.status === 404)
|
|
1103
1102
|
return ok(undefined);
|
|
1104
1103
|
if (!res.ok)
|
|
1105
1104
|
return spaceReadFailed(what, ` (HTTP ${res.status})`);
|
|
1106
1105
|
return ok(body.trim());
|
|
1107
1106
|
}
|
|
1108
|
-
refuseMissingBucket(
|
|
1107
|
+
refuseMissingBucket(target, read) {
|
|
1109
1108
|
const bucket = this.cfg.s3Snapshot.bucket;
|
|
1110
|
-
|
|
1109
|
+
const fields = {
|
|
1111
1110
|
bucket,
|
|
1112
1111
|
code: SNAPSHOT_BUCKET_MISSING,
|
|
1113
1112
|
effect: "the workspace snapshot bucket does not exist in the object store (the server never creates buckets) — this run is refused rather than started on a workspace that could be neither restored nor saved",
|
|
1114
|
-
}
|
|
1115
|
-
|
|
1113
|
+
};
|
|
1114
|
+
switch (target.lane) {
|
|
1115
|
+
case "space":
|
|
1116
|
+
this.spaceLine("workspace_snapshot_bucket_missing", target.space, fields);
|
|
1117
|
+
break;
|
|
1118
|
+
case "park":
|
|
1119
|
+
this.snapshotLine("workspace_snapshot_bucket_missing", { ...(this.cfg.sessionId ? { sessionId: this.cfg.sessionId } : {}), ...fields });
|
|
1120
|
+
break;
|
|
1121
|
+
default: {
|
|
1122
|
+
const unreachable = target;
|
|
1123
|
+
throw new Error(`unhandled snapshot lane: ${String(unreachable.lane)}`);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
const detail = ` (${SNAPSHOT_BUCKET_MISSING}): the workspace snapshot bucket "${bucket}" (WORKSPACE_SNAPSHOT_BUCKET; default ${WORKSPACE_SNAPSHOT_BUCKET_DEFAULT}) does not exist in the object store — ` +
|
|
1116
1127
|
`refusing to start this run on a workspace that could be neither restored nor saved. Ways out: create the bucket, or set WORKSPACE_SNAPSHOT_BUCKET to one that exists, ` +
|
|
1117
|
-
"or set WORKSPACE_PERSIST=off for a deployment that keeps no workspace between runs"
|
|
1128
|
+
"or set WORKSPACE_PERSIST=off for a deployment that keeps no workspace between runs";
|
|
1129
|
+
return this.holdRefusal(read === "pointer" ? spaceReadFailed("pointer", detail).error : new RemoteExecutionError("connect_failed", `workspace snapshot archive read failed${detail}`));
|
|
1118
1130
|
}
|
|
1119
1131
|
async readLatest(space, signal) {
|
|
1120
1132
|
const r = await this.readPointer(space, "latest", signal);
|
|
1121
|
-
|
|
1133
|
+
if (!r.ok)
|
|
1134
|
+
return r.bucketMissing ? this.refuseMissingBucket({ lane: "space", space }, "pointer") : { ok: false, error: r.error };
|
|
1135
|
+
return ok(r.value === undefined ? undefined : r.value);
|
|
1122
1136
|
}
|
|
1123
1137
|
async writePointer(space, pointer, body, timeoutMs) {
|
|
1124
1138
|
const method = body === null ? "DELETE" : "PUT";
|
|
1125
1139
|
const url = this.presignSnapshot({ lane: "space", space, method, pointer });
|
|
1126
1140
|
if (!url.ok)
|
|
1127
1141
|
return url;
|
|
1128
|
-
const what =
|
|
1142
|
+
const what = `workspace space pointer ${method === "PUT" ? "write" : "delete"}`;
|
|
1143
|
+
const until = timeoutMs !== undefined ? Date.now() + timeoutMs : undefined;
|
|
1144
|
+
let lost;
|
|
1129
1145
|
try {
|
|
1130
1146
|
const res = await this.storeFetch(url.value, { method, ...(body === null ? {} : { body }), ...(timeoutMs !== undefined ? { timeoutMs } : {}) });
|
|
1131
|
-
if (
|
|
1132
|
-
return
|
|
1147
|
+
if (res.ok || (method === "DELETE" && res.status === 404))
|
|
1148
|
+
return ok(undefined);
|
|
1149
|
+
return { ok: false, error: new RemoteExecutionError("connect_failed", `${what} failed (HTTP ${res.status})`) };
|
|
1133
1150
|
}
|
|
1134
1151
|
catch (e) {
|
|
1135
|
-
|
|
1152
|
+
lost = e;
|
|
1136
1153
|
}
|
|
1137
|
-
|
|
1154
|
+
const left = until === undefined ? undefined : until - Date.now();
|
|
1155
|
+
const back = left !== undefined && left <= 0 ? undefined : await this.readPointer(space, pointer, undefined, left);
|
|
1156
|
+
const inTime = until === undefined || Date.now() <= until;
|
|
1157
|
+
if (back?.ok && inTime && back.value === (body ?? undefined))
|
|
1158
|
+
return ok(undefined);
|
|
1159
|
+
const readBack = back === undefined || !inTime
|
|
1160
|
+
? "not decided — the deadline passed before a read-back could answer"
|
|
1161
|
+
: back.ok
|
|
1162
|
+
? back.value === undefined
|
|
1163
|
+
? "the pointer is absent"
|
|
1164
|
+
: "the pointer names another snapshot"
|
|
1165
|
+
: back.error.message;
|
|
1166
|
+
return {
|
|
1167
|
+
ok: false,
|
|
1168
|
+
error: new RemoteExecutionError("connect_failed", `${what} failed: ${this.redactUrl(errorMessageOf(lost), url.value)} — read back: ${readBack}`, lost instanceof Error ? lost : undefined),
|
|
1169
|
+
};
|
|
1138
1170
|
}
|
|
1139
1171
|
async awaitSpaceCommit(space, signal) {
|
|
1140
1172
|
for (;;) {
|
|
@@ -1238,19 +1270,36 @@ export class RemoteK8sExecutionEnv {
|
|
|
1238
1270
|
const url = presigned.value;
|
|
1239
1271
|
const tmp = "/tmp/ws-snap.tgz";
|
|
1240
1272
|
const excludes = (this.cfg.snapshotExclude ?? []).map((item) => ` --exclude=${shellQuote(`./${item}`)}`).join("");
|
|
1241
|
-
const cmd = `tar czf ${tmp}${excludes} -C ${shellQuote(this.cfg.mountPath)} . && curl -
|
|
1273
|
+
const cmd = `tar czf ${tmp}${excludes} -C ${shellQuote(this.cfg.mountPath)} . && curl -sS -o /dev/null -w '%{http_code}' -X PUT -T ${tmp} ${shellQuote(url)}; ` +
|
|
1242
1274
|
`rc=$?; rm -f ${tmp}; exit $rc`;
|
|
1275
|
+
const until = Date.now() + boundMs;
|
|
1243
1276
|
const r = await this.runExec(ADAPTER_START, cmd, { timeoutMs: boundMs });
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1277
|
+
const stored = await this.archiveStored(target, snapshotId, until - Date.now());
|
|
1278
|
+
if (!stored.ok) {
|
|
1279
|
+
const pod = !r.ok
|
|
1280
|
+
? `the upload exec failed: ${this.redactUrl(r.error.message, url)}`
|
|
1281
|
+
: `the upload exited ${r.value.exitCode}${/^\d{3}$/.test(r.value.stdout.trim()) ? `, HTTP ${r.value.stdout.trim()}` : ""}${r.value.stderr.trim() ? `: ${this.redactUrl(r.value.stderr, url).slice(0, 300)}` : ""}`;
|
|
1282
|
+
return { ok: false, error: new RemoteExecutionError("connect_failed", `workspace snapshot upload left no object under the snapshot id (read back: ${stored.why}); ${pod}`, r.ok ? undefined : r.error) };
|
|
1283
|
+
}
|
|
1248
1284
|
const name = this.podName;
|
|
1249
1285
|
this.podName = undefined;
|
|
1250
|
-
this.podIP = undefined;
|
|
1251
1286
|
await this.deletePod(name).catch(() => { });
|
|
1252
1287
|
return ok(snapshotId);
|
|
1253
1288
|
}
|
|
1289
|
+
async archiveStored(target, snapshotId, timeoutMs) {
|
|
1290
|
+
if (timeoutMs <= 0)
|
|
1291
|
+
return { ok: false, why: "no time left in the snapshot bound for the read-back" };
|
|
1292
|
+
const url = this.presignSnapshot({ ...target, method: "HEAD", snapshotId });
|
|
1293
|
+
if (!url.ok)
|
|
1294
|
+
return { ok: false, why: url.error.message };
|
|
1295
|
+
try {
|
|
1296
|
+
const res = await this.storeFetch(url.value, { method: "HEAD", timeoutMs });
|
|
1297
|
+
return res.ok ? { ok: true } : { ok: false, why: `HEAD ${res.status}` };
|
|
1298
|
+
}
|
|
1299
|
+
catch (e) {
|
|
1300
|
+
return { ok: false, why: `HEAD failed: ${this.redactUrl(errorMessageOf(e), url.value)}` };
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1254
1303
|
resumeVM(snapshotId, options) {
|
|
1255
1304
|
if (!this.cfg.s3Snapshot)
|
|
1256
1305
|
return Promise.resolve(unsupported("resumeVM"));
|
|
@@ -1302,7 +1351,7 @@ export class RemoteK8sExecutionEnv {
|
|
|
1302
1351
|
const url = presigned.value;
|
|
1303
1352
|
const cmd = `code=$(curl -s -o /tmp/ws.tgz -w '%{http_code}' ${shellQuote(url)}); rc=$?; ` +
|
|
1304
1353
|
`if [ "$rc" != "0" ]; then echo "snapshot GET got no whole answer (curl exit $rc, HTTP $code)" >&2; exit ${RESTORE_TRANSFER_EXIT}; fi; ` +
|
|
1305
|
-
`if [ "$code" = "404" ]; then echo
|
|
1354
|
+
`if [ "$code" = "404" ]; then echo ${RESTORE_404_MARKER}; head -c ${RESTORE_404_ANSWER_BYTES} /tmp/ws.tgz; exit 0; fi; ` +
|
|
1306
1355
|
`case "$code" in ${RESTORE_STORE_BUSY_STATUSES.join("|")}) echo "snapshot GET HTTP $code" >&2; exit ${RESTORE_STORE_BUSY_EXIT};; esac; ` +
|
|
1307
1356
|
`if [ "$code" != "200" ]; then echo "snapshot GET HTTP $code" >&2; exit ${RESTORE_DOWNLOAD_EXIT}; fi; ` +
|
|
1308
1357
|
`tar xzf /tmp/ws.tgz -C ${shellQuote(this.cfg.mountPath)} && rm -f /tmp/ws.tgz`;
|
|
@@ -1317,7 +1366,11 @@ export class RemoteK8sExecutionEnv {
|
|
|
1317
1366
|
? { cls: restoreClassOfExit(r.value.exitCode), detail: `workspace snapshot restore exited ${r.value.exitCode}: ${this.redactUrl(r.value.stderr, url).slice(0, 300)}` }
|
|
1318
1367
|
: undefined;
|
|
1319
1368
|
if (!failure) {
|
|
1320
|
-
if (r.ok && r.value.stdout.
|
|
1369
|
+
if (r.ok && r.value.stdout.startsWith(RESTORE_404_MARKER)) {
|
|
1370
|
+
if (isNoSuchBucketAnswer(404, r.value.stdout.slice(RESTORE_404_MARKER.length))) {
|
|
1371
|
+
await this.releasePod();
|
|
1372
|
+
return this.refuseMissingBucket(target, "archive");
|
|
1373
|
+
}
|
|
1321
1374
|
await this.dropDangling(target, snapshotId);
|
|
1322
1375
|
return { ok: true, value: this.workspaceHandle(), origin: "minted" };
|
|
1323
1376
|
}
|
|
@@ -1404,7 +1457,6 @@ export class RemoteK8sExecutionEnv {
|
|
|
1404
1457
|
if (alive?.status === 200 && phase === "Running")
|
|
1405
1458
|
return ok(this.workspaceHandle());
|
|
1406
1459
|
this.podName = undefined;
|
|
1407
|
-
this.podIP = undefined;
|
|
1408
1460
|
}
|
|
1409
1461
|
return this.connect();
|
|
1410
1462
|
}
|
|
@@ -1457,7 +1509,6 @@ export class RemoteK8sExecutionEnv {
|
|
|
1457
1509
|
}
|
|
1458
1510
|
const name = this.podName;
|
|
1459
1511
|
this.podName = undefined;
|
|
1460
|
-
this.podIP = undefined;
|
|
1461
1512
|
if (name)
|
|
1462
1513
|
await this.deletePod(name).catch(() => { });
|
|
1463
1514
|
}
|
|
@@ -1753,7 +1804,15 @@ export class RemoteK8sExecutionEnv {
|
|
|
1753
1804
|
const cut = (c) => {
|
|
1754
1805
|
finish(() => ({ ok: false, error: createCutError(c, captured()) }));
|
|
1755
1806
|
};
|
|
1756
|
-
const
|
|
1807
|
+
const adoptOnTimeout = opts?.detach?.adoptOnTimeout === true && bounds.wallMs !== undefined && wallMs === bounds.wallMs;
|
|
1808
|
+
let onDetach;
|
|
1809
|
+
const wallTimer = wallMs !== undefined
|
|
1810
|
+
? setTimeout(() => {
|
|
1811
|
+
if (adoptOnTimeout && onDetach?.("timeout") === true)
|
|
1812
|
+
return;
|
|
1813
|
+
cut({ code: "timeout", message: `command exceeded ${wallMs}ms` });
|
|
1814
|
+
}, wallMs)
|
|
1815
|
+
: undefined;
|
|
1757
1816
|
let livenessTimer;
|
|
1758
1817
|
const liveness = bounds.liveness;
|
|
1759
1818
|
const armLiveness = () => {
|
|
@@ -1855,28 +1914,31 @@ export class RemoteK8sExecutionEnv {
|
|
|
1855
1914
|
});
|
|
1856
1915
|
const detach = opts?.detach;
|
|
1857
1916
|
if (detach) {
|
|
1858
|
-
const
|
|
1917
|
+
const adoptRunning = (cause) => {
|
|
1859
1918
|
if (settled || spliceSink)
|
|
1860
|
-
return;
|
|
1919
|
+
return false;
|
|
1861
1920
|
const out = outTail ? outTail.result() : { text: "", droppedBytes: 0 };
|
|
1862
1921
|
const err = errBuf.result();
|
|
1863
1922
|
const shellId = detach.adopt({ sock, reroute: (sink) => { spliceSink = sink; } });
|
|
1864
1923
|
if (shellId === undefined) {
|
|
1865
1924
|
spliceSink = undefined;
|
|
1866
|
-
return;
|
|
1925
|
+
return false;
|
|
1867
1926
|
}
|
|
1868
1927
|
settled = true;
|
|
1869
1928
|
clearTimeout(wallTimer);
|
|
1870
1929
|
clearTimeout(livenessTimer);
|
|
1871
1930
|
opts?.signal?.removeEventListener("abort", onAbort);
|
|
1872
1931
|
removeDetachListener?.();
|
|
1873
|
-
resolvePromise(ok({ stdout: markTruncated(out.text, out.droppedBytes), stderr: markTruncated(err.text, err.droppedBytes), exitCode: 0, detached: { shellId } }));
|
|
1932
|
+
resolvePromise(ok({ stdout: markTruncated(out.text, out.droppedBytes), stderr: markTruncated(err.text, err.droppedBytes), exitCode: 0, detached: { shellId, ...(cause !== undefined ? { cause } : {}) } }));
|
|
1933
|
+
return true;
|
|
1874
1934
|
};
|
|
1935
|
+
onDetach = adoptRunning;
|
|
1936
|
+
const onDetachSignal = () => void adoptRunning();
|
|
1875
1937
|
if (detach.signal.aborted)
|
|
1876
|
-
|
|
1938
|
+
onDetachSignal();
|
|
1877
1939
|
else {
|
|
1878
|
-
detach.signal.addEventListener("abort",
|
|
1879
|
-
removeDetachListener = () => detach.signal.removeEventListener("abort",
|
|
1940
|
+
detach.signal.addEventListener("abort", onDetachSignal, { once: true });
|
|
1941
|
+
removeDetachListener = () => detach.signal.removeEventListener("abort", onDetachSignal);
|
|
1880
1942
|
}
|
|
1881
1943
|
}
|
|
1882
1944
|
});
|
|
@@ -1920,6 +1982,7 @@ export class RemoteK8sExecutionEnv {
|
|
|
1920
1982
|
stderrFilter: call,
|
|
1921
1983
|
detach: {
|
|
1922
1984
|
signal: detachSignal,
|
|
1985
|
+
adoptOnTimeout: options?.autoBackgroundOnTimeout === true,
|
|
1923
1986
|
tee,
|
|
1924
1987
|
adopt: (io) => {
|
|
1925
1988
|
const adopted = this.bgManager.adoptSync((ctx) => {
|
|
@@ -1944,20 +2007,6 @@ export class RemoteK8sExecutionEnv {
|
|
|
1944
2007
|
this.endExec(inflight);
|
|
1945
2008
|
}
|
|
1946
2009
|
}
|
|
1947
|
-
async getHost(port) {
|
|
1948
|
-
const c = await this.ensureConnected();
|
|
1949
|
-
if (!c.ok || !this.podIP)
|
|
1950
|
-
return undefined;
|
|
1951
|
-
return `${this.podIP}:${port}`;
|
|
1952
|
-
}
|
|
1953
|
-
async startBackground(command) {
|
|
1954
|
-
const wrapped = command.replace(/[\\"$`]/g, (c) => "\\" + c);
|
|
1955
|
-
const r = await this.exec(`(nohup sh -c "${wrapped}" >>/tmp/lsp-bridge.log 2>&1 &) ; echo started`, { timeout: 30 });
|
|
1956
|
-
if (!r.ok)
|
|
1957
|
-
throw new RemoteExecutionError("connect_failed", `startBackground failed: ${r.error.message}`, r.error);
|
|
1958
|
-
if (r.value.exitCode !== 0)
|
|
1959
|
-
throw new RemoteExecutionError("connect_failed", `startBackground exited ${r.value.exitCode}: ${r.value.stderr.slice(0, 200)}`);
|
|
1960
|
-
}
|
|
1961
2010
|
async *execStream(command, options) {
|
|
1962
2011
|
const c = await this.ensureConnected();
|
|
1963
2012
|
if (!c.ok)
|
|
@@ -2175,13 +2224,24 @@ export class RemoteK8sExecutionEnv {
|
|
|
2175
2224
|
return writeFileStaged(this.stagedLane(content), this.resolve(p), abortSignal);
|
|
2176
2225
|
}
|
|
2177
2226
|
stagedLane(content) {
|
|
2178
|
-
return {
|
|
2227
|
+
return { prepare: this.prepareChunked(content, true), run: (cmd, signal) => this.fsExec(cmd, signal), provider: PROVIDER, logger: this.logger };
|
|
2179
2228
|
}
|
|
2180
2229
|
async appendFile(p, content, abortSignal) {
|
|
2181
2230
|
const abs = this.resolve(p);
|
|
2182
|
-
return appendFileStaged(this.stagedLane(content), abs, abortSignal,
|
|
2231
|
+
return appendFileStaged(this.stagedLane(content), abs, abortSignal, this.prepareChunked(content, false));
|
|
2232
|
+
}
|
|
2233
|
+
prepareChunked(content, truncateFirst) {
|
|
2234
|
+
return async () => {
|
|
2235
|
+
const c = await this.ensureConnected();
|
|
2236
|
+
if (!c.ok)
|
|
2237
|
+
return { ok: false, error: fileErrorFromExec(c.error) };
|
|
2238
|
+
return {
|
|
2239
|
+
ok: true,
|
|
2240
|
+
value: { upload: (dest, signal) => this.writeChunked(dest, content, truncateFirst, (command) => this.execData(command, signal)) },
|
|
2241
|
+
};
|
|
2242
|
+
};
|
|
2183
2243
|
}
|
|
2184
|
-
async writeChunked(abs, content, truncateFirst,
|
|
2244
|
+
async writeChunked(abs, content, truncateFirst, exec) {
|
|
2185
2245
|
const bytes = typeof content === "string" ? Buffer.from(content, "utf8") : Buffer.from(content);
|
|
2186
2246
|
for (let off = 0, first = true; off < bytes.length || first; off += WRITE_CHUNK_BYTES, first = false) {
|
|
2187
2247
|
const b64 = bytes.subarray(off, off + WRITE_CHUNK_BYTES).toString("base64");
|