@sema-agent/server 7.147.0 → 7.149.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 +1468 -24
- package/README.md +35 -7
- package/README.zh-CN.md +18 -8
- package/USAGE.md +444 -193
- package/deploy/sema-up/README.md +16 -5
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/templates/_helpers.tpl +20 -4
- package/deploy/sema-up/chart/values.yaml +3 -2
- package/deploy/sema-up/cluster-up.sh +74 -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/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/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 +14 -39
- 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 +13 -1
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +21 -0
- 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/approval-card.d.ts +36 -38
- package/dist/approval-gate-currency.js +3 -2
- package/dist/approval-leg-origin.d.ts +33 -0
- package/dist/approval-leg-origin.js +4 -0
- package/dist/approval-reconciler.d.ts +4 -13
- package/dist/approval-reconciler.js +2 -2
- package/dist/approval.d.ts +13 -11
- package/dist/approval.js +3 -3
- package/dist/audit.d.ts +10 -3
- package/dist/audit.js +15 -7
- package/dist/auth-bridge.d.ts +9 -15
- package/dist/auth-bridge.js +4 -11
- package/dist/auth-keys.d.ts +10 -1
- package/dist/auth-keys.js +8 -0
- 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 +5 -2
- 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/deployment-mods.d.ts +1 -1
- package/dist/boot/execution-env.d.ts +17 -7
- package/dist/boot/execution-env.js +47 -42
- package/dist/boot/execution-lane.d.ts +6 -4
- package/dist/boot/execution-lane.js +3 -1
- package/dist/boot/exit-boundary.d.ts +2 -2
- package/dist/boot/exit-boundary.js +6 -5
- package/dist/boot/fatal-exit.d.ts +3 -5
- package/dist/boot/fatal-exit.js +2 -2
- package/dist/boot/leader.d.ts +15 -0
- package/dist/boot/leader.js +17 -15
- package/dist/boot/memory-consolidation.d.ts +37 -29
- package/dist/boot/memory-consolidation.js +11 -5
- package/dist/boot/org-delivery.d.ts +3 -2
- package/dist/boot/org-memory.js +1 -1
- package/dist/boot/parked-revive-gate.js +2 -2
- package/dist/boot/reapers.d.ts +4 -3
- package/dist/boot/reapers.js +19 -16
- package/dist/boot/resolve-spec.d.ts +5 -3
- package/dist/boot/resolve-spec.js +60 -70
- package/dist/boot/retention-lane.d.ts +4 -4
- package/dist/boot/retention-lane.js +2 -2
- package/dist/boot/runner-deps.d.ts +28 -7
- package/dist/boot/runner-deps.js +14 -5
- package/dist/boot/runtime-caps.d.ts +2 -2
- package/dist/boot/runtime-caps.js +16 -2
- package/dist/boot/session-faces.d.ts +16 -7
- package/dist/boot/session-faces.js +114 -94
- package/dist/boot/shutdown.d.ts +5 -4
- package/dist/boot/shutdown.js +6 -4
- package/dist/boot/stage-01-config.d.ts +1 -0
- package/dist/boot/stage-01-config.js +13 -4
- package/dist/boot/stage-02-web-admin-pull.d.ts +2 -0
- package/dist/boot/stage-02-web-admin-pull.js +16 -3
- package/dist/boot/stage-03-store-backend.d.ts +4 -0
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +3 -0
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +8 -3
- package/dist/boot/stage-05-execution-env.js +2 -2
- package/dist/boot/stage-06-runners.d.ts +12 -13
- package/dist/boot/stage-06-runners.js +23 -15
- package/dist/boot/stage-07-capability-layer.d.ts +13 -9
- package/dist/boot/stage-07-capability-layer.js +5 -3
- package/dist/boot/stage-08-reapers.d.ts +13 -9
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +14 -16
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +14 -16
- package/dist/boot/stage-10-http-server.js +7 -4
- package/dist/boot/store-evidence.d.ts +20 -0
- package/dist/boot/store-evidence.js +13 -0
- package/dist/boot/stores.d.ts +6 -0
- package/dist/boot/stores.js +41 -27
- 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 +55 -35
- 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 +7 -1
- package/dist/capabilities/center-plugins.js +32 -10
- package/dist/capabilities/center-wiring.js +1 -1
- package/dist/capabilities/composite-members.d.ts +2 -2
- package/dist/capabilities/composite-members.js +2 -2
- package/dist/capabilities/repo-tools.d.ts +2 -0
- package/dist/capabilities/repo-tools.js +14 -12
- package/dist/capabilities/scenarios.d.ts +6 -15
- package/dist/capabilities/scenarios.js +11 -16
- package/dist/capabilities/skills.d.ts +1 -1
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +39 -11
- package/dist/capability-facts.js +35 -7
- package/dist/card-settle-stored-scope.d.ts +56 -0
- package/dist/card-settle-stored-scope.js +27 -0
- package/dist/card-void.d.ts +8 -13
- package/dist/card-void.js +2 -7
- package/dist/center-credential-renewer.d.ts +6 -2
- package/dist/center-credential-renewer.js +7 -3
- package/dist/config-catalog.d.ts +28 -1
- package/dist/config-catalog.js +95 -85
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +43 -3
- package/dist/config-invariants.js +69 -5
- package/dist/config-lkg.d.ts +23 -1
- package/dist/config-lkg.js +17 -3
- package/dist/config-provider.d.ts +9 -9
- package/dist/config-provider.js +25 -110
- package/dist/config-pull-failure.d.ts +50 -0
- package/dist/config-pull-failure.js +48 -0
- package/dist/config-types.d.ts +62 -21
- package/dist/config.d.ts +14 -21
- package/dist/config.js +141 -64
- package/dist/context-window-notice.d.ts +31 -0
- package/dist/context-window-notice.js +28 -0
- package/dist/delegated-session-owner.d.ts +1 -1
- package/dist/deleted-session-ids.d.ts +3 -2
- package/dist/deployment-governance.d.ts +3 -3
- package/dist/deployment-shape.d.ts +46 -11
- package/dist/deployment-shape.js +8 -0
- 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.js +2 -1
- package/dist/env-name-allowlist-knobs.d.ts +6 -5
- package/dist/env-name-allowlist-knobs.js +5 -0
- package/dist/env-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-lane-caps.d.ts +25 -23
- package/dist/execution-lane-caps.js +18 -26
- package/dist/execution-placement.d.ts +58 -18
- package/dist/execution-placement.js +41 -2
- 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.js +1 -0
- 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 +3 -3
- 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 +23 -3
- package/dist/history-anchor.js +24 -4
- 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 +7 -2
- package/dist/hooks/command-spawn.js +13 -6
- package/dist/hooks/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +72 -57
- package/dist/hooks/hook-runner.js +271 -193
- 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 +76 -79
- package/dist/http/approval-sweeps.d.ts +3 -3
- package/dist/http/approval-sweeps.js +56 -31
- package/dist/http/caller-trust.d.ts +8 -10
- package/dist/http/caller-trust.js +1 -2
- package/dist/http/claim-heartbeat.d.ts +49 -0
- package/dist/http/claim-heartbeat.js +46 -0
- package/dist/http/claimed-run.d.ts +16 -8
- package/dist/http/claimed-run.js +8 -0
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +78 -30
- package/dist/http/durable-run-leg.d.ts +11 -4
- package/dist/http/durable-run-leg.js +45 -21
- package/dist/http/execution-context.d.ts +122 -47
- package/dist/http/execution-context.js +135 -43
- 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 +4 -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 +1 -1
- package/dist/http/memory-store-refusal-reply.js +3 -0
- package/dist/http/owner-access.d.ts +392 -67
- package/dist/http/owner-access.js +370 -35
- package/dist/http/principal-gate.d.ts +39 -89
- package/dist/http/principal-gate.js +26 -68
- package/dist/http/refusal-body.d.ts +35 -2
- package/dist/http/refusal-body.js +34 -0
- package/dist/http/request-guards.d.ts +9 -13
- 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 +46 -12
- package/dist/http/resume-ctx-read.js +31 -6
- package/dist/http/resume-legs.d.ts +54 -19
- package/dist/http/resume-legs.js +408 -196
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/route-ctx.d.ts +31 -32
- package/dist/http/routes/a2a-serve.d.ts +43 -5
- package/dist/http/routes/a2a-serve.js +60 -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 -67
- 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 +16 -19
- package/dist/http/routes/config-catalog.js +2 -2
- package/dist/http/routes/devices.d.ts +3 -3
- package/dist/http/routes/devices.js +4 -4
- package/dist/http/routes/diagnostics.d.ts +29 -3
- package/dist/http/routes/diagnostics.js +49 -18
- 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 +2 -0
- 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 +10 -19
- package/dist/http/routes/observability.js +3 -3
- package/dist/http/routes/principal-inbox.d.ts +4 -2
- package/dist/http/routes/principal-inbox.js +5 -4
- package/dist/http/routes/projects.d.ts +1 -1
- package/dist/http/routes/projects.js +3 -2
- package/dist/http/routes/retention-ops.js +6 -9
- package/dist/http/routes/rules.js +20 -5
- 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 +155 -237
- 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 +28 -7
- package/dist/http/routes/session-sync.js +63 -50
- package/dist/http/routes/sessions-list.d.ts +3 -3
- package/dist/http/routes/sessions-list.js +9 -9
- package/dist/http/routes/sessions.js +87 -124
- package/dist/http/routes/shared-memory.js +6 -6
- package/dist/http/routes/side-query.js +2 -2
- package/dist/http/routes/tasks.js +237 -187
- 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 +43 -45
- package/dist/http/server.js +61 -11
- 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 +12 -0
- package/dist/http/stored-body-replay.js +2 -2
- package/dist/http/submit-ctx.d.ts +17 -8
- package/dist/http/submit-ctx.js +8 -5
- 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 +4 -3
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +2 -0
- 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/leg-facts.d.ts +7 -2
- package/dist/leg-facts.js +1 -0
- package/dist/local-store-declaration.d.ts +54 -0
- package/dist/local-store-declaration.js +59 -0
- package/dist/lsp-evict.d.ts +6 -4
- package/dist/lsp-evict.js +2 -3
- package/dist/mcp-assertion-header.d.ts +1 -1
- package/dist/mcp-assertion-header.js +1 -1
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-project-layer.js +1 -1
- package/dist/memory-scope.d.ts +33 -6
- package/dist/memory-scope.js +68 -19
- package/dist/memory-store-refusal.d.ts +5 -2
- package/dist/memory-sync-client.d.ts +3 -2
- package/dist/memory-sync-client.js +8 -5
- package/dist/model-compat.d.ts +17 -8
- package/dist/model-compat.js +6 -2
- package/dist/model-context-window.d.ts +57 -0
- package/dist/model-context-window.js +21 -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 +40 -20
- package/dist/model-entry-refusal.js +57 -30
- 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-reach-scope.d.ts +2 -1
- 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 +23 -14
- package/dist/namespaced-rule-name.js +8 -11
- 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 +72 -40
- package/dist/observability/fail-open.js +74 -40
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.js +4 -5
- 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 +6 -2
- package/dist/observability/secret-env-scrub.d.ts +1 -1
- package/dist/observability/secret-env-scrub.js +1 -1
- 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-completion-inbox.d.ts +3 -3
- package/dist/orchestration/workflow-completion-inbox.js +3 -2
- package/dist/org-delivery-gate.d.ts +36 -10
- package/dist/org-delivery-gate.js +12 -8
- 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 +532 -0
- package/dist/owner-faces.js +126 -0
- package/dist/park-row-commit.d.ts +67 -0
- package/dist/park-row-commit.js +76 -0
- package/dist/parked-decide.d.ts +76 -12
- package/dist/parked-decide.js +152 -11
- package/dist/parked-revive-surface.d.ts +14 -4
- package/dist/parked-revive-surface.js +5 -4
- package/dist/peer-directory.d.ts +7 -9
- 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 +3 -25
- package/dist/plugins/adoption-log-sql.js +23 -21
- 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 +18 -7
- package/dist/plugins/approval-ask-store-file.js +37 -14
- package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
- package/dist/plugins/approval-ask-store-memory.js +24 -10
- package/dist/plugins/approval-ask-store-sql.d.ts +40 -21
- package/dist/plugins/approval-ask-store-sql.js +44 -15
- package/dist/plugins/approval-exemption-skill-cutoff.d.ts +64 -0
- package/dist/plugins/approval-exemption-skill-cutoff.js +122 -0
- package/dist/plugins/approval-exemption-skill-m46.d.ts +14 -0
- package/dist/plugins/approval-exemption-skill-m46.js +21 -0
- package/dist/plugins/approval-exemption-store.d.ts +32 -2
- package/dist/plugins/approval-exemption-store.js +42 -19
- 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 +2 -0
- package/dist/plugins/blob-backend.js +9 -6
- package/dist/plugins/caching-session-store.d.ts +13 -1
- package/dist/plugins/caching-session-store.js +43 -4
- package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
- package/dist/plugins/checkpoint-index-columns.js +36 -1
- package/dist/plugins/checkpoint-store-face.d.ts +83 -10
- package/dist/plugins/checkpoint-store-face.js +18 -1
- package/dist/plugins/device-store-sql.js +1 -0
- 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 +36 -18
- package/dist/plugins/ensure-schema-lock-policy.js +76 -9
- package/dist/plugins/file-run-store.d.ts +85 -32
- package/dist/plugins/file-run-store.js +177 -94
- 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 +2 -2
- 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 +62 -23
- package/dist/plugins/local-checkpoint-store.js +197 -77
- package/dist/plugins/local-data-dir-modes-m39.js +2 -1
- package/dist/plugins/local-data-root-admission.d.ts +52 -0
- package/dist/plugins/local-data-root-admission.js +100 -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 +29 -6
- package/dist/plugins/local-engine-high-water.js +27 -19
- package/dist/plugins/local-session-store.d.ts +458 -140
- package/dist/plugins/local-session-store.js +906 -292
- 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 +18 -1
- package/dist/plugins/local-task-attachment-store.js +22 -1
- package/dist/plugins/memory-embedder.js +9 -7
- package/dist/plugins/memory-engine-pg.d.ts +3 -2
- package/dist/plugins/memory-engine-pg.js +14 -5
- package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
- package/dist/plugins/memory-engine-sql-apply.js +6 -8
- package/dist/plugins/memory-engine-tidb.d.ts +4 -2
- package/dist/plugins/memory-engine-tidb.js +11 -2
- 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 +53 -36
- package/dist/plugins/memory-run-store.js +116 -88
- package/dist/plugins/one-time-migration-marker.d.ts +26 -0
- package/dist/plugins/one-time-migration-marker.js +13 -0
- package/dist/plugins/one-time-migrations.d.ts +214 -47
- package/dist/plugins/one-time-migrations.js +481 -135
- package/dist/plugins/org-delivery-quota-store.d.ts +34 -11
- package/dist/plugins/org-delivery-quota-store.js +31 -15
- package/dist/plugins/permission-rule-store-file.d.ts +3 -3
- package/dist/plugins/permission-rule-store-sql.d.ts +5 -64
- package/dist/plugins/permission-rule-store-sql.js +11 -95
- package/dist/plugins/pg-pool.d.ts +2 -32
- package/dist/plugins/pg-pool.js +24 -17
- package/dist/plugins/remote-env-device.d.ts +3 -2
- package/dist/plugins/remote-env-e2b.d.ts +8 -32
- package/dist/plugins/remote-env-e2b.js +44 -32
- package/dist/plugins/remote-env-host.d.ts +51 -17
- package/dist/plugins/remote-env-host.js +111 -42
- package/dist/plugins/remote-env-k8s.d.ts +40 -45
- package/dist/plugins/remote-env-k8s.js +111 -60
- package/dist/plugins/remote-env-local-docker.d.ts +152 -15
- package/dist/plugins/remote-env-local-docker.js +352 -72
- package/dist/plugins/remote-scratchpad.js +4 -0
- package/dist/plugins/retention-deployment.d.ts +49 -17
- package/dist/plugins/retention-deployment.js +39 -8
- 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 +82 -75
- package/dist/plugins/run-store-sql.js +164 -125
- 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 +56 -0
- package/dist/plugins/scenario-prefix-switch-m42.js +56 -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 +131 -14
- package/dist/plugins/schema-consistency.js +388 -18
- package/dist/plugins/schema-drift-sentence.d.ts +10 -6
- package/dist/plugins/schema-drift-sentence.js +15 -7
- package/dist/plugins/schema-ensure-legs.d.ts +9 -0
- package/dist/plugins/schema-ensure-legs.js +1 -1
- 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 +27 -3
- package/dist/plugins/session-ext-table.js +19 -6
- package/dist/plugins/session-fork.d.ts +15 -1
- package/dist/plugins/session-fork.js +3 -0
- package/dist/plugins/session-ownership.d.ts +1 -1
- package/dist/plugins/session-placement.d.ts +27 -20
- package/dist/plugins/session-placement.js +15 -12
- package/dist/plugins/session-row-sql.d.ts +12 -0
- package/dist/plugins/session-row-sql.js +3 -3
- 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 +38 -12
- package/dist/plugins/session-store-sql.js +130 -30
- package/dist/plugins/session-withdraw-sql.d.ts +36 -0
- package/dist/plugins/session-withdraw-sql.js +42 -0
- package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
- package/dist/plugins/shared-memory-store-sql.js +2 -1
- package/dist/plugins/shell-sentinel-owner-m48.d.ts +42 -0
- package/dist/plugins/shell-sentinel-owner-m48.js +9 -0
- package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
- package/dist/plugins/sql-driver.d.ts +1 -1
- package/dist/plugins/sql-driver.js +2 -1
- package/dist/plugins/sql-errors.d.ts +32 -5
- package/dist/plugins/sql-errors.js +55 -7
- package/dist/plugins/sql-json-column.d.ts +8 -7
- package/dist/plugins/sql-json-column.js +10 -6
- package/dist/plugins/stop-then-start-sentence.d.ts +16 -0
- package/dist/plugins/stop-then-start-sentence.js +7 -0
- package/dist/plugins/store-backend.d.ts +99 -16
- package/dist/plugins/store-backend.js +230 -65
- package/dist/plugins/store-contracts.d.ts +123 -33
- package/dist/plugins/store-contracts.js +38 -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 +15 -3
- package/dist/plugins/task-attachment-store.js +22 -9
- package/dist/plugins/tidb-pool.d.ts +11 -6
- package/dist/plugins/tidb-pool.js +39 -18
- 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/plugins/workspace-custody.d.ts +44 -0
- package/dist/plugins/workspace-custody.js +47 -0
- 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/project-identity.d.ts +8 -7
- package/dist/project-identity.js +40 -17
- package/dist/project-layer-key.d.ts +13 -2
- package/dist/project-layer-key.js +9 -1
- package/dist/question.d.ts +13 -23
- package/dist/question.js +21 -39
- package/dist/read-deny-floor-notice.d.ts +36 -0
- package/dist/read-deny-floor-notice.js +40 -0
- package/dist/{plain-string-record.d.ts → request-declaration-disposition.d.ts} +9 -23
- package/dist/request-declaration-disposition.js +39 -0
- 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/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 +5 -3
- package/dist/rules-consent.js +1 -0
- package/dist/run-acceptance.d.ts +3 -1
- package/dist/run-acceptance.js +3 -0
- package/dist/run-cancel-card.d.ts +28 -0
- package/dist/run-cancel-card.js +19 -0
- package/dist/run-cancel-context.d.ts +10 -0
- package/dist/run-cancel-context.js +1 -0
- package/dist/run-local.d.ts +14 -6
- package/dist/run-local.js +117 -90
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +56 -21
- package/dist/runs.js +73 -43
- package/dist/runtime-caps-resolver.d.ts +21 -6
- package/dist/runtime-caps-resolver.js +17 -4
- package/dist/runtime-governance.d.ts +2 -2
- package/dist/runtime-governance.js +5 -3
- package/dist/sealed-key-layout.d.ts +12 -5
- package/dist/sealed-key-layout.js +5 -0
- package/dist/sealed-key.d.ts +12 -2
- package/dist/sealed-key.js +115 -27
- package/dist/security.d.ts +128 -158
- package/dist/security.js +163 -59
- package/dist/sema-config-dir.d.ts +20 -0
- package/dist/sema-config-dir.js +25 -0
- package/dist/server-secret-env.d.ts +55 -25
- package/dist/server-secret-env.js +75 -22
- package/dist/session-agent.d.ts +3 -2
- package/dist/session-children-retire.d.ts +13 -8
- package/dist/session-children-retire.js +9 -7
- 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 +5 -5
- package/dist/session-error-wire.js +1 -1
- package/dist/session-incarnation.d.ts +52 -5
- 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 +0 -71
- package/dist/session-resident-background.js +4 -3
- package/dist/session-row.d.ts +2 -1
- package/dist/session-rules-seat.d.ts +12 -0
- package/dist/session-rules-seat.js +19 -0
- package/dist/session-titler.d.ts +7 -15
- package/dist/session-titler.js +1 -1
- package/dist/session-workspace.d.ts +3 -3
- package/dist/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-admission.d.ts +33 -0
- package/dist/store-admission.js +49 -0
- package/dist/store-posture.d.ts +141 -20
- package/dist/store-posture.js +205 -3
- package/dist/stored-request-hooks-m20.js +2 -2
- 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/checkpoint-store-sql.d.ts +34 -29
- package/dist/stores-sql/checkpoint-store-sql.js +78 -49
- package/dist/stores-sql/file-history-store-sql.d.ts +1 -1
- package/dist/stores-sql/file-history-store-sql.js +3 -5
- package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
- package/dist/stores-sql/mailbox-store-sql.js +31 -32
- package/dist/stores-sql/pg-session-storage.d.ts +7 -5
- package/dist/stores-sql/pg-session-storage.js +54 -46
- package/dist/stores-sql/retention-store-sql.d.ts +87 -19
- package/dist/stores-sql/retention-store-sql.js +92 -27
- package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
- package/dist/stores-sql/session-policy-store-sql.js +44 -36
- package/dist/stores-sql/session-write-hooks.d.ts +12 -6
- package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
- package/dist/stores-sql/tidb-session-storage.js +13 -8
- package/dist/stores-sql/tidb-session-store.d.ts +36 -17
- package/dist/stores-sql/tidb-session-store.js +69 -39
- package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
- package/dist/stores-sql/tool-result-store-sql.js +4 -6
- package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
- package/dist/stores-sql/windowed-session-storage.js +9 -0
- package/dist/submission-exit.d.ts +50 -0
- package/dist/submission-exit.js +108 -0
- package/dist/task-a2a.d.ts +3 -8
- package/dist/task-a2a.js +28 -30
- package/dist/task-cwd.d.ts +43 -7
- package/dist/task-cwd.js +11 -0
- package/dist/task-mcp.d.ts +3 -3
- package/dist/task-mcp.js +4 -4
- package/dist/task-settings.d.ts +14 -10
- package/dist/task-settings.js +19 -7
- package/dist/terminal.d.ts +27 -43
- package/dist/terminal.js +49 -14
- package/dist/tool-approval.d.ts +173 -163
- package/dist/tool-approval.js +247 -232
- package/dist/trace/core-keyset-guard.d.ts +13 -6
- 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 +24 -21
- package/dist/trace/engine-notice-wire.js +7 -3
- package/dist/trace/exit-seat.d.ts +30 -4
- package/dist/trace/exit-seat.js +40 -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 +4 -31
- 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 +59 -44
- package/dist/trace/project.js +60 -26
- package/dist/trace/redact.d.ts +135 -27
- package/dist/trace/redact.js +884 -260
- package/dist/trace/self-minted-wire.d.ts +567 -20
- package/dist/trace/self-minted-wire.js +205 -24
- package/dist/trace/wire-projection-faces.d.ts +5 -6
- package/dist/trace/wire-projection-faces.js +2 -2
- 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 -23
- 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/center-request.d.ts +2 -2
- package/dist/web-admin-client/center-request.js +15 -15
- package/dist/web-admin-client/effective-keys.d.ts +1 -1
- package/dist/web-admin-client/effective-keys.js +1 -1
- 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/http-client.d.ts +1 -1
- package/dist/web-admin-client/http-client.js +23 -4
- 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 +8 -4
- package/dist/web-admin-client/skills-mcp.d.ts +2 -2
- package/dist/web-admin-client/types.d.ts +1 -2
- package/dist/workspace-space.d.ts +3 -2
- package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
- package/docs/error-text-lexicon.json +317 -0
- package/package.json +8 -3
- package/scripts/drain-check-local.mjs +118 -147
- package/scripts/drain-check.mysql.sql +22 -2
- package/scripts/drain-check.pg.sql +22 -2
- package/scripts/embed-minimal.mjs +183 -0
- package/wire-changes/server@7.148.0.json +1517 -0
- package/wire-changes/server@7.149.0.json +372 -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
- package/dist/plain-string-record.js +0 -70
|
@@ -12,9 +12,10 @@ import { type RemoteContainerEnvDeps } from "../plugins/remote-env-e2b.js";
|
|
|
12
12
|
import { type WorkspaceFillOf } from "../plugins/workspace-fill.js";
|
|
13
13
|
import { k8sExecutionEnvFactory, type K8sEnvConfig, type K8sEnvDeps, type SandboxSecretSeat } from "../plugins/remote-env-k8s.js";
|
|
14
14
|
import { type SandboxGitPlaneSeat, type SandboxGitRunRows } from "../sandbox-git-plane.js";
|
|
15
|
-
import {
|
|
15
|
+
import type { SandboxReaper } from "../plugins/sandbox-reaper.js";
|
|
16
16
|
import { type SpaceCommitRows } from "../workspace-space-commit.js";
|
|
17
17
|
import { type LocalDockerEnvDeps } from "../plugins/remote-env-local-docker.js";
|
|
18
|
+
import { type LocalDockerCapacity } from "../plugins/local-docker-capacity.js";
|
|
18
19
|
import * as facts from "../capability-facts.js";
|
|
19
20
|
import { type TaskAttachmentStore } from "../plugins/task-attachment-store.js";
|
|
20
21
|
import type { TaskInheritEnv } from "../request-value-closure.js";
|
|
@@ -60,10 +61,15 @@ export interface SessionScopedRegistries {
|
|
|
60
61
|
* (core 的访问元组要带 scope,没有进程总数的读口),读的就是这一张 —— 每次提交写一笔、`dropSession` 清一笔、LRU 有界,不另立第二张会话名册。 */
|
|
61
62
|
readonly sessionOwners: ReadonlyMap<string, string | null>;
|
|
62
63
|
/** 记录/对拍本会话的主人。与上次不同 ⇒ **先清两张表**再记新主(换主即清)。`null` = 匿名会话,
|
|
63
|
-
* 它同样是一个**稳定**的身份值(不是「未知」),所以匿名重入不会被判成换主。
|
|
64
|
-
|
|
64
|
+
* 它同样是一个**稳定**的身份值(不是「未知」),所以匿名重入不会被判成换主。
|
|
65
|
+
* `incarnation` = 这次提交的授权口读到的那一位住客(会话行上的化身;读不出 ⇒ 缺):与上次记下的那一位不同 ⇒ 同样先清(同一个 id 上换了住客 ——
|
|
66
|
+
* 删了重建、被拒提交铸下的会话撤回之后重登记 —— 同属主也不接上一位住客的东西);缺 ⇒ 记成「不知道是哪一位」,不因它清。 */
|
|
67
|
+
fenceSessionOwner(sid: string, owner: string | null, incarnation?: string): void;
|
|
65
68
|
/** 会话删除:两张表 + 身份记录一起清(留着身份记录会让同 id 的下一位与一个幽灵身份比对成「同主」)。 */
|
|
66
69
|
dropSession(sid: string): void;
|
|
70
|
+
/** 只清**这一位住客**的条目:记下的住客恰是 `incarnation` ⇒ 同 {@link dropSession}、答 `true`;否则(换了住客 / 不知道是哪一位 / 没有条目)一笔不动、答 `false`。
|
|
71
|
+
* 撤回出口在撤回事务落定之后调 —— 那一刻同 id 的下一位可能已经登记、围栏、写下了它自己的条目。 */
|
|
72
|
+
dropSessionOf(sid: string, incarnation: string): boolean;
|
|
67
73
|
}
|
|
68
74
|
export declare function createSessionScopedRegistries(maxEntries?: number): SessionScopedRegistries;
|
|
69
75
|
/**
|
|
@@ -159,11 +165,13 @@ export interface ExecutionEnvCtx {
|
|
|
159
165
|
/** run 店的按 id 读(成员凭据代理座读 run 行上受理时记下的身份元组 `RunRecord.identity`)。取值闭包:run 店第 7 段才绑(`late-binds.ts`),
|
|
160
166
|
* 平面开着时每个 run 的 pod 建起前求值一次。不传 / 答 `undefined`(没有存储后端)⇒ 读不到身份 ⇒ 不挂代理。 */
|
|
161
167
|
runRows?: () => SandboxGitRunRows | undefined;
|
|
162
|
-
/** 隔离车道三只适配器自己的测试缝(假 e2b SDK / 假集群 / 假 docker CLI),原样交给各自的工厂 —— 与 `K8sEnvDeps` 同一条律:生产装配不传。
|
|
168
|
+
/** 隔离车道三只适配器自己的测试缝(假 e2b SDK / 假集群 / 假 docker CLI),原样交给各自的工厂 —— 与 `K8sEnvDeps` 同一条律:生产装配不传。
|
|
169
|
+
* `localDockerReapNow` = local-docker 无主容器回收器的钟缝(保持窗从 run 行转终态那一拍起算;测试把「现在」拨过窗)。 */
|
|
163
170
|
laneDeps?: {
|
|
164
171
|
readonly e2b?: RemoteContainerEnvDeps;
|
|
165
172
|
readonly k8s?: K8sEnvDeps;
|
|
166
173
|
readonly localDocker?: LocalDockerEnvDeps;
|
|
174
|
+
readonly localDockerReapNow?: () => number;
|
|
167
175
|
};
|
|
168
176
|
}
|
|
169
177
|
export declare function createExecutionEnv(ctx: ExecutionEnvCtx): {
|
|
@@ -173,16 +181,18 @@ export declare function createExecutionEnv(ctx: ExecutionEnvCtx): {
|
|
|
173
181
|
setSessionCwd: (sid: string, cwd: string) => void;
|
|
174
182
|
setSessionShellEnv: (sid: string, env: Record<string, string>) => void;
|
|
175
183
|
setSessionInheritEnv: (sid: string, policy: TaskInheritEnv | undefined) => void;
|
|
176
|
-
fenceSessionOwner: (sid: string, owner: string | null) => void;
|
|
184
|
+
fenceSessionOwner: (sid: string, owner: string | null, incarnation?: string) => void;
|
|
177
185
|
dropSessionScoped: (sid: string) => void;
|
|
186
|
+
dropSessionScopedOf: (sid: string, incarnation: string) => boolean;
|
|
178
187
|
sessionResidentBackground: () => SessionResidentCounts;
|
|
179
188
|
executionEnvFactory: import("@sema-agent/core").ExecutionEnvFactory | undefined;
|
|
180
189
|
worktreeReap: (() => Promise<void>) | undefined;
|
|
181
190
|
sendUserFileTaskEnvs: TaskEnvRegistry | undefined;
|
|
182
|
-
lspManager: import("@sema-agent/core").NodeLspManager |
|
|
191
|
+
lspManager: import("@sema-agent/core").NodeLspManager | undefined;
|
|
183
192
|
spaceReclaimer: SpaceReclaimer | undefined;
|
|
184
193
|
sandboxSecretSeatGate: (() => Promise<void>) | undefined;
|
|
185
|
-
|
|
194
|
+
sandboxReaper: SandboxReaper | undefined;
|
|
186
195
|
sandboxGitPlane: SandboxGitPlaneSeat;
|
|
196
|
+
sandboxCapacity: LocalDockerCapacity | undefined;
|
|
187
197
|
};
|
|
188
198
|
//# sourceMappingURL=execution-env.d.ts.map
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { createLspManager } from "../host-lsp-manager.js";
|
|
4
4
|
import { TaskEnvRegistry } from "../capabilities/sandbox-file-send.js";
|
|
5
5
|
import { DEPLOYMENT_SHAPE_PREDICATES } from "../deployment-shape.js";
|
|
6
6
|
import { SessionEnvironmentSelection } from "../capabilities/select-environment-tool.js";
|
|
7
7
|
import { sandboxEnvNamesInForce } from "../config.js";
|
|
8
|
-
import { createE2bLspManager } from "../lsp/e2b-manager.js";
|
|
9
8
|
import { evictLspOnDestroy } from "../lsp-evict.js";
|
|
10
9
|
import { PerTaskImageRegistry } from "../per-task-image.js";
|
|
11
10
|
import { adbExecutionEnvFactory } from "../plugins/remote-env-adb.js";
|
|
@@ -17,10 +16,12 @@ import { boundedStoreCall, checkSandboxEgressPolicy, createSandboxPodApi, create
|
|
|
17
16
|
import { podSpecPatchBrokerRefusal, SANDBOX_SECRET_SEAT_VERBS } from "../plugins/k8s-exec-protocol.js";
|
|
18
17
|
import { createSandboxBrokerSeatOf, createSandboxGitPlaneSeat, sandboxGitPlanePremisesOf } from "../sandbox-git-plane.js";
|
|
19
18
|
import { createSandboxPodReaper } from "../plugins/k8s-pod-reaper.js";
|
|
19
|
+
import { createLocalDockerReaper } from "../plugins/local-docker-reaper.js";
|
|
20
20
|
import { recordFailOpen } from "../observability/fail-open.js";
|
|
21
21
|
import { createRunWorkspaceSnapshotSeat } from "../fleet/workspace-snapshot-residual.js";
|
|
22
22
|
import { createSpaceCommitFence } from "../workspace-space-commit.js";
|
|
23
23
|
import { localDockerExecutionEnvFactory } from "../plugins/remote-env-local-docker.js";
|
|
24
|
+
import { createLocalDockerCapacity, localDockerWorkerLabelOf } from "../plugins/local-docker-capacity.js";
|
|
24
25
|
import { sshExecutionEnvFactory } from "../plugins/remote-env-ssh.js";
|
|
25
26
|
import { withRemoteScratchpad } from "../plugins/remote-scratchpad.js";
|
|
26
27
|
import { FileSchedulerBackend, defaultSchedulerStorePath } from "../plugins/scheduler-support.js";
|
|
@@ -38,8 +39,8 @@ import { workspaceSnapshotTimeoutOf } from "../workspace-space.js";
|
|
|
38
39
|
import { sayEgressPolicyReading } from "../sandbox-egress-policy.js";
|
|
39
40
|
import { sandboxPathEnvSlots, withSandboxPathEnvSlot } from "./deferred-sandbox-path-env.js";
|
|
40
41
|
import { createLaneHomeAbsenceReporter } from "../lane-home-probe.js";
|
|
41
|
-
import { buildLaneHomeBootNote, buildLaneHomeClaim, capabilitiesFor,
|
|
42
|
-
import {
|
|
42
|
+
import { buildLaneHomeBootNote, buildLaneHomeClaim, capabilitiesFor, laneIsolated, laneSandboxReadFloorState } from "../execution-lane-caps.js";
|
|
43
|
+
import { settleReadDenyFloor } from "./execution-lane.js";
|
|
43
44
|
import { seatText } from "../trace/exit-seat.js";
|
|
44
45
|
import { countSessionResidentBackground } from "../session-resident-background.js";
|
|
45
46
|
function boundedSessionSetter(map, maxEntries) {
|
|
@@ -65,11 +66,13 @@ export function createSessionScopedRegistries(maxEntries = MAX_CWD_SESSIONS) {
|
|
|
65
66
|
const perSessionShellEnv = new Map();
|
|
66
67
|
const perSessionInheritEnv = new Map();
|
|
67
68
|
const owners = new Map();
|
|
69
|
+
const occupants = new Map();
|
|
68
70
|
const dropSession = (sid) => {
|
|
69
71
|
perSessionCwd.delete(sid);
|
|
70
72
|
perSessionShellEnv.delete(sid);
|
|
71
73
|
perSessionInheritEnv.delete(sid);
|
|
72
74
|
owners.delete(sid);
|
|
75
|
+
occupants.delete(sid);
|
|
73
76
|
};
|
|
74
77
|
const touch = (sid, owner) => {
|
|
75
78
|
const next = owner === undefined ? (owners.has(sid) ? owners.get(sid) : null) : owner;
|
|
@@ -99,8 +102,14 @@ export function createSessionScopedRegistries(maxEntries = MAX_CWD_SESSIONS) {
|
|
|
99
102
|
perSessionInheritEnv.set(sid, policy);
|
|
100
103
|
touch(sid, undefined);
|
|
101
104
|
},
|
|
102
|
-
fenceSessionOwner: (sid, owner) => {
|
|
103
|
-
|
|
105
|
+
fenceSessionOwner: (sid, owner, incarnation) => {
|
|
106
|
+
const ownerChanged = owners.has(sid) && owners.get(sid) !== owner;
|
|
107
|
+
const occupantChanged = incarnation !== undefined && occupants.has(sid) && occupants.get(sid) !== incarnation;
|
|
108
|
+
if (incarnation === undefined)
|
|
109
|
+
occupants.delete(sid);
|
|
110
|
+
else
|
|
111
|
+
occupants.set(sid, incarnation);
|
|
112
|
+
if (ownerChanged || occupantChanged) {
|
|
104
113
|
perSessionCwd.delete(sid);
|
|
105
114
|
perSessionShellEnv.delete(sid);
|
|
106
115
|
perSessionInheritEnv.delete(sid);
|
|
@@ -108,6 +117,12 @@ export function createSessionScopedRegistries(maxEntries = MAX_CWD_SESSIONS) {
|
|
|
108
117
|
touch(sid, owner);
|
|
109
118
|
},
|
|
110
119
|
dropSession,
|
|
120
|
+
dropSessionOf: (sid, incarnation) => {
|
|
121
|
+
if (occupants.get(sid) !== incarnation)
|
|
122
|
+
return false;
|
|
123
|
+
dropSession(sid);
|
|
124
|
+
return true;
|
|
125
|
+
},
|
|
111
126
|
};
|
|
112
127
|
}
|
|
113
128
|
export function ownsItsWorkspace(ctx) {
|
|
@@ -238,10 +253,14 @@ export function createExecutionEnv(ctx) {
|
|
|
238
253
|
const { perSessionCwd, setSessionCwd } = sessionScoped;
|
|
239
254
|
const { perSessionShellEnv, setSessionShellEnv } = sessionScoped;
|
|
240
255
|
const { perSessionInheritEnv, setSessionInheritEnv } = sessionScoped;
|
|
256
|
+
const lspManager = createLspManager(config, (event, fields) => logger.info(event, fields));
|
|
257
|
+
if (lspManager)
|
|
258
|
+
logger.info("lsp_enabled", { provider: config.remoteExec.provider });
|
|
241
259
|
let executionEnvFactory;
|
|
242
260
|
let spaceReclaimer;
|
|
243
261
|
let sandboxSecretSeatGate;
|
|
244
|
-
let
|
|
262
|
+
let sandboxReaper;
|
|
263
|
+
let sandboxCapacity;
|
|
245
264
|
let sandboxGitPlane = createSandboxGitPlaneSeat((r) => sandboxGitPlanePremisesOf(config, r), {});
|
|
246
265
|
let worktreeReap;
|
|
247
266
|
const workspaceFillOf = taskAttachmentStore === undefined ? undefined : (fctx) => createWorkspaceFill({ store: taskAttachmentStore, sessionId: fctx.sessionId, seeds: ownsItsWorkspace(fctx), logger });
|
|
@@ -299,7 +318,7 @@ export function createExecutionEnv(ctx) {
|
|
|
299
318
|
if (k8sCfg.cache !== undefined || k8sCfg.s3Snapshot !== undefined)
|
|
300
319
|
spaceReclaimer = createSpaceReclaimer(k8sCfg);
|
|
301
320
|
sandboxSecretSeatGate = () => ensureSandboxSecretSeat(k8sCfg, logger, undefined, () => readSandboxSecretSeat(k8sCfg, "env"));
|
|
302
|
-
|
|
321
|
+
sandboxReaper = createSandboxPodReaper({ api: createSandboxPodApi(k8sCfg), logger, metrics });
|
|
303
322
|
void checkSandboxEgressPolicy(k8sCfg)
|
|
304
323
|
.then((gaps) => sayEgressPolicyReading(gaps, logger, k8sCfg.namespace))
|
|
305
324
|
.catch((e) => logger.error("sandbox_egress_policy_check_crashed", { error: seatText("operator-log-text", e instanceof Error ? e.message : String(e)), effect: "the sandbox egress self-check did not complete this boot — the lane runs; the egress policy was not read" }));
|
|
@@ -347,6 +366,7 @@ export function createExecutionEnv(ctx) {
|
|
|
347
366
|
? new FileSchedulerBackend({
|
|
348
367
|
storePath: schedulerStorePath,
|
|
349
368
|
log: logger,
|
|
369
|
+
trust: { declaredOwnerUid: config.configLocalOwnerUid },
|
|
350
370
|
...(config.schedulerSessionWakeup === false || config.schedulerSessionLifetime === false
|
|
351
371
|
? {
|
|
352
372
|
caps: {
|
|
@@ -364,27 +384,29 @@ export function createExecutionEnv(ctx) {
|
|
|
364
384
|
...(config.remoteExec.workspaceBase ? { workspaceBase: config.remoteExec.workspaceBase } : {}),
|
|
365
385
|
...(config.remoteExec.commandTimeoutMs != null ? { commandTimeoutMs: config.remoteExec.commandTimeoutMs } : {}),
|
|
366
386
|
...(hostScheduler ? { scheduler: hostScheduler } : {}),
|
|
367
|
-
backgroundShell: config
|
|
387
|
+
backgroundShell: DEPLOYMENT_SHAPE_PREDICATES.backgroundShell.holds(config),
|
|
368
388
|
};
|
|
369
|
-
executionEnvFactory = (ctx) => {
|
|
389
|
+
executionEnvFactory = hostExecutionEnvFactory(hostCfg, (ctx) => {
|
|
370
390
|
if (ctx.isolation === "worktree")
|
|
371
391
|
throw hostWorktreeUnwrappedRefusal();
|
|
372
392
|
const cwd = effectiveHostWorkspace(perSessionCwd.get(ctx.sessionId), ctx);
|
|
373
393
|
const shellEnv = perSessionShellEnv.get(ctx.sessionId);
|
|
374
394
|
const inheritEnv = perSessionInheritEnv.get(ctx.sessionId);
|
|
375
|
-
|
|
376
|
-
...hostCfg,
|
|
395
|
+
return {
|
|
377
396
|
...(cwd ? { workspaceDir: cwd } : {}),
|
|
378
397
|
...(shellEnv ? { env: shellEnv } : {}),
|
|
379
398
|
...(inheritEnv !== undefined ? { inheritEnv } : {}),
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
};
|
|
399
|
+
...(lspManager && !cwd ? { minted: (env) => void evictLspOnDestroy(env, lspManager) } : {}),
|
|
400
|
+
};
|
|
401
|
+
});
|
|
383
402
|
}
|
|
384
403
|
}
|
|
385
404
|
else if (config.remoteExec.provider === "local-docker") {
|
|
386
|
-
|
|
405
|
+
const workerLabel = localDockerWorkerLabelOf(config.localDataRoot);
|
|
406
|
+
sandboxCapacity = config.remoteExec.capacity !== undefined ? createLocalDockerCapacity(config.remoteExec.capacity, { label: workerLabel, logger }) : undefined;
|
|
407
|
+
const localDockerFactory = localDockerExecutionEnvFactory({
|
|
387
408
|
image: config.remoteExec.image,
|
|
409
|
+
workerLabel,
|
|
388
410
|
...(config.remoteExec.mountPath ? { mountPath: config.remoteExec.mountPath } : {}),
|
|
389
411
|
...homeDirSeat, ...homeAbsentNotice,
|
|
390
412
|
...(config.remoteExec.dockerPath ? { dockerPath: config.remoteExec.dockerPath } : {}),
|
|
@@ -398,8 +420,11 @@ export function createExecutionEnv(ctx) {
|
|
|
398
420
|
...(config.remoteExec.env ? { env: config.remoteExec.env } : {}),
|
|
399
421
|
sandboxReadFloor: config.sandboxReadFloor,
|
|
400
422
|
...(workspaceFillOf !== undefined ? { workspaceFillOf } : {}),
|
|
423
|
+
...(sandboxCapacity !== undefined ? { capacity: sandboxCapacity } : {}),
|
|
401
424
|
logger,
|
|
402
425
|
}, ctx.laneDeps?.localDocker);
|
|
426
|
+
executionEnvFactory = localDockerFactory;
|
|
427
|
+
sandboxReaper = createLocalDockerReaper({ port: localDockerFactory.reapPort, logger, metrics, ...(ctx.laneDeps?.localDockerReapNow !== undefined ? { now: ctx.laneDeps.localDockerReapNow } : {}) });
|
|
403
428
|
}
|
|
404
429
|
if (executionEnvFactory && DEPLOYMENT_SHAPE_PREDICATES.remoteScratchpad.holds(config)) {
|
|
405
430
|
executionEnvFactory = withRemoteScratchpad(executionEnvFactory, logger);
|
|
@@ -415,14 +440,14 @@ export function createExecutionEnv(ctx) {
|
|
|
415
440
|
});
|
|
416
441
|
}
|
|
417
442
|
else if (config.remoteExec.provider === "host") {
|
|
418
|
-
const gitBaseEnv = new RemoteHostExecutionEnv({ workspaceDir: config.worktreeIsolation.repoRoot, inheritEnv: "all", backgroundShell: config
|
|
443
|
+
const gitBaseEnv = new RemoteHostExecutionEnv({ workspaceDir: config.worktreeIsolation.repoRoot, inheritEnv: "all", backgroundShell: DEPLOYMENT_SHAPE_PREDICATES.backgroundShell.holds(config), gitBase: true });
|
|
419
444
|
executionEnvFactory = withWorktreeIsolation(executionEnvFactory, {
|
|
420
445
|
repoRoot: config.worktreeIsolation.repoRoot,
|
|
421
446
|
...(config.worktreeIsolation.allowedRoots ? { allowedRoots: config.worktreeIsolation.allowedRoots } : {}),
|
|
422
447
|
...(config.worktreeIsolation.commit ? { commit: config.worktreeIsolation.commit } : {}),
|
|
423
448
|
baseEnvForGit: gitBaseEnv,
|
|
424
449
|
rootEnvAt: (dir) => {
|
|
425
|
-
const env = new RemoteHostExecutionEnv({ ...homeDirSeat, workspaceDir: dir, backgroundShell: config
|
|
450
|
+
const env = new RemoteHostExecutionEnv({ ...homeDirSeat, workspaceDir: dir, backgroundShell: DEPLOYMENT_SHAPE_PREDICATES.backgroundShell.holds(config) });
|
|
426
451
|
return lspManager ? evictLspOnDestroy(env, lspManager) : env;
|
|
427
452
|
},
|
|
428
453
|
logger,
|
|
@@ -475,29 +500,7 @@ export function createExecutionEnv(ctx) {
|
|
|
475
500
|
if (config.remoteExec.provider === "host")
|
|
476
501
|
logger.info("task_inherit_env_honored", { honored: taskInheritEnvRefusal(config) === undefined });
|
|
477
502
|
}
|
|
478
|
-
|
|
479
|
-
const lspProvider = config.remoteExec.provider;
|
|
480
|
-
const lspLane = executionLaneOf(lspProvider);
|
|
481
|
-
const lspLaneBindsReads = lspLane !== undefined && laneBindsReads(lspLane);
|
|
482
|
-
if ((lspProvider === "e2b" || lspProvider === "k8s") && config.lspEnabled && !lspLaneBindsReads) {
|
|
483
|
-
logger.warn("lsp_not_mounted", {
|
|
484
|
-
provider: lspProvider,
|
|
485
|
-
reason: "LSP_ENABLED is set, but this lane's execution environment cannot bind a read to the file that was checked (openBound), so every language-server file sync would be refused; the LSP tool is not mounted on this lane in this version",
|
|
486
|
-
});
|
|
487
|
-
}
|
|
488
|
-
const lspManager = (lspProvider === "e2b" || lspProvider === "k8s") && config.lspEnabled && lspLaneBindsReads
|
|
489
|
-
? createE2bLspManager({
|
|
490
|
-
log: (event, fields) => logger.info(event, fields),
|
|
491
|
-
scheme: lspProvider === "k8s" ? "ws" : "wss",
|
|
492
|
-
provider: lspProvider,
|
|
493
|
-
metrics,
|
|
494
|
-
})
|
|
495
|
-
:
|
|
496
|
-
lspProvider === "host" && config.lspHostEnabled && config.requirePrincipal !== true && lspLaneBindsReads
|
|
497
|
-
? createHostLspManager(config, (event, fields) => logger.info(event, fields))
|
|
498
|
-
: undefined;
|
|
499
|
-
if (lspManager)
|
|
500
|
-
logger.info("lsp_enabled", { provider: lspProvider });
|
|
503
|
+
settleReadDenyFloor(config, logger);
|
|
501
504
|
const unreadableReported = new Set();
|
|
502
505
|
let stallReapFailureReported = false;
|
|
503
506
|
const stallMs = config.backgroundAgentStallMs;
|
|
@@ -533,8 +536,10 @@ export function createExecutionEnv(ctx) {
|
|
|
533
536
|
perTaskImage, sessionEnvSelection, perSessionCwd, setSessionCwd, setSessionShellEnv, setSessionInheritEnv,
|
|
534
537
|
fenceSessionOwner: sessionScoped.fenceSessionOwner,
|
|
535
538
|
dropSessionScoped: sessionScoped.dropSession,
|
|
539
|
+
dropSessionScopedOf: sessionScoped.dropSessionOf,
|
|
536
540
|
sessionResidentBackground,
|
|
537
|
-
executionEnvFactory, worktreeReap, sendUserFileTaskEnvs, lspManager, spaceReclaimer, sandboxSecretSeatGate,
|
|
541
|
+
executionEnvFactory, worktreeReap, sendUserFileTaskEnvs, lspManager, spaceReclaimer, sandboxSecretSeatGate, sandboxReaper, sandboxGitPlane,
|
|
542
|
+
sandboxCapacity,
|
|
538
543
|
};
|
|
539
544
|
}
|
|
540
545
|
//# sourceMappingURL=execution-env.js.map
|
|
@@ -58,12 +58,14 @@ export declare function composeDeclaredExecutionLane(loaded: LoadedConfig, logge
|
|
|
58
58
|
*/
|
|
59
59
|
export declare function settleHostLaneShell(config: Pick<ServiceConfig, "remoteExec">, logger: Pick<Logger, "info" | "warn">): Promise<void>;
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
61
|
+
* **读拒字节地板在本部署上怎么说** —— 两件事,一个入口:
|
|
62
|
+
* ① 把部署的执行车道装给说法的属主(`read-deny-floor-notice.ts` 的 `installReadDenyFloorDeployment`):每条 run 的通告 / 结果格 / 拒句由它点名 `REMOTE_EXEC=<车道>`;
|
|
63
|
+
* ② 起服一行:部署要求读拒表的字节地板(`READ_DENY_FLOOR_REQUIRED=true`)而最终车道的执行环境块不守 ⇒ 每条读拒表有行的 run 都在准备期拒 ——
|
|
64
|
+
* 起服先说清后果与出路(`warn read_deny_floor_required_unkept { provider, note }`;判据与句子的唯一属主 `buildReadDenyFloorUnkeptNote`,句子 = 每条 run 的拒句)。
|
|
63
65
|
* 两个入口调同一只(与 {@link settleHostLaneShell} 同形):HTTP 服务在执行环境装配里(`boot/execution-env.ts`,有没有执行环境工厂都调),`run-local` 在宿主车道定下之后 ——
|
|
64
|
-
* 旋钮两个入口都递给引擎(`RunnerDeps.readDenyFloorRequired`)
|
|
66
|
+
* 旋钮两个入口都递给引擎(`RunnerDeps.readDenyFloorRequired`),所以两个入口都要先装、先说。不要求 / 车道守地板 ⇒ 不出那一行(装照装:车道名是每条 run 的说法要的)。
|
|
65
67
|
*/
|
|
66
|
-
export declare function
|
|
68
|
+
export declare function settleReadDenyFloor(config: Parameters<typeof buildReadDenyFloorUnkeptNote>[0], logger: Pick<Logger, "warn">): void;
|
|
67
69
|
/**
|
|
68
70
|
* 车道合成之后的跨域不变量 —— 表(`config-invariants.ts`)里读 `remoteExec.provider` 的那几条,boot 期 `live === next`。
|
|
69
71
|
* 同步、纯判据:只读 config,不碰文件(测试可以对 `loadConfig()` 的产物直接调它)。
|
|
@@ -3,6 +3,7 @@ import { assertLocalConfigDirTrusted } from "../config-dir-trust.js";
|
|
|
3
3
|
import { crossInvariant } from "../config-invariants.js";
|
|
4
4
|
import { entryDeclarableRemoteExec } from "../config.js";
|
|
5
5
|
import { ALL_EXECUTION_LANES, buildReadDenyFloorUnkeptNote, laneIsolated, laneWiresExecutionEnv } from "../execution-lane-caps.js";
|
|
6
|
+
import { installReadDenyFloorDeployment } from "../read-deny-floor-notice.js";
|
|
6
7
|
import { buildReadFacePostureNotice, settleDerivedReadFace } from "../read-face-posture.js";
|
|
7
8
|
import { settleHostShellAtBoot } from "../plugins/host-platform.js";
|
|
8
9
|
import { seatText } from "../trace/exit-seat.js";
|
|
@@ -70,7 +71,8 @@ export async function settleHostLaneShell(config, logger) {
|
|
|
70
71
|
return;
|
|
71
72
|
await settleHostShellAtBoot(logger);
|
|
72
73
|
}
|
|
73
|
-
export function
|
|
74
|
+
export function settleReadDenyFloor(config, logger) {
|
|
75
|
+
installReadDenyFloorDeployment(config);
|
|
74
76
|
const note = buildReadDenyFloorUnkeptNote(config);
|
|
75
77
|
if (note !== undefined)
|
|
76
78
|
logger.warn("read_deny_floor_required_unkept", { provider: config.remoteExec.provider, note });
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* 不是退出边界)。
|
|
25
25
|
*/
|
|
26
26
|
import { type TaskRegistry } from "@sema-agent/core";
|
|
27
|
-
import type
|
|
27
|
+
import { type Logger } from "../observability/logger.js";
|
|
28
28
|
/**
|
|
29
29
|
* 退出边界的硬收面**此刻**会收掉的后台 shell 行数(`background_bash` + `monitor`,在跑,整张进程级注册表,retain 行按
|
|
30
30
|
* {@link PROCESS_EXIT_INCLUDES_RETAINED} 跳过)—— 「引擎现在退,会不会把一条在跑的后台 shell 一起收掉」这一问的**唯一**读法。
|
|
@@ -37,7 +37,7 @@ import type { Logger } from "../observability/logger.js";
|
|
|
37
37
|
*
|
|
38
38
|
* 读不出(core:某行 env 的 retain 声明读抛 ⇒ 计数抛)⇒ 按 **1** 计并经 `onUnreadable` 报出 —— 读不出 ⇒ 非空闲,与驻留项同一条律;
|
|
39
39
|
* 本函数在租约拍(定时器回调)、`/health` 与交接口里被调,**不许抛**(定时器里一抛就是 uncaught,一台交接出去的引擎会因此崩掉并收掉它本该留着的 shell)——
|
|
40
|
-
* 报口自己再抛(抛出物转不成文本之类)
|
|
40
|
+
* 报口自己再抛(抛出物转不成文本之类)也一样:落日志出口接缝的文本出口 `writeLogText`(不回同一只报口),读数照返 1。
|
|
41
41
|
* `registry` 只供测试换桩(只用到 `countRunningBackgroundShells`)。
|
|
42
42
|
*/
|
|
43
43
|
export declare function countShellsExitWouldKill(opts: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defaultTaskRegistry } from "@sema-agent/core";
|
|
2
2
|
import { reportHardKillReceipts } from "../background-session-reap.js";
|
|
3
|
+
import { writeLogText } from "../observability/logger.js";
|
|
3
4
|
import { liveHostForegroundChildCount, reapHostForegroundChildren } from "../plugins/host-platform.js";
|
|
4
5
|
import { liveEphemeralHostWorkspaceCount, reapEphemeralHostWorkspaces } from "../plugins/host-workspace-registry.js";
|
|
5
6
|
import { seatText } from "../trace/exit-seat.js";
|
|
@@ -14,7 +15,7 @@ export function countShellsExitWouldKill(opts) {
|
|
|
14
15
|
opts.onUnreadable(err);
|
|
15
16
|
}
|
|
16
17
|
catch (reportErr) {
|
|
17
|
-
|
|
18
|
+
writeLogText("stderr", "engine_handover_shell_count_report_threw", reportErr);
|
|
18
19
|
}
|
|
19
20
|
return 1;
|
|
20
21
|
}
|
|
@@ -70,19 +71,19 @@ export function installProcessExitBoundary({ logger }) {
|
|
|
70
71
|
reapOwnChildProcesses();
|
|
71
72
|
}
|
|
72
73
|
catch (err) {
|
|
73
|
-
|
|
74
|
+
writeLogText("stderr", "shutdown_exit_boundary_child_reap_threw", err);
|
|
74
75
|
}
|
|
75
76
|
try {
|
|
76
77
|
reapBackgroundHard();
|
|
77
78
|
}
|
|
78
79
|
catch (err) {
|
|
79
|
-
|
|
80
|
+
writeLogText("stderr", "shutdown_exit_boundary_background_hard_kill_threw", err);
|
|
80
81
|
}
|
|
81
82
|
try {
|
|
82
83
|
reapOwnHostWorkspaces();
|
|
83
84
|
}
|
|
84
85
|
catch (err) {
|
|
85
|
-
|
|
86
|
+
writeLogText("stderr", "shutdown_exit_boundary_workspace_reap_threw", err);
|
|
86
87
|
}
|
|
87
88
|
const left = { foregroundChildren: liveHostForegroundChildCount(), hostWorkspaces: liveEphemeralHostWorkspaceCount() };
|
|
88
89
|
try {
|
|
@@ -91,7 +92,7 @@ export function installProcessExitBoundary({ logger }) {
|
|
|
91
92
|
logger.warn("shutdown_exit_boundary_incomplete", left);
|
|
92
93
|
}
|
|
93
94
|
catch (err) {
|
|
94
|
-
|
|
95
|
+
writeLogText("stderr", "shutdown_exit_boundary_log_threw", err);
|
|
95
96
|
}
|
|
96
97
|
};
|
|
97
98
|
process.once("exit", onProcessExit);
|
|
@@ -18,12 +18,10 @@ export declare function buildFatalErrorText(err: unknown): string;
|
|
|
18
18
|
* ── 修 ─────────────────────────────────────────────────────────────────────────────────────────
|
|
19
19
|
* **同一只产物**再原样多行写一份到 stderr。刻意不做的三件:不铸第二份文案(两份措辞必然分叉)、不加
|
|
20
20
|
* pretty 旋钮(一个只有出错时才走的出口不该有配置面)、JSON 行**照旧**(机读面零回退,scraper 不动)。
|
|
21
|
-
* 两个面都在 stderr
|
|
22
|
-
* EPIPE
|
|
23
|
-
* 异步 `'error'`,无监听即致命),所以那条裸 `process.stderr.write` **必须**排在它之后;同步抛由下面的
|
|
24
|
-
* `try/finally` 兜住。
|
|
21
|
+
* 两个面都在 stderr,次序=先机器行后人读段;两个面都经日志出口接缝(`observability/logger.ts`:同一只秘密形筛、同一只
|
|
22
|
+
* 物理写,EPIPE 无害化监听由接缝在每次写之前装好),同步抛由下面的 `try/finally` 兜住。
|
|
25
23
|
*
|
|
26
|
-
*
|
|
24
|
+
* 全仓三个 fatal 出口(`main.ts` 的 `main().catch`、起服前探针 `model-plane-probe.ts` 的同名尾巴与 `run-local.ts` 的那一只)都经这里 —— run-local 此前
|
|
27
25
|
* 连形状律都没过(裸 `String(err)`),两处各写一遍正是「同类不同命」的土壤。
|
|
28
26
|
*/
|
|
29
27
|
export declare function fatalExit(err: unknown): never;
|
package/dist/boot/fatal-exit.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { redactSecrets } from "../trace/redact.js";
|
|
2
|
-
import { createLogger } from "../observability/logger.js";
|
|
2
|
+
import { createLogger, writeLogText } from "../observability/logger.js";
|
|
3
3
|
export function buildFatalErrorText(err) {
|
|
4
4
|
const code = err instanceof Error ? err.code : undefined;
|
|
5
5
|
return redactSecrets(typeof code === "string" && err instanceof Error ? `${err.name} [${code}]: ${err.message}` : String(err));
|
|
@@ -8,7 +8,7 @@ export function fatalExit(err) {
|
|
|
8
8
|
const text = buildFatalErrorText(err);
|
|
9
9
|
try {
|
|
10
10
|
createLogger().error("fatal", { err: text });
|
|
11
|
-
|
|
11
|
+
writeLogText("stderr", text);
|
|
12
12
|
}
|
|
13
13
|
finally {
|
|
14
14
|
process.exit(1);
|
package/dist/boot/leader.d.ts
CHANGED
|
@@ -81,5 +81,20 @@ export declare function leaderK8sMinioGap(leaderEnabled: boolean, leaderProvider
|
|
|
81
81
|
* 而承担的方式是重复的真实推送。
|
|
82
82
|
*/
|
|
83
83
|
export declare function assertLeaderDurableStore(leaderEnabled: boolean, hasLeaderRunStore: boolean): void;
|
|
84
|
+
/**
|
|
85
|
+
* leader 的对象存储座(F2(a) 工厂模式的 diff-out:worker 自传补丁到 `<桶>/leader-diff/…`,leader 用同桶的 presigned GET 取回)。纯数据:三键齐(`MINIO_ENDPOINT` /
|
|
86
|
+
* `MINIO_ACCESS_KEY` / `MINIO_SECRET_KEY`)⇒ `{ s3 }`,否则 `{}`(静态兼容模式;k8s 车道要它)。
|
|
87
|
+
* 桶 = `MINIO_BUCKET`,缺席 = 工作区快照桶的**缺省名**(`WORKSPACE_SNAPSHOT_BUCKET_DEFAULT`,同一只常量)。两根旋钮各自独立:改了 `WORKSPACE_SNAPSHOT_BUCKET` 的部署,
|
|
88
|
+
* leader 的补丁仍落 `MINIO_BUCKET` 那一只 —— 要同桶就两根同设(目录两行写明)。
|
|
89
|
+
*/
|
|
90
|
+
export declare function buildLeaderObjectStore(env?: NodeJS.ProcessEnv): {
|
|
91
|
+
readonly s3?: {
|
|
92
|
+
endpoint: string;
|
|
93
|
+
bucket: string;
|
|
94
|
+
accessKey: string;
|
|
95
|
+
secretKey: string;
|
|
96
|
+
region?: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
84
99
|
export declare function createLeaderFace(ctx: LeaderCtx): ReturnType<typeof createLeaderEndpoint> | undefined;
|
|
85
100
|
//# sourceMappingURL=leader.d.ts.map
|
package/dist/boot/leader.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { createLeaderEndpoint } from "../leader/endpoint.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { seesRunAs } from "../http/owner-access.js";
|
|
3
|
+
import { claimCallerOf } from "../security.js";
|
|
4
|
+
import { createLeaderParkExpirer, createLeaderRunner } from "../leader/wire.js";
|
|
5
|
+
import { buildDeploymentPostureSeats, buildHandsBand } from "./runner-deps.js";
|
|
5
6
|
import { hasApprovalListIntent } from "../approval.js";
|
|
7
|
+
import { WORKSPACE_SNAPSHOT_BUCKET_DEFAULT } from "../object-store-buckets.js";
|
|
6
8
|
export function leaderK8sMinioGap(leaderEnabled, leaderProvider, hasS3) {
|
|
7
9
|
if (!(leaderEnabled && leaderProvider === "k8s" && !hasS3))
|
|
8
10
|
return null;
|
|
@@ -21,19 +23,17 @@ export function assertLeaderDurableStore(leaderEnabled, hasLeaderRunStore) {
|
|
|
21
23
|
"without it a retry starts a SECOND real git push. Fix the database (or unset LEADER_ENABLED) and restart " +
|
|
22
24
|
"(#193 车4 件2 capability gate; the DB_BACKEND literal check in config.ts is the intent half of the same rule)");
|
|
23
25
|
}
|
|
26
|
+
export function buildLeaderObjectStore(env = process.env) {
|
|
27
|
+
const endpoint = env.MINIO_ENDPOINT;
|
|
28
|
+
const accessKey = env.MINIO_ACCESS_KEY;
|
|
29
|
+
const secretKey = env.MINIO_SECRET_KEY;
|
|
30
|
+
if (!endpoint || !accessKey || !secretKey)
|
|
31
|
+
return {};
|
|
32
|
+
return { s3: { endpoint, bucket: env.MINIO_BUCKET ?? WORKSPACE_SNAPSHOT_BUCKET_DEFAULT, accessKey, secretKey, ...(env.MINIO_REGION ? { region: env.MINIO_REGION } : {}) } };
|
|
33
|
+
}
|
|
24
34
|
export function createLeaderFace(ctx) {
|
|
25
35
|
const { config, logger, brain, pricing, executionEnvFactory, toolResultStore, sessionStore, checkpointStore, checkpointCtxSealing, governanceSeams } = ctx;
|
|
26
|
-
const leaderMinio =
|
|
27
|
-
? {
|
|
28
|
-
s3: {
|
|
29
|
-
endpoint: process.env.MINIO_ENDPOINT,
|
|
30
|
-
bucket: process.env.MINIO_BUCKET ?? "workspaces",
|
|
31
|
-
accessKey: process.env.MINIO_ACCESS_KEY,
|
|
32
|
-
secretKey: process.env.MINIO_SECRET_KEY,
|
|
33
|
-
...(process.env.MINIO_REGION ? { region: process.env.MINIO_REGION } : {}),
|
|
34
|
-
},
|
|
35
|
-
}
|
|
36
|
-
: {};
|
|
36
|
+
const leaderMinio = buildLeaderObjectStore();
|
|
37
37
|
const leaderProvider = config.remoteExec.provider;
|
|
38
38
|
const leaderRunStore = ctx.backend?.leaderRun?.();
|
|
39
39
|
assertLeaderDurableStore(config.leaderEnabled, leaderRunStore !== undefined);
|
|
@@ -60,6 +60,7 @@ export function createLeaderFace(ctx) {
|
|
|
60
60
|
...(ctx.promptSource ? { promptSource: ctx.promptSource } : {}),
|
|
61
61
|
...(ctx.onError ? { onError: ctx.onError } : {}),
|
|
62
62
|
mods: ctx.deploymentMods,
|
|
63
|
+
hands: buildHandsBand(config, undefined),
|
|
63
64
|
fanoutEnabled: config.leaderFanoutEnabled,
|
|
64
65
|
...(process.env.MODEL_ROUTER_ID ? { routerModel: process.env.MODEL_ROUTER_ID } : {}),
|
|
65
66
|
...(leaderProvider === "e2b" ? { e2bApiKey: config.remoteExec.apiKey } : {}),
|
|
@@ -87,7 +88,8 @@ export function createLeaderFace(ctx) {
|
|
|
87
88
|
logger,
|
|
88
89
|
requiredFields: ["objective", "durableRemote", "testCmd", "seedCmd", "baseSha"],
|
|
89
90
|
...(leaderRunStore ? { store: leaderRunStore } : {}),
|
|
90
|
-
ownerVisible:
|
|
91
|
+
ownerVisible: (subject, owner) => seesRunAs("run.leader", claimCallerOf(subject ?? undefined, config), owner ?? null),
|
|
92
|
+
...(checkpointStore ? { expireWorkerParks: createLeaderParkExpirer(checkpointStore) } : {}),
|
|
91
93
|
})
|
|
92
94
|
: undefined;
|
|
93
95
|
if (leaderEndpoint)
|