@sema-agent/server 7.147.0 → 7.149.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +1468 -24
- package/README.md +35 -7
- package/README.zh-CN.md +18 -8
- package/USAGE.md +444 -193
- package/deploy/sema-up/README.md +16 -5
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/templates/_helpers.tpl +20 -4
- package/deploy/sema-up/chart/values.yaml +3 -2
- package/deploy/sema-up/cluster-up.sh +74 -176
- package/deploy/sema-up/kube-up.sh +29 -49
- package/deploy/sema-up/lib/chart-run.sh +23 -0
- package/deploy/sema-up/lib/dataroot.sh +3 -3
- package/deploy/sema-up/lib/health.sh +62 -13
- package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
- package/deploy/sema-up/lib/helm-values-kube.py +35 -0
- package/deploy/sema-up/lib/regcred.py +8 -0
- package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
- package/deploy/sema-up/lib/remote/image-import.sh +6 -0
- package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
- package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
- package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
- package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
- package/deploy/sema-up/lib/render-stack.py +17 -0
- package/deploy/sema-up/lib/shell-text.sh +87 -0
- package/deploy/sema-up/lib/usage-flags.txt +10 -0
- package/deploy/sema-up/lib/usage-head.txt +1 -0
- package/deploy/sema-up/lib/usage-tail.txt +13 -0
- package/deploy/sema-up/preflight.sh +10 -8
- package/deploy/sema-up/sema-up.sh +14 -39
- package/deploy/sema-up/smoke.sh +7 -6
- package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
- package/deploy/sema-up/stack/compose.yaml +13 -1
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +21 -0
- package/dist/adoption/plan.d.ts +24 -0
- package/dist/adoption/plan.js +53 -1
- package/dist/adoption/runner.d.ts +10 -1
- package/dist/adoption/runner.js +36 -16
- package/dist/approval-card.d.ts +36 -38
- package/dist/approval-gate-currency.js +3 -2
- package/dist/approval-leg-origin.d.ts +33 -0
- package/dist/approval-leg-origin.js +4 -0
- package/dist/approval-reconciler.d.ts +4 -13
- package/dist/approval-reconciler.js +2 -2
- package/dist/approval.d.ts +13 -11
- package/dist/approval.js +3 -3
- package/dist/audit.d.ts +10 -3
- package/dist/audit.js +15 -7
- package/dist/auth-bridge.d.ts +9 -15
- package/dist/auth-bridge.js +4 -11
- package/dist/auth-keys.d.ts +10 -1
- package/dist/auth-keys.js +8 -0
- package/dist/auto-mode-face.d.ts +10 -7
- package/dist/auto-mode-face.js +7 -4
- package/dist/background-agent-name.d.ts +19 -1
- package/dist/background-agent-name.js +12 -2
- package/dist/background-session-reap.d.ts +1 -1
- package/dist/bake-runner/main.js +9 -6
- package/dist/bench/s1/arms.js +6 -5
- package/dist/bench/s1/live-deps.js +5 -2
- package/dist/bench/s1/run-firm.js +6 -5
- package/dist/bind-host.d.ts +25 -0
- package/dist/bind-host.js +25 -0
- package/dist/boot/adoption.d.ts +3 -0
- package/dist/boot/adoption.js +1 -0
- package/dist/boot/deployment-mods.d.ts +1 -1
- package/dist/boot/execution-env.d.ts +17 -7
- package/dist/boot/execution-env.js +47 -42
- package/dist/boot/execution-lane.d.ts +6 -4
- package/dist/boot/execution-lane.js +3 -1
- package/dist/boot/exit-boundary.d.ts +2 -2
- package/dist/boot/exit-boundary.js +6 -5
- package/dist/boot/fatal-exit.d.ts +3 -5
- package/dist/boot/fatal-exit.js +2 -2
- package/dist/boot/leader.d.ts +15 -0
- package/dist/boot/leader.js +17 -15
- package/dist/boot/memory-consolidation.d.ts +37 -29
- package/dist/boot/memory-consolidation.js +11 -5
- package/dist/boot/org-delivery.d.ts +3 -2
- package/dist/boot/org-memory.js +1 -1
- package/dist/boot/parked-revive-gate.js +2 -2
- package/dist/boot/reapers.d.ts +4 -3
- package/dist/boot/reapers.js +19 -16
- package/dist/boot/resolve-spec.d.ts +5 -3
- package/dist/boot/resolve-spec.js +60 -70
- package/dist/boot/retention-lane.d.ts +4 -4
- package/dist/boot/retention-lane.js +2 -2
- package/dist/boot/runner-deps.d.ts +28 -7
- package/dist/boot/runner-deps.js +14 -5
- package/dist/boot/runtime-caps.d.ts +2 -2
- package/dist/boot/runtime-caps.js +16 -2
- package/dist/boot/session-faces.d.ts +16 -7
- package/dist/boot/session-faces.js +114 -94
- package/dist/boot/shutdown.d.ts +5 -4
- package/dist/boot/shutdown.js +6 -4
- package/dist/boot/stage-01-config.d.ts +1 -0
- package/dist/boot/stage-01-config.js +13 -4
- package/dist/boot/stage-02-web-admin-pull.d.ts +2 -0
- package/dist/boot/stage-02-web-admin-pull.js +16 -3
- package/dist/boot/stage-03-store-backend.d.ts +4 -0
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +3 -0
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +8 -3
- package/dist/boot/stage-05-execution-env.js +2 -2
- package/dist/boot/stage-06-runners.d.ts +12 -13
- package/dist/boot/stage-06-runners.js +23 -15
- package/dist/boot/stage-07-capability-layer.d.ts +13 -9
- package/dist/boot/stage-07-capability-layer.js +5 -3
- package/dist/boot/stage-08-reapers.d.ts +13 -9
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +14 -16
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +14 -16
- package/dist/boot/stage-10-http-server.js +7 -4
- package/dist/boot/store-evidence.d.ts +20 -0
- package/dist/boot/store-evidence.js +13 -0
- package/dist/boot/stores.d.ts +6 -0
- package/dist/boot/stores.js +41 -27
- package/dist/boot/task-list-lane.d.ts +4 -4
- package/dist/boot/web-admin.d.ts +4 -2
- package/dist/boot/web-admin.js +55 -35
- package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
- package/dist/boot-reclaim.d.ts +3 -1
- package/dist/boot-reclaim.js +1 -1
- package/dist/brain.d.ts +7 -18
- package/dist/brain.js +5 -17
- package/dist/budget.js +6 -6
- package/dist/capabilities/center-plugins.d.ts +7 -1
- package/dist/capabilities/center-plugins.js +32 -10
- package/dist/capabilities/center-wiring.js +1 -1
- package/dist/capabilities/composite-members.d.ts +2 -2
- package/dist/capabilities/composite-members.js +2 -2
- package/dist/capabilities/repo-tools.d.ts +2 -0
- package/dist/capabilities/repo-tools.js +14 -12
- package/dist/capabilities/scenarios.d.ts +6 -15
- package/dist/capabilities/scenarios.js +11 -16
- package/dist/capabilities/skills.d.ts +1 -1
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +39 -11
- package/dist/capability-facts.js +35 -7
- package/dist/card-settle-stored-scope.d.ts +56 -0
- package/dist/card-settle-stored-scope.js +27 -0
- package/dist/card-void.d.ts +8 -13
- package/dist/card-void.js +2 -7
- package/dist/center-credential-renewer.d.ts +6 -2
- package/dist/center-credential-renewer.js +7 -3
- package/dist/config-catalog.d.ts +28 -1
- package/dist/config-catalog.js +95 -85
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +43 -3
- package/dist/config-invariants.js +69 -5
- package/dist/config-lkg.d.ts +23 -1
- package/dist/config-lkg.js +17 -3
- package/dist/config-provider.d.ts +9 -9
- package/dist/config-provider.js +25 -110
- package/dist/config-pull-failure.d.ts +50 -0
- package/dist/config-pull-failure.js +48 -0
- package/dist/config-types.d.ts +62 -21
- package/dist/config.d.ts +14 -21
- package/dist/config.js +141 -64
- package/dist/context-window-notice.d.ts +31 -0
- package/dist/context-window-notice.js +28 -0
- package/dist/delegated-session-owner.d.ts +1 -1
- package/dist/deleted-session-ids.d.ts +3 -2
- package/dist/deployment-governance.d.ts +3 -3
- package/dist/deployment-shape.d.ts +46 -11
- package/dist/deployment-shape.js +8 -0
- package/dist/egress-redirect.d.ts +25 -7
- package/dist/egress-redirect.js +20 -2
- package/dist/elicitation.d.ts +6 -5
- package/dist/elicitation.js +23 -22
- package/dist/engine-identity.d.ts +28 -0
- package/dist/engine-identity.js +10 -0
- package/dist/entry-problems.d.ts +5 -7
- package/dist/entry-problems.js +1 -1
- package/dist/env-facts.js +2 -1
- package/dist/env-name-allowlist-knobs.d.ts +6 -5
- package/dist/env-name-allowlist-knobs.js +5 -0
- package/dist/env-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-lane-caps.d.ts +25 -23
- package/dist/execution-lane-caps.js +18 -26
- package/dist/execution-placement.d.ts +58 -18
- package/dist/execution-placement.js +41 -2
- package/dist/field-conflict.d.ts +7 -11
- package/dist/field-conflict.js +3 -3
- package/dist/file-history-capture.d.ts +3 -3
- package/dist/file-history-disclosure.js +1 -0
- package/dist/fleet/fleet-bus.d.ts +21 -3
- package/dist/fleet/fleet-bus.js +35 -25
- package/dist/fleet/fleet-reconciler.js +2 -2
- package/dist/fleet/serving-lease.js +3 -3
- package/dist/fleet-client.js +3 -3
- package/dist/fleet-lease.d.ts +0 -1
- package/dist/fleet-lease.js +4 -5
- package/dist/history-anchor.d.ts +23 -3
- package/dist/history-anchor.js +24 -4
- package/dist/hitl-delivery.d.ts +90 -0
- package/dist/hitl-delivery.js +98 -0
- package/dist/hooks/classic-stations.d.ts +8 -11
- package/dist/hooks/classic-stations.js +0 -7
- package/dist/hooks/command-spawn.d.ts +7 -2
- package/dist/hooks/command-spawn.js +13 -6
- package/dist/hooks/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +72 -57
- package/dist/hooks/hook-runner.js +271 -193
- package/dist/host-lsp-manager.d.ts +22 -8
- package/dist/host-lsp-manager.js +4 -1
- package/dist/http/active-run-conflict.d.ts +2 -43
- package/dist/http/active-run-conflict.js +3 -7
- package/dist/http/admission.d.ts +4 -18
- package/dist/http/admission.js +76 -79
- package/dist/http/approval-sweeps.d.ts +3 -3
- package/dist/http/approval-sweeps.js +56 -31
- package/dist/http/caller-trust.d.ts +8 -10
- package/dist/http/caller-trust.js +1 -2
- package/dist/http/claim-heartbeat.d.ts +49 -0
- package/dist/http/claim-heartbeat.js +46 -0
- package/dist/http/claimed-run.d.ts +16 -8
- package/dist/http/claimed-run.js +8 -0
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +78 -30
- package/dist/http/durable-run-leg.d.ts +11 -4
- package/dist/http/durable-run-leg.js +45 -21
- package/dist/http/execution-context.d.ts +122 -47
- package/dist/http/execution-context.js +135 -43
- package/dist/http/health-reader.d.ts +36 -0
- package/dist/http/health-reader.js +21 -0
- package/dist/http/health-self-report.d.ts +9 -9
- package/dist/http/health-self-report.js +4 -4
- package/dist/http/idempotency.d.ts +9 -5
- package/dist/http/idempotency.js +4 -4
- package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
- package/dist/http/memory-compliance-failure-reply.js +4 -2
- package/dist/http/memory-face-fault-reply.d.ts +67 -0
- package/dist/http/memory-face-fault-reply.js +71 -0
- package/dist/http/memory-store-refusal-reply.d.ts +1 -1
- package/dist/http/memory-store-refusal-reply.js +3 -0
- package/dist/http/owner-access.d.ts +392 -67
- package/dist/http/owner-access.js +370 -35
- package/dist/http/principal-gate.d.ts +39 -89
- package/dist/http/principal-gate.js +26 -68
- package/dist/http/refusal-body.d.ts +35 -2
- package/dist/http/refusal-body.js +34 -0
- package/dist/http/request-guards.d.ts +9 -13
- package/dist/http/request-guards.js +34 -68
- package/dist/http/resume-composition.d.ts +37 -0
- package/dist/http/resume-composition.js +18 -0
- package/dist/http/resume-ctx-read.d.ts +46 -12
- package/dist/http/resume-ctx-read.js +31 -6
- package/dist/http/resume-legs.d.ts +54 -19
- package/dist/http/resume-legs.js +408 -196
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/route-ctx.d.ts +31 -32
- package/dist/http/routes/a2a-serve.d.ts +43 -5
- package/dist/http/routes/a2a-serve.js +60 -37
- package/dist/http/routes/admin-config-refresh.js +2 -2
- package/dist/http/routes/admin-drain.js +2 -2
- package/dist/http/routes/admin-memory-optout.js +4 -3
- package/dist/http/routes/adoption.d.ts +3 -0
- package/dist/http/routes/adoption.js +17 -10
- package/dist/http/routes/agents-roster.js +13 -7
- package/dist/http/routes/approvals-assistant.js +73 -67
- package/dist/http/routes/attachments.js +2 -2
- package/dist/http/routes/background.d.ts +3 -3
- package/dist/http/routes/background.js +9 -17
- package/dist/http/routes/capabilities.js +16 -19
- package/dist/http/routes/config-catalog.js +2 -2
- package/dist/http/routes/devices.d.ts +3 -3
- package/dist/http/routes/devices.js +4 -4
- package/dist/http/routes/diagnostics.d.ts +29 -3
- package/dist/http/routes/diagnostics.js +49 -18
- package/dist/http/routes/engine.js +2 -2
- package/dist/http/routes/fleet.js +5 -3
- package/dist/http/routes/images.js +10 -6
- package/dist/http/routes/leader.d.ts +7 -2
- package/dist/http/routes/leader.js +12 -3
- package/dist/http/routes/mcp-reconnect.d.ts +1 -1
- package/dist/http/routes/mcp-reconnect.js +7 -15
- package/dist/http/routes/memory-bundle.js +4 -7
- package/dist/http/routes/memory-compliance.js +4 -4
- package/dist/http/routes/memory-consolidation.js +6 -9
- package/dist/http/routes/memory-origin.d.ts +2 -0
- package/dist/http/routes/memory-origin.js +7 -8
- package/dist/http/routes/memory-policy.js +17 -12
- package/dist/http/routes/notify-wake.js +10 -19
- package/dist/http/routes/observability.js +3 -3
- package/dist/http/routes/principal-inbox.d.ts +4 -2
- package/dist/http/routes/principal-inbox.js +5 -4
- package/dist/http/routes/projects.d.ts +1 -1
- package/dist/http/routes/projects.js +3 -2
- package/dist/http/routes/retention-ops.js +6 -9
- package/dist/http/routes/rules.js +20 -5
- package/dist/http/routes/run-memory-capture.d.ts +2 -2
- package/dist/http/routes/run-memory-capture.js +6 -12
- package/dist/http/routes/run-permission-mode.d.ts +2 -2
- package/dist/http/routes/run-permission-mode.js +10 -17
- package/dist/http/routes/runs.js +155 -237
- package/dist/http/routes/session-memory-sync.d.ts +2 -2
- package/dist/http/routes/session-memory-sync.js +7 -13
- package/dist/http/routes/session-sync.d.ts +28 -7
- package/dist/http/routes/session-sync.js +63 -50
- package/dist/http/routes/sessions-list.d.ts +3 -3
- package/dist/http/routes/sessions-list.js +9 -9
- package/dist/http/routes/sessions.js +87 -124
- package/dist/http/routes/shared-memory.js +6 -6
- package/dist/http/routes/side-query.js +2 -2
- package/dist/http/routes/tasks.js +237 -187
- package/dist/http/routes/trace-usage.d.ts +0 -12
- package/dist/http/routes/trace-usage.js +40 -46
- package/dist/http/routes/workflows.d.ts +39 -4
- package/dist/http/routes/workflows.js +42 -14
- package/dist/http/run-concurrency-cap.d.ts +20 -12
- package/dist/http/run-concurrency-cap.js +39 -26
- package/dist/http/run-read-face.d.ts +3 -5
- package/dist/http/run-read-face.js +8 -13
- package/dist/http/send.d.ts +12 -3
- package/dist/http/send.js +42 -6
- package/dist/http/server.d.ts +43 -45
- package/dist/http/server.js +61 -11
- package/dist/http/sse-log.d.ts +17 -10
- package/dist/http/sse-log.js +7 -7
- package/dist/http/stored-body-replay.d.ts +12 -0
- package/dist/http/stored-body-replay.js +2 -2
- package/dist/http/submit-ctx.d.ts +17 -8
- package/dist/http/submit-ctx.js +8 -5
- package/dist/http/submit-replay.d.ts +19 -6
- package/dist/http/submit-replay.js +18 -6
- package/dist/http/sync-submit-body.d.ts +3 -4
- package/dist/http/sync-submit-body.js +4 -5
- package/dist/http/wire-types.d.ts +4 -3
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +2 -0
- package/dist/key-resolver.d.ts +32 -0
- package/dist/key-resolver.js +23 -9
- package/dist/leader/diffup.js +2 -1
- package/dist/leader/endpoint.d.ts +26 -5
- package/dist/leader/endpoint.js +154 -14
- package/dist/leader/fanout.d.ts +3 -0
- package/dist/leader/fanout.js +78 -63
- package/dist/leader/leader.d.ts +16 -0
- package/dist/leader/leader.js +43 -3
- package/dist/leader/merge.d.ts +9 -1
- package/dist/leader/merge.js +16 -1
- package/dist/leader/repair-wire.js +1 -1
- package/dist/leader/wire.d.ts +36 -3
- package/dist/leader/wire.js +59 -18
- package/dist/leg-facts.d.ts +7 -2
- package/dist/leg-facts.js +1 -0
- package/dist/local-store-declaration.d.ts +54 -0
- package/dist/local-store-declaration.js +59 -0
- package/dist/lsp-evict.d.ts +6 -4
- package/dist/lsp-evict.js +2 -3
- package/dist/mcp-assertion-header.d.ts +1 -1
- package/dist/mcp-assertion-header.js +1 -1
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-project-layer.js +1 -1
- package/dist/memory-scope.d.ts +33 -6
- package/dist/memory-scope.js +68 -19
- package/dist/memory-store-refusal.d.ts +5 -2
- package/dist/memory-sync-client.d.ts +3 -2
- package/dist/memory-sync-client.js +8 -5
- package/dist/model-compat.d.ts +17 -8
- package/dist/model-compat.js +6 -2
- package/dist/model-context-window.d.ts +57 -0
- package/dist/model-context-window.js +21 -0
- package/dist/model-entry-headers.d.ts +46 -4
- package/dist/model-entry-headers.js +2 -2
- package/dist/model-entry-refusal.d.ts +40 -20
- package/dist/model-entry-refusal.js +57 -30
- package/dist/model-plane-face.d.ts +19 -11
- package/dist/model-plane-face.js +9 -1
- package/dist/model-plane-probe.d.ts +2 -0
- package/dist/model-plane-probe.js +17 -0
- package/dist/model-provider.d.ts +3 -3
- package/dist/model-reach-scope.d.ts +2 -1
- package/dist/model-route-endpoint.d.ts +9 -5
- package/dist/model-route-endpoint.js +29 -7
- package/dist/model-select.d.ts +16 -0
- package/dist/model-select.js +4 -0
- package/dist/mountinfo.d.ts +37 -0
- package/dist/mountinfo.js +47 -0
- package/dist/namespaced-rule-name.d.ts +23 -14
- package/dist/namespaced-rule-name.js +8 -11
- package/dist/net-address.d.ts +1 -1
- package/dist/observability/corrupt-read-seat.d.ts +4 -4
- package/dist/observability/corrupt-read-seat.js +5 -3
- package/dist/observability/fail-open.d.ts +72 -40
- package/dist/observability/fail-open.js +74 -40
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.js +4 -5
- package/dist/observability/otel-exporter.js +2 -1
- package/dist/observability/principal-context.d.ts +14 -7
- package/dist/observability/principal-context.js +8 -3
- package/dist/observability/run-terminal.d.ts +7 -1
- package/dist/observability/run-terminal.js +6 -2
- package/dist/observability/secret-env-scrub.d.ts +1 -1
- package/dist/observability/secret-env-scrub.js +1 -1
- package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
- package/dist/orchestration/hardened-vm-runner.js +11 -5
- package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
- package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
- package/dist/orchestration/hardened-vm-worker.js +2 -1
- package/dist/orchestration/workflow-completion-inbox.d.ts +3 -3
- package/dist/orchestration/workflow-completion-inbox.js +3 -2
- package/dist/org-delivery-gate.d.ts +36 -10
- package/dist/org-delivery-gate.js +12 -8
- package/dist/outbound-dispatcher.d.ts +1 -1
- package/dist/outbound-dispatcher.js +6 -12
- package/dist/owner-brands.d.ts +81 -0
- package/dist/owner-brands.js +42 -0
- package/dist/owner-faces.d.ts +532 -0
- package/dist/owner-faces.js +126 -0
- package/dist/park-row-commit.d.ts +67 -0
- package/dist/park-row-commit.js +76 -0
- package/dist/parked-decide.d.ts +76 -12
- package/dist/parked-decide.js +152 -11
- package/dist/parked-revive-surface.d.ts +14 -4
- package/dist/parked-revive-surface.js +5 -4
- package/dist/peer-directory.d.ts +7 -9
- package/dist/peer-directory.js +3 -2
- package/dist/permission-rule-vocab.d.ts +53 -8
- package/dist/permission-rule-vocab.js +30 -2
- package/dist/plugins/adoption-log-sql.d.ts +3 -25
- package/dist/plugins/adoption-log-sql.js +23 -21
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
- package/dist/plugins/approval-ask-store-file.d.ts +18 -7
- package/dist/plugins/approval-ask-store-file.js +37 -14
- package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
- package/dist/plugins/approval-ask-store-memory.js +24 -10
- package/dist/plugins/approval-ask-store-sql.d.ts +40 -21
- package/dist/plugins/approval-ask-store-sql.js +44 -15
- package/dist/plugins/approval-exemption-skill-cutoff.d.ts +64 -0
- package/dist/plugins/approval-exemption-skill-cutoff.js +122 -0
- package/dist/plugins/approval-exemption-skill-m46.d.ts +14 -0
- package/dist/plugins/approval-exemption-skill-m46.js +21 -0
- package/dist/plugins/approval-exemption-store.d.ts +32 -2
- package/dist/plugins/approval-exemption-store.js +42 -19
- package/dist/plugins/approval-nonce-store.d.ts +39 -12
- package/dist/plugins/approval-nonce-store.js +72 -23
- package/dist/plugins/blob-backend.d.ts +2 -0
- package/dist/plugins/blob-backend.js +9 -6
- package/dist/plugins/caching-session-store.d.ts +13 -1
- package/dist/plugins/caching-session-store.js +43 -4
- package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
- package/dist/plugins/checkpoint-index-columns.js +36 -1
- package/dist/plugins/checkpoint-store-face.d.ts +83 -10
- package/dist/plugins/checkpoint-store-face.js +18 -1
- package/dist/plugins/device-store-sql.js +1 -0
- package/dist/plugins/ensure-index.d.ts +13 -1
- package/dist/plugins/ensure-index.js +154 -21
- package/dist/plugins/ensure-schema-lock-policy.d.ts +36 -18
- package/dist/plugins/ensure-schema-lock-policy.js +76 -9
- package/dist/plugins/file-run-store.d.ts +85 -32
- package/dist/plugins/file-run-store.js +177 -94
- package/dist/plugins/host-platform.d.ts +24 -3
- package/dist/plugins/host-platform.js +15 -1
- package/dist/plugins/image-bake-store-sql.js +2 -0
- package/dist/plugins/imported-layer-root-retirement.d.ts +2 -2
- package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
- package/dist/plugins/k8s-pod-reaper.js +0 -1
- package/dist/plugins/leader-run-store-sql.d.ts +22 -0
- package/dist/plugins/leader-run-store-sql.js +34 -4
- package/dist/plugins/local-checkpoint-store.d.ts +62 -23
- package/dist/plugins/local-checkpoint-store.js +197 -77
- package/dist/plugins/local-data-dir-modes-m39.js +2 -1
- package/dist/plugins/local-data-root-admission.d.ts +52 -0
- package/dist/plugins/local-data-root-admission.js +100 -0
- package/dist/plugins/local-docker-capacity.d.ts +93 -0
- package/dist/plugins/local-docker-capacity.js +194 -0
- package/dist/plugins/local-docker-reaper.d.ts +92 -0
- package/dist/plugins/local-docker-reaper.js +102 -0
- package/dist/plugins/local-engine-high-water.d.ts +29 -6
- package/dist/plugins/local-engine-high-water.js +27 -19
- package/dist/plugins/local-session-store.d.ts +458 -140
- package/dist/plugins/local-session-store.js +906 -292
- package/dist/plugins/local-session-window.d.ts +3 -2
- package/dist/plugins/local-session-window.js +3 -2
- package/dist/plugins/local-sidecar-quarantine.js +3 -2
- package/dist/plugins/local-task-attachment-store.d.ts +18 -1
- package/dist/plugins/local-task-attachment-store.js +22 -1
- package/dist/plugins/memory-embedder.js +9 -7
- package/dist/plugins/memory-engine-pg.d.ts +3 -2
- package/dist/plugins/memory-engine-pg.js +14 -5
- package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
- package/dist/plugins/memory-engine-sql-apply.js +6 -8
- package/dist/plugins/memory-engine-tidb.d.ts +4 -2
- package/dist/plugins/memory-engine-tidb.js +11 -2
- package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
- package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
- package/dist/plugins/memory-run-store.d.ts +53 -36
- package/dist/plugins/memory-run-store.js +116 -88
- package/dist/plugins/one-time-migration-marker.d.ts +26 -0
- package/dist/plugins/one-time-migration-marker.js +13 -0
- package/dist/plugins/one-time-migrations.d.ts +214 -47
- package/dist/plugins/one-time-migrations.js +481 -135
- package/dist/plugins/org-delivery-quota-store.d.ts +34 -11
- package/dist/plugins/org-delivery-quota-store.js +31 -15
- package/dist/plugins/permission-rule-store-file.d.ts +3 -3
- package/dist/plugins/permission-rule-store-sql.d.ts +5 -64
- package/dist/plugins/permission-rule-store-sql.js +11 -95
- package/dist/plugins/pg-pool.d.ts +2 -32
- package/dist/plugins/pg-pool.js +24 -17
- package/dist/plugins/remote-env-device.d.ts +3 -2
- package/dist/plugins/remote-env-e2b.d.ts +8 -32
- package/dist/plugins/remote-env-e2b.js +44 -32
- package/dist/plugins/remote-env-host.d.ts +51 -17
- package/dist/plugins/remote-env-host.js +111 -42
- package/dist/plugins/remote-env-k8s.d.ts +40 -45
- package/dist/plugins/remote-env-k8s.js +111 -60
- package/dist/plugins/remote-env-local-docker.d.ts +152 -15
- package/dist/plugins/remote-env-local-docker.js +352 -72
- package/dist/plugins/remote-scratchpad.js +4 -0
- package/dist/plugins/retention-deployment.d.ts +49 -17
- package/dist/plugins/retention-deployment.js +39 -8
- package/dist/plugins/run-preview-m45.d.ts +11 -0
- package/dist/plugins/run-preview-m45.js +19 -0
- package/dist/plugins/run-store-sql.d.ts +82 -75
- package/dist/plugins/run-store-sql.js +164 -125
- package/dist/plugins/s3-answer.d.ts +2 -1
- package/dist/plugins/sandbox-reaper.d.ts +26 -0
- package/dist/plugins/sandbox-reaper.js +2 -0
- package/dist/plugins/scenario-prefix-switch-m42.d.ts +56 -0
- package/dist/plugins/scenario-prefix-switch-m42.js +56 -0
- package/dist/plugins/scheduler-support.d.ts +16 -1
- package/dist/plugins/scheduler-support.js +22 -2
- package/dist/plugins/schema-consistency.d.ts +131 -14
- package/dist/plugins/schema-consistency.js +388 -18
- package/dist/plugins/schema-drift-sentence.d.ts +10 -6
- package/dist/plugins/schema-drift-sentence.js +15 -7
- package/dist/plugins/schema-ensure-legs.d.ts +9 -0
- package/dist/plugins/schema-ensure-legs.js +1 -1
- package/dist/plugins/schema-indexes.js +3 -0
- package/dist/plugins/schema-live-columns.d.ts +14 -5
- package/dist/plugins/schema-live-columns.js +10 -10
- package/dist/plugins/send-user-file.js +2 -1
- package/dist/plugins/session-birth.d.ts +37 -0
- package/dist/plugins/session-birth.js +38 -0
- package/dist/plugins/session-epoch-anchor.d.ts +40 -12
- package/dist/plugins/session-epoch-anchor.js +33 -11
- package/dist/plugins/session-ext-table.d.ts +27 -3
- package/dist/plugins/session-ext-table.js +19 -6
- package/dist/plugins/session-fork.d.ts +15 -1
- package/dist/plugins/session-fork.js +3 -0
- package/dist/plugins/session-ownership.d.ts +1 -1
- package/dist/plugins/session-placement.d.ts +27 -20
- package/dist/plugins/session-placement.js +15 -12
- package/dist/plugins/session-row-sql.d.ts +12 -0
- package/dist/plugins/session-row-sql.js +3 -3
- package/dist/plugins/session-run-rollup.d.ts +29 -0
- package/dist/plugins/session-run-rollup.js +40 -0
- package/dist/plugins/session-store-sql.d.ts +38 -12
- package/dist/plugins/session-store-sql.js +130 -30
- package/dist/plugins/session-withdraw-sql.d.ts +36 -0
- package/dist/plugins/session-withdraw-sql.js +42 -0
- package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
- package/dist/plugins/shared-memory-store-sql.js +2 -1
- package/dist/plugins/shell-sentinel-owner-m48.d.ts +42 -0
- package/dist/plugins/shell-sentinel-owner-m48.js +9 -0
- package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
- package/dist/plugins/sql-driver.d.ts +1 -1
- package/dist/plugins/sql-driver.js +2 -1
- package/dist/plugins/sql-errors.d.ts +32 -5
- package/dist/plugins/sql-errors.js +55 -7
- package/dist/plugins/sql-json-column.d.ts +8 -7
- package/dist/plugins/sql-json-column.js +10 -6
- package/dist/plugins/stop-then-start-sentence.d.ts +16 -0
- package/dist/plugins/stop-then-start-sentence.js +7 -0
- package/dist/plugins/store-backend.d.ts +99 -16
- package/dist/plugins/store-backend.js +230 -65
- package/dist/plugins/store-contracts.d.ts +123 -33
- package/dist/plugins/store-contracts.js +38 -1
- package/dist/plugins/store-fault.d.ts +28 -2
- package/dist/plugins/store-fault.js +20 -2
- package/dist/plugins/task-attachment-store.d.ts +15 -3
- package/dist/plugins/task-attachment-store.js +22 -9
- package/dist/plugins/tidb-pool.d.ts +11 -6
- package/dist/plugins/tidb-pool.js +39 -18
- package/dist/plugins/web-search.js +5 -3
- package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
- package/dist/plugins/workflow-run-store-sql.js +11 -5
- package/dist/plugins/workspace-custody.d.ts +44 -0
- package/dist/plugins/workspace-custody.js +47 -0
- package/dist/principal-jwt.d.ts +4 -4
- package/dist/principal-jwt.js +20 -5
- package/dist/principal-shape.d.ts +41 -0
- package/dist/principal-shape.js +19 -0
- package/dist/project-identity.d.ts +8 -7
- package/dist/project-identity.js +40 -17
- package/dist/project-layer-key.d.ts +13 -2
- package/dist/project-layer-key.js +9 -1
- package/dist/question.d.ts +13 -23
- package/dist/question.js +21 -39
- package/dist/read-deny-floor-notice.d.ts +36 -0
- package/dist/read-deny-floor-notice.js +40 -0
- package/dist/{plain-string-record.d.ts → request-declaration-disposition.d.ts} +9 -23
- package/dist/request-declaration-disposition.js +39 -0
- package/dist/request-declaration-refusal.d.ts +35 -12
- package/dist/request-declaration-refusal.js +21 -9
- package/dist/request-form.d.ts +58 -0
- package/dist/request-form.js +72 -0
- package/dist/request-image-urls.d.ts +8 -2
- package/dist/request-image-urls.js +2 -1
- package/dist/request-images.d.ts +20 -0
- package/dist/request-images.js +59 -0
- package/dist/request-key-closure.d.ts +6 -7
- package/dist/request-key-closure.js +15 -2
- package/dist/resource-suspend.d.ts +7 -16
- package/dist/resource-suspend.js +1 -1
- package/dist/retired-name-host-notice.d.ts +21 -0
- package/dist/retired-name-host-notice.js +12 -0
- package/dist/rule-entry-list.d.ts +2 -2
- package/dist/rule-entry-list.js +3 -4
- package/dist/rule-issue-reading.d.ts +58 -0
- package/dist/rule-issue-reading.js +14 -0
- package/dist/rules-consent.d.ts +5 -3
- package/dist/rules-consent.js +1 -0
- package/dist/run-acceptance.d.ts +3 -1
- package/dist/run-acceptance.js +3 -0
- package/dist/run-cancel-card.d.ts +28 -0
- package/dist/run-cancel-card.js +19 -0
- package/dist/run-cancel-context.d.ts +10 -0
- package/dist/run-cancel-context.js +1 -0
- package/dist/run-local.d.ts +14 -6
- package/dist/run-local.js +117 -90
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +56 -21
- package/dist/runs.js +73 -43
- package/dist/runtime-caps-resolver.d.ts +21 -6
- package/dist/runtime-caps-resolver.js +17 -4
- package/dist/runtime-governance.d.ts +2 -2
- package/dist/runtime-governance.js +5 -3
- package/dist/sealed-key-layout.d.ts +12 -5
- package/dist/sealed-key-layout.js +5 -0
- package/dist/sealed-key.d.ts +12 -2
- package/dist/sealed-key.js +115 -27
- package/dist/security.d.ts +128 -158
- package/dist/security.js +163 -59
- package/dist/sema-config-dir.d.ts +20 -0
- package/dist/sema-config-dir.js +25 -0
- package/dist/server-secret-env.d.ts +55 -25
- package/dist/server-secret-env.js +75 -22
- package/dist/session-agent.d.ts +3 -2
- package/dist/session-children-retire.d.ts +13 -8
- package/dist/session-children-retire.js +9 -7
- package/dist/session-deletion.d.ts +88 -0
- package/dist/session-deletion.js +8 -0
- package/dist/session-erase.d.ts +145 -0
- package/dist/session-erase.js +115 -0
- package/dist/session-error-wire.d.ts +5 -5
- package/dist/session-error-wire.js +1 -1
- package/dist/session-incarnation.d.ts +52 -5
- package/dist/session-incarnation.js +19 -2
- package/dist/session-policy-wire.d.ts +6 -3
- package/dist/session-policy-wire.js +11 -1
- package/dist/session-resident-background.d.ts +0 -71
- package/dist/session-resident-background.js +4 -3
- package/dist/session-row.d.ts +2 -1
- package/dist/session-rules-seat.d.ts +12 -0
- package/dist/session-rules-seat.js +19 -0
- package/dist/session-titler.d.ts +7 -15
- package/dist/session-titler.js +1 -1
- package/dist/session-workspace.d.ts +3 -3
- package/dist/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-admission.d.ts +33 -0
- package/dist/store-admission.js +49 -0
- package/dist/store-posture.d.ts +141 -20
- package/dist/store-posture.js +205 -3
- package/dist/stored-request-hooks-m20.js +2 -2
- package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
- package/dist/stores-sql/background-agent-store-sql.js +73 -20
- package/dist/stores-sql/checkpoint-store-sql.d.ts +34 -29
- package/dist/stores-sql/checkpoint-store-sql.js +78 -49
- package/dist/stores-sql/file-history-store-sql.d.ts +1 -1
- package/dist/stores-sql/file-history-store-sql.js +3 -5
- package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
- package/dist/stores-sql/mailbox-store-sql.js +31 -32
- package/dist/stores-sql/pg-session-storage.d.ts +7 -5
- package/dist/stores-sql/pg-session-storage.js +54 -46
- package/dist/stores-sql/retention-store-sql.d.ts +87 -19
- package/dist/stores-sql/retention-store-sql.js +92 -27
- package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
- package/dist/stores-sql/session-policy-store-sql.js +44 -36
- package/dist/stores-sql/session-write-hooks.d.ts +12 -6
- package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
- package/dist/stores-sql/tidb-session-storage.js +13 -8
- package/dist/stores-sql/tidb-session-store.d.ts +36 -17
- package/dist/stores-sql/tidb-session-store.js +69 -39
- package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
- package/dist/stores-sql/tool-result-store-sql.js +4 -6
- package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
- package/dist/stores-sql/windowed-session-storage.js +9 -0
- package/dist/submission-exit.d.ts +50 -0
- package/dist/submission-exit.js +108 -0
- package/dist/task-a2a.d.ts +3 -8
- package/dist/task-a2a.js +28 -30
- package/dist/task-cwd.d.ts +43 -7
- package/dist/task-cwd.js +11 -0
- package/dist/task-mcp.d.ts +3 -3
- package/dist/task-mcp.js +4 -4
- package/dist/task-settings.d.ts +14 -10
- package/dist/task-settings.js +19 -7
- package/dist/terminal.d.ts +27 -43
- package/dist/terminal.js +49 -14
- package/dist/tool-approval.d.ts +173 -163
- package/dist/tool-approval.js +247 -232
- package/dist/trace/core-keyset-guard.d.ts +13 -6
- package/dist/trace/core-vocab-wire.d.ts +95 -0
- package/dist/trace/core-vocab-wire.js +15 -0
- package/dist/trace/engine-notice-wire.d.ts +24 -21
- package/dist/trace/engine-notice-wire.js +7 -3
- package/dist/trace/exit-seat.d.ts +30 -4
- package/dist/trace/exit-seat.js +40 -36
- package/dist/trace/extension-call-face.d.ts +3 -2
- package/dist/trace/extension-call-face.js +3 -1
- package/dist/trace/ledger-events.d.ts +4 -7
- package/dist/trace/ledger-sink.d.ts +4 -31
- package/dist/trace/ledger-sink.js +0 -11
- package/dist/trace/model-segment.d.ts +5 -5
- package/dist/trace/model-segment.js +5 -5
- package/dist/trace/project.d.ts +59 -44
- package/dist/trace/project.js +60 -26
- package/dist/trace/redact.d.ts +135 -27
- package/dist/trace/redact.js +884 -260
- package/dist/trace/self-minted-wire.d.ts +567 -20
- package/dist/trace/self-minted-wire.js +205 -24
- package/dist/trace/wire-projection-faces.d.ts +5 -6
- package/dist/trace/wire-projection-faces.js +2 -2
- package/dist/upstream-body.d.ts +23 -0
- package/dist/upstream-body.js +16 -0
- package/dist/url-refusal.d.ts +3 -3
- package/dist/url-refusal.js +11 -4
- package/dist/user-authored-text.d.ts +1 -1
- package/dist/user-input-ledger.d.ts +7 -8
- package/dist/user-input-ledger.js +1 -1
- package/dist/web-admin-client/apply-effective.d.ts +6 -3
- package/dist/web-admin-client/apply-effective.js +33 -23
- package/dist/web-admin-client/apply-ledger.d.ts +16 -7
- package/dist/web-admin-client/apply-ledger.js +5 -2
- package/dist/web-admin-client/center-request.d.ts +2 -2
- package/dist/web-admin-client/center-request.js +15 -15
- package/dist/web-admin-client/effective-keys.d.ts +1 -1
- package/dist/web-admin-client/effective-keys.js +1 -1
- package/dist/web-admin-client/entry-metadata.d.ts +8 -0
- package/dist/web-admin-client/entry-metadata.js +13 -0
- package/dist/web-admin-client/http-client.d.ts +1 -1
- package/dist/web-admin-client/http-client.js +23 -4
- package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
- package/dist/web-admin-client/mcp-revocation.js +2 -1
- package/dist/web-admin-client/read-warnings.d.ts +1 -0
- package/dist/web-admin-client/read-warnings.js +1 -0
- package/dist/web-admin-client/restart-signal.js +8 -4
- package/dist/web-admin-client/skills-mcp.d.ts +2 -2
- package/dist/web-admin-client/types.d.ts +1 -2
- package/dist/workspace-space.d.ts +3 -2
- package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
- package/docs/error-text-lexicon.json +317 -0
- package/package.json +8 -3
- package/scripts/drain-check-local.mjs +118 -147
- package/scripts/drain-check.mysql.sql +22 -2
- package/scripts/drain-check.pg.sql +22 -2
- package/scripts/embed-minimal.mjs +183 -0
- package/wire-changes/server@7.148.0.json +1517 -0
- package/wire-changes/server@7.149.0.json +372 -0
- package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
- package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
- package/dist/http/memory-layer-reply.d.ts +0 -30
- package/dist/http/memory-layer-reply.js +0 -24
- package/dist/lsp/e2b-bridge.d.ts +0 -57
- package/dist/lsp/e2b-bridge.js +0 -139
- package/dist/lsp/e2b-manager.d.ts +0 -93
- package/dist/lsp/e2b-manager.js +0 -178
- package/dist/lsp/lsp-frames.d.ts +0 -14
- package/dist/lsp/lsp-frames.js +0 -25
- package/dist/lsp/manager.d.ts +0 -129
- package/dist/lsp/manager.js +0 -127
- package/dist/lsp/types.d.ts +0 -12
- package/dist/lsp/types.js +0 -2
- package/dist/lsp/ws-transport.d.ts +0 -40
- package/dist/lsp/ws-transport.js +0 -210
- package/dist/plain-string-record.js +0 -70
package/dist/run-local.d.ts
CHANGED
|
@@ -32,10 +32,18 @@ export interface RunLocalDeps {
|
|
|
32
32
|
fetchImpl?: typeof fetch;
|
|
33
33
|
/** Structured logger (defaults to the real one at config.logLevel). */
|
|
34
34
|
logger?: Logger;
|
|
35
|
-
/** stdout sink for the human/JSON result (defaults to
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
/** stdout sink for the human/JSON result (defaults to the log seam's declared non-log result exit `writeCliResult` — unscreened product output).
|
|
36
|
+
* A sink may be async: `runLocal` awaits what it returns at every call site, so the entry never returns (and `main()` never `process.exit`s)
|
|
37
|
+
* before the result bytes are handed to the stream — a piped stdout would otherwise lose the tail of a large result. A plain synchronous sink returns `void`.
|
|
38
|
+
* A sink that throws or rejects propagates out of `runLocal` (as a synchronous throw always did); one that never settles holds it. `writeCliResult` never rejects —
|
|
39
|
+
* it settles when the stream has taken the bytes (a reader that stops reading the pipe holds it until the reader reads or closes). */
|
|
40
|
+
print?: (text: string) => Promise<void> | void;
|
|
41
|
+
/** stderr sink for the short sentences (usage / refusals / "you still need to set …" guidance / the unfinished-stop footer; defaults to the log seam's text
|
|
42
|
+
* exit `writeLogText` — screened). Same law as {@link RunLocalDeps.print}: a sink may be async — `runLocal` (and the no-TTY notice of {@link createLocalApprover})
|
|
43
|
+
* awaits what it returns at every call site, so the entry never returns (and `main()` never `process.exit`s) before the sentence is handed to the stream — a piped
|
|
44
|
+
* stderr would otherwise cut the tail of a longer sentence. A plain synchronous sink returns `void`; a sink that throws or rejects propagates; one that never
|
|
45
|
+
* settles holds the entry. The default never rejects (it settles when the stream has taken the bytes). */
|
|
46
|
+
printErr?: (line: string) => Promise<void> | void;
|
|
39
47
|
/** [ref] 件三: override the TTY detection behind the {@link createLocalApprover} seat
|
|
40
48
|
* (defaults to `process.stdin.isTTY === true`) — lets a test drive BOTH arms deterministically. */
|
|
41
49
|
isTty?: boolean;
|
|
@@ -105,8 +113,8 @@ export interface LocalApproverIo {
|
|
|
105
113
|
readonly isTty: boolean;
|
|
106
114
|
/** TTY 臂的问人器(默认 {@link promptYesNoOnTty} 的 readline y/N;`signal`=core 取消透传)。 */
|
|
107
115
|
readonly askYesNo: (prompt: string, signal?: AbortSignal) => Promise<boolean>;
|
|
108
|
-
/** 非 TTY 臂的告知面(stderr)。 */
|
|
109
|
-
readonly printErr: (line: string) => void;
|
|
116
|
+
/** 非 TTY 臂的告知面(stderr)。可等:席在告知句交给流之后才交出拒答({@link RunLocalDeps.printErr} 同一条律)。 */
|
|
117
|
+
readonly printErr: (line: string) => Promise<void> | void;
|
|
110
118
|
/** [ref]:本席**没有人被问**就拒了一只 ask(无 TTY / 参数展示不出)的事实出口 —— 退出码的判据之一(见 {@link unfinishedStopOf}):
|
|
111
119
|
* 这一拒交给 core 的是部署政策拒(不停批、不记人拒),「活没干完」于是不再经 core 的人拒标记传出来,由本席自己说。 */
|
|
112
120
|
readonly noteRefusedWithoutPerson: () => void;
|
package/dist/run-local.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { defaultModelRefusal, modelUnavailableMessage } from "./model-entry-refusal.js";
|
|
2
|
+
import { DEFAULT_MODEL_REF, pickUserModel } from "./model-select.js";
|
|
3
|
+
import { defaultModelRefusal, modelNotAllowedMessage, modelUnavailableMessage } from "./model-entry-refusal.js";
|
|
4
4
|
import { servedModelTableLeg } from "./model-select.js";
|
|
5
|
-
import {
|
|
6
|
-
import { outwardPlane } from "./terminal.js";
|
|
5
|
+
import { outwardPlane, sealResultForExit } from "./terminal.js";
|
|
7
6
|
import { join } from "node:path";
|
|
8
7
|
import { realpathSync } from "node:fs";
|
|
9
8
|
import { createInterface } from "node:readline/promises";
|
|
10
9
|
import { fileURLToPath } from "node:url";
|
|
11
|
-
import { BIDI_CONTROL_CHARS, Runner, uuidv7,
|
|
10
|
+
import { BIDI_CONTROL_CHARS, Runner, uuidv7, NodeExecutionEnv, TtlSessionStore, CenterPromptSource, FilePromptArtifactStore, FilePromptSourceStateStore, MemoryPromptArtifactStore, MemoryPromptSourceStateStore, defaultTaskRegistry } from "@sema-agent/core";
|
|
12
11
|
import { readAskClassPair } from "./approval-card.js";
|
|
13
12
|
import { singleUserAutoAcceptBaselineApplies } from "./approval.js";
|
|
14
13
|
import { withUnattendedLeg } from "./unattended-permission-mode.js";
|
|
@@ -20,16 +19,18 @@ import { ForkRoutingSessionStore } from "./plugins/fork-routing-session-store.js
|
|
|
20
19
|
import { taskWallClockSec } from "./task-workflow.js";
|
|
21
20
|
import { applyCenterArtifact, centerSourceOnError } from "./capabilities/center-prompts.js";
|
|
22
21
|
import { buildUnpricedCeilingNotice, isRosterGateArmed, loadConfig, logConfigDiagnostics, parseConfigProvider, parseNumOrFailNonNegative } from "./config.js";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
22
|
+
import { admitLocalDataRoot } from "./plugins/local-data-root-admission.js";
|
|
23
|
+
import { openLocalBackend } from "./plugins/store-backend.js";
|
|
24
|
+
import { runAndLogOneTimeMigrations } from "./plugins/one-time-migrations.js";
|
|
25
25
|
import { configLocalRoot, createConfigProvider } from "./config-provider.js";
|
|
26
26
|
import { CONFIG_DOMAIN_INVALID_NOTE, buildCandidateRejectedFields, buildCandidateRejectionNotes, judgeConfigCandidate } from "./web-admin-client/candidate-gate.js";
|
|
27
27
|
import { buildUnreadConfigFileFields, buildUnreadConfigKeyFields } from "./web-admin-client/read-warnings.js";
|
|
28
|
-
import { composeExecutionLane, settleHostLaneShell,
|
|
28
|
+
import { composeExecutionLane, settleHostLaneShell, settleReadDenyFloor } from "./boot/execution-lane.js";
|
|
29
29
|
import { judgeConsolidationValve } from "./boot/memory-consolidation.js";
|
|
30
30
|
import { logConfigDirMigration, migrateLocalConfigDirectory } from "./config-d-migration.js";
|
|
31
31
|
import { logEnvModelsMigration, runEnvModelsMigration } from "./config-root-migration.js";
|
|
32
32
|
import { assertLocalConfigDirTrusted, ConfigDirUntrustedError } from "./config-dir-trust.js";
|
|
33
|
+
import { ConfigPullError, asConfigPullError, configPullFailureNote } from "./config-pull-failure.js";
|
|
33
34
|
import { applyEffective, applyCenterReadFace, applySkillsManifest, resolveMcpServers, mcpForScenario, resolveA2aPeers, a2aForScenario } from "./web-admin-client/facade.js";
|
|
34
35
|
import { hostExecutionEnvFactory } from "./plugins/remote-env-host.js";
|
|
35
36
|
import { buildLaneHomeClaim, executionLaneOf } from "./execution-lane-caps.js";
|
|
@@ -43,12 +44,13 @@ import { createTaskListLane } from "./boot/task-list-lane.js";
|
|
|
43
44
|
import { pickHandsRunner, withoutHands } from "./capabilities/hands-lane.js";
|
|
44
45
|
import { HttpError, sessionIdShapeIssue } from "./security.js";
|
|
45
46
|
import { createMemoryEngineIncidentSink } from "./memory-incident-sink.js";
|
|
46
|
-
import { fileMemoryEngineRoot, memoryEngineBackendFor, memorySpecForRequest } from "./memory-scope.js";
|
|
47
|
+
import { announceMemoryLedgerForm, fileMemoryEngineRoot, memoryEngineBackendFor, memorySpecForRequest } from "./memory-scope.js";
|
|
47
48
|
import { createMemoryScopeStores } from "./memory-scope-stores.js";
|
|
48
49
|
import { createMemoryProjectLayers } from "./memory-project-layer.js";
|
|
49
50
|
import { assertProjectLayerOwnable } from "./project-identity.js";
|
|
50
51
|
import { declaredCredential } from "./model-route-gap.js";
|
|
51
52
|
import { judgeServedModelRoute } from "./model-route-endpoint.js";
|
|
53
|
+
import { warnAssumedContextWindows } from "./context-window-notice.js";
|
|
52
54
|
import { startMemorySyncRunner } from "./memory-sync-client.js";
|
|
53
55
|
import { buildPricing, cappedCeiling, createTracer } from "./budget.js";
|
|
54
56
|
import { createSharedRunnerDeps, installDefaultEngineNoticeSeat } from "./boot/runner-deps.js";
|
|
@@ -58,14 +60,16 @@ import { assertRetentionLaneWirable } from "./boot/retention-lane.js";
|
|
|
58
60
|
import { createOrgMemoryAdmissionWiring } from "./boot/org-memory.js";
|
|
59
61
|
import { assembleDeploymentMods } from "./boot/deployment-mods.js";
|
|
60
62
|
import { createKeyResolver } from "./key-resolver.js";
|
|
61
|
-
import { createLogger } from "./observability/logger.js";
|
|
63
|
+
import { createLogger, writeCliResult, writeLogText, ttyPromptOutput } from "./observability/logger.js";
|
|
62
64
|
import { fatalExit } from "./boot/fatal-exit.js";
|
|
63
65
|
import { installProcessExitBoundary } from "./boot/exit-boundary.js";
|
|
64
66
|
import { createMetrics } from "./observability/metrics.js";
|
|
65
67
|
import { installSecretEnvScrubRecorder } from "./observability/secret-env-scrub.js";
|
|
66
|
-
import {
|
|
68
|
+
import { createLspManager } from "./host-lsp-manager.js";
|
|
67
69
|
import { installOutboundDispatcher } from "./outbound-dispatcher.js";
|
|
68
|
-
import { provisionSemaConfigDir } from "./sema-config-dir.js";
|
|
70
|
+
import { announceConfigRootEnclosingWorkspace, provisionSemaConfigDir } from "./sema-config-dir.js";
|
|
71
|
+
import { launchWorkspaceOf } from "./task-cwd.js";
|
|
72
|
+
import { DEPLOYMENT_SHAPE_PREDICATES } from "./deployment-shape.js";
|
|
69
73
|
import { bindOwnCredentialsConfig, declareServerWithheldEnv } from "./server-secret-env.js";
|
|
70
74
|
export function parseArgs(argv) {
|
|
71
75
|
let objective;
|
|
@@ -207,12 +211,12 @@ export function createLocalApprover(io) {
|
|
|
207
211
|
};
|
|
208
212
|
return async (req, signal) => {
|
|
209
213
|
if (!io.isTty) {
|
|
210
|
-
io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — this run-local invocation has no TTY, so there is nobody to ask. ${buildNoTtyRemedySentence(req)}`);
|
|
214
|
+
await io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — this run-local invocation has no TTY, so there is nobody to ask. ${buildNoTtyRemedySentence(req)}`);
|
|
211
215
|
return refuseWithoutPerson(NO_TTY_REFUSAL_REASON);
|
|
212
216
|
}
|
|
213
217
|
const argsShown = argsDisplayOf(req.args);
|
|
214
218
|
if (!argsShown.ok) {
|
|
215
|
-
io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — its arguments cannot be displayed ` +
|
|
219
|
+
await io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — its arguments cannot be displayed ` +
|
|
216
220
|
`(${terminalSafeText(argsShown.reason)}), so there is nothing a person could review; refusing instead of asking.`);
|
|
217
221
|
return refuseWithoutPerson(UNDISPLAYABLE_ARGS_REFUSAL_REASON);
|
|
218
222
|
}
|
|
@@ -269,7 +273,7 @@ function inputAlreadyEnded(input) {
|
|
|
269
273
|
const state = input;
|
|
270
274
|
return state.readableEnded === true || state.destroyed === true;
|
|
271
275
|
}
|
|
272
|
-
export async function promptYesNoOnTty(prompt, signal, streams = { input: process.stdin, output:
|
|
276
|
+
export async function promptYesNoOnTty(prompt, signal, streams = { input: process.stdin, output: ttyPromptOutput() }) {
|
|
273
277
|
if (signal?.aborted || inputAlreadyEnded(streams.input))
|
|
274
278
|
return false;
|
|
275
279
|
const rl = createInterface({ input: streams.input, output: streams.output });
|
|
@@ -321,22 +325,22 @@ export const RUN_LOCAL_CONFIG_SOURCE_REFUSAL = "CONFIG_PROVIDER=remote: run-loca
|
|
|
321
325
|
"(center credential renewal, sealed model keys and the roster gate are assembled by the HTTP service). Unset CONFIG_PROVIDER or set " +
|
|
322
326
|
"CONFIG_PROVIDER=local for this command, or run the HTTP service to use the center.";
|
|
323
327
|
export async function runLocal(argv, deps = {}) {
|
|
324
|
-
const print = deps.print ??
|
|
325
|
-
const printErr = deps.printErr ?? ((l) =>
|
|
328
|
+
const print = deps.print ?? writeCliResult;
|
|
329
|
+
const printErr = deps.printErr ?? ((l) => writeLogText("stderr", l));
|
|
326
330
|
let args;
|
|
327
331
|
try {
|
|
328
332
|
args = parseArgs(argv);
|
|
329
333
|
}
|
|
330
334
|
catch (err) {
|
|
331
335
|
if (err instanceof UsageError) {
|
|
332
|
-
printErr(err.message);
|
|
336
|
+
await printErr(err.message);
|
|
333
337
|
return 2;
|
|
334
338
|
}
|
|
335
339
|
throw err;
|
|
336
340
|
}
|
|
337
341
|
const configWord = parseConfigProvider();
|
|
338
342
|
if (configWord === "remote") {
|
|
339
|
-
printErr(RUN_LOCAL_CONFIG_SOURCE_REFUSAL);
|
|
343
|
+
await printErr(RUN_LOCAL_CONFIG_SOURCE_REFUSAL);
|
|
340
344
|
return 2;
|
|
341
345
|
}
|
|
342
346
|
if (configWord === undefined)
|
|
@@ -355,36 +359,45 @@ export async function runLocal(argv, deps = {}) {
|
|
|
355
359
|
installSecretEnvScrubRecorder({ logger, metrics });
|
|
356
360
|
installDefaultEngineNoticeSeat(logger, metrics);
|
|
357
361
|
logConfigDiagnostics(logger);
|
|
358
|
-
|
|
362
|
+
let admission;
|
|
363
|
+
try {
|
|
364
|
+
admission = admitLocalDataRoot(root);
|
|
365
|
+
}
|
|
366
|
+
catch (e) {
|
|
367
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
368
|
+
return 2;
|
|
369
|
+
}
|
|
359
370
|
installOutboundDispatcher(logger);
|
|
360
371
|
const providerInput = { provider: "local", localDir: root, localOwnerUid: loaded.configLocalOwnerUid };
|
|
361
372
|
try {
|
|
362
373
|
await assertLocalConfigDirTrusted({ root, declaredOwnerUid: loaded.configLocalOwnerUid });
|
|
363
374
|
}
|
|
364
375
|
catch (err) {
|
|
365
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
376
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
366
377
|
return 2;
|
|
367
378
|
}
|
|
368
|
-
const envModelsMigration = { root, env: process.env, envTableIsPlaceholder: isRosterGateArmed(loaded.webAdmin) };
|
|
369
|
-
logEnvModelsMigration(logger, envModelsMigration, await runEnvModelsMigration(envModelsMigration));
|
|
370
379
|
logConfigDirMigration(logger, await migrateLocalConfigDirectory(root));
|
|
371
380
|
let config;
|
|
372
381
|
try {
|
|
373
382
|
config = await composeExecutionLane(loaded, { configSource: "local", localRoot: root, logger, entry: RUN_LOCAL_LANE_ENTRY });
|
|
374
383
|
}
|
|
375
384
|
catch (err) {
|
|
376
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
385
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
377
386
|
return 2;
|
|
378
387
|
}
|
|
388
|
+
provisionSemaConfigDir(config, logger);
|
|
389
|
+
const envModelsMigration = { root, env: process.env, envTableIsPlaceholder: isRosterGateArmed(config.webAdmin) };
|
|
390
|
+
logEnvModelsMigration(logger, envModelsMigration, await runEnvModelsMigration(envModelsMigration));
|
|
379
391
|
const configProvider = createConfigProvider(providerInput);
|
|
380
392
|
const peerDesk = createPeerDesk({ log: logger });
|
|
381
393
|
const rosterLease = peerDesk.lease("roster");
|
|
382
394
|
let effective;
|
|
383
395
|
let candidatePrompts;
|
|
384
396
|
let candidateRejectionNotes;
|
|
385
|
-
let applying = false;
|
|
386
397
|
try {
|
|
387
|
-
const r = await configProvider.fetchEffective(undefined)
|
|
398
|
+
const r = await configProvider.fetchEffective(undefined).catch((err) => {
|
|
399
|
+
throw asConfigPullError(err);
|
|
400
|
+
});
|
|
388
401
|
if (r) {
|
|
389
402
|
const verdict = judgeConfigCandidate(r);
|
|
390
403
|
if (verdict.verdict === "rejected") {
|
|
@@ -400,7 +413,6 @@ export async function runLocal(argv, deps = {}) {
|
|
|
400
413
|
logger.warn("config_unread_key", buildUnreadConfigKeyFields(k, configProvider.kind === "local" ? root : undefined));
|
|
401
414
|
for (const d of r.droppedEntries ?? [])
|
|
402
415
|
logger.warn("config_entry_dropped", { domain: d.domain, entry: d.entry, reasonCode: d.reasonCode, error: d.error, version: r.effective.version, phase: "boot", note: "this one entry failed its domain schema and was dropped on its own — the rest of the candidate applies (per-entry tolerance); fix the named entry to bring it back" });
|
|
403
|
-
applying = true;
|
|
404
416
|
applyEffective(config, r.effective, logger, { leg: "boot", catalogSource: r.catalogSource });
|
|
405
417
|
effective = r.effective;
|
|
406
418
|
candidatePrompts = verdict.prompts;
|
|
@@ -415,13 +427,13 @@ export async function runLocal(argv, deps = {}) {
|
|
|
415
427
|
}
|
|
416
428
|
catch (err) {
|
|
417
429
|
if (err instanceof ConfigDirUntrustedError) {
|
|
418
|
-
printErr(err.message);
|
|
430
|
+
await printErr(err.message);
|
|
419
431
|
return 2;
|
|
420
432
|
}
|
|
421
|
-
if (
|
|
422
|
-
logger.warn("
|
|
433
|
+
if (err instanceof ConfigPullError)
|
|
434
|
+
logger.warn("config_source_unreachable_using_env", { source: configProvider.kind, cause: err.pullCause, err: String(err), note: configPullFailureNote(err.pullCause) });
|
|
423
435
|
else
|
|
424
|
-
logger.warn("
|
|
436
|
+
logger.warn("config_apply_refused", { source: configProvider.kind, err: String(err), note: "the candidate failed to apply at boot — running on env (run-local has no LKG); none of the candidate's domains is adopted; this is not a reachability failure" });
|
|
425
437
|
}
|
|
426
438
|
const noDefaultModel = defaultModelRefusal({ models: config.models, modelRefusals: config.modelRefusals, candidateRejectionNotes }, servedModelTableLeg(config));
|
|
427
439
|
if (noDefaultModel !== undefined)
|
|
@@ -429,6 +441,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
429
441
|
const routeVerdict = judgeServedModelRoute(config, { envTableIsPlaceholder: false });
|
|
430
442
|
if (routeVerdict !== undefined)
|
|
431
443
|
throw new Error(routeVerdict.reason);
|
|
444
|
+
warnAssumedContextWindows(config, logger, { envTableIsPlaceholder: false });
|
|
432
445
|
const unpricedCeiling = buildUnpricedCeilingNotice(config.models, config);
|
|
433
446
|
if (unpricedCeiling)
|
|
434
447
|
logger.warn(unpricedCeiling.event, unpricedCeiling.fields);
|
|
@@ -436,8 +449,8 @@ export async function runLocal(argv, deps = {}) {
|
|
|
436
449
|
assertGuardPatternsUsable(config);
|
|
437
450
|
}
|
|
438
451
|
catch (e) {
|
|
439
|
-
printErr(e instanceof Error ? e.message : String(e));
|
|
440
|
-
printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env; \`SENSITIVE_WRITE_PATTERNS=off\` disables the guard set)`);
|
|
452
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
453
|
+
await printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env; \`SENSITIVE_WRITE_PATTERNS=off\` disables the guard set)`);
|
|
441
454
|
return 2;
|
|
442
455
|
}
|
|
443
456
|
const ungatedCompensation = buildOnlySensitiveBaselineWarning(config, {
|
|
@@ -452,47 +465,53 @@ export async function runLocal(argv, deps = {}) {
|
|
|
452
465
|
if (!deps.brain) {
|
|
453
466
|
const missing = missingGatewayRequirements(config);
|
|
454
467
|
if (missing.length > 0) {
|
|
455
|
-
printErr("cannot run: you still need to set:");
|
|
468
|
+
await printErr("cannot run: you still need to set:");
|
|
456
469
|
for (const m of missing)
|
|
457
|
-
printErr(` - ${m}`);
|
|
458
|
-
printErr(`(local config root: ${root} — put them in ${join(root, ".env")} or your shell env)`);
|
|
470
|
+
await printErr(` - ${m}`);
|
|
471
|
+
await printErr(`(local config root: ${root} — put them in ${join(root, ".env")} or your shell env)`);
|
|
459
472
|
return 2;
|
|
460
473
|
}
|
|
461
474
|
}
|
|
462
475
|
const brain = deps.brain ?? createBrain(config, deps.fetchImpl ? { fetchImpl: deps.fetchImpl } : {});
|
|
463
476
|
const pricing = buildPricing(config.models);
|
|
464
|
-
let
|
|
477
|
+
let backend;
|
|
478
|
+
try {
|
|
479
|
+
backend = openLocalBackend({ ...config, localDataRoot: root }, { lane: "run-local", admission, onWarn: (msg, fields) => logger.warn(msg, fields), onError: (msg, fields) => logger.error(msg, fields) });
|
|
480
|
+
}
|
|
481
|
+
catch (e) {
|
|
482
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
483
|
+
return 2;
|
|
484
|
+
}
|
|
465
485
|
try {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
...(config.fileHistory !== undefined ? { fileHistory: config.fileHistory } : {}),
|
|
469
|
-
onCorruptRead: createDurableAbsenceSeat(logger.warn.bind(logger), root, "file-snapshot = a snapshot or scope read as missing"),
|
|
470
|
-
}), config.storeLockWaitMs, (fields) => logger.warn("store_dir_lock_wait", { ...fields }));
|
|
486
|
+
await backend.ensureSchema();
|
|
487
|
+
await runAndLogOneTimeMigrations(logger, backend);
|
|
471
488
|
}
|
|
472
489
|
catch (e) {
|
|
473
|
-
printErr(
|
|
474
|
-
|
|
475
|
-
if (tail !== undefined)
|
|
476
|
-
printErr(tail);
|
|
490
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
491
|
+
await backend.close();
|
|
477
492
|
return 2;
|
|
478
493
|
}
|
|
479
|
-
const sessionStore =
|
|
494
|
+
const sessionStore = backend.session();
|
|
495
|
+
const engineStores = backend.engineFileStores();
|
|
480
496
|
const keyResolver = createKeyResolver(config.modelApiKeyEnv, process.env, config.modelApiKeys);
|
|
481
497
|
const hostRx = config.remoteExec.provider === "host" ? config.remoteExec : undefined;
|
|
482
|
-
const
|
|
498
|
+
const launchWorkspace = launchWorkspaceOf(config, args.workspace);
|
|
499
|
+
const workspaceDir = launchWorkspace.dir;
|
|
500
|
+
announceConfigRootEnclosingWorkspace(config, logger, launchWorkspace);
|
|
483
501
|
await settleHostLaneShell(config, logger);
|
|
484
|
-
|
|
502
|
+
settleReadDenyFloor(config, logger);
|
|
485
503
|
const homeDirSeat = buildLaneHomeClaim(config);
|
|
486
504
|
const executionEnvFactory = hostRx
|
|
487
505
|
? hostExecutionEnvFactory({
|
|
488
506
|
workspaceDir,
|
|
489
507
|
...homeDirSeat,
|
|
490
|
-
backgroundShell: config
|
|
508
|
+
backgroundShell: DEPLOYMENT_SHAPE_PREDICATES.backgroundShell.holds(config),
|
|
491
509
|
...(hostRx.commandTimeoutMs != null ? { commandTimeoutMs: hostRx.commandTimeoutMs } : {}),
|
|
492
510
|
})
|
|
493
511
|
: undefined;
|
|
494
|
-
const lspManager =
|
|
512
|
+
const lspManager = createLspManager(config, (event, fields) => logger.info(event, fields));
|
|
495
513
|
const engineDataRoot = fileMemoryEngineRoot(config, root);
|
|
514
|
+
await announceMemoryLedgerForm(config, root, logger);
|
|
496
515
|
const fileEngine = memoryEngineBackendFor(config, root, memoryEngineIncident);
|
|
497
516
|
const memoryEngine = fileEngine !== undefined
|
|
498
517
|
? createMemoryScopeStores({ backend: fileEngine.backend, root: engineDataRoot, onIncident: memoryEngineIncident })
|
|
@@ -501,9 +520,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
501
520
|
judgeConsolidationValve({ config, memoryEngine });
|
|
502
521
|
}
|
|
503
522
|
catch (err) {
|
|
504
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
523
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
505
524
|
void lspManager?.dispose();
|
|
506
|
-
await
|
|
525
|
+
await backend.close();
|
|
507
526
|
return 2;
|
|
508
527
|
}
|
|
509
528
|
let memorySync;
|
|
@@ -565,9 +584,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
565
584
|
orgMemoryAdmission = createOrgMemoryAdmissionWiring({ config, logger, metrics });
|
|
566
585
|
}
|
|
567
586
|
catch (e) {
|
|
568
|
-
printErr(`MEMORY_ORG_DIRECTORY_JSON is invalid: ${e instanceof Error ? e.message : String(e)}`);
|
|
569
|
-
printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env, or unset it)`);
|
|
570
|
-
await
|
|
587
|
+
await printErr(`MEMORY_ORG_DIRECTORY_JSON is invalid: ${e instanceof Error ? e.message : String(e)}`);
|
|
588
|
+
await printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env, or unset it)`);
|
|
589
|
+
await backend.close();
|
|
571
590
|
return 2;
|
|
572
591
|
}
|
|
573
592
|
assertRetentionLaneWirable({
|
|
@@ -575,8 +594,8 @@ export async function runLocal(argv, deps = {}) {
|
|
|
575
594
|
executor: undefined,
|
|
576
595
|
stores: [
|
|
577
596
|
{ name: "sessionStore", store: sessionStore },
|
|
578
|
-
{ name: "checkpointStore", store:
|
|
579
|
-
{ name: "toolResultStore", store:
|
|
597
|
+
{ name: "checkpointStore", store: engineStores.checkpointStore },
|
|
598
|
+
{ name: "toolResultStore", store: backend.toolResult() },
|
|
580
599
|
],
|
|
581
600
|
locked: (config.lockedConfigKeys ?? []).includes("retentionPolicy"),
|
|
582
601
|
});
|
|
@@ -585,8 +604,8 @@ export async function runLocal(argv, deps = {}) {
|
|
|
585
604
|
logger,
|
|
586
605
|
retentionStores: [
|
|
587
606
|
{ name: "sessionStore", store: sessionStore },
|
|
588
|
-
{ name: "checkpointStore", store:
|
|
589
|
-
{ name: "toolResultStore", store:
|
|
607
|
+
{ name: "checkpointStore", store: engineStores.checkpointStore },
|
|
608
|
+
{ name: "toolResultStore", store: backend.toolResult() },
|
|
590
609
|
],
|
|
591
610
|
retentionExecutor: null,
|
|
592
611
|
});
|
|
@@ -598,21 +617,22 @@ export async function runLocal(argv, deps = {}) {
|
|
|
598
617
|
engineDataRoot,
|
|
599
618
|
governanceSeams,
|
|
600
619
|
logger,
|
|
601
|
-
|
|
620
|
+
commitCoAuthor: "Sema <noreply@vivi-ai.com>",
|
|
602
621
|
brain,
|
|
603
622
|
pricing,
|
|
604
623
|
tracer: createTracer(metrics),
|
|
605
624
|
promptSource,
|
|
606
625
|
executionEnvFactory,
|
|
607
626
|
lspManager,
|
|
608
|
-
backgroundAgentStore:
|
|
609
|
-
mailboxStore:
|
|
610
|
-
rosterStore:
|
|
627
|
+
backgroundAgentStore: engineStores.backgroundAgentStore,
|
|
628
|
+
mailboxStore: engineStores.mailboxStore,
|
|
629
|
+
rosterStore: engineStores.rosterStore,
|
|
611
630
|
deploymentMods,
|
|
612
|
-
toolResultStore:
|
|
631
|
+
toolResultStore: backend.toolResult(),
|
|
632
|
+
fileHistoryStore: undefined,
|
|
613
633
|
checkpointStore: undefined,
|
|
614
|
-
sessionPolicyStore:
|
|
615
|
-
usageWindowStore: config.usageWindows ?
|
|
634
|
+
sessionPolicyStore: backend.sessionPolicy(),
|
|
635
|
+
usageWindowStore: config.usageWindows ? backend.fileUsageWindowStore() : undefined,
|
|
616
636
|
orgMemoryAdmission,
|
|
617
637
|
sharedMemoryStores: undefined,
|
|
618
638
|
mcpRevocations: undefined,
|
|
@@ -644,7 +664,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
644
664
|
const scenarioDeps = {
|
|
645
665
|
runner, subRunner, model: DEFAULT_MODEL_REF, skills, repoClient, logger,
|
|
646
666
|
...(webSearch ? { webSearch } : {}),
|
|
647
|
-
backgroundAgentStore:
|
|
667
|
+
backgroundAgentStore: engineStores.backgroundAgentStore,
|
|
648
668
|
taskListStoreFor: taskListLane.storeFor,
|
|
649
669
|
};
|
|
650
670
|
const scenarios = buildScenarios(scenarioDeps);
|
|
@@ -661,21 +681,25 @@ export async function runLocal(argv, deps = {}) {
|
|
|
661
681
|
}
|
|
662
682
|
catch (err) {
|
|
663
683
|
if (err instanceof HttpError) {
|
|
664
|
-
printErr(`cannot run scenario "${scenarioName}": ${err.message}`);
|
|
684
|
+
await printErr(`cannot run scenario "${scenarioName}": ${err.message}`);
|
|
665
685
|
if (scenarioName === "scan")
|
|
666
|
-
printErr("(the `scan` scenario needs a git API base URL and a repo — run-local cannot supply a repo; use the default scenario)");
|
|
686
|
+
await printErr("(the `scan` scenario needs a git API base URL and a repo — run-local cannot supply a repo; use the default scenario)");
|
|
667
687
|
void lspManager?.dispose();
|
|
668
|
-
await
|
|
688
|
+
await backend.close();
|
|
669
689
|
return 2;
|
|
670
690
|
}
|
|
671
691
|
throw err;
|
|
672
692
|
}
|
|
673
|
-
const mention =
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
693
|
+
const { picked: mention } = pickUserModel(config, undefined, args.objective);
|
|
694
|
+
const mentionRefusal = mention.unavailable !== undefined
|
|
695
|
+
? modelUnavailableMessage("@-mention", mention.unavailable.requested, mention.unavailable.name, mention.unavailable.refusal)
|
|
696
|
+
: mention.notAllowed !== undefined
|
|
697
|
+
? modelNotAllowedMessage("@-mention", mention.notAllowed.requested, mention.notAllowed.resolved)
|
|
698
|
+
: undefined;
|
|
699
|
+
if (mentionRefusal !== undefined) {
|
|
700
|
+
await printErr(`cannot run: ${mentionRefusal}`);
|
|
677
701
|
void lspManager?.dispose();
|
|
678
|
-
await
|
|
702
|
+
await backend.close();
|
|
679
703
|
return 2;
|
|
680
704
|
}
|
|
681
705
|
const scope = args.user ?? "local";
|
|
@@ -684,9 +708,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
684
708
|
assertProjectLayerOwnable(scope, "--user");
|
|
685
709
|
}
|
|
686
710
|
catch (err) {
|
|
687
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
711
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
688
712
|
void lspManager?.dispose();
|
|
689
|
-
await
|
|
713
|
+
await backend.close();
|
|
690
714
|
return 2;
|
|
691
715
|
}
|
|
692
716
|
}
|
|
@@ -732,7 +756,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
732
756
|
const deadline = Date.now() + 5_000;
|
|
733
757
|
try {
|
|
734
758
|
for (;;) {
|
|
735
|
-
const running = (await
|
|
759
|
+
const running = (await engineStores.backgroundAgentStore.listByScope(scope, { status: "running" })).length;
|
|
736
760
|
if (running === 0)
|
|
737
761
|
return;
|
|
738
762
|
if (Date.now() >= deadline) {
|
|
@@ -753,30 +777,33 @@ export async function runLocal(argv, deps = {}) {
|
|
|
753
777
|
result = await taskRunner.runTask(spec);
|
|
754
778
|
}
|
|
755
779
|
catch (err) {
|
|
756
|
-
printErr(`task crashed: ${err instanceof Error ? err.message : String(err)}`);
|
|
780
|
+
await printErr(`task crashed: ${err instanceof Error ? err.message : String(err)}`);
|
|
757
781
|
await settleSessionBackground();
|
|
758
782
|
runner.sessions.dispose();
|
|
759
783
|
subRunner.sessions.dispose();
|
|
760
784
|
void lspManager?.dispose();
|
|
761
|
-
await
|
|
785
|
+
await backend.close();
|
|
762
786
|
return 1;
|
|
763
787
|
}
|
|
764
788
|
const unfinishedStop = unfinishedStopOf(result, refusedWithoutPerson);
|
|
789
|
+
const shown = sealResultForExit(result);
|
|
765
790
|
if (args.json) {
|
|
766
|
-
print(JSON.stringify(
|
|
791
|
+
await print(JSON.stringify(shown, null, 2));
|
|
767
792
|
}
|
|
768
|
-
else if (
|
|
769
|
-
print(
|
|
793
|
+
else if (shown.terminal.kind === "completed") {
|
|
794
|
+
await print(shown.result);
|
|
770
795
|
if (unfinishedStop !== undefined)
|
|
771
|
-
printErr(buildUnfinishedStopFooter(unfinishedStop, sessionId));
|
|
796
|
+
await printErr(buildUnfinishedStopFooter(unfinishedStop, sessionId));
|
|
772
797
|
}
|
|
773
798
|
else {
|
|
774
|
-
const plane = outwardPlane(
|
|
775
|
-
const salvage =
|
|
799
|
+
const plane = outwardPlane(shown.terminal);
|
|
800
|
+
const salvage = shown.result || shown.salvagedOutput || plane.blockedReason || "";
|
|
776
801
|
if (salvage)
|
|
777
|
-
print(salvage);
|
|
778
|
-
printErr(`task ${plane.status}${plane.errorCode ? ` (${plane.errorCode})` : ""}${plane.errorMessage ? `: ${plane.errorMessage}` : ""}`);
|
|
802
|
+
await print(salvage);
|
|
803
|
+
await printErr(`task ${plane.status}${plane.errorCode ? ` (${plane.errorCode})` : ""}${plane.errorMessage ? `: ${plane.errorMessage}` : ""}`);
|
|
779
804
|
}
|
|
805
|
+
if (!args.json && shown.readDenyFloor !== undefined)
|
|
806
|
+
await printErr(shown.readDenyFloor.message);
|
|
780
807
|
if (result.terminal.kind !== "completed" || unfinishedStop !== undefined)
|
|
781
808
|
exitCode = 1;
|
|
782
809
|
if (memorySync)
|
|
@@ -785,7 +812,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
785
812
|
runner.sessions.dispose();
|
|
786
813
|
subRunner.sessions.dispose();
|
|
787
814
|
void lspManager?.dispose();
|
|
788
|
-
await
|
|
815
|
+
await backend.close();
|
|
789
816
|
return exitCode;
|
|
790
817
|
}
|
|
791
818
|
const RUN_LOCAL_SIGNAL_EXIT_CODE = { SIGINT: 130, SIGTERM: 143 };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `REAP_RUN_STALE_SEC` 的缺省值(秒)—— 唯一字面量。读者两处:配置装配(`config.ts`,env 缺席时)与 run 店的缺省判活窗
|
|
3
|
+
* (`plugins/store-contracts.ts` 的 {@link RUN_STALL_DEFAULT_WIRING}:不经后端装配、直接构造的店用它;生产装配一律递活配置的 getter)。
|
|
4
|
+
* 纯叶:零 import(配置层不得值引 plugins 层,所以它不住在店的契约文件里)。
|
|
5
|
+
*/
|
|
6
|
+
export declare const RUN_STALE_SEC_DEFAULT = 120;
|
|
7
|
+
//# sourceMappingURL=run-stale-default.d.ts.map
|