@sema-agent/server 7.147.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 +1039 -24
- package/README.md +20 -7
- package/README.zh-CN.md +14 -8
- package/USAGE.md +380 -163
- 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/adoption/wire.d.ts +3 -3
- package/dist/approval-card.d.ts +28 -30
- 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 +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 +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 +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 +37 -31
- 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-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 +55 -67
- 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 +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 +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.js +9 -1
- package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
- package/dist/boot/stage-02-web-admin-pull.js +6 -1
- package/dist/boot/stage-03-store-backend.d.ts +3 -0
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +2 -0
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +7 -3
- package/dist/boot/stage-05-execution-env.js +2 -2
- package/dist/boot/stage-06-runners.d.ts +10 -12
- package/dist/boot/stage-06-runners.js +23 -15
- package/dist/boot/stage-07-capability-layer.d.ts +11 -8
- package/dist/boot/stage-07-capability-layer.js +5 -3
- package/dist/boot/stage-08-reapers.d.ts +11 -8
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +12 -15
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +12 -15
- 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 +3 -0
- package/dist/boot/stores.js +21 -10
- 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 +38 -11
- package/dist/capability-facts.js +47 -8
- 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 +7 -3
- package/dist/config-catalog.d.ts +16 -1
- package/dist/config-catalog.js +62 -56
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +42 -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 +26 -17
- package/dist/config.d.ts +8 -16
- package/dist/config.js +113 -47
- 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 +30 -4
- package/dist/deployment-shape.js +7 -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-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-lane-caps.d.ts +5 -18
- package/dist/execution-lane-caps.js +0 -22
- 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/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +67 -57
- package/dist/hooks/hook-runner.js +260 -186
- 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 +3 -3
- package/dist/http/approval-sweeps.js +54 -30
- 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 +4 -3
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +76 -30
- package/dist/http/durable-run-leg.d.ts +3 -3
- package/dist/http/durable-run-leg.js +17 -12
- package/dist/http/execution-context.d.ts +17 -43
- package/dist/http/execution-context.js +7 -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 +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 +391 -67
- package/dist/http/owner-access.js +371 -35
- package/dist/http/principal-gate.d.ts +24 -81
- package/dist/http/principal-gate.js +24 -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 +35 -12
- package/dist/http/resume-ctx-read.js +25 -6
- package/dist/http/resume-legs.d.ts +21 -18
- package/dist/http/resume-legs.js +189 -129
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/route-ctx.d.ts +25 -32
- 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 +70 -65
- 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 +15 -18
- 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 +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 +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 +1 -1
- package/dist/http/routes/principal-inbox.js +2 -2
- 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 +146 -231
- 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 +21 -20
- 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 +136 -120
- 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 +39 -40
- package/dist/http/server.js +36 -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 +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 +4 -3
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -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/lsp-evict.d.ts +6 -4
- package/dist/lsp-evict.js +2 -3
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-scope.d.ts +29 -2
- package/dist/memory-scope.js +64 -15
- package/dist/memory-store-refusal.d.ts +5 -2
- package/dist/memory-sync-client.d.ts +3 -2
- package/dist/memory-sync-client.js +6 -3
- package/dist/model-compat.d.ts +17 -8
- package/dist/model-compat.js +6 -2
- 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 +35 -16
- package/dist/model-entry-refusal.js +40 -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 +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 +58 -38
- package/dist/observability/fail-open.js +60 -38
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.js +3 -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/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 +5 -4
- package/dist/org-delivery-gate.js +7 -6
- 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 +67 -5
- package/dist/parked-decide.js +127 -5
- 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 +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 +39 -20
- package/dist/plugins/approval-ask-store-sql.js +41 -10
- 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 +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 +0 -15
- package/dist/plugins/ensure-schema-lock-policy.js +3 -2
- package/dist/plugins/file-run-store.d.ts +63 -23
- package/dist/plugins/file-run-store.js +138 -83
- 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 +58 -23
- package/dist/plugins/local-checkpoint-store.js +195 -76
- package/dist/plugins/local-data-dir-modes-m39.js +2 -1
- 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 +4 -2
- package/dist/plugins/local-engine-high-water.js +4 -1
- package/dist/plugins/local-session-store.d.ts +358 -125
- package/dist/plugins/local-session-store.js +824 -251
- 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 +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 +186 -45
- package/dist/plugins/one-time-migrations.js +442 -119
- package/dist/plugins/org-delivery-quota-store.js +2 -1
- package/dist/plugins/permission-rule-store-file.d.ts +3 -3
- 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 +1 -31
- package/dist/plugins/pg-pool.js +16 -7
- package/dist/plugins/remote-env-e2b.d.ts +7 -25
- package/dist/plugins/remote-env-e2b.js +34 -25
- package/dist/plugins/remote-env-host.d.ts +2 -9
- package/dist/plugins/remote-env-host.js +34 -22
- package/dist/plugins/remote-env-k8s.d.ts +40 -45
- package/dist/plugins/remote-env-k8s.js +107 -58
- package/dist/plugins/remote-env-local-docker.d.ts +148 -14
- package/dist/plugins/remote-env-local-docker.js +367 -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 +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 -9
- package/dist/plugins/schema-consistency.js +212 -11
- 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 +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 +22 -16
- 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 +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/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/store-backend.d.ts +84 -15
- package/dist/plugins/store-backend.js +186 -55
- package/dist/plugins/store-contracts.d.ts +90 -30
- package/dist/plugins/store-contracts.js +22 -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.js +23 -8
- 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/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-local.d.ts +14 -6
- package/dist/run-local.js +92 -80
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +26 -15
- package/dist/runs.js +39 -27
- 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 +21 -5
- package/dist/server-secret-env.js +14 -4
- 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 +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/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-posture.d.ts +136 -20
- package/dist/store-posture.js +188 -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 +33 -28
- package/dist/stores-sql/checkpoint-store-sql.js +75 -44
- 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/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 +1 -1
- package/dist/task-a2a.js +3 -3
- package/dist/task-cwd.d.ts +20 -0
- package/dist/task-cwd.js +8 -0
- package/dist/task-mcp.d.ts +1 -1
- package/dist/task-mcp.js +3 -3
- package/dist/task-settings.d.ts +14 -10
- package/dist/task-settings.js +18 -7
- package/dist/terminal.d.ts +25 -43
- package/dist/terminal.js +31 -11
- package/dist/tool-approval.d.ts +131 -129
- package/dist/tool-approval.js +189 -193
- 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/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 +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 +55 -42
- package/dist/trace/project.js +52 -19
- package/dist/trace/redact.d.ts +123 -27
- package/dist/trace/redact.js +880 -260
- package/dist/trace/self-minted-wire.d.ts +487 -19
- package/dist/trace/self-minted-wire.js +172 -23
- 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 +13 -16
- 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/package.json +6 -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/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
package/dist/security.d.ts
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
import type { IncomingMessage } from "node:http";
|
|
2
2
|
import { type SessionHead, type SessionPlacementRecord, type SessionStore, type SessionTreeEntry } from "@sema-agent/core";
|
|
3
3
|
import type { ServiceConfig } from "./config-types.js";
|
|
4
|
+
import type { Logger } from "./observability/logger.js";
|
|
4
5
|
import { type DeploymentShapeInput } from "./deployment-shape.js";
|
|
6
|
+
import { type Caller, type FaceId } from "./owner-faces.js";
|
|
7
|
+
import { type DurableOwnerKey, type Person, type Subject, type SubjectParts } from "./owner-brands.js";
|
|
5
8
|
import type { TaskRequestBody } from "./http/wire-types.js";
|
|
6
9
|
import type { StagingHandle } from "./session-sync-kernel.js";
|
|
10
|
+
import type { SessionDeletionFace } from "./session-deletion.js";
|
|
11
|
+
import { type SessionBirth } from "./session-incarnation.js";
|
|
7
12
|
import type { ClientSessionRowWrite, ReplaySessionRowWrite, ReplaySessionRowWriteOutcome, SessionRowAnswer, SessionRowPatch, SessionRowWriteOutcome } from "./session-row.js";
|
|
8
13
|
import type { ExecutionPlacementSeat } from "./execution-placement.js";
|
|
9
14
|
import type { SessionUnreadable } from "./session-error-wire.js";
|
|
10
15
|
import type { ForkPlacement, ForkTarget, ForkToOutcome } from "./plugins/session-fork.js";
|
|
16
|
+
import { type SessionWithdrawFace } from "./plugins/session-birth.js";
|
|
17
|
+
import type { LocalSessionDeletionSection } from "./session-erase.js";
|
|
11
18
|
/** One row of the session-list projection (CC /resume picker) — the durable session abstraction's enumeration
|
|
12
|
-
* output (§0.5)
|
|
19
|
+
* output (§0.5); same shape as `SessionSummary` in `plugins/store-contracts.ts`. `objectivePreview` = the most recent run whose preview
|
|
20
|
+
* column is a non-empty string (the column `GET /v1/tasks` reads; injected blocks stripped, redacted, cut to 120 at write), else `null`. */
|
|
13
21
|
export interface SessionListItem {
|
|
14
22
|
sessionId: string;
|
|
15
23
|
owner: string | null;
|
|
@@ -44,6 +52,10 @@ export interface SessionListItem {
|
|
|
44
52
|
* A store whose head leaf is a row column (the SQL twins) never carries it. Additive key, passed through unprojected (`sessions-list.ts`).
|
|
45
53
|
* Same name and meaning as `SessionSummary.unreadable` in `plugins/store-contracts.ts`. */
|
|
46
54
|
unreadable?: SessionUnreadable;
|
|
55
|
+
/** Fork lineage: the id of the session this one was forked from (core's `SessionMetadata.forkedFrom`, the same word) — present-iff the row was created
|
|
56
|
+
* by a fork after lineage was recorded (an older fork is not backfilled: its source is unknown). OMIT-when-absent, never `null`. Additive key, passed
|
|
57
|
+
* through unprojected (`sessions-list.ts`). Same name and meaning as `SessionSummary.forkedFrom` in `plugins/store-contracts.ts`. */
|
|
58
|
+
forkedFrom?: string;
|
|
47
59
|
}
|
|
48
60
|
/**
|
|
49
61
|
* 会话店的行格写原语(规则与判序:`session-row.ts` 头注「写原语」)—— 按入口分两只重载:客户端写(PATCH)的结局闭集四员;行重放(2c 导入落定后的那一笔)
|
|
@@ -63,7 +75,7 @@ export interface SessionRowCellsWriter {
|
|
|
63
75
|
* 而 `DELETE /v1/sessions/:id`(删整条会话)不在其中 —— 同一风险形、爆炸半径**更大**,却没门。
|
|
64
76
|
*
|
|
65
77
|
* 风险形逐字同源(守卫自己的注释):「无 service token + 未开 `ALLOW_UNAUTHED_WRITES`」这一形下
|
|
66
|
-
* fleet 写档(`
|
|
78
|
+
* fleet 写档(面表 fleet 列的 `dev_open` 格,`owner-faces.ts` 的 `listFilterOf`)判 fleet-wide ⇒ 集群内**任意**调用方可对**任意** session 动手。
|
|
67
79
|
* policy 腿担心的是「forged principal 能 tighten/DoS 一个会话的工具」;DELETE 直接把会话删掉。
|
|
68
80
|
*
|
|
69
81
|
* ⇒ 枚举改**族判定**:新增一条破坏性会话路由时自动落进门内,不必记得回来加白名单。
|
|
@@ -73,26 +85,6 @@ export interface SessionRowCellsWriter {
|
|
|
73
85
|
* 不含读面,也不含 `POST /v1/tasks` 那条提交腿 —— 它有自己的同族门(别重复拦,双拦会让错误归因变糊)。
|
|
74
86
|
*/
|
|
75
87
|
export declare function isDestructiveSessionWrite(method: string, url: string): boolean;
|
|
76
|
-
declare const principalBrand: unique symbol;
|
|
77
|
-
declare const durableOwnerKeyBrand: unique symbol;
|
|
78
|
-
/**
|
|
79
|
-
* 🔴 **两个 owner 不是同一个东西**([ref] RH-3,类型事实):
|
|
80
|
-
* · {@link Principal} —— **这次请求**验过的调用方身份。铸点闭集:`http/principal-gate.ts` 的 `gatedPrincipal`(验身份的那一只),以及属主存取器
|
|
81
|
-
* (`http/owner-access.ts`)里一只「上游已验」的适配口(调用方身份经一只纯串结构转手过来的腿 —— 第二期随那只结构带品牌而删);
|
|
82
|
-
* · {@link DurableOwnerKey} —— **行上 / 存储键里**落下的属主(run 行、会话行的 `owner` 列)。铸点闭集:属主存取器读行处与 {@link sessionOwnerCellOf}。
|
|
83
|
-
* 两者互不可赋、裸 `string` 两者都不可赋;「这个调用方读得到这一行吗」的判官(`runOwnerReadable`)签名两参各带一个品牌,对调即编译红。
|
|
84
|
-
* 铸点按文件计数钉在 `test/owner-gate-single-owner.test.ts` 的品牌铸点普查格里:多一处铸点 = 门红。
|
|
85
|
-
*/
|
|
86
|
-
export type Principal = string & {
|
|
87
|
-
readonly [principalBrand]: true;
|
|
88
|
-
};
|
|
89
|
-
export type DurableOwnerKey = string & {
|
|
90
|
-
readonly [durableOwnerKeyBrand]: true;
|
|
91
|
-
};
|
|
92
|
-
/** {@link Principal} 的铸造口(只在铸点闭集里调,见上)。 */
|
|
93
|
-
export declare function mintPrincipal(verified: string): Principal;
|
|
94
|
-
/** {@link DurableOwnerKey} 的铸造口(只在铸点闭集里调,见上)。 */
|
|
95
|
-
export declare function mintDurableOwnerKey(persisted: string): DurableOwnerKey;
|
|
96
88
|
/**
|
|
97
89
|
* 会话行属主门读的那一格([ref]):有主的行只有属主;**无主的行**另带「它是不是委派子代的 placed 行」(店的 `placementOf` 答,{@link sessionOwnerCellOf} 读;
|
|
98
90
|
* 不实现 placement 的店没有 placed 行)。`placed` 只在无主时存在 —— 有主的行属主门不看它。
|
|
@@ -103,93 +95,33 @@ export type SessionOwnerCell = {
|
|
|
103
95
|
readonly owner: null;
|
|
104
96
|
readonly placed: boolean;
|
|
105
97
|
};
|
|
106
|
-
/** 会话行属主门的调用方:验过的主体(`gatedPrincipal`)+ 它是不是 **fleet 调用方**(dev-open 部署上的任何调用方,或出示了这台部署的 service 凭据、
|
|
107
|
-
* 不报主体的调用方 —— 除非部署声明 `SERVICE_TOKEN_ACTS_FOR_DEPLOYMENT=false`)。唯一铸点 `http/principal-gate.ts` 的 `sessionCallerOf`。 */
|
|
108
|
-
export interface SessionCaller {
|
|
109
|
-
readonly principal: Principal | undefined;
|
|
110
|
-
readonly fleet: boolean;
|
|
111
|
-
}
|
|
112
98
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* 或出示了 service 凭据、不报主体的调用方 —— 只配 token 的单用户部署、BFF 的系统调用;部署声明 `SERVICE_TOKEN_ACTS_FOR_DEPLOYMENT=false` 时后者不是 fleet)。
|
|
118
|
-
* 任何具名主体(含经 BFF 代发的)与无身份调用方(没有 service 凭据的;声明形上不报主体的 service 凭据)都不成立:
|
|
119
|
-
* 这一行要么属于一棵无身份调用方的树(引擎交的属主是 `null`),要么是属主从没被记下的行 —— 7.144.0 之前写下的存量(7.132.x 及更早建行不记属主;7.133.0–7.143.x 按本服务当年的推断写下,
|
|
120
|
-
* 推断那一刻来源还没有属主的仍无主;SQL 两店由一次性迁移 M23 在它的窗内回填),以及 local 文件店上 7.144.x 及更早建行两笔之间崩溃留下的行(7.145.0 起建行格先、存档后,不再新生)、
|
|
121
|
-
* 同一数据根上 run-local 腿经 core 店写下的 placed 存档(local 没有回填臂)
|
|
122
|
-
* —— 后者把它当公共行,就是把别人那棵树的子代转录交给拿到 id 的人。
|
|
123
|
-
* · 有主的行 ⇒ 不在本臂。
|
|
99
|
+
* 只按「验过的主体 + 部署两格」判的调用方:提交挂接(认领面 `session.attach`,主体 = 提交管线的 `verifiedSubject`)、提交重放与 leader 登记表(主体 = 幂等身份
|
|
100
|
+
* `IdemCaller.subject`,同一只验身份的读数)、peer 目录席(列表面 `session.list`;主体 = 引擎交来的 scope 经 `partsOf` 恢复)。这几口的面不放运维、不放 fleet(面表那几行 `operator: false`、`fleet: []`,
|
|
101
|
+
* 结构钉在 `test/owner-access.test.ts`;peer 目录是引擎侧的席,不是 fleet 调用方)⇒ 这两格在这里恒缺,不读请求的 fleet 事实。主体已带品牌进来,这里不铸。
|
|
102
|
+
* `Caller` 铸点之一(另两只在 `http/owner-access.ts`:`callerOf` / `callerOfDecision`)。
|
|
124
103
|
*/
|
|
125
|
-
export declare function
|
|
126
|
-
/**
|
|
104
|
+
export declare function claimCallerOf(subject: Subject | undefined, config: DeploymentShapeInput<"principal">): Caller;
|
|
105
|
+
/** 提交挂接「没有这只会话」那一答的句子(requireExisting 缺行与认领面看不见同一句;投影 `attach_absent`)。 */
|
|
106
|
+
export declare const ATTACH_ABSENT_MESSAGE = "requireExistingSession: session does not exist (resume.session_not_found)";
|
|
107
|
+
/** 读一只会话行的 {@link SessionOwnerCell}:有主行 = 属主那一格(`owner-faces.ts` 的 `ownerCellOf`,属主列读数的唯一铸法);无主时问一次店的 `placementOf`
|
|
108
|
+
* (既有读口;店不交它 = 不实现 placement = 没有 placed 行)。`owner` = 调用点那一读。 */
|
|
127
109
|
export declare function sessionOwnerCellOf(store: Pick<OwnerAwareSessionStore, "placementOf"> | undefined, sessionId: string, owner: string | null): Promise<SessionOwnerCell>;
|
|
128
|
-
/** [ref] 窄互认第二臂的租户键字面量 —— 单机形下 core 写侧 `spec.principal ?? "default"` 铸出的那一个,
|
|
129
|
-
* 也是壳 [ref]G1 翻面后随请求带的那一个。**不是哨兵**([ref] 措辞):它是单机形的真租户键。 */
|
|
130
|
-
export declare const LEGACY_UNOWNED_AMNESTY_TENANT = "default";
|
|
131
|
-
/**
|
|
132
|
-
* [ref] 窄互认**第二臂**(clay 裁 A / [ref] 下达;cli [ref] 表态即发)—— `legacyShellOwner`
|
|
133
|
-
* (本文件 createAuthorizer 内 + http/server.ts `runOwnerOk`)的对称孪生。
|
|
134
|
-
*
|
|
135
|
-
* 病灶:7.8.0 第一臂承接的是 `owner === "anon:shell-live"` 哨兵行;此后壳把无主表示法归一为
|
|
136
|
-
* **缺席**,于是 1.0.82 及更早留下的存量会话 owner 列是 **null**。壳 1.0.83 起随请求带
|
|
137
|
-
* `default` 主([ref] G1 闸口),`null !== "default"` ⇒ 存量会话在 session 面
|
|
138
|
-
* **列表不出现 / fork 404 / delete 静默 {deleted:false} / workspace 404**(三面矩阵 [ref] 面3;
|
|
139
|
-
* fleet 面与 run 读面天然连续,面1/面2 零施工)。
|
|
140
|
-
*
|
|
141
|
-
* 🔒 **三条件缺一不放行**(与第一臂同源,不是兼容臂):
|
|
142
|
-
* ① 单机形(部署形表行 `multiTenant` 不成立)—— 多租部署本臂**死路**(header 必到、键必具名);
|
|
143
|
-
* ② 存量行恰为无主 `owner === null`、且不是委派子代的 placed 行(无主臂的唯一判据 {@link ownerlessRowOpen})—— 任何具名 owner 的行不受影响;
|
|
144
|
-
* ③ 调用方恰为 `default` 主 —— 非 default 的具名主对无主行仍走原门(404 / deleted:false)。
|
|
145
|
-
* 反向风险有界:①限定的单机形本就单用户,把无主行判给 default 主不产生跨租外泄。
|
|
146
|
-
*
|
|
147
|
-
* 🪦 墓碑注(与第一臂同源):这是两个表示法之间的**过渡承接**。存量随会话生命周期消亡后,本臂
|
|
148
|
-
* 连同 {@link LEGACY_UNOWNED_AMNESTY_TENANT} 与几处调用点可**整删**,不留兼容层。
|
|
149
|
-
*
|
|
150
|
-
* ── 同步族(`…/sync/*`:拉取 / 推送 / 开导入 / 导入第二阶段)──────────────────────────────────
|
|
151
|
-
* 同步族四口自 7.134.0 同走本臂(表态见 7.134.0 发车帖;三条件不变):属主门是 `http/routes/session-sync.ts` 的一只布尔 `mayTouch`,与 fork / 删除同一只谓词、同一对读法
|
|
152
|
-
* (`sessionCallerOf` + `sessionOwnerCellOf`),不另立判据。这一族带破坏性的 import 腿,但单用户形下 `default` 是唯一用户,与已走本臂的删除同级,没有新增跨租风险;
|
|
153
|
-
* 多租形、非 `default` 主体、无主的 placed 行仍与不存在的会话同码同体。暂存句柄的归属不因本臂放宽(非 fleet 调用方只推自己开的暂存,fleet 调用方照旧可推任何一张)。
|
|
154
|
-
*
|
|
155
|
-
* ── 逐面判过、**刻意不放行**的两处(免得后人当遗漏再补一次)────────────────────────────────
|
|
156
|
-
* · `runOwnerOk` 三读面(head / audit 单读 / events):`owner === null` 那一支**本来就放行**
|
|
157
|
-
* (判据是 `owner !== null && principal !== owner`),不需要本臂。[ref] 帖文里「单读 404」一句
|
|
158
|
-
* 经亲读实现行**不成立**,已加现状钉(session-head-probe.test.ts)锁住这个事实。
|
|
159
|
-
* · `GET|PUT /v1/sessions/:id/policy` 的 `owner === null ⇒ 409 conflict.session_ownerless`:那是**有意的
|
|
160
|
-
* fail-closed** —— 规则按「会话 × principal」存、按 run 的 principal 读,而规则路由的存储键就是会话的属主;无主会话没有
|
|
161
|
-
* 这把键,替它读写规则只能**猜**一个 principal(猜错 = 200 说已生效,其实没有哪条 run 读它)。已经存下的规则不受影响:
|
|
162
|
-
* 它们存在当初那个属主的键下,那个 principal 的 run 照读照生效(7.119.0 前 local 后端重启即把属主忘掉,于是那些规则
|
|
163
|
-
* 在跑、却读不到也删不掉 —— 修在属主落盘,不在放宽本门)。放宽它等于制造一条 fail-open,不在本臂辖域。
|
|
164
|
-
*
|
|
165
|
-
* @param deployment 部署形(条件①;读表行 `multiTenant`)
|
|
166
|
-
* @param caller 调用方(条件③ 读它验过的主体;fleet-wide 面不经本臂)
|
|
167
|
-
* @param cell 存量行那一格(条件②:无主,且经无主臂的唯一判据 {@link ownerlessRowOpen} —— 无主的委派子代 placed 行不在本臂,[ref])
|
|
168
|
-
*/
|
|
169
|
-
export declare function legacyUnownedSessionOk(deployment: DeploymentShapeInput<"principal">, caller: SessionCaller, cell: SessionOwnerCell): boolean;
|
|
170
110
|
/**
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
* 它是 store 侧 `owner = ? OR owner IS NULL` 这一句 SQL 谓词 —— 三条件仍然齐,只是第三条件由 SQL 承载
|
|
175
|
-
* (`listSessions({ owner, includeUnowned })` 的 `includeUnowned` 位即本函数的返回值)。
|
|
176
|
-
* 单实体读/写点(fork/delete/同步族/workspace)**一律**用三条件齐的 {@link legacyUnownedSessionOk},不要用本函数。
|
|
111
|
+
* 🔴 **一只会话行在这一口上的行格**(会话面的门与认领门同读这一只):有主行就是属主;无主行的 placed 位按 `owner-faces.ts` 的 `ownerlessCellWithoutRead`
|
|
112
|
+
* 只在两种假设不都放行时问店;问了、而这只会话的存档读不出({@link archiveUnreadable})⇒ 按面表本口的 `placementUnreadable` 列:`ordinary` 读作普通无主行,
|
|
113
|
+
* `raise` 原故障上抛;别的读故障(店连接类等)一律上抛,各口按店故障的码族答。
|
|
177
114
|
*/
|
|
178
|
-
export declare function
|
|
179
|
-
/** [ref] 存量哨兵窄互认的行属主字面量 —— cli ≤1.0.70 在本地单用户模式自发的 principal 头,存量会话的属主列就是它(引擎不发明这个字面量)。 */
|
|
180
|
-
export declare const LEGACY_SHELL_SENTINEL_OWNER = "anon:shell-live";
|
|
115
|
+
export declare function sessionCellFor(face: FaceId, caller: Caller, store: Pick<OwnerAwareSessionStore, "placementOf"> | undefined, sessionId: string, owner: string | null): Promise<SessionOwnerCell>;
|
|
181
116
|
/**
|
|
182
|
-
* 🔴
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* 读者:`createAuthorizer` 的会话属主门(有主的行)、`http/principal-gate.ts` 的 `runOwnerReadable`(有主的行)、`deleted-session-ids.ts` 的墓碑读点(删前属主 vs 本次住客)。
|
|
189
|
-
* 不在本判官里的两件(它们问的不是「是不是同一位」):无主的委派子代 placed 行只对 fleet 调用方开放(读面律 {@link ownerlessRowOpen});
|
|
190
|
-
* 删除 / fork / 同步族的放行另有 fleet 臂与 placed 判({@link legacyUnownedSessionOk} = 本判官的第二臂 ∧ {@link ownerlessRowOpen})。
|
|
117
|
+
* 🔴 **「行上记下的属主」与「这一次的住客」是不是同一位**(本进程删过的会话 id 墓碑 `deleted-session-ids.ts` 的读点与铸点用):属主律事实函数 {@link qualsOf} 的**投影**,不另写第二份判官 ——
|
|
118
|
+
* 两格资格各取一格:有主的行 ⇒ `owner`(字面同一位);无主的行 ⇒ 两边都无主,或 `j4`(单机形里无主的行 ≡ `default`)。
|
|
119
|
+
* **有方向、不传递**:`rowOwner` 是行上记下的(或删前记下的)属主,`occupant` 是这一次的住客(没有主体 = `null`);窄臂只认它那一对,
|
|
120
|
+
* 不由它推出「`default` 的行 ≡ 无主体的调用方」。存量哨兵属主(`anon:shell-live`)在没有身份边界的部署上已由一次性迁移 M48 改写成无主(有身份边界的部署上不改写),不再有按字面量互认的臂 —— 它在这里就是一位普通的具名属主。
|
|
121
|
+
* 住客是已落成字节的属主列读数(执行上下文解析器交来的根会话行住客),经 {@link recoveredSubject} 恢复成主体 —— 坏形的 `_scn:` 串响亮抛(数据坏,不猜)。
|
|
122
|
+
* 不是「看得见 / 动得了」的判法(那是面表 {@link visibleOn} 的事:无主的行对任何调用方开放,在这里不算同一位)。
|
|
191
123
|
*/
|
|
192
|
-
export declare function sameSessionOwner(deployment: DeploymentShapeInput<"principal">, rowOwner: string | null,
|
|
124
|
+
export declare function sameSessionOwner(deployment: DeploymentShapeInput<"principal">, rowOwner: string | null, occupant: string | null): boolean;
|
|
193
125
|
/**
|
|
194
126
|
* 本仓会话店的面 = core `SessionStore` + 本仓的行面(登记 / 列表 / 换装 / 同步……)。
|
|
195
127
|
* 🔴 **按 id 读一行只有一只**:core 的 `headOf(id)`(`{ owner, incarnation, leafId }`,同一行一次读;core 7.55.0 [ref] S2)。
|
|
@@ -258,11 +190,15 @@ export type OwnerAwareSessionStore = SessionStore & {
|
|
|
258
190
|
/** 执行席(规则在 `execution-placement.ts`):根会话行上这一位住客的那一格的唯一读口(`read`)与 place / markMirror 两只写口。三店都有;两只包装原样转发。
|
|
259
191
|
* 缺席 = 会话店没有执行放置(只有不带它的测试走廊 / 嵌入形),调用方各按自己的缺席臂处置。 */
|
|
260
192
|
executionPlacement?: ExecutionPlacementSeat;
|
|
261
|
-
/**
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
|
|
265
|
-
|
|
193
|
+
/** **删除门的头读**(读者只有删除门:`DELETE /v1/sessions/:id` 的属主门,经 `session-incarnation.ts` 的 `deletionHeadReadOf` 一只取法):
|
|
194
|
+
* 活行 = {@link headOf} 同答;外加在删的行(会话三态 活 → 在删 → 没了 的中间一态,律在 `session-deletion.ts`;local 另有删序停在第一步之后的标记格)的属主与住客 ——
|
|
195
|
+
* 开始删它的那位属主重发删除(= 接管)就收得完,别的属主得到与「不在」同一句(不可探测)。三只店都交。 */
|
|
196
|
+
deletionHeadOf?: (sessionId: string) => Promise<SessionHead | undefined>;
|
|
197
|
+
/** 会话三态的删除面(围栏 `fence` = 删除路唯一的认领判 / 复核 `holds` / 收尾输入 `pending`;律在 `session-deletion.ts`)。三只店都交,包装原样转发。 */
|
|
198
|
+
sessionDeletion?: SessionDeletionFace;
|
|
199
|
+
/** 删净一只在删会话的 **local 执行体锁节**(只有 local 店实装;SQL 后端的执行体是执行器的 `eraseSession`,不在会话店上;形与读法见 `session-erase.ts` 的
|
|
200
|
+
* {@link LocalSessionDeletionSection})。唯一调用者 `session-erase.ts` 的 `createLocalSessionEraser`。 */
|
|
201
|
+
deleteSession?: LocalSessionDeletionSection;
|
|
266
202
|
/** 2c session-sync — EXPORT a session's full durable entry log (compaction floor bypassed) for
|
|
267
203
|
* cross-backend migration; `null` when the source is unknown (the read half of fork, as `SessionTreeEntry[]`). */
|
|
268
204
|
exportEntries?: (sessionId: string) => Promise<SessionTreeEntry[] | null>;
|
|
@@ -325,7 +261,9 @@ export declare function sessionIdShapeIssue(sessionId: unknown): string | undefi
|
|
|
325
261
|
/** An HTTP error the server maps to a status code (instead of a generic 500). `code` (optional) is a stable
|
|
326
262
|
* machine-readable identifier the HTTP layer echoes as `{code}` beside the human `{error}` message — the
|
|
327
263
|
* "typed rejection" posture (structured code on the wire, prose stays with the shell/web).
|
|
328
|
-
* `extra` (optional)
|
|
264
|
+
* `extra` (optional) = the refusal's facts, folded into the error body at its root (e.g. the scenario allowlist on a reject).
|
|
265
|
+
* 拒体保留键(`http/refusal-body.ts` 的 `REFUSAL_RESERVED_KEYS`)在构造期判:带了 ⇒ 构造即抛 —— 抛出物不是 `HttpError`,落全局兜底的普通 500 臂
|
|
266
|
+
* (`request_error` 运维行 + 固定句),而不是等到出线时才发现。构造之后再改 `extra` 由出线点按最终字节判(`http/send.ts`)。 */
|
|
329
267
|
export declare class HttpError extends Error {
|
|
330
268
|
readonly status: number;
|
|
331
269
|
readonly code?: string;
|
|
@@ -346,8 +284,12 @@ export declare function createCodedHttpError(status: number, errorCode: string,
|
|
|
346
284
|
* identity and tenant scope come from the authenticated channel, **never from the request body**.
|
|
347
285
|
*/
|
|
348
286
|
export interface AuthContext {
|
|
349
|
-
/**
|
|
350
|
-
|
|
287
|
+
/**
|
|
288
|
+
* 这次请求验过的**主体**(分区键;`owner-brands.ts`):没带场景头 ⇒ 与验过的人逐字节同(`user:42` / `org:7`),带了 ⇒ `_scn:<场景>:<人>`。
|
|
289
|
+
* 行属主 / 会话认领 / 检查点 scope / 记忆 scope 读它;人面(成本 / 运维 / 场景裁定 / 引擎 `spec.principal`)经 `personOf(subject)` 读。
|
|
290
|
+
* Undefined when principal auth is off (dev) and the caller sent none.
|
|
291
|
+
*/
|
|
292
|
+
subject?: Subject;
|
|
351
293
|
/** The session to run against (resolved + ownership-checked here, then returned to the caller). */
|
|
352
294
|
sessionId: string;
|
|
353
295
|
/**
|
|
@@ -364,6 +306,12 @@ export interface AuthContext {
|
|
|
364
306
|
* (config.projects 查表键 + proj: 键的 projectId 段),不是 capability。main.ts 拿它查 defaultScopes。 */
|
|
365
307
|
resolvedProjectId?: string;
|
|
366
308
|
}
|
|
309
|
+
/** 授权口的入参:请求、体,与提交出口收候选的口(`submission-exit.ts`;只有登记了新行才调,传了也可能一次不调)。 */
|
|
310
|
+
export interface AuthorizeInput {
|
|
311
|
+
readonly req: IncomingMessage;
|
|
312
|
+
readonly body: TaskRequestBody;
|
|
313
|
+
readonly onBirth?: (birth: SessionBirth, face: SessionWithdrawFace) => void;
|
|
314
|
+
}
|
|
367
315
|
/**
|
|
368
316
|
* S6 — close the "sessionId / scope are bearer capabilities" hole.
|
|
369
317
|
*
|
|
@@ -379,10 +327,7 @@ export interface AuthContext {
|
|
|
379
327
|
* Returns a function shaped for `ServiceDeps.authorize`. When `sessionStore` is not the TiDB store
|
|
380
328
|
* (e.g. in-memory dev backend) ownership can't be enforced, so it only derives principal + sessionId.
|
|
381
329
|
*/
|
|
382
|
-
export declare function createAuthorizer(config: ServiceConfig, sessionStore: OwnerAwareSessionStore): (ctx:
|
|
383
|
-
req: IncomingMessage;
|
|
384
|
-
body: TaskRequestBody;
|
|
385
|
-
}) => Promise<AuthContext>;
|
|
330
|
+
export declare function createAuthorizer(config: ServiceConfig, sessionStore: OwnerAwareSessionStore, logger?: Pick<Logger, "info">): (ctx: AuthorizeInput) => Promise<AuthContext>;
|
|
386
331
|
/** F1/F3 (codex scope-ledger audit 2026-07-14) — the auth-boundary principal SHAPE gate, applied to every
|
|
387
332
|
* verified identity source (trusted header, SSO-bridge sub, direct-door JWT sub) so no downstream consumer
|
|
388
333
|
* ever sees an ambiguous or over-wide principal:
|
|
@@ -402,44 +347,32 @@ export declare function createAuthorizer(config: ServiceConfig, sessionStore: Ow
|
|
|
402
347
|
* key), `"_leader"` merges with the leader durable-approval owner scope (a tenant so named could list/
|
|
403
348
|
* decide internal leader approvals), `"_leader-…"` with the leader resource-suspend scope family, and
|
|
404
349
|
* `"__none__"` with the missing-principal read placeholder of the approval queue faces (≤ 7.132.x replicas).
|
|
405
|
-
* -
|
|
406
|
-
* (sendfile_link.scope, approval.owner/scope, memory-engine scope, rate-limit keys,
|
|
407
|
-
* principal would truncate/500 at the INSERT and split one identity into two.
|
|
350
|
+
* - more than PRINCIPAL_MAX_BYTES (190) UTF-8 bytes is REJECTED: every scope/owner column the principal lands in VERBATIM is VARCHAR(190)
|
|
351
|
+
* or VARBINARY(190) (sendfile_link.scope, approval.owner/scope, memory-engine scope, rate-limit keys, mailbox / background-agent key
|
|
352
|
+
* columns, …) and the narrowest of them counts bytes — an over-long principal would truncate/500 at the INSERT and split one identity into two.
|
|
353
|
+
* - a string that is not well-formed Unicode (a lone surrogate) is `principal_not_a_name`: both SQL drivers store it as U+FFFD, folding it
|
|
354
|
+
* onto another principal's rows.
|
|
408
355
|
* Throws a typed 400 `HttpError` (the HTTP layer maps it): `principal_not_a_name` / `principal_reserved` / `principal_too_long`; the message
|
|
409
356
|
* names the rule (not a name / a reserved identifier / the length cap), never a secret and never the internal scope's semantics. */
|
|
410
|
-
export declare
|
|
357
|
+
export declare function assertPrincipalShape(principal: string): void;
|
|
411
358
|
/**
|
|
412
|
-
*
|
|
413
|
-
*
|
|
414
|
-
* 孤代理按 U+FFFD 编,3 字节。按**字符**计宽的列(`VARCHAR(n)`:TiDB utf8mb4 / PG 都数码点)直接用 {@link PRINCIPAL_MAX_LENGTH} —— 码点数 ≤ 码元数。
|
|
359
|
+
* 跨会话信封 `from-scope` 一格编码后的上限(引擎 `agents/cross-session-envelope.js` 的同名上限)。引擎**没有导出**它(也不导常量 —— 引擎给的是一只判官,
|
|
360
|
+
* 候它到货换读),所以这里是本仓的一份常量 + 一只实读钉(`test/scenario-subject.test.ts` 用引擎自己的信封构造器量它)。
|
|
415
361
|
*/
|
|
416
|
-
export declare const
|
|
417
|
-
/**
|
|
418
|
-
*
|
|
419
|
-
*
|
|
420
|
-
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
|
|
429
|
-
export declare
|
|
430
|
-
export declare const RESERVED_PRINCIPAL_PREFIXES: readonly string[];
|
|
431
|
-
/** The principal-shape rule as a VERDICT (the one judge; {@link assertPrincipalShape} is its throwing reader). `undefined` = a
|
|
432
|
-
* principal may carry this string; otherwise which rule it breaks. A reader that only needs "can this string be anyone?" (the
|
|
433
|
-
* organization delivery gate's recipient: a string that breaks the rule is nobody, refused with the same bytes as an unknown
|
|
434
|
-
* principal) reads the verdict instead of catching the throw.
|
|
435
|
-
*
|
|
436
|
-
* Order: "is it a name at all" first — the other two rules presuppose a name (a reserved identifier / a name too wide for the
|
|
437
|
-
* column), and the `reserved` sentence echoes the value while the `not_a_name` sentence never does (a string that names nobody may be a
|
|
438
|
-
* pasted credential). An empty string is `not_a_name` here (the engine's judge says so); a header reader that treats a blank header as
|
|
439
|
-
* "no principal" decides that before asking. */
|
|
440
|
-
export type PrincipalShapeProblem = "not_a_name" | "reserved" | "too_long";
|
|
441
|
-
export declare function principalShapeProblem(principal: string): PrincipalShapeProblem | undefined;
|
|
442
|
-
export declare function assertPrincipalShape(principal: string): void;
|
|
362
|
+
export declare const CROSS_SESSION_FROM_SCOPE_MAX_ENCODED = 190;
|
|
363
|
+
/**
|
|
364
|
+
* 🔴 **带场景的主体编码后最多多宽**(唯一一只预算常量)= 主体真实落点里最严的那一面。主体落进:属主 / scope 列(`VARCHAR(190)`,数原长)、
|
|
365
|
+
* 跨会话信封的来源 scope(组织投递的发件人来源位,按编码长 ≤ {@link CROSS_SESSION_FROM_SCOPE_MAX_ENCODED};编码 = `[A-Za-z0-9._-]` 原样,其余逐 UTF-8 字节 `%XX`)。
|
|
366
|
+
* 编码长 ≥ 原长 ⇒ 信封那一面最严 ⇒ 今天 = 190(编码后)。记忆层键**不**是落点:记忆面读人、不读主体(个人段被引擎合规档位当人问),人自己的宽度照旧由
|
|
367
|
+
* 记忆段判(没带场景的请求同一条既有规则)。与部署形无关:同一只请求换一台部署答案不变。只判**带场景的**主体;不带场景的人维持今天的形判
|
|
368
|
+
* ({@link PRINCIPAL_MAX_BYTES} 的 UTF-8 字节判)。原长与编码长不是一回事:`_scn:health:` 原长 12、编码长 16(冒号编码成 `%3A`)⇒ 场景 `health` 下人的上界 = 174 编码字符。
|
|
369
|
+
*/
|
|
370
|
+
export declare const SUBJECT_ENCODED_BUDGET = 190;
|
|
371
|
+
/**
|
|
372
|
+
* 一只主体编码后是否超出 {@link SUBJECT_ENCODED_BUDGET}。判官 = 引擎自己的信封构造器(公开导出;它对来源 scope 编码后超出上限答具名码
|
|
373
|
+
* `cross_session.invalid_from_scope`)—— 本仓不复刻编码;引擎的来源 scope 判官导出之后改读它。别的码 ⇒ 原样上抛(不是宽度问题,不猜)。
|
|
374
|
+
*/
|
|
375
|
+
export declare function subjectWidthExceeded(subject: Subject): boolean;
|
|
443
376
|
/** The checkpoint `scope` column's single-user/anonymous sentinel — the same "_" documented above
|
|
444
377
|
* ({@link RESERVED_PRINCIPALS}) as the checkpoint/sendfile/resource-suspend scope family's shared value.
|
|
445
378
|
* Single attested constant + codec pair (naming precedent: {@link SENDFILE_SINGLE_USER_SCOPE} in
|
|
@@ -452,8 +385,8 @@ export declare const CHECKPOINT_PUBLIC_SCOPE: "_";
|
|
|
452
385
|
*
|
|
453
386
|
* 写侧不是本仓能单方面改的:core 的 `treeScope = reviveClaim?.row.scope ?? ctx.principal ??
|
|
454
387
|
* opts.background?.scope` 同时喂**进程内** `defaultTaskRegistry` 与 **durable** 行,而本仓/`core` 全域的
|
|
455
|
-
* 读侧是一整族 `principal ?? "default"`(`runs.ts` markStopSourceForOwner
|
|
456
|
-
*
|
|
388
|
+
* 读侧是一整族 `principal ?? "default"`(`runs.ts` markStopSourceForOwner、会话的引擎租户分区 `session-children-retire.ts`
|
|
389
|
+
* `sessionTenantScope`(删除协调器的子代 / 信箱 / 后台 shell 三腿)、`http/routes/runs.ts` 的 subagent output/stream 三口、`agents-roster.ts`、
|
|
457
390
|
* `fleet.ts`)。⇒ **把铸点改成 `"_"` 会把这一整族读者一起打瞎**(本车实测:`subagent-tail-content-supply`
|
|
458
391
|
* 的 tail 建连当场 404)。所以归一只能发生在**读侧**:checkpoint 侧拿着 `"_"` 去查 bg 分区时,
|
|
459
392
|
* 显式把这两个键当同一格。
|
|
@@ -468,15 +401,31 @@ export declare const BACKGROUND_REGISTRY_ANON_SCOPE: "default";
|
|
|
468
401
|
* **真名叫 `default`** 的租户必须只匹配自己那格 —— 所以别把别名做成双向。
|
|
469
402
|
*/
|
|
470
403
|
export declare function backgroundScopesForCheckpointScope(scope: string): readonly string[];
|
|
471
|
-
/** Encode a
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
404
|
+
/** Encode a subject (the partition key — `owner-brands.ts`; or none) as the checkpoint `scope` column value. A row owner read back from a store is the
|
|
405
|
+
* same key in its durable form and goes in verbatim; a person never does (the partition is the subject, not the person). */
|
|
406
|
+
export declare const encodeCheckpointScope: (subject: string | null | undefined) => string;
|
|
407
|
+
/** Decode a checkpoint `scope` column value back to the owner it was written for — {@link CHECKPOINT_PUBLIC_SCOPE} maps to
|
|
408
|
+
* `undefined` (no principal), everything else verbatim as a {@link DurableOwnerKey} (the scope column is a stored owner key; this is one of
|
|
409
|
+
* the brand's two mint points — the other is `owner-faces.ts` `ownerKeyOf`). The run it governs executes in this partition; the person behind it
|
|
410
|
+
* (cost / lease / governance / the engine's `spec.principal`) is read ONLY through `owner-brands.ts` `partsOf` — never by feeding the key into a person
|
|
411
|
+
* slot. Comparing it with a caller goes through `owner-faces.ts` only (`keyAdmits` / `sameParty`). */
|
|
412
|
+
export declare const decodeCheckpointScope: (scope: string) => DurableOwnerKey | undefined;
|
|
476
413
|
/** A checkpoint `scope` value read as the **owner column** of the rows it governs (run rows, live / crash asks): {@link CHECKPOINT_PUBLIC_SCOPE}
|
|
477
414
|
* ⇒ `null` (the null-owner rows: tasks submitted without a principal), everything else verbatim. The one translation from the approval faces'
|
|
478
415
|
* scope to an owner filter — stores filter on the owner column and never recognize `"_"` themselves. */
|
|
479
|
-
export declare const ownerOfCheckpointScope: (scope: string) =>
|
|
416
|
+
export declare const ownerOfCheckpointScope: (scope: string) => DurableOwnerKey | null;
|
|
417
|
+
/** A checkpoint `scope` value recovered into its three cells (`owner-brands.ts` `partsOf`; the internal pipeline — no reserved-prefix / registry /
|
|
418
|
+
* width judgment): {@link CHECKPOINT_PUBLIC_SCOPE} ⇒ `undefined` (no subject). The resume family reads the run's partition (`subject`) and the person
|
|
419
|
+
* behind it (`person`: cost / lease / usage window / the engine's `spec.principal`) from this one decode. */
|
|
420
|
+
export declare const checkpointPartsOf: (scope: string) => SubjectParts | undefined;
|
|
421
|
+
/**
|
|
422
|
+
* 🔴 **停驻行 scope 列的行格**(检查点面 `scope.decide` 与迟到决定 `ask.answer` 判的那一格;`owner-faces.ts` 的 `keyAdmits` 吃它):
|
|
423
|
+
* {@link CHECKPOINT_PUBLIC_SCOPE} = 匿名单用户形写下的行 ⇒ 普通无主行(开放);别的串 ⇒ 有主({@link decodeCheckpointScope} 铸键);
|
|
424
|
+
* **不是串**(越契约的行体 —— 不做形状校验的 JSON 读取把 scope 读成 nullish)⇒ 坏格(`undefined`:一格行资格都不给,只剩本口放的运维),
|
|
425
|
+
* 绝不把畸形行折成「公开」。店的轻读(`peekPendingScope` / `peekScopeByToken`)把匿名行读成 `null` 值 —— 那是店契约里的匿名,调用点按契约先换成
|
|
426
|
+
* {@link CHECKPOINT_PUBLIC_SCOPE} 再交进来(`peeked ?? CHECKPOINT_PUBLIC_SCOPE`)。
|
|
427
|
+
*/
|
|
428
|
+
export declare function scopeCellOf(scope: string): SessionOwnerCell | undefined;
|
|
480
429
|
/** Read the authenticated principal from the trusted header. Never from the body. */
|
|
481
430
|
export declare function principalFrom(req: IncomingMessage, config: ServiceConfig): string | undefined;
|
|
482
431
|
/** Header carrying the crypto-verified principal JWT on a direct-door worker (the issuer signs it; the worker only
|
|
@@ -502,6 +451,27 @@ export declare function setSsoRole(req: IncomingMessage, role: string): void;
|
|
|
502
451
|
export declare function ssoVerifiedRole(req: IncomingMessage): string | undefined;
|
|
503
452
|
export declare function setSsoPrincipalInc(req: IncomingMessage, principalInc: string): void;
|
|
504
453
|
export declare function ssoVerifiedPrincipalInc(req: IncomingMessage): string | undefined;
|
|
505
|
-
|
|
506
|
-
|
|
454
|
+
/**
|
|
455
|
+
* 这次请求验过的**人** —— `Person` 品牌的请求面铸点(`owner-brands.ts` 铸点闭集)。身份从哪来只在 {@link verifiedIdentity} 判(三来源,优先序见那里),这里只铸一次。
|
|
456
|
+
* 人面汇点(成本 / 租约 / 运维名册 / 场景裁定)读它;分区面读 {@link verifiedSubject}(同一个人加上请求的场景)。
|
|
457
|
+
*/
|
|
458
|
+
export declare function verifiedPerson(req: IncomingMessage, config: ServiceConfig): Person | undefined;
|
|
459
|
+
/**
|
|
460
|
+
* 请求自报场景的头(定名,不加配置键)。带它 = 这次请求在这个人的这一个场景分区里;不带 = 与今天逐字节同。场景是人之内的自选收窄,不是权限主张:
|
|
461
|
+
* 直连门上它也是自报的,最坏 = 同一个人的另一个分区(专家之间的隔离靠调用方平台不把头交给模型,与 `spec.principal` 同一条控制面契约)。
|
|
462
|
+
*/
|
|
463
|
+
export declare const SCENARIO_HEADER = "x-agent-scenario";
|
|
464
|
+
/** 场景头的原始读数(空白 ⇒ 没带;重复头取第一只,与主体头同读法)。 */
|
|
465
|
+
export declare function scenarioHeaderOf(req: IncomingMessage): string | undefined;
|
|
466
|
+
/** 场景头在、却没有验过的人 ⇒ 400(只收紧:不拒就写出无主行 = 谁都看得见)。码与句一处铸(分派层的头判决与凭据门旁路的读口同用)。 */
|
|
467
|
+
export declare function scenarioWithoutPrincipalError(): HttpError;
|
|
468
|
+
/** 场景头的名字不是这台部署的场景(不合文法的名字不可能在册)⇒ 400 `scenario_unknown`(与任务提交腿点名未知场景同码)。 */
|
|
469
|
+
export declare function scenarioHeaderUnknownError(name: string, known: readonly string[] | undefined): HttpError;
|
|
470
|
+
/**
|
|
471
|
+
* 🔴 **这次请求验过的主体**(外部管线;`Subject` 的请求面读数,铸点是 `owner-brands.ts` 的 `subjectOf`)。没带场景头 ⇒ 与 {@link verifiedPerson} 逐字节同;
|
|
472
|
+
* 带了 ⇒ `subjectOf(人, 场景)`,三判只在这里(恢复管线不判):① 没有验过的人 ⇒ {@link scenarioWithoutPrincipalError};② 名字不合场景文法 ⇒ 400 `scenario_unknown`
|
|
473
|
+
* (在册判在分派层,它读这台部署的场景表);③ 主体编码后超出 {@link SUBJECT_ENCODED_BUDGET} ⇒ 400 `principal_too_long`(句报编码后的预算)。
|
|
474
|
+
* 人自己的形判(名形 / 保留前缀 / 原长)照旧在 {@link verifiedIdentity} 里先判。按请求对象记忆化:同一只请求的各读口读同一只判决。
|
|
475
|
+
*/
|
|
476
|
+
export declare function verifiedSubject(req: IncomingMessage, config: ServiceConfig): Subject | undefined;
|
|
507
477
|
//# sourceMappingURL=security.d.ts.map
|