@sema-agent/server 7.134.0 → 7.136.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 +197 -1
- package/USAGE.md +147 -42
- package/deploy/sema-up/README.md +1 -1
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/values.yaml +1 -1
- package/dist/adoption/plan.d.ts +1 -1
- package/dist/approval-ask-audit-store.d.ts +24 -24
- package/dist/approval-ask-machine.d.ts +2 -2
- package/dist/approval-card.d.ts +122 -154
- package/dist/approval-card.js +50 -51
- package/dist/approval-content-kind.d.ts +23 -5
- package/dist/approval-content-kind.js +8 -1
- package/dist/approval-deny-reasons.d.ts +1 -1
- package/dist/approval-gate-currency.d.ts +22 -3
- package/dist/approval-gate-currency.js +44 -18
- package/dist/approval-hmac.d.ts +7 -7
- package/dist/approval-policy-settlement.d.ts +2 -2
- package/dist/approval-reconciler.d.ts +3 -3
- package/dist/approval.d.ts +8 -8
- package/dist/approval.js +4 -2
- package/dist/auth-bridge.d.ts +35 -6
- package/dist/auth-bridge.js +20 -3
- package/dist/auto-mode-face.d.ts +4 -4
- package/dist/background-session-reap.d.ts +2 -2
- package/dist/bake-runner/main.d.ts +2 -2
- package/dist/bake-runner/runner.d.ts +4 -4
- package/dist/bench/s1/live-deps.d.ts +1 -1
- package/dist/bench/s1/run-firm.d.ts +1 -1
- package/dist/boot/budget-tracing.d.ts +1 -2
- package/dist/boot/budget-tracing.js +2 -2
- package/dist/boot/coordinators.d.ts +2 -2
- package/dist/boot/coordinators.js +2 -2
- package/dist/boot/deferred-sandbox-path-env.d.ts +0 -6
- package/dist/boot/deferred-sandbox-path-env.js +0 -5
- package/dist/boot/engine-lease.d.ts +5 -5
- package/dist/boot/execution-env.d.ts +16 -15
- package/dist/boot/execution-env.js +19 -21
- package/dist/boot/fatal-exit.d.ts +2 -2
- package/dist/boot/late-binds.d.ts +1 -1
- package/dist/boot/leader.d.ts +1 -1
- package/dist/boot/memory-boundary.d.ts +2 -2
- package/dist/boot/memory-consolidation.d.ts +15 -15
- package/dist/boot/org-memory.js +1 -1
- package/dist/boot/parked-revive-gate.d.ts +3 -3
- package/dist/boot/parked-revive-gate.js +3 -2
- package/dist/boot/reapers.d.ts +4 -4
- package/dist/boot/resolve-spec.d.ts +1 -1
- package/dist/boot/resolve-spec.js +36 -29
- package/dist/boot/runner-deps.d.ts +11 -11
- package/dist/boot/runner-deps.js +7 -4
- package/dist/boot/session-faces.d.ts +3 -3
- package/dist/boot/session-faces.js +11 -30
- package/dist/boot/shutdown.d.ts +5 -5
- package/dist/boot/side-query-lane.d.ts +2 -2
- package/dist/boot/stage-04-stores.d.ts +1 -1
- package/dist/boot/stage-05-execution-env.d.ts +1 -1
- package/dist/boot/stage-05-execution-env.js +4 -4
- package/dist/boot/stage-06-runners.d.ts +1 -1
- package/dist/boot/stage-06-runners.js +0 -2
- package/dist/boot/stage-07-capability-layer.d.ts +1 -1
- package/dist/boot/stage-08-reapers.d.ts +1 -1
- package/dist/boot/stage-09-leader.d.ts +1 -1
- package/dist/boot/stage-10-http-server.d.ts +1 -1
- package/dist/boot/stores.js +4 -4
- package/dist/boot/web-admin.d.ts +17 -17
- package/dist/boot/web-admin.js +15 -27
- package/dist/boot/workflow-orchestration.js +2 -9
- package/dist/brain.d.ts +11 -11
- package/dist/brain.js +12 -3
- package/dist/budget.d.ts +7 -7
- package/dist/budget.js +4 -0
- package/dist/capabilities/approvals-push.d.ts +4 -4
- package/dist/capabilities/builtin-tools.d.ts +5 -5
- package/dist/capabilities/center-plugins.d.ts +5 -5
- package/dist/capabilities/center-plugins.js +1 -1
- package/dist/capabilities/center-prompts.d.ts +1 -1
- package/dist/capabilities/center-wiring.d.ts +1 -1
- package/dist/capabilities/composite-members.d.ts +1 -1
- package/dist/capabilities/execution-lane.d.ts +5 -5
- package/dist/capabilities/execution-lane.js +2 -2
- package/dist/capabilities/hands-lane.d.ts +5 -5
- package/dist/capabilities/mcp-probe.d.ts +11 -7
- package/dist/capabilities/sandbox-file-send.d.ts +1 -18
- package/dist/capabilities/sandbox-file-send.js +0 -7
- package/dist/capabilities/scenarios.d.ts +28 -10
- package/dist/capabilities/scenarios.js +15 -5
- package/dist/capabilities/send-user-file-tool.d.ts +1 -1
- package/dist/capabilities/skills.d.ts +31 -12
- package/dist/capabilities/skills.js +23 -17
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +29 -32
- package/dist/capability-facts.js +17 -21
- package/dist/center-config-tier.d.ts +1 -1
- package/dist/center-credential.d.ts +22 -8
- package/dist/center-credential.js +18 -3
- package/dist/checkpoint-identity.d.ts +5 -0
- package/dist/checkpoint-identity.js +14 -0
- package/dist/config-catalog.d.ts +12 -12
- package/dist/config-catalog.js +12 -10
- package/dist/config-d-migration.js +1 -1
- package/dist/config-invariants.d.ts +5 -5
- package/dist/config-invariants.js +11 -2
- package/dist/config-lkg.d.ts +1 -39
- package/dist/config-lkg.js +1 -83
- package/dist/config-provider.d.ts +13 -13
- package/dist/config-provider.js +2 -1
- package/dist/config-types.d.ts +95 -87
- package/dist/config.d.ts +26 -24
- package/dist/config.js +38 -18
- package/dist/cross-session-settings.d.ts +1 -1
- package/dist/delegated-session-owner.d.ts +16 -13
- package/dist/delegated-session-owner.js +9 -10
- package/dist/deployment-governance.d.ts +16 -16
- package/dist/deployment-shape.d.ts +127 -0
- package/dist/deployment-shape.js +72 -0
- package/dist/device-store.d.ts +1 -1
- package/dist/device-ws-hub.d.ts +1 -1
- package/dist/egress-redirect.d.ts +1 -1
- package/dist/elicitation.d.ts +8 -7
- package/dist/elicitation.js +9 -8
- package/dist/entry-mode-clamp-notice.d.ts +2 -2
- package/dist/env-facts.d.ts +10 -9
- package/dist/env-facts.js +1 -1
- package/dist/env-name-allowlist-knobs.d.ts +5 -5
- package/dist/exec-bounds.d.ts +2 -2
- package/dist/execution-lane-caps.d.ts +31 -43
- package/dist/execution-lane-caps.js +0 -13
- package/dist/file-history-capture.d.ts +9 -9
- package/dist/file-history-disclosure.d.ts +25 -11
- package/dist/file-history-disclosure.js +25 -14
- package/dist/fleet/drain-entry.d.ts +2 -2
- package/dist/fleet/fleet-bus.d.ts +22 -14
- package/dist/fleet/fleet-bus.js +5 -5
- package/dist/fleet/fleet-reconciler.d.ts +9 -9
- package/dist/fleet/subagent-tail-bus.d.ts +4 -4
- package/dist/fleet-client.d.ts +45 -14
- package/dist/fleet-client.js +24 -4
- package/dist/fleet-lease.d.ts +23 -19
- package/dist/fleet-lease.js +31 -23
- package/dist/governance-http-status.d.ts +2 -2
- package/dist/hooks/hook-llm.d.ts +7 -7
- package/dist/hooks/hook-llm.js +14 -8
- package/dist/hooks/hook-runner.d.ts +58 -31
- package/dist/hooks/hook-runner.js +37 -19
- package/dist/host-decision.d.ts +5 -5
- package/dist/host-lsp-manager.d.ts +5 -5
- package/dist/hosted-posture.d.ts +23 -13
- package/dist/hosted-posture.js +4 -9
- package/dist/http/admission.d.ts +2 -2
- package/dist/http/admission.js +20 -5
- package/dist/http/approval-sweeps.d.ts +1 -1
- package/dist/http/approval-sweeps.js +2 -1
- package/dist/http/checkpoint-ctx.d.ts +62 -17
- package/dist/http/checkpoint-ctx.js +78 -35
- package/dist/http/dispatch.d.ts +3 -3
- package/dist/http/dispatch.js +9 -9
- package/dist/http/durable-run-leg.js +4 -3
- package/dist/http/idempotency.d.ts +2 -2
- package/dist/http/mcp-dial-deadline.d.ts +7 -5
- package/dist/http/memory-compliance-failure-reply.d.ts +4 -4
- package/dist/http/owner-access.d.ts +4 -6
- package/dist/http/owner-access.js +1 -1
- package/dist/http/principal-gate.d.ts +7 -7
- package/dist/http/principal-gate.js +3 -2
- package/dist/http/readiness.d.ts +1 -1
- package/dist/http/request-guards.d.ts +4 -4
- package/dist/http/request-guards.js +2 -1
- package/dist/http/resume-ctx-read.d.ts +9 -23
- package/dist/http/resume-ctx-read.js +2 -3
- package/dist/http/resume-legs.d.ts +3 -3
- package/dist/http/resume-legs.js +11 -8
- package/dist/http/route-ctx.d.ts +29 -29
- package/dist/http/route-table.d.ts +9 -9
- package/dist/http/routes/agents-roster.d.ts +1 -1
- package/dist/http/routes/approvals-assistant.d.ts +5 -7
- package/dist/http/routes/approvals-assistant.js +101 -26
- package/dist/http/routes/background.d.ts +3 -3
- package/dist/http/routes/background.js +2 -2
- package/dist/http/routes/capabilities.d.ts +1 -1
- package/dist/http/routes/capabilities.js +16 -8
- package/dist/http/routes/config-catalog.d.ts +1 -1
- package/dist/http/routes/devices.d.ts +1 -1
- package/dist/http/routes/diagnostics.d.ts +3 -3
- package/dist/http/routes/fleet.d.ts +1 -1
- package/dist/http/routes/fleet.js +2 -1
- package/dist/http/routes/mcp-reconnect.d.ts +4 -4
- package/dist/http/routes/mcp-reconnect.js +3 -3
- package/dist/http/routes/memory-consolidation.d.ts +1 -1
- package/dist/http/routes/notify-wake.d.ts +1 -1
- package/dist/http/routes/notify-wake.js +2 -2
- package/dist/http/routes/rules.d.ts +1 -1
- package/dist/http/routes/runs.js +23 -11
- package/dist/http/routes/session-sync.d.ts +1 -1
- package/dist/http/routes/session-sync.js +97 -46
- package/dist/http/routes/sessions-list.js +1 -1
- package/dist/http/routes/sessions.js +43 -53
- package/dist/http/routes/tasks.d.ts +1 -1
- package/dist/http/routes/trace-usage.d.ts +1 -1
- package/dist/http/routes/workflows.d.ts +3 -0
- package/dist/http/routes/workflows.js +31 -28
- package/dist/http/send.d.ts +5 -5
- package/dist/http/server.d.ts +34 -34
- package/dist/http/session-inherit-env.d.ts +3 -3
- package/dist/http/sse-lifecycle.d.ts +1 -1
- package/dist/http/sse-log.d.ts +2 -2
- package/dist/http/submit-ctx.js +1 -1
- package/dist/http/sync-submit-body.d.ts +1 -1
- package/dist/http/verify-rounds.d.ts +1 -1
- package/dist/http/wire-types.d.ts +33 -24
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instruction-source-notice.d.ts +2 -2
- package/dist/key-resolver.d.ts +3 -3
- package/dist/lane-home-probe.d.ts +1 -1
- package/dist/leader/diffout.d.ts +1 -1
- package/dist/leader/diffup.d.ts +2 -2
- package/dist/leader/endpoint.d.ts +1 -1
- package/dist/leader/fanout.d.ts +1 -1
- package/dist/leader/leader.d.ts +4 -4
- package/dist/leader/merge.d.ts +3 -3
- package/dist/leader/repair-wire.d.ts +1 -1
- package/dist/leader/wire.d.ts +6 -6
- package/dist/list-entry-display.d.ts +1 -1
- package/dist/lsp-evict.d.ts +1 -1
- package/dist/mcp-assertion-header.d.ts +1 -1
- package/dist/memory-layer-legacy-lock.d.ts +1 -1
- package/dist/memory-operator-faces.d.ts +1 -1
- package/dist/memory-posture.js +4 -2
- package/dist/memory-project-layer.d.ts +1 -1
- package/dist/memory-scope.d.ts +19 -19
- package/dist/memory-store-refusal.d.ts +4 -4
- package/dist/model-entry-headers.d.ts +2 -2
- package/dist/model-entry-refusal.d.ts +17 -17
- package/dist/model-provider.d.ts +10 -10
- package/dist/model-reach-scope.d.ts +1 -1
- package/dist/model-route-endpoint.d.ts +6 -6
- package/dist/model-route-gap.d.ts +49 -4
- package/dist/model-route-gap.js +34 -1
- package/dist/model-route-url.d.ts +5 -5
- package/dist/model-select.d.ts +15 -6
- package/dist/model-select.js +5 -0
- package/dist/model-unreachable-notice.d.ts +3 -3
- package/dist/namespaced-rule-name.d.ts +15 -5
- package/dist/namespaced-rule-name.js +3 -2
- package/dist/object-store-buckets.d.ts +13 -0
- package/dist/object-store-buckets.js +3 -0
- package/dist/observability/corrupt-read-seat.d.ts +9 -9
- package/dist/observability/cost-taxonomy.d.ts +1 -1
- package/dist/observability/err-text.d.ts +1 -1
- package/dist/observability/fail-open.d.ts +17 -13
- package/dist/observability/fail-open.js +17 -13
- package/dist/observability/metrics.d.ts +3 -3
- package/dist/observability/metrics.js +1 -1
- package/dist/observability/principal-context.d.ts +4 -1
- package/dist/observability/principal-context.js +6 -1
- package/dist/observability/run-terminal.d.ts +36 -36
- package/dist/observability/secret-env-scrub.d.ts +3 -3
- package/dist/observability/tool-trace.d.ts +1 -1
- package/dist/operator-ask.d.ts +4 -4
- package/dist/orchestration/workflow-agent-session-index.d.ts +3 -3
- package/dist/orchestration/workflow-completion-inbox.d.ts +20 -5
- package/dist/orchestration/workflow-completion-inbox.js +29 -7
- package/dist/orchestration/workflow-notify-journal.d.ts +43 -19
- package/dist/orchestration/workflow-notify-journal.js +17 -0
- package/dist/outbound-dispatcher.d.ts +4 -4
- package/dist/parent-watch.d.ts +4 -4
- package/dist/parked-decide.d.ts +20 -18
- package/dist/parked-decide.js +31 -11
- package/dist/parked-revive-surface.d.ts +7 -7
- package/dist/parked-revive-surface.js +2 -3
- package/dist/peer-directory.d.ts +5 -4
- package/dist/peer-directory.js +6 -6
- package/dist/permission-rule-list.d.ts +10 -1
- package/dist/permission-rule-list.js +7 -5
- package/dist/permission-rule-vocab.d.ts +2 -2
- package/dist/plugins/adoption-log-sql.d.ts +1 -1
- package/dist/plugins/approval-ask-store-file.d.ts +8 -1
- package/dist/plugins/approval-ask-store-file.js +6 -3
- package/dist/plugins/approval-ask-store-memory.d.ts +11 -7
- package/dist/plugins/approval-ask-store-memory.js +11 -7
- package/dist/plugins/approval-ask-store-sql.d.ts +42 -15
- package/dist/plugins/approval-ask-store-sql.js +21 -5
- package/dist/plugins/approval-exemption-store.d.ts +3 -3
- package/dist/plugins/approval-nonce-store.d.ts +3 -3
- package/dist/plugins/background-agent-store-sql.d.ts +1 -1
- package/dist/plugins/background-shell-support.d.ts +2 -2
- package/dist/plugins/blob-backend.d.ts +1 -1
- package/dist/plugins/blob-backend.js +2 -1
- package/dist/plugins/caching-session-store.d.ts +23 -32
- package/dist/plugins/caching-session-store.js +5 -17
- package/dist/plugins/checkpoint-index-columns.d.ts +130 -0
- package/dist/plugins/checkpoint-index-columns.js +90 -0
- package/dist/plugins/checkpoint-store-sql.d.ts +71 -69
- package/dist/plugins/checkpoint-store-sql.js +109 -127
- package/dist/plugins/device-store-sql.d.ts +7 -6
- package/dist/plugins/e2b-orphan-reclaim.d.ts +1 -1
- package/dist/plugins/ensure-schema-lock-policy.d.ts +1 -1
- package/dist/plugins/file-history-store-sql.d.ts +15 -7
- package/dist/plugins/file-history-store-sql.js +55 -36
- package/dist/plugins/file-run-store.d.ts +8 -8
- package/dist/plugins/fork-routing-session-store.d.ts +2 -2
- package/dist/plugins/fork-routing-session-store.js +1 -1
- package/dist/plugins/host-platform.d.ts +10 -10
- package/dist/plugins/image-bake-store-sql.d.ts +1 -1
- package/dist/plugins/image-index-sql.d.ts +1 -1
- package/dist/plugins/leader-run-store-sql.d.ts +1 -1
- package/dist/plugins/local-checkpoint-store.d.ts +10 -10
- package/dist/plugins/local-checkpoint-store.js +7 -7
- package/dist/plugins/local-session-store.d.ts +34 -38
- package/dist/plugins/local-session-store.js +20 -39
- package/dist/plugins/local-session-window.d.ts +1 -1
- package/dist/plugins/mailbox-store-sql.d.ts +2 -2
- package/dist/plugins/memory-engine-pg.d.ts +1 -1
- package/dist/plugins/memory-run-store.d.ts +4 -4
- package/dist/plugins/memory-sync-store-pg.d.ts +3 -3
- package/dist/plugins/one-time-migrations.d.ts +73 -54
- package/dist/plugins/one-time-migrations.js +131 -134
- package/dist/plugins/outcome-ledger-sql.d.ts +1 -1
- package/dist/plugins/park-commit-watch.d.ts +3 -3
- package/dist/plugins/permission-rule-store-file.d.ts +5 -5
- package/dist/plugins/permission-rule-store-file.js +12 -19
- package/dist/plugins/permission-rule-store-sql.d.ts +38 -4
- package/dist/plugins/permission-rule-store-sql.js +67 -24
- package/dist/plugins/pg-cost-quota.d.ts +1 -1
- package/dist/plugins/pg-pool.d.ts +2 -2
- package/dist/plugins/pg-pool.js +5 -2
- package/dist/plugins/pg-rate-limiter.d.ts +1 -1
- package/dist/plugins/pg-session-storage.d.ts +8 -20
- package/dist/plugins/pg-session-storage.js +14 -27
- package/dist/plugins/remote-env-adb.d.ts +10 -10
- package/dist/plugins/remote-env-device.d.ts +10 -9
- package/dist/plugins/remote-env-device.js +6 -2
- package/dist/plugins/remote-env-e2b.d.ts +3 -3
- package/dist/plugins/remote-env-host.d.ts +16 -16
- package/dist/plugins/remote-env-k8s.d.ts +26 -13
- package/dist/plugins/remote-env-k8s.js +24 -7
- package/dist/plugins/remote-env-local-docker.d.ts +2 -2
- package/dist/plugins/remote-env-ssh.d.ts +4 -4
- package/dist/plugins/remote-scratchpad.d.ts +2 -3
- package/dist/plugins/remote-scratchpad.js +0 -4
- package/dist/plugins/remote-shell.d.ts +6 -6
- package/dist/plugins/retention-lane-store-sql.d.ts +4 -4
- package/dist/plugins/retention-store-sql.d.ts +4 -4
- package/dist/plugins/roster-store-sql.d.ts +1 -1
- package/dist/plugins/run-store-sql.d.ts +8 -8
- package/dist/plugins/s3-answer.d.ts +15 -0
- package/dist/plugins/s3-answer.js +5 -0
- package/dist/plugins/schema-consistency.d.ts +2 -2
- package/dist/plugins/schema-ensure-legs.d.ts +3 -3
- package/dist/plugins/schema-indexes.d.ts +1 -1
- package/dist/plugins/schema-live-columns.d.ts +1 -1
- package/dist/plugins/session-event-payload.d.ts +4 -4
- package/dist/plugins/session-fork.d.ts +34 -0
- package/dist/plugins/session-fork.js +29 -0
- package/dist/plugins/session-ownership.js +1 -1
- package/dist/plugins/session-placement.d.ts +1 -1
- package/dist/plugins/session-policy-store-sql.d.ts +12 -12
- package/dist/plugins/session-store.d.ts +2 -2
- package/dist/plugins/session-store.js +2 -2
- package/dist/plugins/shared-memory-store-sql.d.ts +2 -2
- package/dist/plugins/snapshot-bucket-presence.d.ts +39 -4
- package/dist/plugins/snapshot-bucket-presence.js +35 -7
- package/dist/plugins/sql-driver.d.ts +8 -8
- package/dist/plugins/sql-errors.d.ts +40 -1
- package/dist/plugins/sql-errors.js +49 -1
- package/dist/plugins/sql-json-column.d.ts +21 -21
- package/dist/plugins/sql-row-helpers.d.ts +2 -2
- package/dist/plugins/store-backend.d.ts +17 -16
- package/dist/plugins/store-backend.js +3 -3
- package/dist/plugins/store-contracts.d.ts +21 -21
- package/dist/plugins/store-fault.d.ts +4 -0
- package/dist/plugins/store-fault.js +8 -0
- package/dist/plugins/task-attachment-store.d.ts +2 -2
- package/dist/plugins/task-list-store-sql.d.ts +1 -1
- package/dist/plugins/tidb-pool.d.ts +2 -2
- package/dist/plugins/tidb-pool.js +10 -3
- package/dist/plugins/tidb-session-store.d.ts +16 -26
- package/dist/plugins/tidb-session-store.js +15 -27
- package/dist/plugins/tool-result-store-sql.d.ts +1 -1
- package/dist/plugins/usage-window-store-sql.d.ts +3 -3
- package/dist/plugins/user-input-ledger-file.d.ts +1 -1
- package/dist/plugins/user-input-ledger-sql.d.ts +3 -3
- package/dist/plugins/web-search.d.ts +19 -5
- package/dist/plugins/web-search.js +20 -5
- package/dist/{orchestration/workflow-journal-entry.d.ts → plugins/workflow-journal-payload.d.ts} +23 -32
- package/dist/plugins/workflow-journal-payload.js +32 -0
- package/dist/plugins/workflow-journal-store-sql.d.ts +28 -14
- package/dist/plugins/workflow-journal-store-sql.js +34 -15
- package/dist/plugins/workflow-run-store-sql.d.ts +4 -4
- package/dist/posture-source.d.ts +11 -11
- package/dist/principal-jwt.d.ts +6 -6
- package/dist/project-identity.d.ts +3 -3
- package/dist/project-memory.d.ts +4 -4
- package/dist/read-face-posture.d.ts +7 -7
- package/dist/request-declaration-refusal.d.ts +94 -0
- package/dist/request-declaration-refusal.js +78 -0
- package/dist/request-image-urls.d.ts +6 -0
- package/dist/request-image-urls.js +27 -0
- package/dist/request-key-closure.d.ts +6 -1
- package/dist/request-key-closure.js +5 -2
- package/dist/request-value-closure.d.ts +15 -8
- package/dist/request-value-closure.js +2 -0
- package/dist/router/route-orchestration.d.ts +11 -16
- package/dist/router/route-orchestration.js +2 -12
- package/dist/rule-entry-list.d.ts +8 -7
- package/dist/rule-entry-list.js +2 -9
- package/dist/rules-consent.d.ts +6 -6
- package/dist/rules-consent.js +2 -0
- package/dist/run-cancel-context.d.ts +5 -5
- package/dist/run-local.d.ts +10 -10
- package/dist/runs.d.ts +13 -11
- package/dist/runs.js +15 -1
- package/dist/runtime-caps-resolver.d.ts +6 -6
- package/dist/runtime-caps-resolver.js +1 -1
- package/dist/runtime-governance.d.ts +9 -9
- package/dist/sandbox-pkg-source.d.ts +17 -12
- package/dist/sandbox-pkg-source.js +14 -9
- package/dist/sealed-key.d.ts +22 -3
- package/dist/sealed-key.js +47 -4
- package/dist/security.d.ts +23 -26
- package/dist/security.js +12 -9
- package/dist/server-secret-env.d.ts +10 -10
- package/dist/session-children-retire.d.ts +1 -1
- package/dist/session-error-wire.d.ts +7 -7
- package/dist/session-incarnation.d.ts +65 -37
- package/dist/session-incarnation.js +30 -12
- package/dist/session-policy-wire.d.ts +27 -5
- package/dist/session-policy-wire.js +15 -1
- package/dist/session-records-skipped-notice.d.ts +1 -1
- package/dist/session-row.d.ts +3 -17
- package/dist/session-row.js +4 -0
- package/dist/session-sync-kernel.d.ts +4 -4
- package/dist/session-sync.d.ts +61 -6
- package/dist/session-sync.js +55 -10
- package/dist/session-titler.d.ts +7 -6
- package/dist/session-titler.js +8 -13
- package/dist/session-watch.d.ts +3 -3
- package/dist/session-watch.js +4 -4
- package/dist/sighup-idle.d.ts +2 -2
- package/dist/spec-fields.d.ts +4 -4
- package/dist/sql-engine-posture.d.ts +3 -3
- package/dist/store-posture.d.ts +2 -2
- package/dist/stored-request-tool-axes-m19.d.ts +1 -1
- package/dist/task-a2a.d.ts +52 -79
- package/dist/task-a2a.js +224 -62
- package/dist/task-cwd.d.ts +7 -88
- package/dist/task-cwd.js +2 -15
- package/dist/task-mcp.d.ts +13 -17
- package/dist/task-mcp.js +29 -49
- package/dist/task-settings.d.ts +30 -18
- package/dist/task-settings.js +33 -3
- package/dist/task-workflow.d.ts +0 -24
- package/dist/task-workflow.js +2 -1
- package/dist/terminal.d.ts +5 -5
- package/dist/tighten-only-seats.d.ts +7 -6
- package/dist/tighten-only-seats.js +1 -1
- package/dist/tool-approval.d.ts +166 -207
- package/dist/tool-approval.js +61 -61
- package/dist/tool-rule-names.d.ts +2 -2
- package/dist/trace/core-keyset-guard.d.ts +13 -8
- package/dist/trace/engine-notice-wire.d.ts +5 -5
- package/dist/trace/engine-notice-wire.js +1 -0
- package/dist/trace/exit-seat.d.ts +31 -4
- package/dist/trace/exit-seat.js +69 -67
- package/dist/trace/ledger-events.d.ts +3 -3
- package/dist/trace/ledger-sink.d.ts +1 -1
- package/dist/trace/model-segment.d.ts +3 -3
- package/dist/trace/project.d.ts +47 -45
- package/dist/trace/project.js +33 -1
- package/dist/trace/redact.d.ts +61 -31
- package/dist/trace/redact.js +394 -153
- package/dist/trace/self-minted-wire.d.ts +302 -14
- package/dist/trace/self-minted-wire.js +87 -0
- package/dist/trace/sema-provenance.d.ts +1 -1
- package/dist/trace/task-notification-facets.d.ts +4 -4
- package/dist/trace/wire-projection-faces.d.ts +3 -3
- package/dist/trace/wire-projection-faces.js +1 -1
- package/dist/unattended-permission-mode.d.ts +5 -5
- package/dist/url-credential-refusal.d.ts +52 -0
- package/dist/url-credential-refusal.js +14 -0
- package/dist/url-refusal.d.ts +16 -3
- package/dist/url-refusal.js +15 -2
- package/dist/usage-analytics.d.ts +2 -2
- package/dist/user-input-ledger.d.ts +23 -23
- package/dist/web-admin-client/apply-effective.d.ts +5 -5
- package/dist/web-admin-client/apply-effective.js +2 -1
- package/dist/web-admin-client/apply-ledger.d.ts +2 -2
- package/dist/web-admin-client/center-request.d.ts +2 -2
- package/dist/web-admin-client/facade.d.ts +5 -5
- package/dist/web-admin-client/facade.js +1 -1
- package/dist/web-admin-client/hot-keys-registry.d.ts +2 -2
- package/dist/web-admin-client/http-client.d.ts +4 -4
- package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
- package/dist/web-admin-client/pull-state.d.ts +1 -1
- package/dist/web-admin-client/read-face.d.ts +2 -2
- package/dist/web-admin-client/read-warnings.d.ts +5 -5
- package/dist/web-admin-client/restart-signal.d.ts +6 -6
- package/dist/web-admin-client/skills-mcp.d.ts +28 -3
- package/dist/web-admin-client/skills-mcp.js +29 -1
- package/dist/web-admin-client/types.d.ts +16 -9
- package/dist/workspace-space.d.ts +32 -3
- package/dist/workspace-space.js +26 -0
- package/dist/write-protection.d.ts +2 -2
- package/package.json +5 -3
- package/scripts/drain-check-local.mjs +4 -2
- package/scripts/drain-check.mysql.sql +6 -2
- package/scripts/drain-check.pg.sql +6 -2
- package/skills/loop.md +1 -1
- package/skills/schedule.md +1 -1
- package/wire-changes/server@7.104.0.json +134 -0
- package/wire-changes/server@7.105.0.json +53 -0
- package/wire-changes/server@7.106.0.json +475 -0
- package/wire-changes/server@7.107.0.json +64 -0
- package/wire-changes/server@7.108.0.json +153 -0
- package/wire-changes/server@7.109.0.json +46 -0
- package/wire-changes/server@7.110.0.json +90 -0
- package/wire-changes/server@7.111.0.json +86 -0
- package/wire-changes/server@7.112.0.json +60 -0
- package/wire-changes/server@7.113.0.json +26 -0
- package/wire-changes/server@7.114.0.json +26 -0
- package/wire-changes/server@7.115.0.json +97 -0
- package/wire-changes/server@7.116.0.json +218 -0
- package/wire-changes/server@7.116.1.json +26 -0
- package/wire-changes/server@7.117.0.json +65 -0
- package/wire-changes/server@7.118.0.json +129 -0
- package/wire-changes/server@7.119.0.json +65 -0
- package/wire-changes/server@7.120.0.json +89 -0
- package/wire-changes/server@7.121.0.json +219 -0
- package/wire-changes/server@7.122.0.json +54 -0
- package/wire-changes/server@7.123.0.json +26 -0
- package/wire-changes/server@7.124.0.json +336 -0
- package/wire-changes/server@7.124.1.json +26 -0
- package/wire-changes/server@7.125.0.json +111 -0
- package/wire-changes/server@7.126.0.json +285 -0
- package/wire-changes/server@7.127.0.json +77 -0
- package/wire-changes/server@7.127.1.json +26 -0
- package/wire-changes/server@7.127.2.json +53 -0
- package/wire-changes/server@7.128.0.json +26 -0
- package/wire-changes/server@7.129.0.json +106 -0
- package/wire-changes/server@7.129.1.json +26 -0
- package/wire-changes/server@7.130.0.json +26 -0
- package/wire-changes/server@7.131.0.json +118 -0
- package/wire-changes/server@7.132.0.json +226 -0
- package/wire-changes/server@7.133.0.json +1155 -0
- package/wire-changes/server@7.134.0.json +107 -0
- package/wire-changes/server@7.135.0.json +174 -0
- package/wire-changes/server@7.136.0.json +448 -0
- package/dist/http/run-declared-families.d.ts +0 -16
- package/dist/http/run-declared-families.js +0 -12
- package/dist/orchestration/workflow-journal-entry.js +0 -27
package/dist/config-types.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export interface MemoryEmbedderConfig {
|
|
|
44
44
|
* 的 `mode` 列共读它);两词之外的值在启动期响亮拒 —— 一个拼错的档位静默落回 `audit-only` 会让运维
|
|
45
45
|
* 以为在删、其实没删,而拼成别的方向就是反过来那件更坏的事。
|
|
46
46
|
*/
|
|
47
|
-
/**
|
|
47
|
+
/** [ref]:任务层「掀开写围栏」的天花板档位闭集(**词表属主在此** —— config 型面与
|
|
48
48
|
* `hosted-posture.ts` 的判据读同一份;抄第二份的那天两边会在加词时分家)。 */
|
|
49
49
|
export declare const TASK_WRITE_FACE_ESCALATIONS: readonly ["allow", "refuse"];
|
|
50
50
|
/** 天花板档位(闭集两词;缺席 = 本层不表态)。 */
|
|
@@ -52,7 +52,7 @@ export type TaskWriteFaceEscalation = (typeof TASK_WRITE_FACE_ESCALATIONS)[numbe
|
|
|
52
52
|
export declare const RETENTION_MODES: readonly ["audit-only", "enforce"];
|
|
53
53
|
export type RetentionMode = (typeof RETENTION_MODES)[number];
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* [ref] —— `CONFIG_PROVIDER` 的词表闭集(**属主在此**:`loadConfig` 的唯一读点、web-admin 工厂、执行车道合成步、
|
|
56
56
|
* 配置目录的 enum 行共读这一份)。缺席 / 空串 = 未表态(配了 `SEMA_WEB_ADMIN_URL` ⇒ 中心,否则纯 env);两词之外 ⇒ 拒启。
|
|
57
57
|
* 修前是开放词:认不出的词被配置源判官当 `local`、被隐式 host 臂当「不是 local」,一个旋钮在一个进程里有两种读法。
|
|
58
58
|
*/
|
|
@@ -77,12 +77,12 @@ export declare const MEMORY_CONSOLIDATION_MIN_INTERVAL_SEC = 300;
|
|
|
77
77
|
/**
|
|
78
78
|
* Node 的 `setTimeout` delay 上界(2^31−1 ms ≈ 24.8 天)。**超过它的 delay 被静默折成 1ms** —— 任何「一个时长
|
|
79
79
|
* 旋钮的值最终会变成一次 `setTimeout` 的 delay」的键都必须在上界处拒启,不能夹取([ref] + codex r1-[high]:夹取
|
|
80
|
-
* 只是把一句谎换成另一句)。
|
|
80
|
+
* 只是把一句谎换成另一句)。[ref] 起从 `config.ts` 的模块私有常量提到本纯叶:解析器与配置目录的合法域句读
|
|
81
81
|
* 同一个数([ref]:边界不手抄)。
|
|
82
82
|
*/
|
|
83
83
|
export declare const MAX_TIMER_DELAY_MS = 2147483647;
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* [ref](test [ref] / core [ref])—— `AUTO_MODE_CLASSIFIER_TIMEOUT_MS`(→ core `RunnerDeps.autoMode.timeoutMs`)
|
|
86
86
|
* 的**合法域**,闭区间、整数 ms。解析器(`config.ts`)与目录行(`config-catalog.ts`)共读这一处。
|
|
87
87
|
*
|
|
88
88
|
* · **下界 1000**:亚秒值是「秒写成毫秒」的手滑形(`180` 想说三分钟,落地 180 ms ⇒ 每一级立即判「没裁」⇒ 门控
|
|
@@ -101,13 +101,13 @@ export declare const AUTO_MODE_CLASSIFIER_TIMEOUT_BOUNDS: {
|
|
|
101
101
|
/**
|
|
102
102
|
* `DRAIN_GRACE_MS` 的**地板**(10s)—— 夹取(env,[ref] B 档)与中心 stage 校验(`stage-limits.ts` 的 `atLeast`)两条写入腿
|
|
103
103
|
* 都以它为下界,于是「排空窗」在任何写入通道上都不会短于它。**属主在 settings-schema**(`@sema-agent/settings-schema/fleet` 的
|
|
104
|
-
* `DRAIN_GRACE_FLOOR_MS`,drain 协议合同值;
|
|
104
|
+
* `DRAIN_GRACE_FLOOR_MS`,drain 协议合同值;[ref] 起本叶只转出口,不再本地铸同一个数)。[ref] 起它从 `config.ts` 的
|
|
105
105
|
* `LIMITS_HTTP_FLOORS` 字面提到本叶:{@link DRAIN_SECOND_SIGNAL_MIN_GAP_BOUNDS} 的上界与配置目录的合法域句共读这一个数([ref]:
|
|
106
106
|
* 边界不手抄;目录模块不能值引 `config.ts` —— `config → server-secret-env → config-catalog` 已成链)。
|
|
107
107
|
*/
|
|
108
108
|
export { DRAIN_GRACE_FLOOR_MS };
|
|
109
109
|
/**
|
|
110
|
-
*
|
|
110
|
+
* [ref](test [ref])—— `DRAIN_SECOND_SIGNAL_MIN_GAP_MS` 的**合法域**(闭区间、整数 ms)与缺省。解析器(`config.ts`)
|
|
111
111
|
* 与目录行(`config-catalog.ts`)共读这一处。
|
|
112
112
|
*
|
|
113
113
|
* · **语义**:排空期里一发停止信号(SIGTERM / SIGINT)只有在与**排空起点**相隔 ≥ 本值时才算硬停意图;更近的是同一拍的
|
|
@@ -135,7 +135,7 @@ export declare const CENTER_BASE_URL_RULE = "\u8BBE\u4E86\u5C31\u5FC5\u987B\u662
|
|
|
135
135
|
/** 编排器片 2:`FLEET_LEASE_OUTAGE_MAX_MS` 的缺省(24 h)—— 中心 / 库故障、中心降级在今天都靠 LKG 无限期容忍,10 分钟级的窗会把它们变成数据面停服。 */
|
|
136
136
|
export declare const FLEET_LEASE_OUTAGE_MAX_DEFAULT_MS = 86400000;
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
138
|
+
* [ref](core 7.33.0 [ref])—— `MODEL_FIRST_BYTE_TIMEOUT_MS`(→ core `BrainTimeoutConfig.firstByteTimeoutMs`,`fetch()` → 响应头
|
|
139
139
|
* 的等待)的**合法域**,闭区间、整数 ms。解析器(`config.ts`)与目录行(`config-catalog.ts`)共读这一处。
|
|
140
140
|
*
|
|
141
141
|
* · **下界 0**:`0` 在这一座有真含义 —— 该段**不设引擎钟,传输层的响应头 / 响应体钟也关**(TCP + TLS 建连仍归传输层自己的钟;core 7.33.0 起每请求带引擎 dispatcher,把传输层的
|
|
@@ -143,7 +143,7 @@ export declare const FLEET_LEASE_OUTAGE_MAX_DEFAULT_MS = 86400000;
|
|
|
143
143
|
* (failover 拓扑真会这么配;窗上还有 core 按 body 大小加的上传宽限)。
|
|
144
144
|
* · **上界 = {@link MAX_TIMER_DELAY_MS}**:core 对超过它的值构造期拒(`config.stall_timeout_invalid`);本仓在 boot 就拒,
|
|
145
145
|
* 拒句点名 env 键,而不是等到 brain 装配时报一个运维没写过的 config 键名。
|
|
146
|
-
* · **没有缺省常量**:缺席 = 不铸键,core 自缺省当家([ref];本仓不复制上游数字 ——
|
|
146
|
+
* · **没有缺省常量**:缺席 = 不铸键,core 自缺省当家([ref];本仓不复制上游数字 —— [ref] 的病根正是本仓自带的 30 000)。
|
|
147
147
|
*/
|
|
148
148
|
export declare const FIRST_BYTE_TIMEOUT_BOUNDS: {
|
|
149
149
|
readonly minMs: 0;
|
|
@@ -179,11 +179,11 @@ export declare const DEVICE_EXEC_TIMEOUT_BOUNDS: {
|
|
|
179
179
|
readonly max: 2147483647;
|
|
180
180
|
};
|
|
181
181
|
/**
|
|
182
|
-
*
|
|
182
|
+
* [ref] —— **`resilience` 块缺省的唯一属主**([ref] 的单源从一根扩到整族)。
|
|
183
183
|
*
|
|
184
184
|
* 这是一张**表**,不是六个常量:缺省长在三条腿上(解析器腿 `config.ts` 的 `numEnv`/`boolEnv` 缺省、
|
|
185
185
|
* 目录腿 `config-catalog.ts` 的 `staticDefault`、`brain.ts` 的 `DEFAULT_RESILIENCE` —— config 对象
|
|
186
|
-
* 没带 resilience 块时的同姿态兜底),而三条腿此前**各写一份字面量**。
|
|
186
|
+
* 没带 resilience 块时的同姿态兜底),而三条腿此前**各写一份字面量**。[ref] 只把 `firstTokenTimeoutMs`
|
|
187
187
|
* 一根收成单源,于是剩下五根还在「改一处漏一处 = 目录对外宣告的缺省与真跑的不是同一代」这条病里 ——
|
|
188
188
|
* 按类修的形是把**整族**收进一张表,让三条腿都只许引用它,而不是再加五个同形常量(六个常量 = 六份
|
|
189
189
|
* 要各自记得引用的纪律;一张表 = 一条)。
|
|
@@ -193,19 +193,19 @@ export declare const DEVICE_EXEC_TIMEOUT_BOUNDS: {
|
|
|
193
193
|
* D1 双向对账门(`test/config-catalog.test.ts` ⑦)是 AST 扫 `numEnv("NAME", …)` 的字面名来数「src/ 在读
|
|
194
194
|
* 哪些键」,改成间接引用会让这六个键在那道门眼里整体消失(实测:6 个幽灵键 + 动态读棘轮 27→33)——
|
|
195
195
|
* 拿一条真在岗的对账门去换一处写法上的统一是亏的。键名的同源由那道门自己咬:src/ 字面名 ⟺ 目录行名
|
|
196
|
-
* ⟺ 本表的 `env`(
|
|
196
|
+
* ⟺ 本表的 `env`([ref] 那一格按 `env` 查目录行,查不到当场红),三方互钉,没有静默漂移的空间。
|
|
197
197
|
* `satisfies Readonly<Record<keyof ServiceConfigFlat["resilience"], …>>` 双向咬:块上加字段而表里没行
|
|
198
198
|
* ⇒ tsc 红(加字段的人被迫当场回答「它的出厂缺省是多少、归哪个 env」);表里多一行块上没有的键同样红。
|
|
199
199
|
*
|
|
200
200
|
* ⚠️ 语义面**一个数字都没动**:「熔断默认关」照旧,env 恒赢。看门狗的 `0` 自 core 7.33.0 起 = 该段**不设引擎钟,传输层的响应头 / 响应体钟
|
|
201
|
-
* 也关**(TCP + TLS 建连仍归传输层自己的钟;此前 = 只关引擎的钟)。
|
|
201
|
+
* 也关**(TCP + TLS 建连仍归传输层自己的钟;此前 = 只关引擎的钟)。[ref] 起本表**不再有首字节那一行**:`MODEL_CONNECT_TIMEOUT_MS`(自带 30 000)退役,替代键
|
|
202
202
|
* `MODEL_FIRST_BYTE_TIMEOUT_MS` 缺席 = 不铸键(见 {@link ServerDefaultedResilienceKey})。
|
|
203
|
-
* 首 token 那一行的 600_000 由来(
|
|
203
|
+
* 首 token 那一行的 600_000 由来([ref] clay 裁 A):自托管后端在长 prefill(大上下文 / 冷缓存 /
|
|
204
204
|
* 排队)下首字合理地要等几分钟,120s 会把一次**正常**的慢启动判成 `[network]` 失败去重试,而重试
|
|
205
205
|
* 再交同一份 prompt 给同一个排队中的后端只会更慢更贵;依赖旧姿态的部署显式写回
|
|
206
206
|
* `MODEL_FIRST_TOKEN_TIMEOUT_MS=120000` 即可。
|
|
207
207
|
*
|
|
208
|
-
* 🔴 **常量在此、别处只许引用**:`test/config-catalog.test.ts` 的
|
|
208
|
+
* 🔴 **常量在此、别处只许引用**:`test/config-catalog.test.ts` 的 [ref] 两格咬 —— 一格按表逐行钉
|
|
209
209
|
* 三腿同值(目录 staticDefault / 解析器实算值 / {@link buildDefaultResilience}),一格扫全 `src/`
|
|
210
210
|
* 判「字面量」这一类写法为红(下一份镜像出生即红)。
|
|
211
211
|
*/
|
|
@@ -232,7 +232,7 @@ export declare const RESILIENCE_DEFAULTS: {
|
|
|
232
232
|
};
|
|
233
233
|
};
|
|
234
234
|
/**
|
|
235
|
-
*
|
|
235
|
+
* [ref] —— 「config 对象没带 resilience 块」时的整块兜底,**逐字段派生自 {@link RESILIENCE_DEFAULTS}**。
|
|
236
236
|
*
|
|
237
237
|
* 返回类型把键集钉死(缺键 / 多键都是 tsc 红),所以这里剩下的唯一手写物是键名本身,值一个字面量都没有。
|
|
238
238
|
* 每次调用铸一只新对象(共享一只导出常量会被消费方就地改掉,那是另一条病)。
|
|
@@ -246,7 +246,7 @@ export interface MemoryConsolidationDriverConfig {
|
|
|
246
246
|
/**
|
|
247
247
|
* 阀门的**部署表态**(env `MEMORY_CONSOLIDATION_DRIVER=on|off`,原词)。**缺席 = 没表态,不是 off**。
|
|
248
248
|
*
|
|
249
|
-
* 🔴
|
|
249
|
+
* 🔴 [ref] / clay **[ref]**(取代 [ref] ① 的「出厂 off」实况):出厂缺省 = **开,但只在整理座不落主模型时生效**
|
|
250
250
|
* (`MODEL_CHEAP_ID` 在场,或目录给 consolidate / summarize / flash 档位绑了别的模型);否则不开并在起服时提示一行。
|
|
251
251
|
* 这件事要等**目录应用之后**、记忆引擎接线之后才判得出来,所以本字段只记表态,开不开由 boot 第 6 段的
|
|
252
252
|
* `resolveConsolidationValve`(`boot/memory-consolidation.ts`)一次判定 —— 那是阀门开关**唯一**的属主。
|
|
@@ -270,7 +270,7 @@ export interface MemoryConsolidationDriverConfig {
|
|
|
270
270
|
* 第二套授权语义**。显式传的 scope 照跑,表只管缺省。 */
|
|
271
271
|
scopes: readonly string[];
|
|
272
272
|
/**
|
|
273
|
-
*
|
|
273
|
+
* [ref] / core 7.21.0 [ref] —— **`RunnerDeps.autoRunOnRecommendation` 的部署席**
|
|
274
274
|
* (env `MEMORY_AUTO_CONSOLIDATION=on|off`;**缺席 = 不写那个键**,由 core 的具名缺省
|
|
275
275
|
* `AUTO_RUN_ON_RECOMMENDATION_DEFAULT` 作答)。
|
|
276
276
|
*
|
|
@@ -286,12 +286,12 @@ export interface MemoryConsolidationDriverConfig {
|
|
|
286
286
|
* ⚠️ **前置 = 整理阀门开着**(`MEMORY_CONSOLIDATION_DRIVER=on`,或未设而 [ref] 出厂缺省派生成开 —— 见 {@link valve};
|
|
287
287
|
* 且记忆引擎接了线)。阀门开着 ⇒ 引擎那半场的整理两席
|
|
288
288
|
* (`RunnerDeps.memoryConsolidation` + `memoryConsolidationDriver`)由**同一只已解析座**接上
|
|
289
|
-
* (
|
|
289
|
+
* ([ref],`boot/runner-deps.ts` 的 `ctx.consolidationSeat` 那一段)⇒ 本旋钮真的生效;阀门关着 ⇒ 两席
|
|
290
290
|
* 一个键都不写,而 core 对「武装但没接整理席」的处置是**每一次 prepare 都抛** `config.auto_consolidation`
|
|
291
291
|
* —— 那会买到一台**启动成功、每个任务都死**的机器,所以本仓把那一拒提前到启动期响亮拒
|
|
292
292
|
* (`assertAutoConsolidationWirable`,读的是刚铸出来的那只 deps 而不是一个手抄的布尔),与
|
|
293
293
|
* `MEMORY_CONSOLIDATION_DRIVER` 的 D1「安全/成本控件不得半开」同一条。
|
|
294
|
-
* 🔴 **本段自
|
|
294
|
+
* 🔴 **本段自 [ref] 改判**:[ref] 那一批这里写的是「本 build 上 `on` 一定拒启(本仓没接整理席)」——
|
|
295
295
|
* 同一批的后半场把两席接上之后,那句话成了谎。旧世界断言留在树上比欠账更危险(7.81.0 整批的教训),
|
|
296
296
|
* 所以真相变了就地改,不留「将来某一版」的口气。
|
|
297
297
|
*/
|
|
@@ -493,17 +493,17 @@ export interface ServiceConfigFlat {
|
|
|
493
493
|
port: number;
|
|
494
494
|
/** OpenAI-compatible model gateway base URL (without /chat/completions) — `MODEL_GATEWAY_BASEURL`.
|
|
495
495
|
*
|
|
496
|
-
* 🔴
|
|
496
|
+
* 🔴 [ref]:**缺席 = 这台部署没有网关**(没有出厂缺省;旧的本机占位值在读入那一步抹掉「来源」,让没配网关的
|
|
497
497
|
* 部署起得来、第一次调用才炸)。形取「可选键」而不是判别联合:消费方问的只有「有没有声明网关根、是哪个」,
|
|
498
498
|
* 一个只带一位载荷的联合不比 `string | undefined` 多说任何事,且与紧邻的 `gatewayApiKey?` / `gatewayMaxRetries?`
|
|
499
499
|
* 的「缺席不铸键」同一条 presence 律。一条 openai 路由请求打到哪儿,只经 `model-route-endpoint.ts` 的
|
|
500
500
|
* `openaiRouteBaseUrl` 求(路由自己的 `baseUrl` 胜、网关次之);「配置能派发到的每条 openai 路由都解析得到」
|
|
501
501
|
* 由 boot(config.ts)与热路径(apply-effective)同一只判据保证。 */
|
|
502
502
|
gatewayBaseUrl?: string;
|
|
503
|
-
/** `MODEL_API_KEY` —— **网关的**凭据,只与网关根配对([ref])。
|
|
503
|
+
/** `MODEL_API_KEY` —— **网关的**凭据,只与网关根配对([ref])。[ref]:与 `gatewayBaseUrl` 同进同出 ——
|
|
504
504
|
* 没有网关就不装载(否则 brain 的声明根为空:core 7.51.0 起判 `route.credential_mismatch`,每条自带 baseUrl、没有
|
|
505
505
|
* per-model 凭据的 openai 条目被拒;7.51.0 前是 `unpinned`,key 随请求发往那些条目),由 `model_gateway_key_unpaired`
|
|
506
|
-
* 启动通知说出来。
|
|
506
|
+
* 启动通知说出来。[ref]:brain 在构造时读它一次(core 收据律),本仓没有运行期写者 ⇒ 换值 = 重启。 */
|
|
507
507
|
gatewayApiKey?: string;
|
|
508
508
|
/** Secondary openai-compatible gateways for cross-gateway FAILOVER (same protocol + same model id).
|
|
509
509
|
* Tried in order after the primary when a gateway fails before streaming any content. */
|
|
@@ -518,11 +518,12 @@ export interface ServiceConfigFlat {
|
|
|
518
518
|
/** Optional Anthropic Messages API ROUTE (cloud). Selected for models whose `provider` is
|
|
519
519
|
* "anthropic" (routing is by model.provider); the local gateway serves every other provider. */
|
|
520
520
|
anthropic?: {
|
|
521
|
-
/** `x-api-key`
|
|
522
|
-
*
|
|
521
|
+
/** `ANTHROPIC_API_KEY` —— sent as the `x-api-key` header ONLY. One name, one header ([ref]): mutually exclusive with
|
|
522
|
+
* `authToken` — both set refuses boot (`loadConfig`, invariant `anthropic-credential-exclusive`) and refuses brain construction
|
|
523
|
+
* for an embedder-built config. Which header rides is `judgeAnthropicCredential`'s answer (`model-route-gap.ts`). */
|
|
523
524
|
apiKey?: string;
|
|
524
525
|
/** Anthropic-compatible-ecosystem `ANTHROPIC_AUTH_TOKEN` (many such providers use Bearer, not x-api-key):
|
|
525
|
-
* sent as `Authorization: Bearer <token
|
|
526
|
+
* sent as `Authorization: Bearer <token>` ONLY. Mutually exclusive with `apiKey` (see there) — no precedence arm. */
|
|
526
527
|
authToken?: string;
|
|
527
528
|
/** Default https://api.anthropic.com (overridden by model.baseUrl). */
|
|
528
529
|
baseUrl?: string;
|
|
@@ -541,13 +542,13 @@ export interface ServiceConfigFlat {
|
|
|
541
542
|
* immediately instead of waiting out timeouts). BreakerState is core's in-process Map for now —
|
|
542
543
|
* cross-replica shared state (TiDB adapter) is a documented follow-up. */
|
|
543
544
|
resilience: {
|
|
544
|
-
/**
|
|
545
|
+
/** [ref](core 7.33.0 [ref])—— `fetch()` → 响应头的等待上限(ms;env `MODEL_FIRST_BYTE_TIMEOUT_MS`,合法域
|
|
545
546
|
* {@link FIRST_BYTE_TIMEOUT_BOUNDS})。**缺席 = 不铸键** ⇒ core 自缺省当家(另加 core 按 body 大小给的上传宽限,
|
|
546
547
|
* 到点后 core 自有一次加宽重试,不吃 `maxRetries`)—— 本仓不复制上游数字([ref])。`0` = 该段不设引擎钟,传输层的响应头 / 响应体钟
|
|
547
|
-
* 也关(TCP + TLS 建连仍归传输层自己的钟)。取代退役的 `connectTimeoutMs`(名义建连、实际就是计到响应头;本仓自带的 30 000 缺省正是
|
|
548
|
+
* 也关(TCP + TLS 建连仍归传输层自己的钟)。取代退役的 `connectTimeoutMs`(名义建连、实际就是计到响应头;本仓自带的 30 000 缺省正是 [ref] 的病根)。 */
|
|
548
549
|
firstByteTimeoutMs?: number;
|
|
549
550
|
/** Cancel an open SSE stream if no content/thinking delta arrives within this many ms.
|
|
550
|
-
* Default 600s (
|
|
551
|
+
* Default 600s ([ref]; core's idle timer only arms after the first token,
|
|
551
552
|
* so this is the only guard for a stream that opens and never emits). 0 = no engine clock on this
|
|
552
553
|
* segment and the transport's body clock off too (core ≥7.33.0). */
|
|
553
554
|
firstTokenTimeoutMs: number;
|
|
@@ -567,7 +568,7 @@ export interface ServiceConfigFlat {
|
|
|
567
568
|
* (`config.model = config.models.default!`,web-admin-client/apply-effective.ts 的 commit 段)。 */
|
|
568
569
|
model: Model;
|
|
569
570
|
/**
|
|
570
|
-
*
|
|
571
|
+
* [ref] —— **boot 期 env 派生的那只模型**,`loadConfig()` 铸一次,此后**永不换**(与 `model` 在 boot
|
|
571
572
|
* 那一刻是同一个对象引用;center 热应用只动 `model`/`models`,不碰这里)。
|
|
572
573
|
*
|
|
573
574
|
* 用途只有一个:**BL-8 继承源** —— 一条 center 目录条目省掉 `maxTokens` / `contextWindow` /
|
|
@@ -599,10 +600,10 @@ export interface ServiceConfigFlat {
|
|
|
599
600
|
* ⇒ 它的 apiKeyEnv 引用不采(sealed 压过 env-NAME,解封失败也不回落——fail-loud 见 applyEffective)。
|
|
600
601
|
* Env path: empty;populated ONLY by applyEffective(重赋值;keyResolver 随 boot/refresh 重建)。 */
|
|
601
602
|
/** 值=解封明文 或托管来源的毒丸(`SealedCustodyPoison`,解封失败标记;key-resolver 对其任务级 throw,恒不落 gateway key 兜底)。
|
|
602
|
-
* env 来源的毒丸(
|
|
603
|
+
* env 来源的毒丸([ref] `env_missing`)不进这张表:key 链在取值时按 `modelApiKeyEnv` 现判。 */
|
|
603
604
|
modelApiKeys: Record<string, string | SealedCustodyPoison>;
|
|
604
605
|
/**
|
|
605
|
-
*
|
|
606
|
+
* [ref] —— **已发布但本部署不可用**的目录条目:catalog NAME → 拒因(`model-entry-refusal.ts` 的闭集码
|
|
606
607
|
* `config.model_no_brain` / `config.model_entry_invalid` + 上游 id + 一句出路,不含任何值)。
|
|
607
608
|
*
|
|
608
609
|
* 这些条目**不在** `models` 里(不可点、不列、不当缺省、不进钥匙表 —— 永远不被改路到另一条 brain / 另一个端点);
|
|
@@ -612,7 +613,7 @@ export interface ServiceConfigFlat {
|
|
|
612
613
|
*/
|
|
613
614
|
modelRefusals: Readonly<Record<string, ModelEntryRefusal>>;
|
|
614
615
|
/**
|
|
615
|
-
*
|
|
616
|
+
* [ref] —— **本世代目录里被读腿逐条丢掉的条目**(载体 `EffectiveConfig.models.droppedCatalogEntries` 经模型面判据判过形的行,保序;
|
|
616
617
|
* 下标 + settings-schema 闭集词 + 身份 + 字段诊断)。`GET /v1/models` 的 `droppedEntries` 唯一的源(出口投影 `buildDroppedEntriesWire`:
|
|
617
618
|
* 只投词与可披露身份)。env 腿恒空(没有目录读);只由 applyEffective 与 `models` **同世代同 commit** 整表重赋值(非粘)—— 模型面这一组
|
|
618
619
|
* 被拒时它与目录一起停在上一代。墓碑(`modelRefusals` 里的 `entry_invalid` 行)是同一份载体的另一种读法,不是第二份记录。
|
|
@@ -674,7 +675,7 @@ export interface ServiceConfigFlat {
|
|
|
674
675
|
/** B1 /health 活体 store 探测:后台缓存探针间隔 ms(STORE_PROBE_INTERVAL_MS;0=显式关,负/非数 boot
|
|
675
676
|
* 响亮拒)。只对 SQL 后端接线;探针原语=backend.dbNowMs()(S10 时钟探针的真 DB 往返,零新 SQL 面)。 */
|
|
676
677
|
storeProbeIntervalMs: number;
|
|
677
|
-
/**
|
|
678
|
+
/** [ref] —— `DB_BACKEND=local` 数据根 `LOCK` 撞上**活**持锁人时的**有界等待窗** ms
|
|
678
679
|
* (`STORE_LOCK_WAIT_MS`;缺省 60_000,地板 0 = 7.93.0 的当场拒,**不设上界**)。
|
|
679
680
|
* 病 = 壳自 spawn 引擎的单机形:旧引擎排空期间一直抱着锁,新引擎当场 fatal ⇒ 用户「刚关掉就再也起不来」。
|
|
680
681
|
* 失败方向一格不动:到窗仍拿不到 ⇒ 原码 fatal(文案多一句等了多久),**永不**放行第二个写者。
|
|
@@ -733,7 +734,7 @@ export interface ServiceConfigFlat {
|
|
|
733
734
|
/** 142-S2.5-W1: TOC 同步 client 腿 —— file memory 形态把本地记忆盘与中心(DB 权威,
|
|
734
735
|
* POST /v1/memory/sync/:scope)做一轮一 RTT 双向同步。env 三键:`MEMORY_SYNC_URL`(设了=开;缺省
|
|
735
736
|
* undefined=纯本地现状零变化)/`MEMORY_SYNC_TOKEN`(Bearer)/`MEMORY_SYNC_SCOPE`(可选,缺省 =
|
|
736
|
-
* memoryScope 本身**仅当它已是 v2 typed key**;非 typed 键 ⇒ 拒启,
|
|
737
|
+
* memoryScope 本身**仅当它已是 v2 typed key**;非 typed 键 ⇒ 拒启,[ref] —— 旧 formatUserScope 派生臂铸出的是本部署
|
|
737
738
|
* 从不写的层,见 loadConfig)。半配置 fail-loud
|
|
738
739
|
* (memoryEngineBackend 同款姿势);DB backend(pg/tidb)配了这些键=boot throw(中心侧自己就是
|
|
739
740
|
* 同步权威,不该再跑 client 腿)。 */
|
|
@@ -869,7 +870,7 @@ export interface ServiceConfigFlat {
|
|
|
869
870
|
* 默认 10s。env `MEMORY_ORG_UNAVAILABLE_BACKOFF_MS`(numEnvBounded)。 */
|
|
870
871
|
memoryOrgUnavailableBackoffMs: number;
|
|
871
872
|
/** [ref] v1b + [ref]: opt-in remote execution backend (PEER adapters, chosen by REMOTE_EXEC). Unset
|
|
872
|
-
* → in-process stub env (
|
|
873
|
+
* → in-process stub env ([ref]: this used to read "OA/review deployments", a scenario family retired wholesale
|
|
873
874
|
* in 5.0.0 — see RETIRED_ENVS; the real discriminant is CONFIG_PROVIDER, and REQUIRE_EXECUTION_LANE turns this
|
|
874
875
|
* arm into a boot refusal). Secrets (apiKey/privateKey) ONLY from env.
|
|
875
876
|
* - `e2b` → per-task E2B Firecracker VM (isolated, suspendable). The default code-agent worker.
|
|
@@ -878,7 +879,7 @@ export interface ServiceConfigFlat {
|
|
|
878
879
|
* - `ssh` → a real host over SSH (NOT isolated/suspendable; [ref] §5). AI-orchestrated batch deploy.
|
|
879
880
|
* - `adb` → a real device over ADB (NOT isolated/suspendable). On-device APP testing. */
|
|
880
881
|
/**
|
|
881
|
-
*
|
|
882
|
+
* [ref]④ —— `REMOTE_EXEC_HOME_DIR`:**执行环境的 home 目录**(core `ExecutionEnv.homeDir`),
|
|
882
883
|
* `~/…` 形权限规则(`Edit(~/.ssh/**)`)唯一的基,绝对路径。
|
|
883
884
|
*
|
|
884
885
|
* 部署级旋钮,**跨车道同一根**(不按 provider 分七根 —— 它回答的是同一个问题:「这条部署的手,
|
|
@@ -890,7 +891,7 @@ export interface ServiceConfigFlat {
|
|
|
890
891
|
*/
|
|
891
892
|
remoteExecHomeDir?: string;
|
|
892
893
|
/**
|
|
893
|
-
*
|
|
894
|
+
* [ref] —— `REQUIRE_EXECUTION_LANE`:**「没点名车道」要不要拒启**。默认 **false**(缺省行为逐字不变)。
|
|
894
895
|
*
|
|
895
896
|
* `REMOTE_EXEC` 未设/空串 **∧** `CONFIG_PROVIDER ≠ local` ⇒ {@link remoteExec} 缺席 ⇒ `boot/execution-env.ts`
|
|
896
897
|
* 一条工厂臂都不走 ⇒ core 的 `handsEnabled` 为 false ⇒ **整条手带一件不挂**,而任务照跑、回执
|
|
@@ -905,8 +906,8 @@ export interface ServiceConfigFlat {
|
|
|
905
906
|
* 运维读面(2026-09-22 主会话验收订正:车原写「`GET /v1/diagnostics/wiring` 的 `executionLane.requireExecutionLane`」,
|
|
906
907
|
* 而该端点当时**没有** `executionLane` 段、`src/` 零投影 —— 一句没兑现的承诺,按 [ref] 不信 JSDoc 只信实现行的纪律改写):
|
|
907
908
|
* boot 期 `exec_lane_selected` 一行(`config.ts` 装配尾,带 `lane` / `source`)+ `GET /v1/config/catalog` 的目录行。
|
|
908
|
-
* 本键的**有效值今天没有运行期读面**;要出就随
|
|
909
|
-
* (
|
|
909
|
+
* 本键的**有效值今天没有运行期读面**;要出就随 [ref] 的执行座三态在一处铸,不在这里单独长一位。
|
|
910
|
+
* ([ref] 起诊断面**有了** `executionLane` 段,但它就是能力面那一只投影 `{provider, toolsOnThisHost, isolated?}`,**不带**本键。)
|
|
910
911
|
*/
|
|
911
912
|
requireExecutionLane: boolean;
|
|
912
913
|
remoteExec?: {
|
|
@@ -916,7 +917,7 @@ export interface ServiceConfigFlat {
|
|
|
916
917
|
timeoutMs?: number;
|
|
917
918
|
livenessMs?: number;
|
|
918
919
|
allowInternetAccess?: boolean;
|
|
919
|
-
/**
|
|
920
|
+
/** [ref] —— `E2B_SANDBOX_ENV=NAME,NAME` 点到、且本进程环境里真有的键 ⇒ 原值(经唯一的「点名放行」谓词 `allowlistedEnv`,
|
|
920
921
|
* 空串值照带)。键缺席 = 旋钮未设 / 空串;名单形错(空段 / 非变量名形 / 点名名单型旋钮)拒启,源里没有的名按序号 warn。 */
|
|
921
922
|
sandboxEnv?: Record<string, string>;
|
|
922
923
|
mountPath?: string;
|
|
@@ -1008,7 +1009,7 @@ export interface ServiceConfigFlat {
|
|
|
1008
1009
|
maxPreAuthPerRemote?: number | "off";
|
|
1009
1010
|
/** `DEVICE_ENROLL_TOKEN_TTL_SEC`(§4.7 第五个旋钮;默认 900 = §7-T5 ① 的 15min)= enrollment
|
|
1010
1011
|
* token 的有效期**时长**(整秒,自 **DB now** 起算 —— 时间权威是库,不是副本墙钟)。唯一消费点 =
|
|
1011
|
-
* 签发动词 `POST /v1/devices/enroll-tokens`(`http/routes/devices.ts`);
|
|
1012
|
+
* 签发动词 `POST /v1/devices/enroll-tokens`(`http/routes/devices.ts`);[ref] 之前它刻意未铸
|
|
1012
1013
|
* (端点不存在 ⇒ 铸了就是一个「配了不生效」的死键,[ref] 病族),随该端点同批铸 + 接线。
|
|
1013
1014
|
* 域 = `[1, 86400]` 的十进制正整数,坏值**拒启**([ref] A 档;解析器 `parseDeviceEnrollTokenTtlEnv`)。
|
|
1014
1015
|
* 缺席 ⇒ 签发点的属主默认 900(不在 config 层抄第二份默认,与本族其余旋钮同姿势)。 */
|
|
@@ -1027,7 +1028,7 @@ export interface ServiceConfigFlat {
|
|
|
1027
1028
|
dropAllCaps?: boolean;
|
|
1028
1029
|
network?: "none" | "bridge" | "host";
|
|
1029
1030
|
commandTimeoutMs?: number;
|
|
1030
|
-
/**
|
|
1031
|
+
/** [ref] —— `DOCKER_SANDBOX_ENV=NAME,NAME` 点到、且本进程环境里真有的键 ⇒ 原值(与 e2b 的 `sandboxEnv` 同一只解析器、
|
|
1031
1032
|
* 同一只谓词;每条 `docker exec` 以 `-e K=V` 注入)。键缺席 = 旋钮未设 / 空串。 */
|
|
1032
1033
|
env?: Record<string, string>;
|
|
1033
1034
|
};
|
|
@@ -1091,6 +1092,13 @@ export interface ServiceConfigFlat {
|
|
|
1091
1092
|
* service and a run-local on the same box agree on one data dir (boot-locked single-instance). Only the
|
|
1092
1093
|
* `local` backend reads it. */
|
|
1093
1094
|
localDataRoot?: string;
|
|
1095
|
+
/**
|
|
1096
|
+
* `SEALED_KEY_DIR` —— 模型钥匙保管目录(sealed 形的 X25519 钥匙对 `<publicKeyId>.json`,连同停驻行封签那一域的子目录 `checkpoint-ctx-keys/`)。
|
|
1097
|
+
* **缺席不铸键** ⇒ 保管目录 = `<localDataRoot>/sealed-key`(今天的行为;建不了只是一行 warn,sealed 模型逐个 `no_key_store`)。
|
|
1098
|
+
* 给了 ⇒ 绝对路径(相对路径 loadConfig 拒启),该目录是**唯一**保管目录;起服在它上面建不了保管店 ⇒ 拒启(fail-closed:运维点名了目录)。
|
|
1099
|
+
* 谁需要:读同一份 `config.d` 而数据根不同的多台引擎(终端 × 桌面端默认形)—— sealed 条目绑定的是钥匙身份(`publicKeyId` → 钥匙对),指到同一目录 ⇒ 同一把钥。
|
|
1100
|
+
*/
|
|
1101
|
+
sealedKeyDir?: string;
|
|
1094
1102
|
/**
|
|
1095
1103
|
* [ref] 件B(`RUN_STORE_STRICT_HYDRATE`,普查表第 29 行的**终局格**)—— file 后端的**可选** fail-closed
|
|
1096
1104
|
* 启动门。`true` ⇒ `FileRunStore.hydrate()` 列不出 `runs/` 时**拒启**(error 级遗言带绝对路径 + 异常
|
|
@@ -1154,10 +1162,10 @@ export interface ServiceConfigFlat {
|
|
|
1154
1162
|
fileHistory?: {
|
|
1155
1163
|
retention?: FileHistoryRetentionPolicy;
|
|
1156
1164
|
};
|
|
1157
|
-
/**
|
|
1165
|
+
/** [ref] / [ref]:文件历史**捕获**总开关(`FILE_HISTORY_CAPTURE`,布尔词表,缺省 true,未知词拒启)。三条车道
|
|
1158
1166
|
* (local / mysql / pg)同一语义:`false` ⇒ 装配点照接历史店,但给 core 的部署捕获位 `RunnerDeps.fileHistoryCapture: "off"`
|
|
1159
1167
|
* (首次触碰备份 / 回合边界 / fork 携带结构上不发生;能力词 `fileHistoryCapture:"off"` 同一只判定派生)。**只关捕获**:
|
|
1160
|
-
* 已存历史照常服务 restore / rewind / 2c session-sync(
|
|
1168
|
+
* 已存历史照常服务 restore / rewind / 2c session-sync([ref] 时旋钮关 = 摘店,连已存历史也读不了;[ref] 改落 core 的捕获位)。
|
|
1161
1169
|
* **不管擦除**:已捕获的历史照旧随会话删除 / 留存规则清理,翻旋钮本身不做批量删除。没有店的部署形不下发捕获位
|
|
1162
1170
|
* (core 对「off 但没店」拒 prepare,而没店本来就不捕获)。判定的唯一属主是 `file-history-capture.ts`。
|
|
1163
1171
|
* 刻意**不**并进上面的 `fileHistory` 键:那一格是 core 店构造选项的同域键形,原样透传给 core。 */
|
|
@@ -1305,11 +1313,11 @@ export interface ServiceConfigFlat {
|
|
|
1305
1313
|
approvalRequire: string[];
|
|
1306
1314
|
/** Principals allowed to act as OPERATORS (`OPERATOR_PRINCIPALS`): every operator face reads it through the one reading
|
|
1307
1315
|
* `explicitOperatorOk` (`http/principal-gate.ts`) — e.g. the F4 approval queue (`/v1/approvals`): list ANY owner's pending +
|
|
1308
|
-
* decide. A non-operator principal may only LIST ITS OWN pending. **Empty = no one is an operator** (
|
|
1316
|
+
* decide. A non-operator principal may only LIST ITS OWN pending. **Empty = no one is an operator** ([ref]: the old
|
|
1309
1317
|
* "empty = everyone on the approval queue" reading is gone); a single-user deployment that wants to be its own operator
|
|
1310
1318
|
* declares {@link operatorSingleUser}. */
|
|
1311
1319
|
operatorPrincipals: string[];
|
|
1312
|
-
/** `OPERATOR_SINGLE_USER=true` —— 单用户形显式声明「这台部署的每个调用方都是运维」(
|
|
1320
|
+
/** `OPERATOR_SINGLE_USER=true` —— 单用户形显式声明「这台部署的每个调用方都是运维」([ref],[ref] ① 裁 A)。缺席 = 不声明(没人是,除非在名单里)。
|
|
1313
1321
|
* 只在单用户形(`REQUIRE_PRINCIPAL` 未开)且名单为空时成立 —— 否则拒启(`config-invariants.ts` 的 `operator-single-user`:一个事实一个来源)。
|
|
1314
1322
|
* env 独有(没有中心写位),起服冻结。读法只有 `explicitOperatorOk` / `operatorRosterPresent` 两只。 */
|
|
1315
1323
|
operatorSingleUser?: boolean;
|
|
@@ -1328,12 +1336,12 @@ export interface ServiceConfigFlat {
|
|
|
1328
1336
|
* operator resumes it on any replica. Default OFF([ref] A-5:轮询车道已退役,OFF+门意图 ⇒ core UNGATED
|
|
1329
1337
|
* 告警,不再有回退门形). `DURABLE_APPROVAL=true`. */
|
|
1330
1338
|
durableApproval: boolean;
|
|
1331
|
-
/**
|
|
1339
|
+
/** [ref]:上面那一位**是谁定的**(闭集四词,见 `posture-source.ts` —— 与 `readFaceSource` 同一张表)。
|
|
1332
1340
|
* 7.67.0 起本键进 posture 家族:单机 turnkey ∧ 有耐久店 ⇒ 默认 ON,多租户/内存底座仍 OFF,显式 env
|
|
1333
1341
|
* 两个方向恒赢。来源上 operator 读面(`GET /v1/diagnostics/wiring` 的 `serverGates`),因为「这台机器
|
|
1334
|
-
* 为什么开着 park/resume」在升级后是运维必须看得见的一句话(与
|
|
1342
|
+
* 为什么开着 park/resume」在升级后是运维必须看得见的一句话(与 [ref] 的补偿项同族)。 */
|
|
1335
1343
|
durableApprovalSource: PostureSource;
|
|
1336
|
-
/**
|
|
1344
|
+
/** [ref]:`STREAM_ASK_WINDOW_MS` 的来源(同一张四词表)。值在 {@link StreamApprovalConfig.windowMs};
|
|
1337
1345
|
* 单机 turnkey 缺席 ⇒ 24h(posture),多租户缺席 ⇒ 5min(engine-default),显式 env ⇒ env。 */
|
|
1338
1346
|
streamAskWindowMsSource: PostureSource;
|
|
1339
1347
|
/** [ref] seam #2 (preemption) / [ref] ("失败≠没做完" third state): when true (+ durable mode), the
|
|
@@ -1447,9 +1455,9 @@ export interface ServiceConfigFlat {
|
|
|
1447
1455
|
/** Expected `iss` / `aud` of a direct client's principal JWT. `PRINCIPAL_JWT_ISS` / `PRINCIPAL_JWT_AUD`. */
|
|
1448
1456
|
principalJwtIss?: string;
|
|
1449
1457
|
principalJwtAud?: string;
|
|
1450
|
-
/**
|
|
1458
|
+
/** [ref]:registry SSO-JWT 的**显式** issuer(`AUTH_BRIDGE_ISSUER`)。
|
|
1451
1459
|
* 🔴 **只是显式 env,不含 boot 期那条 `?? webAdmin.baseUrl` 回退**(回退仍在
|
|
1452
|
-
* `boot/stage-09-leader.ts` 的桥装配处)。唯一消费方是桥;
|
|
1460
|
+
* `boot/stage-09-leader.ts` 的桥装配处)。唯一消费方是桥;[ref]([ref] ①)起它**不是**托管证据 ——
|
|
1453
1461
|
* 显式与回退 issuer 在租户轴上同判(理由见 `hosted-posture.ts`)。 */
|
|
1454
1462
|
authBridgeIssuer?: string;
|
|
1455
1463
|
/** Max accepted principal-JWT lifetime (exp − now), seconds — caps the replay window past the short-lived mandate.
|
|
@@ -1648,7 +1656,7 @@ export interface ServiceConfigFlat {
|
|
|
1648
1656
|
* session; fills a NULL title only — a title the user set via `PATCH /v1/sessions/:id` is never overwritten).
|
|
1649
1657
|
* Default ON; `SESSION_AUTO_TITLE=false` opts out. */
|
|
1650
1658
|
sessionAutoTitle: boolean;
|
|
1651
|
-
/**
|
|
1659
|
+
/** [ref]:上面那一位的来源(同一张四词表)。本键**不进 posture**(缺省恒 true,两形同值)——
|
|
1652
1660
|
* 报来源是为了让运维分辨「这台机器显式关了自动标题」与「它本来就开着」;壳此前注 `false` 的那条
|
|
1653
1661
|
* 理由(gateway 不可达时的 warn 噪音)已在 `session-titler.ts` 侧修掉。 */
|
|
1654
1662
|
sessionAutoTitleSource: PostureSource;
|
|
@@ -1659,7 +1667,7 @@ export interface ServiceConfigFlat {
|
|
|
1659
1667
|
* field; rendered as the `# Environment` block, sanitized+bounded core-side). Default ON —
|
|
1660
1668
|
* facts only ride when the deployment actually knows them (image binding/pkgSource/egress/resume facts), absent =
|
|
1661
1669
|
* block unchanged. `SANDBOX_ENV_FACTS=false` opts out of the SANDBOX facts only.
|
|
1662
|
-
* 🔴
|
|
1670
|
+
* 🔴 [ref]:the session scratchpad declaration (`envFacts.scratchpadDir`) is NOT under this knob — it is the write
|
|
1663
1671
|
* surface's declaration (core opens the root-fence hole for it and teaches it by the same verdict), not a display
|
|
1664
1672
|
* fact; gating it would close the scratchpad together with the display. */
|
|
1665
1673
|
envFactsEnabled: boolean;
|
|
@@ -1688,14 +1696,14 @@ export interface ServiceConfigFlat {
|
|
|
1688
1696
|
* 调用形)成文在 `deployment-governance.ts` 的 `RelativeTargetLexicalEnv` 类注。 */
|
|
1689
1697
|
sensitiveWritePatterns: string[];
|
|
1690
1698
|
/**
|
|
1691
|
-
*
|
|
1699
|
+
* [ref] —— core **写保护名表**(`RunnerDeps.writeProtectedPaths` 座)的部署决定。两根 env 旋钮
|
|
1692
1700
|
* 共铸这**一个**键(它们写的是同一条语义面,两根同写 ⇒ boot 拒启,见 config.ts 的解析点):
|
|
1693
1701
|
* · `WRITE_PROTECTED_EXTRA` ⇒ `{knob:"extra", entries:[...WRITE_PROTECTED_DEFAULT_TABLE, …增量]}`;
|
|
1694
1702
|
* · `WRITE_PROTECTED_TABLE_REPLACE` ⇒ `{knob:"replace", entries:<JSON 数组原样>}`(`[]` = 显式无表)。
|
|
1695
1703
|
*
|
|
1696
1704
|
* 🔴 **缺席 = 不铸键**(与 `readFace` 族同律):座缺席时 core 的 `resolveWriteProtectedTable` 返回它
|
|
1697
1705
|
* 自己的缺省 51 行 —— 本仓**不复制那张表**,上游改表之日起不会有第二份真源。「缺席 = 没装表」是
|
|
1698
|
-
*
|
|
1706
|
+
* [ref] F2 的那个误读,读面(`writeProtection` 两位)正是为了让它不可能再发生。
|
|
1699
1707
|
*
|
|
1700
1708
|
* 🔴 为什么带 `knob` 而不是只存数组:`extra` 与 `replace` 铸出的 `entries` 在**值**上分不出来
|
|
1701
1709
|
* (一份 `[...DEFAULT, 两行]` 既可能是加法、也可能是运维手抄的整表),而两者对运维的意义相反 ——
|
|
@@ -1738,7 +1746,7 @@ export interface ServiceConfigFlat {
|
|
|
1738
1746
|
* default — a deployment must explicitly choose it); `"always"` = CC-strict parity (every Bash asks). Any
|
|
1739
1747
|
* other value (incl. `"off"`) is treated as unset — this knob has no "off" value to opt BACK OUT with once a
|
|
1740
1748
|
* session's baseline already tightened elsewhere (tightenTaskSpec would reject that as a loosen anyway).
|
|
1741
|
-
* 🔴 **
|
|
1749
|
+
* 🔴 **[ref](core 7.34.0 [ref])起值域 = core `ShellGateDoctrine` 本尊(只剩 `"always"`)**:`"classify"` 退役 ——
|
|
1742
1750
|
* 引擎把形状档装在**每一种模式**的全权 shell 上(不再是一个运维选的档),它当年**额外**买到的那一半(bypass 请求下
|
|
1743
1751
|
* shell 照问)没有忠实的继任值(引擎按模式放行 bypass 下的普通 ask)⇒ 配 `classify` 的部署 **boot 拒启**并指路
|
|
1744
1752
|
* (`config.ts` 的解析臂),不静默当成 no-op(那是安全轴上的静默放松)。上面几段关于 `"classify"` 的语义是历史记录。 */
|
|
@@ -1762,7 +1770,7 @@ export interface ServiceConfigFlat {
|
|
|
1762
1770
|
* 真源。所以缺席时这台机器跟随 core 的 `main`,运维面由 DEPLOY-PREREQS 的升级段点名(「默认变了」
|
|
1763
1771
|
* 是升级须知,不是一个可以静默过去的实现细节)。 */
|
|
1764
1772
|
autoModeClassifierFallback?: "main" | "none";
|
|
1765
|
-
/** 7.102.0
|
|
1773
|
+
/** 7.102.0 [ref](test [ref] / core [ref])—— **分类器单级判决上限**(`AUTO_MODE_CLASSIFIER_TIMEOUT_MS`,
|
|
1766
1774
|
* 部署级数值旋钮,整数 ms,合法域 {@link AUTO_MODE_CLASSIFIER_TIMEOUT_BOUNDS})→ core `RunnerDeps.autoMode.timeoutMs`。
|
|
1767
1775
|
*
|
|
1768
1776
|
* 为什么要一根旋钮:这一级到点没裁 = 梯子往下走,走完仍没裁 ⇒ 这次门控调用**整条拒**、不出卡。自建慢网关
|
|
@@ -1771,13 +1779,13 @@ export interface ServiceConfigFlat {
|
|
|
1771
1779
|
* 🔴 **缺席 = 不铸键**(与 {@link autoModeClassifierFallback} 同律):本仓不复制上游缺省数字,core 改缺省之日
|
|
1772
1780
|
* 本仓不会成为第二份真源。旋钮**无条件**:不挂任何客户端 / 请求面派生腿。坏值(非十进制整数 / 越界)boot 拒启。 */
|
|
1773
1781
|
autoModeClassifierTimeoutMs?: number;
|
|
1774
|
-
/**
|
|
1782
|
+
/** [ref]([ref] §4.4)—— CC `settings.crossSessionInbound` 的**部署/组织层**(引擎层形的 `managed` 层,
|
|
1775
1783
|
* CC `policySettings` 对位):本部署对入站跨会话消息的治理三态。`accept` 投递 / `hold` 停在收件会话的待审
|
|
1776
1784
|
* 队列 / `refuse` 整体退出车道。**未设 = 本层不设**(不是 accept):引擎读作「managed 层未表态」,由其余层
|
|
1777
1785
|
* 与 mode-parity 决定。词表外的值 boot 拒启(保护型旋钮不许静默回默认)。
|
|
1778
1786
|
* ⚠️ 供层点 = `cross-session-settings.ts`,生效前提 = 引擎的 peer 目录席在场(座缺席 ⇒ 整条车道不挂)。 */
|
|
1779
1787
|
crossSessionInbound?: CrossSessionInboundSetting;
|
|
1780
|
-
/**
|
|
1788
|
+
/** [ref] —— CC `settings.dialogExpiry` 的部署层:held 跨会话消息等待人审多久后按安全缺省结算(带回执过期,
|
|
1781
1789
|
* 不静默吞)。`"never"` = 不设期限。**未设 ⇒ 不铸键**,由引擎落它自己的缺省(`"5m"`)——本仓不复制上游
|
|
1782
1790
|
* 缺省值。词表外 boot 拒启。⚠️ CC 同名键还有第二个消费面(远端审批对话框停靠时长),本旋钮今天不驱动它。 */
|
|
1783
1791
|
crossSessionDialogExpiry?: CrossSessionDialogExpiry;
|
|
@@ -1813,12 +1821,12 @@ export interface ServiceConfigFlat {
|
|
|
1813
1821
|
* opt-out) is a **fail-loud tombstone** — it refuses boot naming `LSP_HOST_ENABLED`; `LSP_ENABLED=true` keeps
|
|
1814
1822
|
* its own meaning (the sandbox lane's opt-in above) and is unaffected. */
|
|
1815
1823
|
lspHostEnabled: boolean;
|
|
1816
|
-
/**
|
|
1824
|
+
/** [ref] —— host-lane language-server env **named allowlist** (`LSP_ENV_ALLOW=NAME,NAME`). The language server's env is
|
|
1817
1825
|
* the engine's `inheritedHostEnv("scrub")` (shape rules + this deployment's declared own credentials); each name here is put back **verbatim** from the service's own env on top of that
|
|
1818
1826
|
* (`allowlistedEnv`, the same "named keys pass" predicate as the host shell's `inheritEnv:[names]`) — the deployer
|
|
1819
1827
|
* explicitly accepts handing that value to code the language server runs. Unnamed secret-shaped keys stay stripped.
|
|
1820
1828
|
* `[]` = nothing put back (the default: unset / empty string). A malformed list (empty segment / not an env-var name /
|
|
1821
|
-
* the name of a name-list knob —
|
|
1829
|
+
* the name of a name-list knob — [ref]: one parser for all three) refuses boot naming the key, without echoing the value. `REQUIRE_PRINCIPAL=true` ⇒ always `[]` (ignored, one boot
|
|
1822
1830
|
* warn) — the multi-tenant posture keeps the full strip. Single-user: only names that EXIST in this process's env
|
|
1823
1831
|
* make it into this list (an absent name is a per-index boot warn) — so every downstream echo of it (the scrub
|
|
1824
1832
|
* disclosure's `allowed`, the config catalog) carries real key names only, never a value pasted in place of a name. */
|
|
@@ -1828,9 +1836,9 @@ export interface ServiceConfigFlat {
|
|
|
1828
1836
|
* /health carries `draining:true`. Default 10min (an interactive turn is minutes, not seconds — a
|
|
1829
1837
|
* 10s hard-cut would kill long turns); floor 10s. Env: DRAIN_GRACE_MS. SIGINT (Ctrl-C dev
|
|
1830
1838
|
* ergonomics) hard-stops immediately; DURING a drain, a second SIGTERM / SIGINT hard-stops only when it arrives
|
|
1831
|
-
* at least {@link drainSecondSignalMinGapMs} after the drain began (
|
|
1839
|
+
* at least {@link drainSecondSignalMinGapMs} after the drain began ([ref]). */
|
|
1832
1840
|
drainGraceMs: number;
|
|
1833
|
-
/**
|
|
1841
|
+
/** [ref](test [ref]):排空期「第二发信号 = 硬停」的最小间隔(ms,锚 = 排空起点)。不足 ⇒ 同一拍的重复投递,一行
|
|
1834
1842
|
* info `drain_duplicate_signal_ignored` 后忽略、排空继续;`0` = 关(7.101.x 行为)。合法域
|
|
1835
1843
|
* {@link DRAIN_SECOND_SIGNAL_MIN_GAP_BOUNDS},缺省 {@link DRAIN_SECOND_SIGNAL_MIN_GAP_DEFAULT_MS};坏值拒启([ref] A 档)。
|
|
1836
1844
|
* 部署级旋钮,**无条件**解析。 Env: `DRAIN_SECOND_SIGNAL_MIN_GAP_MS`。 */
|
|
@@ -1844,13 +1852,13 @@ export interface ServiceConfigFlat {
|
|
|
1844
1852
|
* T11 stands, just bounded instead of immediate. A SECOND SIGHUP (or SIGTERM) escalates to the normal drain
|
|
1845
1853
|
* path. Default 120s, floor 5s. Env: SIGHUP_IDLE_GRACE_MS. */
|
|
1846
1854
|
sighupIdleGraceMs: number;
|
|
1847
|
-
/** [ref](判据
|
|
1855
|
+
/** [ref](判据 [ref] / 出口 [ref] 改版):引擎 **parent 监视**。壳自 spawn 引擎的同机形里,壳被 SIGKILL
|
|
1848
1856
|
* (崩溃/强杀,没有任何清理钩子)后引擎被 reparent 到 init 而**继续活着** —— 孤儿引擎占端口、占库连接、
|
|
1849
1857
|
* 占模型配额、抱着 `LOCAL_DATA_ROOT/LOCK`(活孤儿是合法持锁人 ⇒ 下一只壳的引擎必撞锁),而且再没有人会给
|
|
1850
1858
|
* 它发 SIGTERM(T11 的进程组腿只覆盖信号送得到的形)。设了本键 = 引擎每 2s 自查一拍,**两支任一成立
|
|
1851
1859
|
* 即把自己标成孤儿**:① `process.ppid` 不再是启动那一刻的值(被过继走,强身份);② `process.kill(pid, 0)` 抛
|
|
1852
1860
|
* `ESRCH`(弱身份)。`EPERM` = 进程在、只是本进程无权给它发信号 ⇒ **算活着**。
|
|
1853
|
-
* 🔴 **
|
|
1861
|
+
* 🔴 **[ref](硬 breaking)**:成孤儿**不等于**停机 —— 看门狗的 drain 臂整条删。退不退由**同一条**
|
|
1854
1862
|
* 附着租约律判(无附着 ∧ 无在飞 ∧ 静默满窗),孤儿态只是把窗从 {@link engineLingerMs} 换成
|
|
1855
1863
|
* {@link engineOrphanLingerMs}。于是「A 起引擎、B 按 engine.port 复用、A 正常退」不会再在 B 的 turn
|
|
1856
1864
|
* 中间把引擎拆掉;自退仍走与 SIGTERM **逐字同一条** graceful drain 腿,不是裸 `process.exit`。
|
|
@@ -1865,9 +1873,9 @@ export interface ServiceConfigFlat {
|
|
|
1865
1873
|
* 才自退,且自退走的是与 SIGTERM **逐字同一条** graceful drain 腿(不是裸 `process.exit`)。
|
|
1866
1874
|
* **默认 false** —— 服务器部署形永不自退(k8s replica 半夜没人用是正常低谷,不是「该退了」);
|
|
1867
1875
|
* 壳 spawn 形由壳显式注入 `true`。**部署级旋钮无条件生效**,不派生自任何客户端表态。
|
|
1868
|
-
* 🔴 **
|
|
1876
|
+
* 🔴 **[ref]**:与 {@link parentPid} 不再是「各走各判据的两件」,而是**一件 + 一个输入** —— 租约腿在
|
|
1869
1877
|
* 「本键为真 ∨ `parentPid` 在场」时装配,本键只决定 **owned 态**(父还活着 / 没被监视)的窗:为真 ⇒
|
|
1870
|
-
* {@link engineLingerMs},为假 ⇒ **永不自退**(窗 = `Infinity`,与
|
|
1878
|
+
* {@link engineLingerMs},为假 ⇒ **永不自退**(窗 = `Infinity`,与 [ref] 前逐字同)。父死之后一律
|
|
1871
1879
|
* 改用 {@link engineOrphanLingerMs}。 Env: `ENGINE_AUTO_EXIT`(默认 off)。 */
|
|
1872
1880
|
engineAutoExit: boolean;
|
|
1873
1881
|
/** [ref]:自退前三合取必须**持续**成立的静默窗。默认 60s —— 防的是**壳重启窗**:壳崩了/重启的 1-3s
|
|
@@ -1880,8 +1888,8 @@ export interface ServiceConfigFlat {
|
|
|
1880
1888
|
* **永远追不上它** ⇒ 看着配好了、自退其实整件失效。要「永不自退」请用 `ENGINE_AUTO_EXIT=false`。
|
|
1881
1889
|
* Env: `ENGINE_LINGER_MS`(默认 60000,闭区间 [1000, 86400000])。 */
|
|
1882
1890
|
engineLingerMs: number;
|
|
1883
|
-
/**
|
|
1884
|
-
* 才自退。默认 **2s**:部署面的判据是「壳挂掉后数据根秒级重新可用」(
|
|
1891
|
+
/** [ref]:**孤儿态**的静默窗 —— `SEMA_PARENT_PID` 那个进程已经不在了之后,三合取还要**持续**成立多久
|
|
1892
|
+
* 才自退。默认 **2s**:部署面的判据是「壳挂掉后数据根秒级重新可用」([ref] 的原病 = 孤儿引擎抱着
|
|
1885
1893
|
* `LOCAL_DATA_ROOT/LOCK` 不放),而此时已经没有「壳重启窗」要防 —— 那只壳不会回来了(要回来的是**新**
|
|
1886
1894
|
* 壳,它走的是新 boot)。窗仍然不是 0:有活附着 / 有在飞 turn 时这条窗压根不开始计时(三合取先不成立)。
|
|
1887
1895
|
* 与 {@link engineLingerMs} **同一只校验器、同一对上下界**,坏值同样**拒启**;解析**无条件**,不看
|
|
@@ -1985,14 +1993,14 @@ export interface ServiceConfigFlat {
|
|
|
1985
1993
|
* 一个部署级旋钮的生死由客户端 posture 决定,同病犯过两次)。
|
|
1986
1994
|
*
|
|
1987
1995
|
* 施加点 = `ToolApprovalCoordinator` 的构造参 `unattendedPolicy`,五条「无人可答」的臂读同一
|
|
1988
|
-
* 个值;对账收敛器的同名构造参(
|
|
1996
|
+
* 个值;对账收敛器的同名构造参([ref],`boot/reapers.ts` 恒传同一个部署值)只供它的孤儿段打同一只终态 claim ——
|
|
1989
1997
|
* 两处读同一个值,于是崩溃恢复与 live 腿同答(设计稿 §1 的表:(a) 有店窗到期赢 CAS /(b) 无店窗到期 /(c) 店报错 catch /(d) windowZero 与
|
|
1990
1998
|
* headless 腿 /(e) 断连强转 + emit 全灭 + 写侧准入超限 + **投递集合入口活性过滤清空**([ref] 归
|
|
1991
1999
|
* 位:与「查无活流」同一件事实的两个时刻,详见 `askBroadcast` 的该臂注))。`"timeout"` 宿主自报只留在 (b)(c) ——
|
|
1992
2000
|
* 结束等待的确实是本仓的窗;其余三臂结束等待的是容量/连接/装配,自报恒缺席。
|
|
1993
2001
|
*
|
|
1994
|
-
* 🔴 **`deny` 交给引擎的形(
|
|
1995
|
-
* `policy_refused`(`who.party:"policy"` —— core 7.39.0
|
|
2002
|
+
* 🔴 **`deny` 交给引擎的形([ref])**:部署政策拒对象臂 `{allow:false, settledBy:"policy", reason}` ⇒ 引擎结算
|
|
2003
|
+
* `policy_refused`(`who.party:"policy"` —— core 7.39.0 [ref] 起;此前 `"none"`)、模型读策略句(「部署政策拒了、此处没有交互审批,别重试、做不需审批的
|
|
1996
2004
|
* 部分」)、run 不以「用户拒绝」收束而是继续。修前是裸 `false` —— 引擎契约里那就是「一个人拒了」
|
|
1997
2005
|
* (`human_refused` / `haltedOnUserRejection`),与本键「没有人会来」的自声明正好相反。(b)(c) 两臂照旧带
|
|
1998
2006
|
* `"timeout"` 自报(`approval_window_expired`)。
|
|
@@ -2009,12 +2017,12 @@ export interface ServiceConfigFlat {
|
|
|
2009
2017
|
* · APPROVAL_REQUIRE 名单工具:**要不要 ask** 由 `createApprovalBaselinePolicy` 的 durable gate 类裁决,那一层
|
|
2010
2018
|
* 结构上读不到本旋钮;但那只 ask 的**答法**在协调器在场时与治理 ask 同走流内臂、同政策(引擎先问活席
|
|
2011
2019
|
* `onAsk`,答 `"unavailable"` 才 park)⇒ `deny` 部署对名单工具同样当场拒。旧注「不经流内臂、不受本旋钮
|
|
2012
|
-
* 影响」失实(test 黑盒证伪;
|
|
2020
|
+
* 影响」失实(test 黑盒证伪;[ref] 的真 HTTP 格 `test/unattended-deny-settlement-e2e.test.ts` 用的正是
|
|
2013
2021
|
* 名单工具)。
|
|
2014
2022
|
* · **持久回放**(窗到期后向真源收敛、`ensureAsk` 幂等重入撞上已终结的行)读出 PARKING/PARKED 时
|
|
2015
2023
|
* **同样按旋钮改判** —— 它们与 (a) 是同一件事(赢家可能是别的副本或上一次调用),不统一的话同一只
|
|
2016
2024
|
* ask 的终局会取决于「谁赢了那把 CAS / 重试没重试」。人的真决议回放不受影响。
|
|
2017
|
-
* · `ensureAsk` 身份未定 / 坏行两臂**同样**改判(
|
|
2025
|
+
* · `ensureAsk` 身份未定 / 坏行两臂**同样**改判([ref],7.101.0;此前是唯一的例外,deny 部署上店抖动期仍会落 park):
|
|
2018
2026
|
* 两臂的处置不变(不编造 wire 身份、不在身份未定时呈卡收人决),「不呈卡之后交什么」过同一个政策口 —— deny ⇒ 部署
|
|
2019
2027
|
* 政策拒,本次插下的行同落政策结算(归属证不出的行不当场动 —— 可能正被别的登记呈卡 —— 由收敛器孤儿段收);
|
|
2020
2028
|
* park ⇒ `"unavailable"` 逐字不变。
|
|
@@ -2022,9 +2030,9 @@ export interface ServiceConfigFlat {
|
|
|
2022
2030
|
* —— 这一只 ask 行 CAS 成 DECIDED(deny) + `settled_by="policy"`(按 ask 作用域,不碰批、不连坐兄弟),与交给
|
|
2023
2031
|
* 引擎的那一只同一个来源词 ⇒ 重入 / 收敛后重入回放同一个政策拒,不退化成裸 `false`(人拒)。修前行停 PARKING,
|
|
2024
2032
|
* run 完成后收敛器转 DENIED 且不带来源。崩溃恢复腿(收敛器孤儿段)与两条兜底臂调**同一只** claim(`settleByPolicy`,
|
|
2025
|
-
*
|
|
2033
|
+
* [ref] / [ref],7.101.0),于是本旋钮也施加到收敛器上(装配点恒传)。仍按 PARKING 记账的只剩别的写者推进的行
|
|
2026
2034
|
* (park 政策副本 / 切换政策之前)。
|
|
2027
|
-
* · 🔴 `deny` 部署上**批是单 ask 批**(
|
|
2035
|
+
* · 🔴 `deny` 部署上**批是单 ask 批**([ref] codex R1-F1;`deriveAskScopedBatchId`):批是 park 路由的单位,
|
|
2028
2036
|
* 整腿一批的前提是「批一关腿就随 park 结束」;deny 下引擎拿到部署政策拒后腿继续跑,整腿一批会让首只到期
|
|
2029
2037
|
* 把批关掉(同腿后续的卡人批不动)、把兄弟连坐成 VOID(裸 `false` = 人拒)。
|
|
2030
2038
|
*/
|
|
@@ -2046,16 +2054,16 @@ export interface ServiceConfigFlat {
|
|
|
2046
2054
|
traceThinking: boolean;
|
|
2047
2055
|
/** [ref](core 5.30.0 readFace 部署座席):READ 容纳面。显式坏词启动期响亮拒;只影响读面,写面永不
|
|
2048
2056
|
* 受它管(core 契约)。
|
|
2049
|
-
* 🔴 **
|
|
2057
|
+
* 🔴 **[ref](7.65.0)起「缺席」按 posture 分两形**(clay 裁定 2):单用户 turnkey(`REQUIRE_PRINCIPAL`
|
|
2050
2058
|
* 未设)⇒ 铸 `open`(工作区外读默认放行);多租户 ⇒ 仍**不铸**(core 引擎默认 roots,server 不写死
|
|
2051
2059
|
* 上游默认)。谁定的这一档由 {@link ServiceConfigFlat.readFaceSource} 答 —— 值与来源**同一处写**。 */
|
|
2052
2060
|
readFace?: "open" | "roots";
|
|
2053
|
-
/**
|
|
2061
|
+
/** [ref]:上面那一档**是谁定的**(闭集四词,见 `read-face-posture.ts`)。不变量:
|
|
2054
2062
|
* `readFace === undefined` ⟺ `readFaceSource === "engine-default"`。
|
|
2055
2063
|
* 🔴 承重面**不是**装饰:`web-admin-client/read-face.ts` 的「env 恒赢」逐键判据读的就是它(修前读的是
|
|
2056
2064
|
* 「键在不在场」这个代理,posture 会铸键 ⇒ 代理当场失真,center 的 face 会被从没设过 env 的机器挡掉)。 */
|
|
2057
2065
|
readFaceSource: ReadFaceSource;
|
|
2058
|
-
/**
|
|
2066
|
+
/** [ref](7.95.0,车LT):任务层**掀开写围栏**这条声明的**运维天花板档位**(`TASK_WRITE_FACE_ESCALATION`)。
|
|
2059
2067
|
* `"allow"` = 这台部署允许任务层把写容纳面开到任务根之外;`"refuse"` = 无条件拒;
|
|
2060
2068
|
* **缺席 = 不表态** ⇒ 交给托管 posture 判(托管拒 / 单用户 turnkey 照旧放行)。判据单点在
|
|
2061
2069
|
* `src/hosted-posture.ts` 的 `taskWriteFaceRefusal`。
|
|
@@ -2093,7 +2101,7 @@ export interface ServiceConfigFlat {
|
|
|
2093
2101
|
* `READ_DENY_BUILTIN_EXCLUDE`=逗号分隔;不在表里的行名 / 空串**启动期响亮拒**。
|
|
2094
2102
|
* 🔴 不变量(判据帖 G5b):删内建**绝不**削弱任务自己显式声明的 deny —— 那是另一层(additions)。 */
|
|
2095
2103
|
readDenyBuiltinExclude?: readonly string[];
|
|
2096
|
-
/** core 7.46.0
|
|
2104
|
+
/** core 7.46.0 [ref]:部署**声明**的配置根(`SEMA_CONFIG_DIR`,绝对路径;起服的供给动作建出目录,能不能用由引擎判)—— 交引擎 `RunnerDeps.agentConfigDir`
|
|
2097
2105
|
* 与守卫集 `createSensitivePathPolicy` 的同名入参:内建读拒表里以 `.sema` 开头的行在这个根下同样拒,写进根下要问一次。缺席 = 没声明
|
|
2098
2106
|
* ⇒ 引擎读字面 `~/.sema`(与 LKG / skill 缓存 / scheduler 店的缺省落点同一处)。读法单一属主 `sema-config-dir.ts`。 */
|
|
2099
2107
|
agentConfigDir?: string;
|
|
@@ -2195,10 +2203,10 @@ export interface ServiceConfigFlat {
|
|
|
2195
2203
|
* config, but do NOT apply it — a safe-rollout verification step before flipping to live.
|
|
2196
2204
|
* `worker` (SEMA_WEB_ADMIN_WORKER=<name>; injected per-worker by the reconciler): scopes the pull to
|
|
2197
2205
|
* that worker's roster via `/effective?worker=<name>`. Unset → the global roster (backward compatible).
|
|
2198
|
-
* `credential`(
|
|
2206
|
+
* `credential`([ref],BREAKING:取代 7.98.0 及以前的 `token: string` 启动快照):凭证来源活对象
|
|
2199
2207
|
* (`center-credential.ts`),每条出站请求经它取一次值 —— `SEMA_WEB_ADMIN_TOKEN`(值)或
|
|
2200
2208
|
* `SEMA_WEB_ADMIN_TOKEN_FILE`(每次读文件,轮换 / 换账号不重启)二选一(两键名与判官的属主 = settings-schema
|
|
2201
|
-
* `WEB_ADMIN_ENV` / `judgeWebAdminCredentialDeclaration`,
|
|
2209
|
+
* `WEB_ADMIN_ENV` / `judgeWebAdminCredentialDeclaration`,[ref])。
|
|
2202
2210
|
* `liveBaseUrl`(编排器片 2,env `SEMA_WEB_ADMIN_LIVE_URL`):fleet 活性组(心跳 / 注销、服务租约 —— settings-schema `FLEET_LIVE_PATHS`)的基址,
|
|
2203
2211
|
* 给「管理面在就绪门后、活性面另走一条不看就绪的入口」的部署;缺席 ⇒ 活性组也打 `baseUrl`(这条缺省只在 `centerFetch` 读)。
|
|
2204
2212
|
* `webBaseUrl`(7.121.0,env `SEMA_WEB_ADMIN_WEB_URL`):这个中心的 **web 面固定基址**,运维声明、引擎原样转述到 `/health.center.webBaseUrl`
|
|
@@ -2211,10 +2219,10 @@ export interface ServiceConfigFlat {
|
|
|
2211
2219
|
dryRun: boolean;
|
|
2212
2220
|
worker?: string;
|
|
2213
2221
|
};
|
|
2214
|
-
/**
|
|
2222
|
+
/** [ref] ③(E-2):租约**连接级**失败(中心 401 / 403 / 400、凭证文件不可读;不可达 / 5xx / 超时 / 坏体)时的姿态 ——
|
|
2215
2223
|
* `true` ⇒ 计费入口答 503 `fleet.lease_unavailable`(`Retry-After` 5s);`false` ⇒ 照旧放行(AP 姿态,warn + 计数)。
|
|
2216
2224
|
* `FLEET_LEASE_FAIL_CLOSED`(布尔词表,词表外拒启);**缺席随部署姿态派生**:`REQUIRE_PRINCIPAL=true` ⇒ `true`,单用户 ⇒ `false`;
|
|
2217
|
-
* 显式值压过派生(部署级旋钮无条件,与 `READ_FACE` 缺省按 posture 派生
|
|
2225
|
+
* 显式值压过派生(部署级旋钮无条件,与 `READ_FACE` 缺省按 posture 派生 [ref] 同形)。只在装了租约管理器的部署上有意义
|
|
2218
2226
|
* (`lease:"absent"` 的部署不参与);生效值上 caps `centerWiring.failMode`。 */
|
|
2219
2227
|
fleetLeaseFailClosed: boolean;
|
|
2220
2228
|
/** 编排器片 2:fleet 成员的**代际**(env `FLEET_GENERATION`,settings-schema `FLEET_GENERATION_ENV`;配置渲染器是唯一写手)。
|
|
@@ -2236,7 +2244,7 @@ export interface ServiceConfigFlat {
|
|
|
2236
2244
|
* 不自停;中心恢复授予即恢复。② 排空口 `POST /v1/admin/drain` 的**期限准入上界**(`fleet/drain-entry.ts` 规则 2):`deadlineAt` 离此刻超过它 ⇒
|
|
2237
2245
|
* 400 `request.field_invalid`。 */
|
|
2238
2246
|
fleetLeaseOutageMaxMs: number;
|
|
2239
|
-
/**
|
|
2247
|
+
/** [ref](design-325 §2):中心凭证**续签提前量**(ms)—— `SEMA_WEB_ADMIN_TOKEN_FILE` 指向人的登录会话信封
|
|
2240
2248
|
* (`kind:"user-session"`)时,访问令牌离到期 ≤ 本值即由引擎续签并原子改写同一文件(`center-credential-renewer.ts`)。
|
|
2241
2249
|
* 缺省 5 min;`0` = 关续签、只读信封(壳负责续);其余必须是整数毫秒且落在 `CENTER_CREDENTIAL_RENEW_LEAD_MIN_MS`(一次续签请求的
|
|
2242
2250
|
* 传输上界)与 `CENTER_CREDENTIAL_RENEW_LEAD_MAX_MS`(访问令牌寿命之半)之间,坏值拒启(解析口 `parseCenterCredentialRenewLeadMs`)。
|
|
@@ -2244,7 +2252,7 @@ export interface ServiceConfigFlat {
|
|
|
2244
2252
|
centerCredentialRenewLeadMs: number;
|
|
2245
2253
|
/** Dual-mode config SOURCE (DUAL-MODE-DESIGN §4): "remote" (web-admin HTTP) | "local" (.env + config.d
|
|
2246
2254
|
* via @sema-agent/settings-schema FileConfigStore) | unset → remote if SEMA_WEB_ADMIN_URL is set, else pure-env.
|
|
2247
|
-
* Env: CONFIG_PROVIDER ——
|
|
2255
|
+
* Env: CONFIG_PROVIDER —— [ref] 起闭集 {@link CONFIG_PROVIDER_WORDS}(认不出的词拒启;空串 = 未设)。
|
|
2248
2256
|
* The same resolver/EffectiveConfig either way (can't drift). */
|
|
2249
2257
|
configProvider?: ConfigProviderWord;
|
|
2250
2258
|
/** Root dir holding `config.d/<domain>.json` for the local config source. Env: CONFIG_LOCAL_DIR. */
|
|
@@ -2255,7 +2263,7 @@ export interface ServiceConfigFlat {
|
|
|
2255
2263
|
configLocalOwnerUid?: number;
|
|
2256
2264
|
}
|
|
2257
2265
|
/** 组:store(持久化)—— DB 引擎三态、session 后端、SQL coords、快照 BLOB / SendUserFile 对象存储。 */
|
|
2258
|
-
export type ServiceStoreConfig = Pick<ServiceConfigFlat, "sessionBackend" | "sessionCacheTtlSec" | "storeProbeIntervalMs" | "storeLockWaitMs" | "dbBackend" | "dbBackendExplicit" | "localDataRoot" | "runStoreStrictHydrate" | "tidb" | "pg" | "dbQueryTimeoutMs" | "snapshotBlobStore" | "snapshotBlobSqlMaxBytes" | "snapshotBlobAllowSql" | "fileHistory" | "fileHistoryCapture" | "sendUserFile">;
|
|
2266
|
+
export type ServiceStoreConfig = Pick<ServiceConfigFlat, "sessionBackend" | "sessionCacheTtlSec" | "storeProbeIntervalMs" | "storeLockWaitMs" | "dbBackend" | "dbBackendExplicit" | "localDataRoot" | "sealedKeyDir" | "runStoreStrictHydrate" | "tidb" | "pg" | "dbQueryTimeoutMs" | "snapshotBlobStore" | "snapshotBlobSqlMaxBytes" | "snapshotBlobAllowSql" | "fileHistory" | "fileHistoryCapture" | "sendUserFile">;
|
|
2259
2267
|
/** 组:modelPlane(模型面)—— 网关坐标、Anthropic 路线、韧性旋钮、主/廉价 model entry、role 表、降级梯。 */
|
|
2260
2268
|
export type ServiceModelPlaneConfig = Pick<ServiceConfigFlat, "gatewayBaseUrl" | "gatewayApiKey" | "gatewayFallbackUrls" | "gatewayMaxRetries" | "anthropic" | "resilience" | "model" | "envModel" | "models" | "modelApiKeyEnv" | "modelApiKeys" | "modelRefusals" | "droppedCatalogEntries" | "modelQuotaWeights" | "tiers" | "projects" | "roles" | "atMention" | "cascadeLadder" | "degrade">;
|
|
2261
2269
|
/** 组:approval(审批 / HITL 门)。`directDoorActive` 无 env 解析腿(装配层三域合取的产物),但语义上
|