@sema-agent/server 7.134.0 → 7.135.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 +134 -0
- package/USAGE.md +98 -30
- 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 +62 -150
- package/dist/approval-card.js +33 -51
- package/dist/approval-content-kind.d.ts +22 -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 +1 -1
- 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/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/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 +28 -24
- package/dist/boot/runner-deps.d.ts +11 -11
- package/dist/boot/runner-deps.js +3 -2
- 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-05-execution-env.js +4 -4
- package/dist/boot/stage-06-runners.js +0 -2
- package/dist/boot/stores.js +2 -1
- package/dist/boot/web-admin.d.ts +17 -17
- package/dist/boot/web-admin.js +5 -10
- package/dist/boot/workflow-orchestration.js +2 -9
- package/dist/brain.d.ts +11 -11
- package/dist/budget.d.ts +4 -4
- 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 +10 -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 +26 -25
- package/dist/capability-facts.js +14 -16
- package/dist/center-config-tier.d.ts +1 -1
- package/dist/center-credential.d.ts +4 -4
- 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-invariants.d.ts +4 -4
- package/dist/config-invariants.js +3 -2
- package/dist/config-lkg.d.ts +1 -1
- package/dist/config-provider.d.ts +13 -13
- package/dist/config-provider.js +2 -1
- package/dist/config-types.d.ts +83 -83
- package/dist/config.d.ts +26 -24
- package/dist/config.js +12 -10
- 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/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 +23 -11
- package/dist/file-history-disclosure.js +7 -12
- 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 +13 -13
- package/dist/fleet-lease.d.ts +16 -16
- package/dist/governance-http-status.d.ts +2 -2
- package/dist/hooks/hook-llm.d.ts +7 -7
- package/dist/hooks/hook-runner.d.ts +57 -30
- package/dist/hooks/hook-runner.js +36 -18
- 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 +39 -13
- package/dist/http/checkpoint-ctx.js +74 -35
- package/dist/http/dispatch.d.ts +3 -3
- 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 +7 -7
- package/dist/http/resume-ctx-read.js +1 -1
- 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 -5
- package/dist/http/routes/approvals-assistant.js +55 -15
- 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 +22 -10
- package/dist/http/routes/session-sync.d.ts +1 -1
- package/dist/http/routes/session-sync.js +73 -44
- package/dist/http/routes/sessions-list.js +1 -1
- package/dist/http/routes/sessions.js +30 -44
- 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 +28 -21
- 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-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/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 +12 -8
- package/dist/observability/fail-open.js +12 -8
- package/dist/observability/metrics.d.ts +3 -3
- 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 +16 -15
- package/dist/parked-decide.js +5 -4
- package/dist/parked-revive-surface.d.ts +7 -7
- package/dist/parked-revive-surface.js +2 -3
- package/dist/peer-directory.d.ts +3 -3
- package/dist/peer-directory.js +1 -1
- 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 +34 -15
- package/dist/plugins/approval-ask-store-sql.js +18 -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/caching-session-store.d.ts +23 -32
- package/dist/plugins/caching-session-store.js +5 -17
- package/dist/plugins/checkpoint-index-columns.d.ts +81 -0
- package/dist/plugins/checkpoint-index-columns.js +62 -0
- package/dist/plugins/checkpoint-store-sql.d.ts +44 -66
- package/dist/plugins/checkpoint-store-sql.js +55 -102
- 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 +9 -7
- package/dist/plugins/file-history-store-sql.js +27 -15
- 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 +3 -4
- 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 +66 -40
- package/dist/plugins/one-time-migrations.js +115 -34
- 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 +8 -8
- 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/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/sql-driver.d.ts +8 -8
- package/dist/plugins/sql-errors.d.ts +1 -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/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 +9 -2
- 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 +19 -4
- 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-key-closure.d.ts +1 -1
- package/dist/request-key-closure.js +1 -1
- 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-governance.d.ts +9 -9
- package/dist/sandbox-pkg-source.d.ts +9 -31
- package/dist/sandbox-pkg-source.js +14 -8
- package/dist/sealed-key.d.ts +3 -3
- 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 +52 -35
- package/dist/session-incarnation.js +23 -8
- 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-sync-kernel.d.ts +4 -4
- package/dist/session-sync.d.ts +49 -6
- package/dist/session-sync.js +52 -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 +3 -1
- package/dist/task-a2a.js +34 -2
- package/dist/task-cwd.d.ts +7 -88
- package/dist/task-cwd.js +2 -15
- package/dist/task-mcp.d.ts +12 -8
- package/dist/task-mcp.js +19 -4
- 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 +143 -197
- package/dist/tool-approval.js +13 -28
- package/dist/tool-rule-names.d.ts +2 -2
- package/dist/trace/core-keyset-guard.d.ts +12 -7
- 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 +41 -63
- 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 +44 -30
- package/dist/trace/redact.js +191 -89
- package/dist/trace/self-minted-wire.d.ts +35 -14
- package/dist/trace/self-minted-wire.js +8 -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.d.ts +52 -0
- package/dist/url-credential.js +49 -0
- package/dist/url-refusal.d.ts +6 -2
- package/dist/url-refusal.js +8 -1
- 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 +5 -3
- package/dist/write-protection.d.ts +2 -2
- package/package.json +4 -3
- package/scripts/drain-check-local.mjs +2 -1
- package/scripts/drain-check.mysql.sql +4 -2
- package/scripts/drain-check.pg.sql +4 -2
- package/skills/loop.md +1 -1
- 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
|
@@ -261,6 +261,13 @@ export const SELF_MINTED_WIRE = {
|
|
|
261
261
|
repo: { attr: "-", since: "1.214.2" },
|
|
262
262
|
},
|
|
263
263
|
},
|
|
264
|
+
scenarioSkillSource: {
|
|
265
|
+
at: "GET /v1/capabilities/scenarios/:name#skills[].source",
|
|
266
|
+
members: {
|
|
267
|
+
factory: { attr: "-", since: "7.135.0" },
|
|
268
|
+
center: { attr: "-", since: "7.135.0" },
|
|
269
|
+
},
|
|
270
|
+
},
|
|
264
271
|
configCatalogValueVerdict: {
|
|
265
272
|
at: "GET /v1/config/catalog rows[] 的判词位(<键> → 在场律)",
|
|
266
273
|
members: {
|
|
@@ -277,6 +284,7 @@ export const SELF_MINTED_WIRE = {
|
|
|
277
284
|
droppedEntries: { attr: "always", since: "7.123.0" },
|
|
278
285
|
candidateRejected: { attr: "present-iff", since: "7.126.0" },
|
|
279
286
|
modelPlane: { attr: "always", since: "7.133.0" },
|
|
287
|
+
aliases: { attr: "always", since: "7.135.0" },
|
|
280
288
|
},
|
|
281
289
|
},
|
|
282
290
|
wireValueRule: {
|
|
@@ -26,7 +26,7 @@ export declare const SEMA_PROVENANCE_KINDS: readonly ["agent_message"];
|
|
|
26
26
|
* (core-keyset-guard.ts ① 的同名排除键)一同候 [ref] 表态。放进 EXCLUDED 而不是 PROJECTED,是**沿用**上一行的
|
|
27
27
|
* 裁定而不是新增特判:表态未出前放行一个 lane 词,等于替它预先声明一种 cli 渲染形。表态落定那天三处(本簿、
|
|
28
28
|
* 载体键、①-nested 的 `peerMeta`)同批翻。
|
|
29
|
-
* · `inbox_notice` —— core 7.30.0
|
|
29
|
+
* · `inbox_notice` —— core 7.30.0 [ref]([ref] 提货;本闭集当拍真红出它)。**同一条车道的第三个载体**(收件箱通告,
|
|
30
30
|
* `crossSessionMessage` / `crossSessionNotice` 之后),同一个 session-box drain 铸;载体键 `inboxNotice` 在
|
|
31
31
|
* core-keyset-guard.ts ① 同批进 EXCLUDED。沿用上两行的裁定,不是新判据:[ref] 表态落定那天四处同批翻。
|
|
32
32
|
*/
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* [ref](core 7.30.0 提货):`task_notification` 帧上 7.30.0 新到的五枚键的**单点**投影判据 —— live 三腿
|
|
3
3
|
* (`trace/project.ts` 的 `taskNotificationEventData`)与 park 半场(`orchestration/workflow-completion-inbox.ts` 的
|
|
4
4
|
* `taskNotificationInboxEntry`)共用,两腿字节同判(形照 `sema-provenance.ts` / `injection-tier.ts` 的先例:
|
|
5
5
|
* park 腿的 drain 直接 spread extras 成帧、不再经 project.ts,判据必须在入库前做,而且只能有一份)。
|
|
6
6
|
*
|
|
7
7
|
* 五枚键分两组,判据各一只函数:
|
|
8
|
-
* · {@link terminalFrameFacetFields} —— 委派终态帧的三枚 facet([ref] S1 /
|
|
8
|
+
* · {@link terminalFrameFacetFields} —— 委派终态帧的三枚 facet([ref] S1 / [ref]),core 在产生者一侧由
|
|
9
9
|
* `terminalFrameFacets` 统一铸:`spawnName` / `handback` / `compaction`;
|
|
10
|
-
* · {@link resupplyFields} —— 重供两键(
|
|
10
|
+
* · {@link resupplyFields} —— 重供两键([ref]):`resupplied` / `attempt`。
|
|
11
11
|
* 全部是引擎铸的闭形值(身份键 / 闭集词 / 计数 / 布尔),零模型自由文本 ⇒ 不过 `redactSecrets`;判不过形 ⇒ 那一键
|
|
12
12
|
* 缺席(不折默认、不编值)。同一只会话箱车道的**载体** `inboxNotice` 不在这里 —— 它在 EXCLUDED 簿
|
|
13
13
|
* (`core-keyset-guard.ts` ①,理由逐字在那里)。
|
|
@@ -50,7 +50,7 @@ export declare function terminalFrameFacetFields(n: TaskNotificationFacetInput):
|
|
|
50
50
|
compaction?: CompactionFacet;
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
|
-
* 重供两键(core 7.30.0
|
|
53
|
+
* 重供两键(core 7.30.0 [ref];判据档 F1 原句点名「@server trace/inbox allowlist」)。一条会话箱记录的帧被压缩摘要掉之后,
|
|
54
54
|
* 引擎把同一条记录再交一次 —— 同 `task_id` / `status` / `seq`,多这两枚键:
|
|
55
55
|
* · `resupplied` —— **只有真一形**(core 逐字「there is no `false` form」)⇒ 只放行 `true`,别的一律缺席;
|
|
56
56
|
* · `attempt` —— 这是第几次投递(缺席 = 1,「没有 0」)⇒ 只放行 ≥1 的整数,verbatim,不补默认。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* [ref] —— **wire 帧投影面的登记表**([ref]「手抄投影全面下线,改由源头机器派生」在本仓第一处落点)。
|
|
3
3
|
*
|
|
4
4
|
* ## 这张表是什么(以及它**不是**什么)
|
|
5
5
|
* 每一行登记一只把 core 帧投到 wire 的构造器,只写三样**人必须裁定**的东西:
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* `NotificationExcluded` 直接读成本表这一行的 `excluded`,于是「哪几个键有意不上 wire」全仓**只有一个写者**。
|
|
22
22
|
* 旧形是两个:守卫文件一簿、`test/wire-whitelist-exhaustiveness.test.ts` 的 `KnownExcluded` 一簿,那份门注
|
|
23
23
|
* 自己写着「两处必须同时改」—— 而「必须同时改」正是 [ref] 要下线的东西(对账门不算替代,单写者才算)。
|
|
24
|
-
* 本表是纯数据、无行为(唯一的派生是 `wiring_manifest_operator` 行的两只取值器:`excluded` = 租户行减具名常量,
|
|
24
|
+
* 本表是纯数据、无行为(唯一的派生是 `wiring_manifest_operator` 行的两只取值器:`excluded` = 租户行减具名常量,[ref];`minted` = 租户行,[ref]),
|
|
25
25
|
* 被守卫文件以 `typeof import(...)` 的**类型查询**读取(编译期擦除,零运行期边);唯一的运行期读者是清单行的解释器
|
|
26
26
|
* (`observability/prompt-manifest.ts`,读 `keys` 声明)与机器清单生成器(转译本文件、求值、只读数据)—— 两者都不改表。
|
|
27
27
|
*
|
|
@@ -226,7 +226,7 @@ export declare const WIRE_PROJECTION_FACES: {
|
|
|
226
226
|
readonly wiring_manifest_tenant: {
|
|
227
227
|
readonly projector: "wiringManifestEventData";
|
|
228
228
|
readonly coreType: `WiringManifest & ${string}`;
|
|
229
|
-
readonly excluded: readonly ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence"];
|
|
229
|
+
readonly excluded: readonly ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence", "advisor"];
|
|
230
230
|
readonly unwrapped: readonly ["manifest"];
|
|
231
231
|
readonly minted: readonly ["instructions"];
|
|
232
232
|
};
|
|
@@ -51,7 +51,7 @@ export const WIRE_PROJECTION_FACES = {
|
|
|
51
51
|
wiring_manifest_tenant: {
|
|
52
52
|
projector: "wiringManifestEventData",
|
|
53
53
|
coreType: `WiringManifest & ${arm("wiring_manifest")}`,
|
|
54
|
-
excluded: ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence"],
|
|
54
|
+
excluded: ["governance", "configFingerprint", "autoConsolidation", "readDeny", "peerPresence", "advisor"],
|
|
55
55
|
unwrapped: ["manifest"],
|
|
56
56
|
minted: ["instructions"],
|
|
57
57
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* [ref] ①([ref] / clay 裁 [ref];core 7.37.0 [ref],`docs/INTEGRATION-CORE.md` §4.6e)—— **无人值守腿:`default` 模式 + 按类作答的 onAsk**。
|
|
3
3
|
*
|
|
4
4
|
* ## 规则(一句)
|
|
5
5
|
* 本仓**自己铸** spec、**没有调用方**能在请求上表态模式的腿 —— leader worker(`src/leader/wire.ts` provisionWorker 两车道)、leader 的
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* 它自建 spec 的出生点盖下的运维 `AUTONOMY=plan` 地板、续跑重建读到的存储体的 `plan` 都是天花板,本腿的 `default` 落在它下面就是 `plan`,
|
|
10
10
|
* 不把它降回去)与 `onAsk` = {@link createUnattendedOnAsk}。
|
|
11
11
|
* 那只 onAsk 读 `AskRequest.classes` **整体**:集非空且每一类都在 {@link UNATTENDED_ANSWERED_CLASSES}(= `{ordinary}`,常量,不是旋钮)⇒ 答 yes
|
|
12
|
-
* —— **以策略的名义**(
|
|
12
|
+
* —— **以策略的名义**([ref] / core 7.39.0 [ref]:`{allow:true, settledBy:"policy", approver:"unattended_class_answer"}` ⇒ core 结算 `policy_allowed` /
|
|
13
13
|
* `who.party:"policy"`;修前是裸 `true`,core 把机器的放行记成**人**批 `human_allowed` / `person`);
|
|
14
14
|
* 否则不答 —— 本腿**有席**(run-local 的 `createLocalApprover`:有 TTY 问人、无 TTY 当场拒;续跑腿的协调器席)⇒ 交给席;**无席** ⇒ 答
|
|
15
15
|
* `"unavailable"` = 交回 core 的缺席路(本腿武装了 durable park ⇒ park,等人经 `/decide` 答;否则 headless 拒 —— fail-closed)。
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
*
|
|
36
36
|
* ## 退役(硬破坏,零别名 / 零双读 / 零过渡臂)
|
|
37
37
|
* `UNATTENDED_PERMISSION_MODE` 旋钮(`config-catalog` 行 / `config` 解析 / `ServiceConfig.unattendedPermissionMode`)、`createUnattendedWriteProtectionPolicy`
|
|
38
|
-
* (
|
|
38
|
+
* ([ref] 的 `pathDenyRules` 过渡形)、`createUnattendedLeg` 的模式 / Runner 座参数、写面钉 `writeFace: "roots"`(那一钉只为不拿 bypass 的开放写面;
|
|
39
39
|
* `default` 模式行不给写面 ⇒ 引擎缺省 roots,与 7.105.0 同)、P-DEBT 臂 `server.unattended-leg.mode-releases-protective-asks`(FAIL-OPEN-CENSUS 第 101 行终态)。
|
|
40
40
|
*
|
|
41
41
|
* ## 射程外(成文)
|
|
@@ -52,7 +52,7 @@ import type { AskClass, AskRequest, OnAsk, PermissionMode, TaskSpec } from "@sem
|
|
|
52
52
|
*/
|
|
53
53
|
export declare const UNATTENDED_ANSWERED_CLASSES: ReadonlySet<AskClass>;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* [ref](core 7.39.0 [ref]):按类作答层这只席的**名字** —— 本仓自己的闭词(core 只把它转录到结算记录的 `who.approver`,不认证、不回读;
|
|
56
56
|
* `AskOutcome.approver` 契约逐字「a closed word the host owns, never a person」)。审计读者按它认出「这一次放行是无人值守腿按类答的」。
|
|
57
57
|
*/
|
|
58
58
|
export declare const UNATTENDED_POLICY_APPROVER = "unattended_class_answer";
|
|
@@ -61,7 +61,7 @@ export type UnattendedSeat = Extract<OnAsk, (req: AskRequest, signal?: AbortSign
|
|
|
61
61
|
/** 这一问是不是机器答得了的:读 `classes` **整体** —— 在场、非空、且每一类都在答集;缺席 / 空 / 任一类在答集外 ⇒ 否。 */
|
|
62
62
|
export declare function unattendedAnswers(req: Pick<AskRequest, "classes">): boolean;
|
|
63
63
|
/**
|
|
64
|
-
* 按类作答的 onAsk(活对象 ⇒ `create*`)。答得了 ⇒ 策略的 yes(这一次调用的答,记在策略名下 ——
|
|
64
|
+
* 按类作答的 onAsk(活对象 ⇒ `create*`)。答得了 ⇒ 策略的 yes(这一次调用的答,记在策略名下 —— [ref]);答不了 ⇒ 有席交席(席的答原样返回,席自己的
|
|
65
65
|
* fail-closed 语义不动),无席 ⇒ `"unavailable"`(core G1:这一问此刻没有人够得着 ⇒ 改道 durable park;本腿没武装 park ⇒ headless 拒)。
|
|
66
66
|
* 不答的臂**从不**自己拒成 `false`:那会把「交给 park 的人」折成「机器拒了」,durable 审批块的 leader worker 就再也 park 不下来。
|
|
67
67
|
*/
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** 拒因词(闭集;判序 = 本数组序)。wire 上即 `request.field_invalid` 拒体的 `reason`。 */
|
|
2
|
+
export declare const URL_CREDENTIAL_REASONS: readonly ["url_userinfo", "url_credential_param"];
|
|
3
|
+
export type UrlCredentialReason = (typeof URL_CREDENTIAL_REASONS)[number];
|
|
4
|
+
/** 一处命中:`url_userinfo`,或 `url_credential_param` + 它在哪一段、表里的哪个词(小写;不是调用方的原字节)。 */
|
|
5
|
+
export type UrlCredential = {
|
|
6
|
+
readonly reason: "url_userinfo";
|
|
7
|
+
} | {
|
|
8
|
+
readonly reason: "url_credential_param";
|
|
9
|
+
readonly at: "query" | "fragment";
|
|
10
|
+
readonly name: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* 判:这个值作为 URL 读出来(WHATWG),带不带 **userinfo**(判官的第一问,也是 {@link findUrlCredential} 的第一步)。只问这一件的座位 —— 运行时本就拒带 userinfo 的 URL、
|
|
14
|
+
* 而凭据名参数不由它拒的载体(搜索后端的部署 env 与续跑重放读法)—— 问这一只,不在座位里另写一份 userinfo 谓词。纯函数。
|
|
15
|
+
*/
|
|
16
|
+
export declare function findUrlUserinfo(raw: string): Extract<UrlCredential, {
|
|
17
|
+
readonly reason: "url_userinfo";
|
|
18
|
+
}> | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* 判:这个值作为 URL 读出来(WHATWG),带不带凭据。首个命中;没有(含不透明 / 解析不了的值)⇒ `undefined`。纯函数。
|
|
21
|
+
*/
|
|
22
|
+
export declare function findUrlCredential(raw: string): UrlCredential | undefined;
|
|
23
|
+
/** 一处命中的规则句(穷举;新拒因词不补 = 编译红)。只说规则与表词,不含值。 */
|
|
24
|
+
export declare function urlCredentialRule(c: UrlCredential): string;
|
|
25
|
+
/** 拒体上的机读位(加性键:直接当 `request.field_invalid` 的附加键用)。 */
|
|
26
|
+
export type UrlCredentialFacts = {
|
|
27
|
+
readonly field: string;
|
|
28
|
+
readonly reason: UrlCredentialReason;
|
|
29
|
+
};
|
|
30
|
+
/** 机读位的唯一铸点:`field` 是座位给的体内全坐标,`reason` 是判官的拒因词(不另造)。 */
|
|
31
|
+
export declare function urlCredentialFacts(field: string, credential: UrlCredential): UrlCredentialFacts;
|
|
32
|
+
/**
|
|
33
|
+
* 出路句(停驻封签的位是请求头):凭据改写进这一条的 `headers`(停驻任务的续跑上下文里只以封签存在)。MCP `transport.headers` · A2A 对端 `headers` ·
|
|
34
|
+
* http 钩子条目 `headers` 三座同一句骨架,`place` 是那一条的 `headers` 在请求体里的坐标。
|
|
35
|
+
*/
|
|
36
|
+
export declare function urlCredentialHeaderExit(place: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* 原因句骨架(四座同一句,值不回显):规则句 + 「URL 原样存」的事实 + 出路。`exit` 是座位给的出路句(`urlCredentialHeaderExit` 或座位自己的)。
|
|
39
|
+
* 为什么说「原样存」:封签闭集刻意不收 URL 一类自由文本,所以 URL 照原样进停驻上下文、日志与读面 —— 凭据只许走为它设的座。
|
|
40
|
+
*/
|
|
41
|
+
export declare function urlCredentialRefusalReason(credential: UrlCredential, exit: string): string;
|
|
42
|
+
/** 一处请求面拒的整句 + 机读位({@link buildRequestUrlCredentialRefusal} 的产物)。 */
|
|
43
|
+
export interface UrlCredentialRefusal {
|
|
44
|
+
readonly message: string;
|
|
45
|
+
readonly facts: UrlCredentialFacts;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 请求面 URL 座位的拒(整句 + 机读位),`<field>[ (<subject>)] <原因句>`。`subject` 是座位给的条目指认(MCP 的 server 名 / A2A 的 peer 名;坐标本身唯一的座位不带)。
|
|
49
|
+
* MCP 座的整句要接它自己的条目键律尾句,所以 MCP 直接取 {@link urlCredentialRefusalReason} + {@link urlCredentialFacts},另三座走这一只。
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildRequestUrlCredentialRefusal(field: string, credential: UrlCredential, exit: string, subject?: string): UrlCredentialRefusal;
|
|
52
|
+
//# sourceMappingURL=url-credential.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { httpUrlFlaws, httpUrlRule, isHierarchicalUrl } from "@sema-agent/settings-schema";
|
|
2
|
+
import { isCredentialParamName } from "./trace/redact.js";
|
|
3
|
+
export const URL_CREDENTIAL_REASONS = ["url_userinfo", "url_credential_param"];
|
|
4
|
+
function credentialParamIn(params) {
|
|
5
|
+
for (const name of new URLSearchParams(params).keys()) {
|
|
6
|
+
if (isCredentialParamName(name))
|
|
7
|
+
return name.replace(/[A-Z]/g, (c) => c.toLowerCase());
|
|
8
|
+
}
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
export function findUrlUserinfo(raw) {
|
|
12
|
+
return isHierarchicalUrl(raw) && httpUrlFlaws(raw, ["userinfo"]).includes("userinfo") ? { reason: "url_userinfo" } : undefined;
|
|
13
|
+
}
|
|
14
|
+
export function findUrlCredential(raw) {
|
|
15
|
+
if (!isHierarchicalUrl(raw))
|
|
16
|
+
return undefined;
|
|
17
|
+
const userinfo = findUrlUserinfo(raw);
|
|
18
|
+
if (userinfo !== undefined)
|
|
19
|
+
return userinfo;
|
|
20
|
+
const u = new URL(raw);
|
|
21
|
+
const inQuery = credentialParamIn(u.search);
|
|
22
|
+
if (inQuery !== undefined)
|
|
23
|
+
return { reason: "url_credential_param", at: "query", name: inQuery };
|
|
24
|
+
const inFragment = credentialParamIn(u.hash.slice(1));
|
|
25
|
+
if (inFragment !== undefined)
|
|
26
|
+
return { reason: "url_credential_param", at: "fragment", name: inFragment };
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
export function urlCredentialRule(c) {
|
|
30
|
+
switch (c.reason) {
|
|
31
|
+
case "url_userinfo":
|
|
32
|
+
return httpUrlRule("userinfo");
|
|
33
|
+
case "url_credential_param":
|
|
34
|
+
return `must not carry a credential parameter (the ${c.at} names "${c.name}", a name the service's log redactor treats as a credential)`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function urlCredentialFacts(field, credential) {
|
|
38
|
+
return { field, reason: credential.reason };
|
|
39
|
+
}
|
|
40
|
+
export function urlCredentialHeaderExit(place) {
|
|
41
|
+
return `${place} is stored sealed: send the credential as a header in ${place} (for example "Authorization": "Bearer …")`;
|
|
42
|
+
}
|
|
43
|
+
export function urlCredentialRefusalReason(credential, exit) {
|
|
44
|
+
return `${urlCredentialRule(credential)} — the URL is kept as written (a parked task's resume context, logs), while ${exit}`;
|
|
45
|
+
}
|
|
46
|
+
export function buildRequestUrlCredentialRefusal(field, credential, exit, subject) {
|
|
47
|
+
return { message: `${field}${subject === undefined ? "" : ` (${subject})`} ${urlCredentialRefusalReason(credential, exit)}`, facts: urlCredentialFacts(field, credential) };
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=url-credential.js.map
|
package/dist/url-refusal.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* **「交给 `fetch` 的 http(s) URL」的拒句铸点**(
|
|
2
|
+
* **「交给 `fetch` 的 http(s) URL」的拒句铸点**([ref] 的展示半场)。判官本身 —— 这个值是不是层级式 http(s) URL、座位禁的部件
|
|
3
3
|
* (userinfo / query / fragment)在不在、每个拒因词的规则句 —— 是 settings-schema 的 URL 形判官(`httpUrlFlaws` / `httpUrlRule` /
|
|
4
4
|
* `HTTP_URL_SHAPE_RULE` / `isHierarchicalUrl`,11.0.0 由本仓的那一只 lift 过去、规则与拒因词闭集逐字搬);本仓**零第二份**形规则,
|
|
5
5
|
* 只留本仓自己的展示律:拒句里值的样子({@link buildRefusalShownUrl})与拒句的唯一铸点({@link buildHttpUrlRefusal})。
|
|
@@ -14,9 +14,11 @@
|
|
|
14
14
|
* ## 读者
|
|
15
15
|
* 中心基址三席 + 公告地址 + 请求期 `centerFetch`(`web-admin-client/center-request.ts` `pathBaseUrlRefusal`:禁 userinfo / query / fragment)·
|
|
16
16
|
* 续签 issuer(只问形)· 模型路由三键(`model-route-url.ts`:禁 userinfo / fragment,query 照收)· `MEMORY_EMBEDDER_ENDPOINT` 与
|
|
17
|
-
* `A2A_SERVE_URL`(禁 userinfo)
|
|
17
|
+
* `A2A_SERVE_URL`(禁 userinfo)· `SANDBOX_PKG_SOURCE=custom` 六只地址(形 + 带凭据,后者的判官是 `url-credential.ts`,拒句经 {@link buildUrlCredentialRefusal})。
|
|
18
|
+
* 「scheme 只有判官与展示铸点读」由 `test/config-url-display-safe.test.ts` 的读者普查门钉住。
|
|
18
19
|
*/
|
|
19
20
|
import { type HttpUrlFlaw } from "@sema-agent/settings-schema";
|
|
21
|
+
import { type UrlCredential } from "./url-credential.js";
|
|
20
22
|
/**
|
|
21
23
|
* 拒句里值的样子(纯函数):合格的 http(s) 形 ⇒ 只到 origin(`scheme://host[:port]`,过展示铸点),origin 之后还有东西(userinfo /
|
|
22
24
|
* 路径 / query / fragment)⇒ 接一枚 `/…`;其余(不透明 / 不可解析 / 层级式非 http(s))⇒ 展示铸点的占位 `«redacted:url»` ——
|
|
@@ -32,4 +34,6 @@ export declare function buildRefusalShownUrl(raw: string): string;
|
|
|
32
34
|
* 值只经 {@link buildRefusalShownUrl} 出现;`flaws` 来自 settings-schema 的 `httpUrlFlaws`(调用方按首个拒因选自己的码与出路句)。
|
|
33
35
|
*/
|
|
34
36
|
export declare function buildHttpUrlRefusal(subject: string, raw: string, flaws: readonly HttpUrlFlaw[]): string;
|
|
37
|
+
/** 「带凭据」那一形的拒句([ref];判官 `url-credential.ts` 的 `findUrlCredential`):同一只铸点形,规则句换成凭据判官的那一句。 */
|
|
38
|
+
export declare function buildUrlCredentialRefusal(subject: string, raw: string, credential: UrlCredential): string;
|
|
35
39
|
//# sourceMappingURL=url-refusal.d.ts.map
|
package/dist/url-refusal.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { httpUrlRule, isHierarchicalUrl } from "@sema-agent/settings-schema";
|
|
2
2
|
import { DISPLAY_SAFE_URL_TOKEN, buildDisplaySafeUrl } from "./trace/redact.js";
|
|
3
|
+
import { urlCredentialRule } from "./url-credential.js";
|
|
3
4
|
export function buildRefusalShownUrl(raw) {
|
|
4
5
|
if (!isHierarchicalUrl(raw))
|
|
5
6
|
return DISPLAY_SAFE_URL_TOKEN;
|
|
@@ -12,6 +13,12 @@ export function buildRefusalShownUrl(raw) {
|
|
|
12
13
|
return `${buildDisplaySafeUrl(origin)}${u.href === `${origin}/` ? "" : "/…"}`;
|
|
13
14
|
}
|
|
14
15
|
export function buildHttpUrlRefusal(subject, raw, flaws) {
|
|
15
|
-
return
|
|
16
|
+
return composeUrlRefusal(subject, raw, flaws.map(httpUrlRule));
|
|
17
|
+
}
|
|
18
|
+
export function buildUrlCredentialRefusal(subject, raw, credential) {
|
|
19
|
+
return composeUrlRefusal(subject, raw, [urlCredentialRule(credential)]);
|
|
20
|
+
}
|
|
21
|
+
function composeUrlRefusal(subject, raw, rules) {
|
|
22
|
+
return `${subject} ${rules.join("; ")}; got ${JSON.stringify(buildRefusalShownUrl(raw))}`;
|
|
16
23
|
}
|
|
17
24
|
//# sourceMappingURL=url-refusal.js.map
|
|
@@ -75,7 +75,7 @@ export type UsageGranularity = "hour" | "day";
|
|
|
75
75
|
/**
|
|
76
76
|
* GET /v1/usage/series — 时间序列(UTC 桶;空桶不发行,消费方按需补零)。
|
|
77
77
|
*
|
|
78
|
-
* 🔴 **行带 `estimated`**(
|
|
78
|
+
* 🔴 **行带 `estimated`**([ref]):与 {@link usageSummary} / {@link usageBreakdown} **同轴同谓词** ——
|
|
79
79
|
* 三个读面的桶都是同一只 {@link UsageTotals},由同一条 {@link foldRow} 折出来,所以「这个数字不精确」
|
|
80
80
|
* 的四个来源(旧行 fallback / per-model echo 缺键 / 缺 `usageBasis` 的 legacy 口径 / 行自陈
|
|
81
81
|
* `usageMissing` 的下界)在三面上是**同一句话**。修前只有 series 的出口把这一位扔了:桶里塞进一条
|
|
@@ -96,7 +96,7 @@ export declare function usageBreakdown(rows: UsageRow[], dimension: UsageDimensi
|
|
|
96
96
|
/**
|
|
97
97
|
* store 行投影 helper:**已解码的** result 体 → UsageRow.stats。三个后端复用(方言只在 SQL)。
|
|
98
98
|
*
|
|
99
|
-
* 🔴 **本函数不解码**(
|
|
99
|
+
* 🔴 **本函数不解码**([ref] 车③b 删掉了它的 `typeof result === "string" ? JSON.parse(result) : result`
|
|
100
100
|
* 那一跳):那正是设计稿点名的歧义臂 ——「体是串就再解一次」在一列真 `JSON`/`JSONB` 上等于**解第二次**,
|
|
101
101
|
* 于是一个双重编码的 `task_run.result`(解一次得到的是串)会被解回好体、当成真的用量端出去。三个调用点
|
|
102
102
|
* 逐行亲核过,今天**一处都不递串**:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* 设计稿 = sema-internal `server/design/` 的
|
|
2
|
+
* [ref] —— **「已受理、未消费」的用户输入账本**(user-input acceptance ledger)的唯一属主:行形、判据、收敛、通告、读面投影。
|
|
3
|
+
* 设计稿 = sema-internal `server/design/` 的 [ref] 稿(fable 主会话 2026-10-02);本文件是那份稿在代码里的**一处成文**。
|
|
4
4
|
*
|
|
5
5
|
* ## 病
|
|
6
6
|
* `POST /v1/runs/:id/steer` 对本副本的活 run 回 **200 `delivery:"applied"`**:输入只进了 core `TaskStream` 的**进程内**队列,
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
* 该会话下一条 run 之前铸。本文件 = 那个服务层。
|
|
11
11
|
*
|
|
12
12
|
* ## 对象(一只账本,一类输入,一句规则)
|
|
13
|
-
* 「本服务以回执向调用方承诺已交给引擎、而消费只发生在进程内存里的用户输入」,**且承载它的那只 `TaskStream` 活在本服务的一条 run 腿里**(
|
|
13
|
+
* 「本服务以回执向调用方承诺已交给引擎、而消费只发生在进程内存里的用户输入」,**且承载它的那只 `TaskStream` 活在本服务的一条 run 腿里**([ref])——
|
|
14
14
|
* 后半句是收敛判词成立的前提:证据面是那条 run 行(下文「收敛判据」)。行的 `taskId` = 回执上的 run、`sessionId` = 那条 run 的会话(人看的那一只),
|
|
15
15
|
* run 里是哪一只流(run 自己的 / 同步子代的)**不是**账本的事实:告知按 run 并帧(`steer` = 条数),读面行同形。今天只有 steer 一族(`kind:"steer"` =
|
|
16
16
|
* 受理它的引擎动词 `TaskStream.steer`,三档 `now` / `next` / `later` 同一个动词同一族),三个入口同一个引擎动词:
|
|
17
17
|
* · `POST /v1/runs/:id/steer` 的 live 腿(200 applied);
|
|
18
18
|
* · `POST /v1/runs/:id/interrupt` 的带 text 形(202 queued-immediate,档位 now;设计稿把它划在病面外,车 SW 亲核它进的是同一只进程内队列 ⇒ 同类同修);
|
|
19
|
-
* · `POST /v1/runs/:id/subagents/:target/steer`(200 applied,
|
|
19
|
+
* · `POST /v1/runs/:id/subagents/:target/steer`(200 applied,[ref])—— 投进**同步子代**自己的流(core `createSteerHandle` → `stream.steer`)。子代由父腿
|
|
20
20
|
* await,父腿收场时 core 撤掉在飞的复活(`subagentRetain.disposeAll`),所以它活在父 run 的腿里;腿 = 子代句柄,`handle.settled` 兑现 ⇒ 结清。
|
|
21
21
|
* 规则的反面(不是例外表):workflow agent steer(`POST /v1/workflows/:id/agents/:label/steer`,200 applied)不在本账 —— workflow 是会话锚定的后台件
|
|
22
22
|
* (core `WorkflowTaskHandle.sessionScoped`),活得比发起它的 run 腿长,没有一条 run 行约束它,而 workflow run 行上没有持有者列 ⇒ 判不出写者死没死(另票);
|
|
@@ -24,34 +24,34 @@
|
|
|
24
24
|
* follow-up 入口)。steer 的 `later` 档在引擎里走 follow-up 车道(引擎在腿收场时按车道分账:没投出去的 `later` 记进 `task.user_followup_undrained`),
|
|
25
25
|
* 但它仍是一次 `TaskStream.steer` 受理、消费帧同为 `human_input{delivery:"applied"}`(两车道同一只消费口)⇒ 同进本账,消费即结清。
|
|
26
26
|
* **族 = 受理时它排进的引擎车道**(core `UserInputLane`,经引擎的 `injectionLaneOf(steerPriorityOf(…))` 读出 —— {@link acceptedInputKindOf};落盘 / wire 词 {@link UserInputKind}:
|
|
27
|
-
* `steer` / `follow_up`),崩溃告知的码与条数键按车道取 core `USER_INPUT_UNDRAINED_FAMILIES`(core 7.44.0
|
|
28
|
-
* 服务层的 `crashed` 臂按车道选族,与引擎自己的 `leg_end` 臂同一种分账;core 7.45.0
|
|
27
|
+
* `steer` / `follow_up`),崩溃告知的码与条数键按车道取 core `USER_INPUT_UNDRAINED_FAMILIES`(core 7.44.0 [ref]:两族同一只成因词表 `USER_INPUT_UNDRAINED_CAUSES`,
|
|
28
|
+
* 服务层的 `crashed` 臂按车道选族,与引擎自己的 `leg_end` 臂同一种分账;core 7.45.0 [ref] 起族表与车道读法在包根,本仓不再抄)。
|
|
29
29
|
*
|
|
30
30
|
* ## 五形行(append-only;行序 = 语义序;File 孪生的盘上形 = 下面的 {@link UserInputLedgerRecord},SQL 孪生 = 一行一受理 + CAS 列 + 删行,同义)
|
|
31
31
|
* · `accepted` —— 受理点(`routes/runs.ts` 的 live 腿,**调 `TaskStream.steer` 之前**、回 200 之前)写;写不进 ⇒ 503
|
|
32
32
|
* `steering.ledger_unavailable`,引擎一个字节都没收到(fail-closed:没账的 200 是空头承诺)。身份 = `acceptId`
|
|
33
33
|
* (每次受理一枚;同 Idempotency-Key 的重放共享 `messageId`,但各是一次受理)。`writer` = 受理进程的 `instanceId`。
|
|
34
|
-
* · `settled` —— 本进程对这次受理的守护**正常结束**:`consumed`(
|
|
34
|
+
* · `settled` —— 本进程对这次受理的守护**正常结束**:`consumed`([ref] / core 7.39.0 [ref]:引擎在承载它的腿上铸了
|
|
35
35
|
* `human_input{delivery:"applied"}`、`inputId` = 本受理的 `messageId` —— 引擎确认把它消费进了转录;腿的事件环把每一帧交
|
|
36
36
|
* {@link UserInputLedger.observeLegEvent},认哪一帧只在本文件判;且引擎收下了**这次受理的调用** —— 路由报 {@link UserInputLedger.confirm},
|
|
37
37
|
* [ref] 7.113.0 opus 腿 L4:同 key 异正文的那次受理会被引擎拒,不能凭同名消费证据先结清)、`leg_end`(承载它的腿在本进程收场 —— done / suspended / needs_review / failed
|
|
38
38
|
* 一律,未消费的那一半 core 已用 `leg_end` 自己告知,本仓不重算「消费了没有」)或 `not_applied`(`TaskStream.steer`
|
|
39
|
-
* 抛了,这次受理没有变成 200;路由随即落这一行)。子代腿的 `leg_end`:core 铸在子代自己的会话上,core 7.39.0
|
|
39
|
+
* 抛了,这次受理没有变成 200;路由随即落这一行)。子代腿的 `leg_end`:core 铸在子代自己的会话上,core 7.39.0 [ref]([ref])起同一次收场
|
|
40
40
|
* **再铸一条到父腿**(`detail.sessionId` = 父会话、`taskId` = 父 run、带 `childSessionId`)⇒ 经分流器到人;本账对子代受理落的
|
|
41
|
-
* `settled{leg_end}`(行记父 run,
|
|
41
|
+
* `settled{leg_end}`(行记父 run,[ref])与那条父口帧说的是同一件事(钉在 `test/engine-notice-wire.test.ts` [ref] 两格)。
|
|
42
42
|
* · `converged` —— 收敛器判「受理它的进程已经不在、而它从没 settle」⇒ `cause:"crashed"`(core 闭集里服务层那一臂)。
|
|
43
43
|
* · `announced` —— 通告**落进新 run 的事件账之后**写(`taskId` = 告知它的那条**新** run;`EngineNoticeRouter.routeConfirmed` 等口的落账结果,
|
|
44
44
|
* codex r1-F2):落账失败 ⇒ 不写,下一条 run 再说;重启再重启不重复。唯一的重复形 = 帧已落账而这一行没写成(写失败 / 进程死在两步之间)
|
|
45
45
|
* —— run 事件账与本账是两只店、没有共同事务,两害取「多说一遍」,不取「声称说过」。
|
|
46
46
|
* 转移只有四条(open → settled | converged;converged → announced),两只孪生都按 CAS 守它们(File 单进程 = 内存判;SQL = `WHERE state=…`)。
|
|
47
|
-
* · `erased` —— (
|
|
47
|
+
* · `erased` —— ([ref])**会话树删除**:该会话此前的每一次受理(不论状态)离开账本。行随会话走 —— 账本行的唯一归属键就是 `sessionId`,
|
|
48
48
|
* 所以两条删会话树的级联(在线删除协调器 `boot/session-faces.ts` 的 `purgeSession`、托管留存的事务化孪生
|
|
49
49
|
* `retention-store-sql.ts` 的 `purgeSessionTrees`)各有一臂删它,谓词同一只(`session_id` 单键,店动词 `deleteBySession`)。
|
|
50
50
|
* File 孪生的盘上形 = 一行会话级墓碑 `{ kind:"erased", sessionId, at }`(与 workflow 完成信箱 `drain{sessionId}` 同形),
|
|
51
51
|
* 只擦它**之前**的同会话行 —— 会话 id 删后可被重新登记,之后的受理属于下一位住客;SQL 孪生 = 真删行。被删受理上迟到的转移全输
|
|
52
52
|
* (行不在了,与「未知 acceptId」同一条守卫)。
|
|
53
53
|
*
|
|
54
|
-
* ## 收敛判据(一条:**受理它的进程已经不在,而承载它的腿没有正常收场**)—— 两车道同一只判词({@link judgeOpen},
|
|
54
|
+
* ## 收敛判据(一条:**受理它的进程已经不在,而承载它的腿没有正常收场**)—— 两车道同一只判词({@link judgeOpen},[ref] L8 合一)
|
|
55
55
|
* 证据面只有一个:承载它的 **run 行**(run 店;行上的 `instanceId` = 当前持有者,createRun 铸、markResuming 接管)。
|
|
56
56
|
* · 行在、持有者是写者、仍 `running` ⇒ 腿没收场;写者在不在由车道答(下一段)—— 不在 ⇒ `crashed`,可能在 ⇒ `live`(不动,等 reaper)。
|
|
57
57
|
* · 行在、持有者是写者、`failed` 且行上是 run 店的**死亡判决码**({@link isHolderDeathVerdict}:`reapStale` 的 `run.stalled` /
|
|
@@ -66,10 +66,10 @@
|
|
|
66
66
|
* boot 序是先孤儿回收(把这样的行翻成 `failed` + `RUN_ORPHANED_ERROR`)再收敛,所以 local 上最常见的崩溃形读到的是落款;仍 `running`
|
|
67
67
|
* 的只剩回收因续跑中的检查点刻意跳过的行(写者死、腿没收场 ⇒ 同样 `crashed`)。
|
|
68
68
|
* · `run_store_verdict`(SQL,多副本):可能。「本进程启动前写的」不证明写者已死(滚动发布 / 三副本)⇒ 等 reaper 把判决落在行上。
|
|
69
|
-
*
|
|
69
|
+
* [ref] L8 之前 local 臂不读 run 店、一律 `crashed`:进程恰死在 park 已提交、收场 settle 之前 ⇒ 那次 steer 已迁进检查点、续跑会重投,却被按崩溃
|
|
70
70
|
* 告知一次;settle 写丢后再崩的正常收场同理。两车道读同一只判词之后,「正常收场 / 已 park ⇒ 不告知」不再随车道变。
|
|
71
71
|
* 本进程写的行不读 run 店(活着的进程的受理归它自己的腿 settle,见 judgeOpen 首行)。触发 = boot 一次 + 每个维护 tick 一次;local 上 boot 之后
|
|
72
|
-
* open 集里不再有外来写者的行(每一行要么收敛要么结清,恒不判 `live`),维护 tick 的 local 臂恒空。一趟收敛对同一 taskId 只读一次 run 店(
|
|
72
|
+
* open 集里不再有外来写者的行(每一行要么收敛要么结清,恒不判 `live`),维护 tick 的 local 臂恒空。一趟收敛对同一 taskId 只读一次 run 店([ref] L9,
|
|
73
73
|
* 趟内备忘:同一条 run 上的受理在同一趟里得同一个判词)。
|
|
74
74
|
*
|
|
75
75
|
* ## 两张脸
|
|
@@ -106,7 +106,7 @@ export type UserInputKind = (typeof LEDGER_KIND_OF_LANE)[UserInputLane];
|
|
|
106
106
|
export declare const USER_INPUT_KIND_WORDS: Readonly<Record<UserInputKind, true>>;
|
|
107
107
|
/**
|
|
108
108
|
* 一次受理的族词 —— 三个受理口(run steer 的 live 腿 / interrupt 带 text 形 / 子代 steer)同调这一只。车道是引擎的那一只读法
|
|
109
|
-
* `injectionLaneOf(steerPriorityOf(…))`(core 7.45.0
|
|
109
|
+
* `injectionLaneOf(steerPriorityOf(…))`(core 7.45.0 [ref]:缺席档 = `next`;`later` 走 follow-up 车道,`now` / `next` 走 steer 车道;
|
|
110
110
|
* 档外值抛 `steering.invalid_content` —— 受理口在这之前已按 `isSystemInjectionPriority` 400 掉档外值,这一抛在本仓不可达)。
|
|
111
111
|
*/
|
|
112
112
|
export declare function acceptedInputKindOf(priority: SystemInjectionPriority | undefined): UserInputKind;
|
|
@@ -225,7 +225,7 @@ export interface OpenScanCursor {
|
|
|
225
225
|
readonly acceptId: string;
|
|
226
226
|
}
|
|
227
227
|
/**
|
|
228
|
-
* `listOpen` 的一页(
|
|
228
|
+
* `listOpen` 的一页([ref] L6):`open` = 这一页里**读得出**的 open 受理(读不出形的行已逐行跳过 + 计 F 类 tag);`next` = 续翻游标 =
|
|
229
229
|
* 这一页**原始**末行的键(被跳过的坏行也算 —— 断点不许卡在坏行上,也不许因为页里少了一行就被当成「扫到底」),缺席 = 原始行不满一页(扫到底)。
|
|
230
230
|
* 游标属于店(只有店见过原始行),收敛扫描只照着它翻,不从交回的行反推。
|
|
231
231
|
*/
|
|
@@ -236,7 +236,7 @@ export interface OpenScanPage {
|
|
|
236
236
|
/** 收敛扫描的页长(open = 活腿上的受理 + 等收敛的孤儿,量级是人的手速)。 */
|
|
237
237
|
export declare const USER_INPUT_OPEN_SCAN_MAX = 1000;
|
|
238
238
|
/** 一趟收敛至多翻多少页(预算:十万条 open 行;到顶 ⇒ 断点留下,下一趟从断点续翻、扫到底再回绕 —— codex r3-F2)。
|
|
239
|
-
* 一趟的上界(
|
|
239
|
+
* 一趟的上界([ref] L9 成文):至多 `PAGES` 次页读 × `OPEN_SCAN_MAX` 行;run 店读 = 外来写者行里**不同 taskId** 的个数(趟内备忘,本进程写的行不读);
|
|
240
240
|
* 转移写 = 判出 crashed / leg_over 的行数。boot 那一趟在 stage-07 被 await(协调面开服之前收完 —— 时机不变),所以它的墙钟也受这个上界约束。 */
|
|
241
241
|
export declare const USER_INPUT_OPEN_SCAN_PAGES = 100;
|
|
242
242
|
/** 一个会话的「收敛过的受理」读口上限(读面 / 通告都经它;有界 wire)。收敛行 = 崩溃丢失,量级远小于受理总数;超出时取最新的这么多条。 */
|
|
@@ -253,7 +253,7 @@ export interface UserInputLedgerStore {
|
|
|
253
253
|
/** open 受理的一页 —— 收敛扫描的读口。键集分页:按 (受理时刻, acceptId) 升序,严格在 `after` 之后(缺席 = 从头),至多 `limit` 条**原始行**
|
|
254
254
|
* (缺席 = {@link USER_INPUT_OPEN_SCAN_MAX});读不出形的行逐行跳过、续翻游标按原始行推进({@link OpenScanPage})。收敛逐页翻到底
|
|
255
255
|
* (codex r2-F2:固定最旧一页会让活腿占满窗口时后面的崩溃丢失永远轮不到)。三只读口对读不出的行同一处置:跳过 + F 类 tag
|
|
256
|
-
* `server.user-input-ledger.corrupt-record-skipped`,不整页抛(
|
|
256
|
+
* `server.user-input-ledger.corrupt-record-skipped`,不整页抛([ref] L6)。 */
|
|
257
257
|
listOpen(after?: OpenScanCursor, limit?: number): Promise<OpenScanPage>;
|
|
258
258
|
/** 一个会话里**收敛过**(崩溃丢失)的受理,含已告知的(按受理时刻升序,至多最新的 {@link USER_INPUT_SESSION_READ_MAX} 条)—— **读面**的读口。
|
|
259
259
|
* 只读收敛行是刻意的:一个长会话可以有成千上万条正常收场的受理,读口若按「会话的全部受理」截断,新的丢失会被旧的正常行挤出窗外。 */
|
|
@@ -261,7 +261,7 @@ export interface UserInputLedgerStore {
|
|
|
261
261
|
/** 一个会话里收敛且**未告知**的受理,从最旧起至多 `limit` 条(按受理时刻升序)—— **通告**的待办读口([ref] gpt-6 腿 [medium]:
|
|
262
262
|
* 通告若读读面那只「最新 N 条含已告知」的窗,已告知行占窗 ⇒ 窗外更旧的未告知行永远不被说;待办只看未告知,说过的让位,窗外的最终可达)。 */
|
|
263
263
|
listUnannounced(sessionId: string, limit: number): Promise<UserInputAcceptance[]>;
|
|
264
|
-
/**
|
|
264
|
+
/** [ref] —— **会话树删除**:删掉该会话**每一种状态**的受理,回删除条数(没有可删的 ⇒ 0、零写;幂等)。按 `session_id` 单键:行上没有属主列,
|
|
265
265
|
* 会话所有权由调用方证过(在线删除 = 路由的 DELETE 门;留存 = 候选集本身出自本域加锁读的 `session_meta`),与 anchors / exemptions /
|
|
266
266
|
* attachments 同律。调用方 = 在线删除协调器(`boot/session-faces.ts` `purgeSession` 的一腿);托管留存的事务化孪生不调店、在自己的事务里
|
|
267
267
|
* 发**同一只谓词**(`retention-store-sql.ts` `purgeSessionTrees` ④)。写不进 ⇒ 抛(协调器据此不删会话本体,幂等重试收敛)。 */
|
|
@@ -272,13 +272,13 @@ export interface RunStoreReader {
|
|
|
272
272
|
getRun(taskId: string): Promise<RunRecord | null | undefined>;
|
|
273
273
|
}
|
|
274
274
|
/**
|
|
275
|
-
* 「受理它的进程已经不在」的证据(
|
|
275
|
+
* 「受理它的进程已经不在」的证据([ref] L8 合一):两车道读**同一只** run 店判词(见顶注「收敛判据」),`kind` 只回答车道事实表
|
|
276
276
|
* {@link LANE_FACTS} 里的两问(闭集穷举,判词本身不随车道变):
|
|
277
277
|
* ① 外来写者仍持有的 `running` 行,写者可能还活着吗 —— `exclusive_data_root`(local):不可能(数据根 LOCK:本进程之前的写者都已死);
|
|
278
278
|
* `run_store_verdict`(SQL,多副本):可能(等 reaper 把死亡判决落在行上)。
|
|
279
279
|
* ② run 行不在(`getRun` 答 undefined),这条腿怎么了(7.111.0 [ref] gpt-6 腿 X2)—— local:File 店 `hydrate` 跳过坏 / 缺时间戳的
|
|
280
|
-
* `run.json`(
|
|
281
|
-
* Error,走 read-failed),不在 = 真删了 ⇒ 腿既不可能还活着也不可能续跑、没有可对照的 run ⇒ `leg_over`(结清;= v7.110.0)。
|
|
280
|
+
* `run.json`([ref] F 座)也答不在 ⇒ 读不出腿怎么收场、写者又已证死 ⇒ `crashed`(告知;= v7.110.0);SQL:店不藏行(读失败是响的
|
|
281
|
+
* Error,走 read-failed),不在 = 真删了 ⇒ 腿既不可能还活着也不可能续跑、没有可对照的 run ⇒ `leg_over`(结清;= v7.110.0)。[ref] 起
|
|
282
282
|
* 删会话 / 留存级联连账本行一起删,SQL 的这一形只剩级联半拍里的竞态与旧副本混版窗删的会话。
|
|
283
283
|
*/
|
|
284
284
|
export interface WriterGoneEvidence {
|
|
@@ -325,7 +325,7 @@ export interface UserInputLedger {
|
|
|
325
325
|
/** 腿在本进程收场 ⇒ 这条腿上的每一次受理落 `settled{leg_end}`。不抛。 */
|
|
326
326
|
settleLeg(leg: object): Promise<void>;
|
|
327
327
|
/**
|
|
328
|
-
*
|
|
328
|
+
* [ref](core 7.39.0 [ref]):腿的事件环把**每一帧**引擎事件交进来(三条腿同一只口;不认的帧零成本返回)。唯一认的一形 =
|
|
329
329
|
* `human_input{delivery:"applied"}`:引擎确认把那条输入消费进了转录 ⇒ 这条腿上 `messageId` = 帧 `inputId`、**且引擎已收下其调用**({@link confirm})的受理
|
|
330
330
|
* (同 Idempotency-Key 的幂等重放一并)落 `settled{consumed}`,离开 open 集 —— 之后写者死也不再按崩溃告知。结清写失败 ⇒ 留在腿上(收场照常落 `leg_end`),不抛。
|
|
331
331
|
* 引擎还没判的受理不结清:messageId 只由 key 派生、账本看不见正文,同 key 异正文的那一次会被引擎拒(`steering.duplicate_input_id`)、走 {@link withdraw}。
|
|
@@ -377,7 +377,7 @@ export declare function createUserInputLedgerAtBoot(opts: Parameters<typeof crea
|
|
|
377
377
|
converged: number;
|
|
378
378
|
}>;
|
|
379
379
|
/**
|
|
380
|
-
* 装配层按**车道**给证据(闭集穷举:`StoreBackend.kind` 加一个词而这里没跟 ⇒ 编译红)。两臂都带 run 店(
|
|
380
|
+
* 装配层按**车道**给证据(闭集穷举:`StoreBackend.kind` 加一个词而这里没跟 ⇒ 编译红)。两臂都带 run 店([ref] L8:判词同一只),车道词只答
|
|
381
381
|
* 「外来写者仍持有的 running 行」那一问:
|
|
382
382
|
* · `local` —— 数据根 LOCK 保证单进程 ⇒ `exclusive_data_root`(外来写者都已死);
|
|
383
383
|
* · `mysql` / `pg` —— 多副本共享一张表,「我启动之前写的」证明不了写者已死 ⇒ `run_store_verdict`(等 reaper 落款)。
|
|
@@ -29,13 +29,13 @@ export interface ApplyReport extends ConfigApplyReport {
|
|
|
29
29
|
/** 🔴 codex R2-F1:本候选是否**完整**应用 —— 有任何一组被拒 ⇒ false。调用方据此决定要不要把它发布成
|
|
30
30
|
* LKG / 推进 etag(一个「其余面提交了但某组被拒」的候选覆盖掉好 LKG,重启后就再也回不去了)。 */
|
|
31
31
|
readonly fullyApplied: boolean;
|
|
32
|
-
/**
|
|
32
|
+
/** [ref]:本候选目录的模型拒因判决 —— 逐条(`entries`,stage 判出的那份候选的,键已过名筛)+ 组拒码(`plane`,模型面组被拒时在场,
|
|
33
33
|
* 判决那刻当数据带出)。落地与组拒同一只来源:两者都描述**这一份**候选(组拒时引擎自己的拒因表不换代,这里仍报被拒的那份)。
|
|
34
34
|
* 候选不管模型面(一条启用条目也没有 —— 幸存的与被丢的都算)⇒ `entries` 空、无 `plane`。`/health.modelRefusals` 与心跳的唯一数据源(web-admin 投影)。 */
|
|
35
35
|
readonly modelRefusals: ModelRefusalVerdict;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* [ref] 波 2 —— 一次 apply 在**哪条腿**上跑,以及这条腿知道的**部署事实**。必填(没有缺省腿):安全轴上「忘了说是哪条
|
|
39
39
|
* 腿」不许静默落成某一种语义([ref])。
|
|
40
40
|
* · `boot` —— 装配期(stage-02 的 boot 拉取 / LKG 起服;run-local 的一次性装配)。此刻 checkpoint 店**还没建**,
|
|
41
41
|
* 审批组的「门意图可服务」由装配完之后的 stage-07 对**整份** config 判(拒启)—— 与热腿是同一只
|
|
@@ -94,7 +94,7 @@ export declare function withModelPlaneOf<E extends EffectiveConfig>(target: E, s
|
|
|
94
94
|
*/
|
|
95
95
|
export declare function fullyLandedForLkg(read: ConfigCandidateRead, report: ApplyReport | undefined): boolean;
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
97
|
+
* [ref]:组拒码 → 铸它的那条模型面不变量 —— **以码为键**(组拒码闭集的属主是 settings-schema `MODEL_PLANE_REFUSAL_CODES`;那边加一个码
|
|
98
98
|
* ⇒ 本表缺键 ⇒ 本仓 tsc 红)。模型面 stage 的组拒按**码**铸(码是判决那刻的数据),不变量 id 由本表派生 —— 一个 id 两个码
|
|
99
99
|
* (`model-route-endpoint`)时码不可能从 id 反推,反过来查才是全函数。
|
|
100
100
|
*/
|
|
@@ -105,7 +105,7 @@ export declare const PLANE_REFUSAL_INVARIANT_OF: {
|
|
|
105
105
|
readonly "config.gateway_fallback_without_primary": "model-route-endpoint";
|
|
106
106
|
};
|
|
107
107
|
/**
|
|
108
|
-
*
|
|
108
|
+
* [ref] —— **「无中心配置」档的候选**:中心凭证换人时,server 把在用的中心配置降到这一档({@link applyEffective} 吃它,和吃任何候选走同一条 stage → swap → commit)。
|
|
109
109
|
* 它的意思是「**撤回**中心配置」—— 中心下发的每个热面回 env 底:
|
|
110
110
|
* · 限额键 / 审批名单 / autonomy / commandPolicy / projects:本来就**非粘**(域缺席 ⇒ 回 env 底),这份候选什么域都没有,于是自然回底,不另写降档代码;
|
|
111
111
|
* · 模型面组:中心发来的零启用条目空候选 = 本候选不管模型面、上一代继续(不是撤回),所以模型面需要这一个专门的词 —— 见 {@link stageEnvModelPlane};
|
|
@@ -138,7 +138,7 @@ export declare function centerManagedConfigKeys(eff: EffectiveConfig | undefined
|
|
|
138
138
|
/** 独立调用面的兼容壳(测试/外部):stage → 就地赋值 → 通知。applyEffective 不走这里——它把
|
|
139
139
|
* 赋值并进自己的 commit 段以保住整世代原子性([ref]②)。入参是 eff 的两个域(审批闸住 governance,
|
|
140
140
|
* 限额键住 limits —— 各自的属主判据,这里不合成视图;settings-schema 11 退役了 `runtime` 域)。
|
|
141
|
-
* [ref]:限额键的属主是热腿,所以本壳**同样**要过 stage-limits。
|
|
141
|
+
* [ref]:限额键的属主是热腿,所以本壳**同样**要过 stage-limits。[ref] 波 2:审批组的判据依赖腿(④ 只在热腿判),
|
|
142
142
|
* 所以本壳与 applyEffective 一样**必须**说是哪条腿。 */
|
|
143
143
|
export declare function applyRuntimeGates(config: ServiceConfig, eff: Pick<EffectiveConfig, "limits" | "governance"> | undefined, leg: ApplyLeg, logger?: Logger): void;
|
|
144
144
|
export declare function applyRuntimeHot(config: ServiceConfig, gov: EffectiveConfig["governance"], logger?: Logger): void;
|
|
@@ -3,6 +3,7 @@ import { WEB_ADMIN_ENV, narrowAtMention, resolveActiveTiers, resolveCatalogDefau
|
|
|
3
3
|
import { modelKeyPoison } from "../key-resolver.js";
|
|
4
4
|
import { buildEnvModelIdNotServedNotice, mintCapabilityKeys, readAtMention, servedModelTableLeg } from "../model-select.js";
|
|
5
5
|
import { applyAutoCompactWindow, buildModelCostKey, parseAutonomy, unmatchableToolNamesRefusal } from "../config.js";
|
|
6
|
+
import { NAME_TABLE_BEHAVIOR } from "../namespaced-rule-name.js";
|
|
6
7
|
import { buildModelCompat, readModelCompat } from "../model-compat.js";
|
|
7
8
|
import { buildModelHeadersKey } from "../model-entry-headers.js";
|
|
8
9
|
import { validateCommandRules } from "../runtime-governance.js";
|
|
@@ -526,7 +527,7 @@ function stageApprovalRequire(raw) {
|
|
|
526
527
|
return { ok: false, detail, reason: detail, names: nonString.map((e) => `[${e.i}]`), kept: KEPT_WOULD_REMOVE_GATE };
|
|
527
528
|
}
|
|
528
529
|
const names = raw.filter((n) => typeof n === "string").map((n) => n.trim()).filter((n) => n.length > 0);
|
|
529
|
-
const unmatchable = unmatchableToolNamesRefusal("published governance.approvalRequire", names, { consumer: "tool-name-table", behavior:
|
|
530
|
+
const unmatchable = unmatchableToolNamesRefusal("published governance.approvalRequire", names, { consumer: "tool-name-table", behavior: NAME_TABLE_BEHAVIOR });
|
|
530
531
|
if (unmatchable !== undefined) {
|
|
531
532
|
return {
|
|
532
533
|
ok: false,
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
/**
|
|
24
24
|
* 世代账按组记账的**组闭集**(读面 `groups` 的键集;加组 = 这里加词,报告形 `Record<组, …>` 随之编译红)。
|
|
25
25
|
* · `limitsHttp` —— [ref] 批1 限额组(属主 `stage-limits.ts`);
|
|
26
|
-
* · `approvalGate` ——
|
|
26
|
+
* · `approvalGate` —— [ref] 波 2 审批组(`governance.approvalRequire`;属主 `apply-effective.ts` 的
|
|
27
27
|
* `stageApprovalGate`:坏形 / 工具名匹配不到 / ④ 门意图不可服务 ⇒ 整组拒)。
|
|
28
28
|
* · `modelPlane` —— 模型面组(组内有哪些 effective 域的**唯一定义** = `apply-effective.ts` 的 `MODEL_PLANE_DOMAINS`:models 域 =
|
|
29
29
|
* 目录 / roles / tiers / 拒因表 / 名单 / 钥匙表(今天组内只此一域);属主 `stageModelPlane`:
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
export declare const CONFIG_APPLY_GROUPS: readonly ["limitsHttp", "approvalGate", "modelPlane"];
|
|
35
35
|
export type ConfigApplyGroup = (typeof CONFIG_APPLY_GROUPS)[number];
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* [ref](车QU codex r1 [high] F1,验真后修)—— 一组在**热腿**被整组拒之后,新进程在 **boot 腿**上对同一候选重判会怎样。每组一格的闭集
|
|
38
38
|
* (`satisfies Record<ConfigApplyGroup, …>`:加一组 ⇒ 这里编译红,不许静默落进某一格)。部分应用的拍据此决定能不能发重启信号
|
|
39
39
|
* (`boot/web-admin.ts` 的 `signalRestart`):
|
|
40
40
|
* · `"refuses-group"` —— boot 腿同一判据、同样整组拒,其余组照落 ⇒ 重启收敛(新进程的 boot 快照就是这份候选,同一差异不再签)。
|
|
@@ -13,7 +13,7 @@ export interface CenterEndpoint {
|
|
|
13
13
|
readonly credential: CenterCredentialSource;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* [ref] ④ —— 「中心车道配齐」的**唯一**谓词:基址 ∧ **声明了**凭证([ref]:按声明,不按此刻读不读得出)∧ worker。
|
|
17
17
|
*
|
|
18
18
|
* 三处同调、不许各抄一份门:租约管理器(`fleet-lease.ts` `createFleetLeaseFromEnv`)、fleet 客户端的用量环
|
|
19
19
|
* (`fleet-client.ts` `startFleetClientFromConfig`)、用量累加器(`boot/budget-tracing.ts`)。公告环另要一件可达性声明
|
|
@@ -81,7 +81,7 @@ export interface CenterRequestInit {
|
|
|
81
81
|
*/
|
|
82
82
|
export declare function pathBaseUrlRefusal(subject: string, raw: string): string | undefined;
|
|
83
83
|
/**
|
|
84
|
-
*
|
|
84
|
+
* [ref] —— 凭证续签:`POST {issuer}/api/v1/auth/token/refresh`,form `refresh_token=…`(settings-schema `AUTH_V1_PATHS.tokenRefresh`)。
|
|
85
85
|
* · 以 `issuer` 为根(可带路径前缀;同源与否由续签器先判,本函数只装配);query / fragment 不带过去。
|
|
86
86
|
* · **不带 Authorization**:这条端点凭 refresh token 认人,手里的 access token 可能已经过期。
|
|
87
87
|
* · `redirect: "manual"`:3xx 不跟 —— POST 307/308 会把体(= refresh token)原样带去 `Location`,同源判据在重定向面前失效。
|