@sema-agent/server 7.147.0 → 7.148.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +1039 -24
- package/README.md +20 -7
- package/README.zh-CN.md +14 -8
- package/USAGE.md +380 -163
- package/deploy/sema-up/README.md +16 -5
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/templates/_helpers.tpl +20 -4
- package/deploy/sema-up/chart/values.yaml +3 -2
- package/deploy/sema-up/cluster-up.sh +74 -176
- package/deploy/sema-up/kube-up.sh +29 -49
- package/deploy/sema-up/lib/chart-run.sh +23 -0
- package/deploy/sema-up/lib/dataroot.sh +3 -3
- package/deploy/sema-up/lib/health.sh +62 -13
- package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
- package/deploy/sema-up/lib/helm-values-kube.py +35 -0
- package/deploy/sema-up/lib/regcred.py +8 -0
- package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
- package/deploy/sema-up/lib/remote/image-import.sh +6 -0
- package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
- package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
- package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
- package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
- package/deploy/sema-up/lib/render-stack.py +17 -0
- package/deploy/sema-up/lib/shell-text.sh +87 -0
- package/deploy/sema-up/lib/usage-flags.txt +10 -0
- package/deploy/sema-up/lib/usage-head.txt +1 -0
- package/deploy/sema-up/lib/usage-tail.txt +13 -0
- package/deploy/sema-up/preflight.sh +10 -8
- package/deploy/sema-up/sema-up.sh +14 -39
- package/deploy/sema-up/smoke.sh +7 -6
- package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
- package/deploy/sema-up/stack/compose.yaml +13 -1
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +21 -0
- package/dist/adoption/plan.d.ts +24 -0
- package/dist/adoption/plan.js +53 -1
- package/dist/adoption/runner.d.ts +10 -1
- package/dist/adoption/runner.js +36 -16
- package/dist/adoption/wire.d.ts +3 -3
- package/dist/approval-card.d.ts +28 -30
- package/dist/approval-gate-currency.js +3 -2
- package/dist/approval-reconciler.d.ts +4 -13
- package/dist/approval-reconciler.js +2 -2
- package/dist/approval.d.ts +13 -11
- package/dist/approval.js +3 -3
- package/dist/audit.d.ts +10 -3
- package/dist/audit.js +15 -7
- package/dist/auth-bridge.d.ts +0 -14
- package/dist/auth-bridge.js +0 -7
- package/dist/auto-mode-face.d.ts +10 -7
- package/dist/auto-mode-face.js +7 -4
- package/dist/background-agent-name.d.ts +19 -1
- package/dist/background-agent-name.js +12 -2
- package/dist/background-session-reap.d.ts +1 -1
- package/dist/bake-runner/main.js +9 -6
- package/dist/bench/s1/arms.js +6 -5
- package/dist/bench/s1/live-deps.js +5 -2
- package/dist/bench/s1/run-firm.js +6 -5
- package/dist/bind-host.d.ts +25 -0
- package/dist/bind-host.js +25 -0
- package/dist/boot/adoption.d.ts +3 -0
- package/dist/boot/adoption.js +1 -0
- package/dist/boot/deployment-mods.d.ts +1 -1
- package/dist/boot/execution-env.d.ts +17 -7
- package/dist/boot/execution-env.js +37 -31
- package/dist/boot/exit-boundary.d.ts +2 -2
- package/dist/boot/exit-boundary.js +6 -5
- package/dist/boot/fatal-exit.d.ts +3 -5
- package/dist/boot/fatal-exit.js +2 -2
- package/dist/boot/leader.d.ts +15 -0
- package/dist/boot/leader.js +17 -15
- package/dist/boot/memory-consolidation.d.ts +37 -29
- package/dist/boot/memory-consolidation.js +11 -5
- package/dist/boot/org-memory.js +1 -1
- package/dist/boot/parked-revive-gate.js +2 -2
- package/dist/boot/reapers.d.ts +4 -3
- package/dist/boot/reapers.js +19 -16
- package/dist/boot/resolve-spec.d.ts +5 -3
- package/dist/boot/resolve-spec.js +55 -67
- package/dist/boot/retention-lane.d.ts +4 -4
- package/dist/boot/retention-lane.js +2 -2
- package/dist/boot/runner-deps.d.ts +28 -7
- package/dist/boot/runner-deps.js +11 -4
- package/dist/boot/runtime-caps.d.ts +2 -2
- package/dist/boot/runtime-caps.js +16 -2
- package/dist/boot/session-faces.d.ts +16 -7
- package/dist/boot/session-faces.js +114 -94
- package/dist/boot/shutdown.d.ts +5 -4
- package/dist/boot/shutdown.js +6 -4
- package/dist/boot/stage-01-config.js +9 -1
- package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
- package/dist/boot/stage-02-web-admin-pull.js +6 -1
- package/dist/boot/stage-03-store-backend.d.ts +3 -0
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +2 -0
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +7 -3
- package/dist/boot/stage-05-execution-env.js +2 -2
- package/dist/boot/stage-06-runners.d.ts +10 -12
- package/dist/boot/stage-06-runners.js +23 -15
- package/dist/boot/stage-07-capability-layer.d.ts +11 -8
- package/dist/boot/stage-07-capability-layer.js +5 -3
- package/dist/boot/stage-08-reapers.d.ts +11 -8
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +12 -15
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +12 -15
- package/dist/boot/stage-10-http-server.js +7 -4
- package/dist/boot/store-evidence.d.ts +20 -0
- package/dist/boot/store-evidence.js +13 -0
- package/dist/boot/stores.d.ts +3 -0
- package/dist/boot/stores.js +21 -10
- package/dist/boot/task-list-lane.d.ts +4 -4
- package/dist/boot/web-admin.d.ts +4 -2
- package/dist/boot/web-admin.js +55 -35
- package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
- package/dist/boot-reclaim.d.ts +3 -1
- package/dist/boot-reclaim.js +1 -1
- package/dist/brain.d.ts +7 -18
- package/dist/brain.js +5 -17
- package/dist/budget.js +6 -6
- package/dist/capabilities/center-plugins.d.ts +7 -1
- package/dist/capabilities/center-plugins.js +32 -10
- package/dist/capabilities/center-wiring.js +1 -1
- package/dist/capabilities/composite-members.d.ts +2 -2
- package/dist/capabilities/composite-members.js +2 -2
- package/dist/capabilities/repo-tools.d.ts +2 -0
- package/dist/capabilities/repo-tools.js +14 -12
- package/dist/capabilities/scenarios.d.ts +6 -15
- package/dist/capabilities/scenarios.js +11 -16
- package/dist/capabilities/skills.d.ts +1 -1
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +38 -11
- package/dist/capability-facts.js +47 -8
- package/dist/card-void.d.ts +4 -4
- package/dist/card-void.js +1 -1
- package/dist/center-credential-renewer.d.ts +6 -2
- package/dist/center-credential-renewer.js +7 -3
- package/dist/config-catalog.d.ts +16 -1
- package/dist/config-catalog.js +62 -56
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +42 -3
- package/dist/config-invariants.js +69 -5
- package/dist/config-lkg.d.ts +23 -1
- package/dist/config-lkg.js +17 -3
- package/dist/config-provider.d.ts +9 -9
- package/dist/config-provider.js +25 -110
- package/dist/config-pull-failure.d.ts +50 -0
- package/dist/config-pull-failure.js +48 -0
- package/dist/config-types.d.ts +26 -17
- package/dist/config.d.ts +8 -16
- package/dist/config.js +113 -47
- package/dist/delegated-session-owner.d.ts +1 -1
- package/dist/deleted-session-ids.d.ts +3 -2
- package/dist/deployment-governance.d.ts +3 -3
- package/dist/deployment-shape.d.ts +30 -4
- package/dist/deployment-shape.js +7 -0
- package/dist/egress-redirect.d.ts +25 -7
- package/dist/egress-redirect.js +20 -2
- package/dist/elicitation.d.ts +6 -5
- package/dist/elicitation.js +23 -22
- package/dist/engine-identity.d.ts +28 -0
- package/dist/engine-identity.js +10 -0
- package/dist/entry-problems.d.ts +5 -7
- package/dist/entry-problems.js +1 -1
- package/dist/env-facts.js +2 -1
- package/dist/env-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-lane-caps.d.ts +5 -18
- package/dist/execution-lane-caps.js +0 -22
- package/dist/execution-placement.d.ts +58 -18
- package/dist/execution-placement.js +41 -2
- package/dist/field-conflict.d.ts +7 -11
- package/dist/field-conflict.js +3 -3
- package/dist/file-history-capture.d.ts +3 -3
- package/dist/file-history-disclosure.js +1 -0
- package/dist/fleet/fleet-bus.d.ts +21 -3
- package/dist/fleet/fleet-bus.js +35 -25
- package/dist/fleet/fleet-reconciler.js +2 -2
- package/dist/fleet/serving-lease.js +3 -3
- package/dist/fleet-client.js +3 -3
- package/dist/fleet-lease.d.ts +0 -1
- package/dist/fleet-lease.js +4 -5
- package/dist/history-anchor.d.ts +23 -3
- package/dist/history-anchor.js +24 -4
- package/dist/hitl-delivery.d.ts +90 -0
- package/dist/hitl-delivery.js +98 -0
- package/dist/hooks/classic-stations.d.ts +8 -11
- package/dist/hooks/classic-stations.js +0 -7
- package/dist/hooks/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +67 -57
- package/dist/hooks/hook-runner.js +260 -186
- package/dist/host-lsp-manager.d.ts +22 -8
- package/dist/host-lsp-manager.js +4 -1
- package/dist/http/active-run-conflict.d.ts +2 -43
- package/dist/http/active-run-conflict.js +3 -7
- package/dist/http/admission.d.ts +4 -18
- package/dist/http/admission.js +75 -78
- package/dist/http/approval-sweeps.d.ts +3 -3
- package/dist/http/approval-sweeps.js +54 -30
- package/dist/http/caller-trust.d.ts +8 -10
- package/dist/http/caller-trust.js +1 -2
- package/dist/http/claim-heartbeat.d.ts +49 -0
- package/dist/http/claim-heartbeat.js +46 -0
- package/dist/http/claimed-run.d.ts +4 -3
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +76 -30
- package/dist/http/durable-run-leg.d.ts +3 -3
- package/dist/http/durable-run-leg.js +17 -12
- package/dist/http/execution-context.d.ts +17 -43
- package/dist/http/execution-context.js +7 -5
- package/dist/http/health-reader.d.ts +36 -0
- package/dist/http/health-reader.js +21 -0
- package/dist/http/health-self-report.d.ts +9 -9
- package/dist/http/health-self-report.js +4 -4
- package/dist/http/idempotency.d.ts +9 -5
- package/dist/http/idempotency.js +4 -4
- package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
- package/dist/http/memory-compliance-failure-reply.js +4 -2
- package/dist/http/memory-face-fault-reply.d.ts +67 -0
- package/dist/http/memory-face-fault-reply.js +71 -0
- package/dist/http/memory-store-refusal-reply.d.ts +1 -1
- package/dist/http/memory-store-refusal-reply.js +3 -0
- package/dist/http/owner-access.d.ts +391 -67
- package/dist/http/owner-access.js +371 -35
- package/dist/http/principal-gate.d.ts +24 -81
- package/dist/http/principal-gate.js +24 -68
- package/dist/http/refusal-body.d.ts +35 -2
- package/dist/http/refusal-body.js +34 -0
- package/dist/http/request-guards.d.ts +9 -13
- package/dist/http/request-guards.js +34 -68
- package/dist/http/resume-composition.d.ts +37 -0
- package/dist/http/resume-composition.js +18 -0
- package/dist/http/resume-ctx-read.d.ts +35 -12
- package/dist/http/resume-ctx-read.js +25 -6
- package/dist/http/resume-legs.d.ts +21 -18
- package/dist/http/resume-legs.js +189 -129
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/route-ctx.d.ts +25 -32
- package/dist/http/routes/a2a-serve.d.ts +43 -5
- package/dist/http/routes/a2a-serve.js +58 -37
- package/dist/http/routes/admin-config-refresh.js +2 -2
- package/dist/http/routes/admin-drain.js +2 -2
- package/dist/http/routes/admin-memory-optout.js +4 -3
- package/dist/http/routes/adoption.d.ts +3 -0
- package/dist/http/routes/adoption.js +17 -10
- package/dist/http/routes/agents-roster.js +13 -7
- package/dist/http/routes/approvals-assistant.js +70 -65
- package/dist/http/routes/attachments.js +2 -2
- package/dist/http/routes/background.d.ts +3 -3
- package/dist/http/routes/background.js +9 -17
- package/dist/http/routes/capabilities.js +15 -18
- package/dist/http/routes/config-catalog.js +2 -2
- package/dist/http/routes/devices.d.ts +3 -3
- package/dist/http/routes/devices.js +4 -4
- package/dist/http/routes/diagnostics.d.ts +27 -3
- package/dist/http/routes/diagnostics.js +27 -21
- package/dist/http/routes/engine.js +2 -2
- package/dist/http/routes/fleet.js +5 -3
- package/dist/http/routes/images.js +10 -6
- package/dist/http/routes/leader.d.ts +7 -2
- package/dist/http/routes/leader.js +12 -3
- package/dist/http/routes/mcp-reconnect.d.ts +1 -1
- package/dist/http/routes/mcp-reconnect.js +7 -15
- package/dist/http/routes/memory-bundle.js +4 -7
- package/dist/http/routes/memory-compliance.js +4 -4
- package/dist/http/routes/memory-consolidation.js +6 -9
- package/dist/http/routes/memory-origin.d.ts +2 -0
- package/dist/http/routes/memory-origin.js +7 -8
- package/dist/http/routes/memory-policy.js +17 -12
- package/dist/http/routes/notify-wake.js +10 -19
- package/dist/http/routes/observability.js +3 -3
- package/dist/http/routes/principal-inbox.d.ts +1 -1
- package/dist/http/routes/principal-inbox.js +2 -2
- package/dist/http/routes/projects.d.ts +1 -1
- package/dist/http/routes/projects.js +3 -2
- package/dist/http/routes/retention-ops.js +6 -9
- package/dist/http/routes/rules.js +20 -5
- package/dist/http/routes/run-memory-capture.d.ts +2 -2
- package/dist/http/routes/run-memory-capture.js +6 -12
- package/dist/http/routes/run-permission-mode.d.ts +2 -2
- package/dist/http/routes/run-permission-mode.js +10 -17
- package/dist/http/routes/runs.js +146 -231
- package/dist/http/routes/session-memory-sync.d.ts +2 -2
- package/dist/http/routes/session-memory-sync.js +7 -13
- package/dist/http/routes/session-sync.d.ts +4 -2
- package/dist/http/routes/session-sync.js +21 -20
- package/dist/http/routes/sessions-list.d.ts +3 -3
- package/dist/http/routes/sessions-list.js +9 -9
- package/dist/http/routes/sessions.js +87 -124
- package/dist/http/routes/shared-memory.js +6 -6
- package/dist/http/routes/side-query.js +2 -2
- package/dist/http/routes/tasks.js +136 -120
- package/dist/http/routes/trace-usage.d.ts +0 -12
- package/dist/http/routes/trace-usage.js +40 -46
- package/dist/http/routes/workflows.d.ts +39 -4
- package/dist/http/routes/workflows.js +42 -14
- package/dist/http/run-concurrency-cap.d.ts +20 -12
- package/dist/http/run-concurrency-cap.js +39 -26
- package/dist/http/run-read-face.d.ts +3 -5
- package/dist/http/run-read-face.js +8 -13
- package/dist/http/send.d.ts +12 -3
- package/dist/http/send.js +42 -6
- package/dist/http/server.d.ts +39 -40
- package/dist/http/server.js +36 -11
- package/dist/http/sse-log.d.ts +17 -10
- package/dist/http/sse-log.js +7 -7
- package/dist/http/stored-body-replay.d.ts +12 -0
- package/dist/http/stored-body-replay.js +2 -2
- package/dist/http/submit-ctx.d.ts +16 -8
- package/dist/http/submit-ctx.js +6 -2
- package/dist/http/submit-replay.d.ts +19 -6
- package/dist/http/submit-replay.js +18 -6
- package/dist/http/sync-submit-body.d.ts +3 -4
- package/dist/http/sync-submit-body.js +4 -5
- package/dist/http/wire-types.d.ts +4 -3
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/key-resolver.d.ts +32 -0
- package/dist/key-resolver.js +23 -9
- package/dist/leader/diffup.js +2 -1
- package/dist/leader/endpoint.d.ts +26 -5
- package/dist/leader/endpoint.js +154 -14
- package/dist/leader/fanout.d.ts +3 -0
- package/dist/leader/fanout.js +78 -63
- package/dist/leader/leader.d.ts +16 -0
- package/dist/leader/leader.js +43 -3
- package/dist/leader/merge.d.ts +9 -1
- package/dist/leader/merge.js +16 -1
- package/dist/leader/repair-wire.js +1 -1
- package/dist/leader/wire.d.ts +36 -3
- package/dist/leader/wire.js +59 -18
- package/dist/lsp-evict.d.ts +6 -4
- package/dist/lsp-evict.js +2 -3
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-scope.d.ts +29 -2
- package/dist/memory-scope.js +64 -15
- package/dist/memory-store-refusal.d.ts +5 -2
- package/dist/memory-sync-client.d.ts +3 -2
- package/dist/memory-sync-client.js +6 -3
- package/dist/model-compat.d.ts +17 -8
- package/dist/model-compat.js +6 -2
- package/dist/model-context-window.d.ts +18 -0
- package/dist/model-context-window.js +2 -0
- package/dist/model-entry-headers.d.ts +46 -4
- package/dist/model-entry-headers.js +2 -2
- package/dist/model-entry-refusal.d.ts +35 -16
- package/dist/model-entry-refusal.js +40 -27
- package/dist/model-plane-face.d.ts +19 -11
- package/dist/model-plane-face.js +9 -1
- package/dist/model-plane-probe.d.ts +2 -0
- package/dist/model-plane-probe.js +17 -0
- package/dist/model-provider.d.ts +3 -3
- package/dist/model-route-endpoint.d.ts +9 -5
- package/dist/model-route-endpoint.js +29 -7
- package/dist/model-select.d.ts +16 -0
- package/dist/model-select.js +4 -0
- package/dist/mountinfo.d.ts +37 -0
- package/dist/mountinfo.js +47 -0
- package/dist/namespaced-rule-name.d.ts +23 -14
- package/dist/namespaced-rule-name.js +8 -11
- package/dist/net-address.d.ts +1 -1
- package/dist/observability/corrupt-read-seat.d.ts +4 -4
- package/dist/observability/corrupt-read-seat.js +5 -3
- package/dist/observability/fail-open.d.ts +58 -38
- package/dist/observability/fail-open.js +60 -38
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.js +3 -4
- package/dist/observability/otel-exporter.js +2 -1
- package/dist/observability/principal-context.d.ts +14 -7
- package/dist/observability/principal-context.js +8 -3
- package/dist/observability/run-terminal.d.ts +7 -1
- package/dist/observability/run-terminal.js +5 -2
- package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
- package/dist/orchestration/hardened-vm-runner.js +11 -5
- package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
- package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
- package/dist/orchestration/hardened-vm-worker.js +2 -1
- package/dist/orchestration/workflow-completion-inbox.d.ts +3 -3
- package/dist/orchestration/workflow-completion-inbox.js +3 -2
- package/dist/org-delivery-gate.d.ts +5 -4
- package/dist/org-delivery-gate.js +7 -6
- package/dist/outbound-dispatcher.d.ts +1 -1
- package/dist/outbound-dispatcher.js +6 -12
- package/dist/owner-brands.d.ts +81 -0
- package/dist/owner-brands.js +42 -0
- package/dist/owner-faces.d.ts +531 -0
- package/dist/owner-faces.js +126 -0
- package/dist/parked-decide.d.ts +67 -5
- package/dist/parked-decide.js +127 -5
- package/dist/parked-revive-surface.d.ts +14 -4
- package/dist/parked-revive-surface.js +5 -4
- package/dist/peer-directory.d.ts +6 -8
- package/dist/peer-directory.js +3 -2
- package/dist/permission-rule-vocab.d.ts +53 -8
- package/dist/permission-rule-vocab.js +30 -2
- package/dist/plugins/adoption-log-sql.d.ts +0 -22
- package/dist/plugins/adoption-log-sql.js +5 -3
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
- package/dist/plugins/approval-ask-store-file.d.ts +18 -7
- package/dist/plugins/approval-ask-store-file.js +37 -14
- package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
- package/dist/plugins/approval-ask-store-memory.js +24 -10
- package/dist/plugins/approval-ask-store-sql.d.ts +39 -20
- package/dist/plugins/approval-ask-store-sql.js +41 -10
- package/dist/plugins/approval-exemption-skill-m46.d.ts +20 -0
- package/dist/plugins/approval-exemption-skill-m46.js +25 -0
- package/dist/plugins/approval-exemption-store.d.ts +6 -1
- package/dist/plugins/approval-exemption-store.js +14 -0
- package/dist/plugins/approval-nonce-store.d.ts +39 -12
- package/dist/plugins/approval-nonce-store.js +72 -23
- package/dist/plugins/blob-backend.d.ts +2 -0
- package/dist/plugins/blob-backend.js +9 -6
- package/dist/plugins/caching-session-store.d.ts +13 -1
- package/dist/plugins/caching-session-store.js +43 -4
- package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
- package/dist/plugins/checkpoint-index-columns.js +36 -1
- package/dist/plugins/checkpoint-store-face.d.ts +83 -10
- package/dist/plugins/checkpoint-store-face.js +18 -1
- package/dist/plugins/device-store-sql.js +1 -0
- package/dist/plugins/ensure-index.d.ts +13 -1
- package/dist/plugins/ensure-index.js +154 -21
- package/dist/plugins/ensure-schema-lock-policy.d.ts +0 -15
- package/dist/plugins/ensure-schema-lock-policy.js +3 -2
- package/dist/plugins/file-run-store.d.ts +63 -23
- package/dist/plugins/file-run-store.js +138 -83
- package/dist/plugins/host-platform.d.ts +24 -3
- package/dist/plugins/host-platform.js +15 -1
- package/dist/plugins/image-bake-store-sql.js +2 -0
- package/dist/plugins/imported-layer-root-retirement.d.ts +2 -2
- package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
- package/dist/plugins/k8s-pod-reaper.js +0 -1
- package/dist/plugins/leader-run-store-sql.d.ts +22 -0
- package/dist/plugins/leader-run-store-sql.js +34 -4
- package/dist/plugins/local-checkpoint-store.d.ts +58 -23
- package/dist/plugins/local-checkpoint-store.js +195 -76
- package/dist/plugins/local-data-dir-modes-m39.js +2 -1
- package/dist/plugins/local-docker-capacity.d.ts +93 -0
- package/dist/plugins/local-docker-capacity.js +194 -0
- package/dist/plugins/local-docker-reaper.d.ts +92 -0
- package/dist/plugins/local-docker-reaper.js +102 -0
- package/dist/plugins/local-engine-high-water.d.ts +4 -2
- package/dist/plugins/local-engine-high-water.js +4 -1
- package/dist/plugins/local-session-store.d.ts +358 -125
- package/dist/plugins/local-session-store.js +824 -251
- package/dist/plugins/local-session-window.d.ts +3 -2
- package/dist/plugins/local-session-window.js +3 -2
- package/dist/plugins/local-sidecar-quarantine.js +3 -2
- package/dist/plugins/local-task-attachment-store.d.ts +18 -1
- package/dist/plugins/local-task-attachment-store.js +22 -1
- package/dist/plugins/memory-embedder.js +9 -7
- package/dist/plugins/memory-engine-pg.d.ts +3 -2
- package/dist/plugins/memory-engine-pg.js +14 -5
- package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
- package/dist/plugins/memory-engine-sql-apply.js +6 -8
- package/dist/plugins/memory-engine-tidb.d.ts +4 -2
- package/dist/plugins/memory-engine-tidb.js +11 -2
- package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
- package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
- package/dist/plugins/memory-run-store.d.ts +39 -27
- package/dist/plugins/memory-run-store.js +72 -70
- package/dist/plugins/one-time-migration-marker.d.ts +10 -0
- package/dist/plugins/one-time-migration-marker.js +7 -0
- package/dist/plugins/one-time-migrations.d.ts +186 -45
- package/dist/plugins/one-time-migrations.js +442 -119
- package/dist/plugins/org-delivery-quota-store.js +2 -1
- package/dist/plugins/permission-rule-store-file.d.ts +3 -3
- package/dist/plugins/permission-rule-store-sql.d.ts +4 -63
- package/dist/plugins/permission-rule-store-sql.js +6 -86
- package/dist/plugins/pg-pool.d.ts +1 -31
- package/dist/plugins/pg-pool.js +16 -7
- package/dist/plugins/remote-env-e2b.d.ts +7 -25
- package/dist/plugins/remote-env-e2b.js +34 -25
- package/dist/plugins/remote-env-host.d.ts +2 -9
- package/dist/plugins/remote-env-host.js +34 -22
- package/dist/plugins/remote-env-k8s.d.ts +40 -45
- package/dist/plugins/remote-env-k8s.js +107 -58
- package/dist/plugins/remote-env-local-docker.d.ts +148 -14
- package/dist/plugins/remote-env-local-docker.js +367 -72
- package/dist/plugins/remote-scratchpad.js +4 -0
- package/dist/plugins/retention-deployment.d.ts +49 -17
- package/dist/plugins/retention-deployment.js +39 -8
- package/dist/plugins/run-preview-m45.d.ts +11 -0
- package/dist/plugins/run-preview-m45.js +19 -0
- package/dist/plugins/run-store-sql.d.ts +56 -68
- package/dist/plugins/run-store-sql.js +127 -116
- package/dist/plugins/s3-answer.d.ts +2 -1
- package/dist/plugins/sandbox-reaper.d.ts +26 -0
- package/dist/plugins/sandbox-reaper.js +2 -0
- package/dist/plugins/scenario-prefix-switch-m42.d.ts +54 -0
- package/dist/plugins/scenario-prefix-switch-m42.js +55 -0
- package/dist/plugins/scheduler-support.d.ts +16 -1
- package/dist/plugins/scheduler-support.js +22 -2
- package/dist/plugins/schema-consistency.d.ts +42 -9
- package/dist/plugins/schema-consistency.js +212 -11
- package/dist/plugins/schema-drift-sentence.d.ts +4 -1
- package/dist/plugins/schema-drift-sentence.js +4 -4
- package/dist/plugins/schema-ensure-legs.d.ts +9 -0
- package/dist/plugins/schema-ensure-legs.js +1 -1
- package/dist/plugins/schema-indexes.js +3 -0
- package/dist/plugins/schema-live-columns.d.ts +14 -5
- package/dist/plugins/schema-live-columns.js +10 -10
- package/dist/plugins/send-user-file.js +2 -1
- package/dist/plugins/session-birth.d.ts +37 -0
- package/dist/plugins/session-birth.js +38 -0
- package/dist/plugins/session-epoch-anchor.d.ts +40 -12
- package/dist/plugins/session-epoch-anchor.js +33 -11
- package/dist/plugins/session-ext-table.d.ts +27 -3
- package/dist/plugins/session-ext-table.js +19 -6
- package/dist/plugins/session-fork.d.ts +15 -1
- package/dist/plugins/session-fork.js +3 -0
- package/dist/plugins/session-ownership.d.ts +1 -1
- package/dist/plugins/session-placement.d.ts +22 -16
- package/dist/plugins/session-placement.js +15 -12
- package/dist/plugins/session-row-sql.d.ts +12 -0
- package/dist/plugins/session-row-sql.js +3 -3
- package/dist/plugins/session-run-rollup.d.ts +29 -0
- package/dist/plugins/session-run-rollup.js +40 -0
- package/dist/plugins/session-store-sql.d.ts +38 -12
- package/dist/plugins/session-store-sql.js +130 -30
- package/dist/plugins/session-withdraw-sql.d.ts +36 -0
- package/dist/plugins/session-withdraw-sql.js +42 -0
- package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
- package/dist/plugins/shared-memory-store-sql.js +2 -1
- package/dist/plugins/shell-sentinel-owner-m48.d.ts +20 -0
- package/dist/plugins/shell-sentinel-owner-m48.js +3 -0
- package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
- package/dist/plugins/sql-driver.d.ts +1 -1
- package/dist/plugins/sql-driver.js +2 -1
- package/dist/plugins/sql-errors.d.ts +32 -5
- package/dist/plugins/sql-errors.js +55 -7
- package/dist/plugins/sql-json-column.d.ts +8 -7
- package/dist/plugins/sql-json-column.js +10 -6
- package/dist/plugins/store-backend.d.ts +84 -15
- package/dist/plugins/store-backend.js +186 -55
- package/dist/plugins/store-contracts.d.ts +90 -30
- package/dist/plugins/store-contracts.js +22 -1
- package/dist/plugins/store-fault.d.ts +28 -2
- package/dist/plugins/store-fault.js +20 -2
- package/dist/plugins/task-attachment-store.d.ts +15 -3
- package/dist/plugins/task-attachment-store.js +22 -9
- package/dist/plugins/tidb-pool.js +23 -8
- package/dist/plugins/web-search.js +5 -3
- package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
- package/dist/plugins/workflow-run-store-sql.js +11 -5
- package/dist/principal-jwt.d.ts +4 -4
- package/dist/principal-jwt.js +20 -5
- package/dist/principal-shape.d.ts +41 -0
- package/dist/principal-shape.js +19 -0
- package/dist/question.d.ts +13 -23
- package/dist/question.js +21 -39
- package/dist/request-declaration-refusal.d.ts +35 -12
- package/dist/request-declaration-refusal.js +21 -9
- package/dist/request-form.d.ts +58 -0
- package/dist/request-form.js +72 -0
- package/dist/request-image-urls.d.ts +8 -2
- package/dist/request-image-urls.js +2 -1
- package/dist/request-images.d.ts +20 -0
- package/dist/request-images.js +59 -0
- package/dist/request-key-closure.d.ts +6 -7
- package/dist/request-key-closure.js +15 -2
- package/dist/resource-suspend.d.ts +7 -16
- package/dist/resource-suspend.js +1 -1
- package/dist/retired-name-host-notice.d.ts +21 -0
- package/dist/retired-name-host-notice.js +12 -0
- package/dist/rule-entry-list.d.ts +2 -2
- package/dist/rule-entry-list.js +3 -4
- package/dist/rule-issue-reading.d.ts +58 -0
- package/dist/rule-issue-reading.js +14 -0
- package/dist/rules-consent.d.ts +5 -3
- package/dist/rules-consent.js +1 -0
- package/dist/run-acceptance.d.ts +3 -1
- package/dist/run-acceptance.js +3 -0
- package/dist/run-local.d.ts +14 -6
- package/dist/run-local.js +92 -80
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +26 -15
- package/dist/runs.js +39 -27
- package/dist/runtime-caps-resolver.d.ts +21 -6
- package/dist/runtime-caps-resolver.js +17 -4
- package/dist/runtime-governance.d.ts +2 -2
- package/dist/runtime-governance.js +5 -3
- package/dist/sealed-key-layout.d.ts +12 -5
- package/dist/sealed-key-layout.js +5 -0
- package/dist/sealed-key.d.ts +12 -2
- package/dist/sealed-key.js +115 -27
- package/dist/security.d.ts +128 -158
- package/dist/security.js +163 -59
- package/dist/sema-config-dir.d.ts +20 -0
- package/dist/sema-config-dir.js +25 -0
- package/dist/server-secret-env.d.ts +21 -5
- package/dist/server-secret-env.js +14 -4
- package/dist/session-children-retire.d.ts +7 -5
- package/dist/session-children-retire.js +7 -2
- package/dist/session-deletion.d.ts +88 -0
- package/dist/session-deletion.js +8 -0
- package/dist/session-erase.d.ts +145 -0
- package/dist/session-erase.js +115 -0
- package/dist/session-error-wire.d.ts +5 -5
- package/dist/session-error-wire.js +1 -1
- package/dist/session-incarnation.d.ts +52 -5
- package/dist/session-incarnation.js +19 -2
- package/dist/session-policy-wire.d.ts +6 -3
- package/dist/session-policy-wire.js +11 -1
- package/dist/session-resident-background.d.ts +0 -71
- package/dist/session-resident-background.js +4 -3
- package/dist/session-row.d.ts +2 -1
- package/dist/session-rules-seat.d.ts +12 -0
- package/dist/session-rules-seat.js +19 -0
- package/dist/session-titler.d.ts +7 -15
- package/dist/session-titler.js +1 -1
- package/dist/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-posture.d.ts +136 -20
- package/dist/store-posture.js +188 -3
- package/dist/stored-request-hooks-m20.js +2 -2
- package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
- package/dist/stores-sql/background-agent-store-sql.js +73 -20
- package/dist/stores-sql/checkpoint-store-sql.d.ts +33 -28
- package/dist/stores-sql/checkpoint-store-sql.js +75 -44
- package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
- package/dist/stores-sql/mailbox-store-sql.js +31 -32
- package/dist/stores-sql/pg-session-storage.d.ts +7 -5
- package/dist/stores-sql/pg-session-storage.js +54 -46
- package/dist/stores-sql/retention-store-sql.d.ts +87 -19
- package/dist/stores-sql/retention-store-sql.js +92 -27
- package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
- package/dist/stores-sql/session-policy-store-sql.js +44 -36
- package/dist/stores-sql/session-write-hooks.d.ts +12 -6
- package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
- package/dist/stores-sql/tidb-session-storage.js +13 -8
- package/dist/stores-sql/tidb-session-store.d.ts +36 -17
- package/dist/stores-sql/tidb-session-store.js +69 -39
- package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
- package/dist/stores-sql/windowed-session-storage.js +9 -0
- package/dist/submission-exit.d.ts +50 -0
- package/dist/submission-exit.js +108 -0
- package/dist/task-a2a.d.ts +1 -1
- package/dist/task-a2a.js +3 -3
- package/dist/task-cwd.d.ts +20 -0
- package/dist/task-cwd.js +8 -0
- package/dist/task-mcp.d.ts +1 -1
- package/dist/task-mcp.js +3 -3
- package/dist/task-settings.d.ts +14 -10
- package/dist/task-settings.js +18 -7
- package/dist/terminal.d.ts +25 -43
- package/dist/terminal.js +31 -11
- package/dist/tool-approval.d.ts +131 -129
- package/dist/tool-approval.js +189 -193
- package/dist/trace/core-keyset-guard.d.ts +13 -6
- package/dist/trace/core-vocab-wire.d.ts +95 -0
- package/dist/trace/core-vocab-wire.js +15 -0
- package/dist/trace/exit-seat.d.ts +30 -4
- package/dist/trace/exit-seat.js +40 -36
- package/dist/trace/extension-call-face.d.ts +3 -2
- package/dist/trace/extension-call-face.js +3 -1
- package/dist/trace/ledger-events.d.ts +4 -7
- package/dist/trace/ledger-sink.d.ts +1 -30
- package/dist/trace/ledger-sink.js +0 -11
- package/dist/trace/model-segment.d.ts +5 -5
- package/dist/trace/model-segment.js +5 -5
- package/dist/trace/project.d.ts +55 -42
- package/dist/trace/project.js +52 -19
- package/dist/trace/redact.d.ts +123 -27
- package/dist/trace/redact.js +880 -260
- package/dist/trace/self-minted-wire.d.ts +487 -19
- package/dist/trace/self-minted-wire.js +172 -23
- package/dist/trace/wire-projection-faces.d.ts +5 -6
- package/dist/trace/wire-projection-faces.js +2 -2
- package/dist/upstream-body.d.ts +23 -0
- package/dist/upstream-body.js +16 -0
- package/dist/url-refusal.d.ts +3 -3
- package/dist/url-refusal.js +11 -4
- package/dist/user-authored-text.d.ts +1 -1
- package/dist/user-input-ledger.d.ts +7 -8
- package/dist/user-input-ledger.js +1 -1
- package/dist/web-admin-client/apply-effective.d.ts +6 -3
- package/dist/web-admin-client/apply-effective.js +13 -16
- package/dist/web-admin-client/apply-ledger.d.ts +16 -7
- package/dist/web-admin-client/apply-ledger.js +5 -2
- package/dist/web-admin-client/center-request.d.ts +2 -2
- package/dist/web-admin-client/center-request.js +15 -15
- package/dist/web-admin-client/effective-keys.d.ts +1 -1
- package/dist/web-admin-client/effective-keys.js +1 -1
- package/dist/web-admin-client/entry-metadata.d.ts +8 -0
- package/dist/web-admin-client/entry-metadata.js +13 -0
- package/dist/web-admin-client/http-client.d.ts +1 -1
- package/dist/web-admin-client/http-client.js +23 -4
- package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
- package/dist/web-admin-client/mcp-revocation.js +2 -1
- package/dist/web-admin-client/read-warnings.d.ts +1 -0
- package/dist/web-admin-client/read-warnings.js +1 -0
- package/dist/web-admin-client/restart-signal.js +8 -4
- package/dist/web-admin-client/skills-mcp.d.ts +2 -2
- package/dist/web-admin-client/types.d.ts +1 -2
- package/dist/workspace-space.d.ts +3 -2
- package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
- package/package.json +6 -3
- package/scripts/drain-check-local.mjs +118 -147
- package/scripts/drain-check.mysql.sql +22 -2
- package/scripts/drain-check.pg.sql +22 -2
- package/wire-changes/server@7.148.0.json +1517 -0
- package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
- package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
- package/dist/http/memory-layer-reply.d.ts +0 -30
- package/dist/http/memory-layer-reply.js +0 -24
- package/dist/lsp/e2b-bridge.d.ts +0 -57
- package/dist/lsp/e2b-bridge.js +0 -139
- package/dist/lsp/e2b-manager.d.ts +0 -93
- package/dist/lsp/e2b-manager.js +0 -178
- package/dist/lsp/lsp-frames.d.ts +0 -14
- package/dist/lsp/lsp-frames.js +0 -25
- package/dist/lsp/manager.d.ts +0 -129
- package/dist/lsp/manager.js +0 -127
- package/dist/lsp/types.d.ts +0 -12
- package/dist/lsp/types.js +0 -2
- package/dist/lsp/ws-transport.d.ts +0 -40
- package/dist/lsp/ws-transport.js +0 -210
package/dist/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 { createDurableAbsenceSeat } from "./observability/corrupt-read-seat.js";
|
|
6
5
|
import { outwardPlane } 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,8 +19,8 @@ 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 { openLocalBackend } from "./plugins/store-backend.js";
|
|
23
|
+
import { runAndLogOneTimeMigrations } from "./plugins/one-time-migrations.js";
|
|
25
24
|
import { configLocalRoot, createConfigProvider } from "./config-provider.js";
|
|
26
25
|
import { CONFIG_DOMAIN_INVALID_NOTE, buildCandidateRejectedFields, buildCandidateRejectionNotes, judgeConfigCandidate } from "./web-admin-client/candidate-gate.js";
|
|
27
26
|
import { buildUnreadConfigFileFields, buildUnreadConfigKeyFields } from "./web-admin-client/read-warnings.js";
|
|
@@ -30,6 +29,7 @@ import { judgeConsolidationValve } from "./boot/memory-consolidation.js";
|
|
|
30
29
|
import { logConfigDirMigration, migrateLocalConfigDirectory } from "./config-d-migration.js";
|
|
31
30
|
import { logEnvModelsMigration, runEnvModelsMigration } from "./config-root-migration.js";
|
|
32
31
|
import { assertLocalConfigDirTrusted, ConfigDirUntrustedError } from "./config-dir-trust.js";
|
|
32
|
+
import { ConfigPullError, asConfigPullError, configPullFailureNote } from "./config-pull-failure.js";
|
|
33
33
|
import { applyEffective, applyCenterReadFace, applySkillsManifest, resolveMcpServers, mcpForScenario, resolveA2aPeers, a2aForScenario } from "./web-admin-client/facade.js";
|
|
34
34
|
import { hostExecutionEnvFactory } from "./plugins/remote-env-host.js";
|
|
35
35
|
import { buildLaneHomeClaim, executionLaneOf } from "./execution-lane-caps.js";
|
|
@@ -43,7 +43,7 @@ import { createTaskListLane } from "./boot/task-list-lane.js";
|
|
|
43
43
|
import { pickHandsRunner, withoutHands } from "./capabilities/hands-lane.js";
|
|
44
44
|
import { HttpError, sessionIdShapeIssue } from "./security.js";
|
|
45
45
|
import { createMemoryEngineIncidentSink } from "./memory-incident-sink.js";
|
|
46
|
-
import { fileMemoryEngineRoot, memoryEngineBackendFor, memorySpecForRequest } from "./memory-scope.js";
|
|
46
|
+
import { announceMemoryLedgerForm, fileMemoryEngineRoot, memoryEngineBackendFor, memorySpecForRequest } from "./memory-scope.js";
|
|
47
47
|
import { createMemoryScopeStores } from "./memory-scope-stores.js";
|
|
48
48
|
import { createMemoryProjectLayers } from "./memory-project-layer.js";
|
|
49
49
|
import { assertProjectLayerOwnable } from "./project-identity.js";
|
|
@@ -58,14 +58,15 @@ import { assertRetentionLaneWirable } from "./boot/retention-lane.js";
|
|
|
58
58
|
import { createOrgMemoryAdmissionWiring } from "./boot/org-memory.js";
|
|
59
59
|
import { assembleDeploymentMods } from "./boot/deployment-mods.js";
|
|
60
60
|
import { createKeyResolver } from "./key-resolver.js";
|
|
61
|
-
import { createLogger } from "./observability/logger.js";
|
|
61
|
+
import { createLogger, writeCliResult, writeLogText, ttyPromptOutput } from "./observability/logger.js";
|
|
62
62
|
import { fatalExit } from "./boot/fatal-exit.js";
|
|
63
63
|
import { installProcessExitBoundary } from "./boot/exit-boundary.js";
|
|
64
64
|
import { createMetrics } from "./observability/metrics.js";
|
|
65
65
|
import { installSecretEnvScrubRecorder } from "./observability/secret-env-scrub.js";
|
|
66
|
-
import {
|
|
66
|
+
import { createLspManager } from "./host-lsp-manager.js";
|
|
67
67
|
import { installOutboundDispatcher } from "./outbound-dispatcher.js";
|
|
68
|
-
import { provisionSemaConfigDir } from "./sema-config-dir.js";
|
|
68
|
+
import { announceConfigRootEnclosingWorkspace, provisionSemaConfigDir } from "./sema-config-dir.js";
|
|
69
|
+
import { launchWorkspaceOf } from "./task-cwd.js";
|
|
69
70
|
import { bindOwnCredentialsConfig, declareServerWithheldEnv } from "./server-secret-env.js";
|
|
70
71
|
export function parseArgs(argv) {
|
|
71
72
|
let objective;
|
|
@@ -207,12 +208,12 @@ export function createLocalApprover(io) {
|
|
|
207
208
|
};
|
|
208
209
|
return async (req, signal) => {
|
|
209
210
|
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)}`);
|
|
211
|
+
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
212
|
return refuseWithoutPerson(NO_TTY_REFUSAL_REASON);
|
|
212
213
|
}
|
|
213
214
|
const argsShown = argsDisplayOf(req.args);
|
|
214
215
|
if (!argsShown.ok) {
|
|
215
|
-
io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — its arguments cannot be displayed ` +
|
|
216
|
+
await io.printErr(`denied "${terminalSafeText(req.toolName)}" (${terminalSafeText(req.message)}) — its arguments cannot be displayed ` +
|
|
216
217
|
`(${terminalSafeText(argsShown.reason)}), so there is nothing a person could review; refusing instead of asking.`);
|
|
217
218
|
return refuseWithoutPerson(UNDISPLAYABLE_ARGS_REFUSAL_REASON);
|
|
218
219
|
}
|
|
@@ -269,7 +270,7 @@ function inputAlreadyEnded(input) {
|
|
|
269
270
|
const state = input;
|
|
270
271
|
return state.readableEnded === true || state.destroyed === true;
|
|
271
272
|
}
|
|
272
|
-
export async function promptYesNoOnTty(prompt, signal, streams = { input: process.stdin, output:
|
|
273
|
+
export async function promptYesNoOnTty(prompt, signal, streams = { input: process.stdin, output: ttyPromptOutput() }) {
|
|
273
274
|
if (signal?.aborted || inputAlreadyEnded(streams.input))
|
|
274
275
|
return false;
|
|
275
276
|
const rl = createInterface({ input: streams.input, output: streams.output });
|
|
@@ -321,22 +322,22 @@ export const RUN_LOCAL_CONFIG_SOURCE_REFUSAL = "CONFIG_PROVIDER=remote: run-loca
|
|
|
321
322
|
"(center credential renewal, sealed model keys and the roster gate are assembled by the HTTP service). Unset CONFIG_PROVIDER or set " +
|
|
322
323
|
"CONFIG_PROVIDER=local for this command, or run the HTTP service to use the center.";
|
|
323
324
|
export async function runLocal(argv, deps = {}) {
|
|
324
|
-
const print = deps.print ??
|
|
325
|
-
const printErr = deps.printErr ?? ((l) =>
|
|
325
|
+
const print = deps.print ?? writeCliResult;
|
|
326
|
+
const printErr = deps.printErr ?? ((l) => writeLogText("stderr", l));
|
|
326
327
|
let args;
|
|
327
328
|
try {
|
|
328
329
|
args = parseArgs(argv);
|
|
329
330
|
}
|
|
330
331
|
catch (err) {
|
|
331
332
|
if (err instanceof UsageError) {
|
|
332
|
-
printErr(err.message);
|
|
333
|
+
await printErr(err.message);
|
|
333
334
|
return 2;
|
|
334
335
|
}
|
|
335
336
|
throw err;
|
|
336
337
|
}
|
|
337
338
|
const configWord = parseConfigProvider();
|
|
338
339
|
if (configWord === "remote") {
|
|
339
|
-
printErr(RUN_LOCAL_CONFIG_SOURCE_REFUSAL);
|
|
340
|
+
await printErr(RUN_LOCAL_CONFIG_SOURCE_REFUSAL);
|
|
340
341
|
return 2;
|
|
341
342
|
}
|
|
342
343
|
if (configWord === undefined)
|
|
@@ -362,7 +363,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
362
363
|
await assertLocalConfigDirTrusted({ root, declaredOwnerUid: loaded.configLocalOwnerUid });
|
|
363
364
|
}
|
|
364
365
|
catch (err) {
|
|
365
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
366
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
366
367
|
return 2;
|
|
367
368
|
}
|
|
368
369
|
const envModelsMigration = { root, env: process.env, envTableIsPlaceholder: isRosterGateArmed(loaded.webAdmin) };
|
|
@@ -373,7 +374,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
373
374
|
config = await composeExecutionLane(loaded, { configSource: "local", localRoot: root, logger, entry: RUN_LOCAL_LANE_ENTRY });
|
|
374
375
|
}
|
|
375
376
|
catch (err) {
|
|
376
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
377
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
377
378
|
return 2;
|
|
378
379
|
}
|
|
379
380
|
const configProvider = createConfigProvider(providerInput);
|
|
@@ -382,9 +383,10 @@ export async function runLocal(argv, deps = {}) {
|
|
|
382
383
|
let effective;
|
|
383
384
|
let candidatePrompts;
|
|
384
385
|
let candidateRejectionNotes;
|
|
385
|
-
let applying = false;
|
|
386
386
|
try {
|
|
387
|
-
const r = await configProvider.fetchEffective(undefined)
|
|
387
|
+
const r = await configProvider.fetchEffective(undefined).catch((err) => {
|
|
388
|
+
throw asConfigPullError(err);
|
|
389
|
+
});
|
|
388
390
|
if (r) {
|
|
389
391
|
const verdict = judgeConfigCandidate(r);
|
|
390
392
|
if (verdict.verdict === "rejected") {
|
|
@@ -400,7 +402,6 @@ export async function runLocal(argv, deps = {}) {
|
|
|
400
402
|
logger.warn("config_unread_key", buildUnreadConfigKeyFields(k, configProvider.kind === "local" ? root : undefined));
|
|
401
403
|
for (const d of r.droppedEntries ?? [])
|
|
402
404
|
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
405
|
applyEffective(config, r.effective, logger, { leg: "boot", catalogSource: r.catalogSource });
|
|
405
406
|
effective = r.effective;
|
|
406
407
|
candidatePrompts = verdict.prompts;
|
|
@@ -415,13 +416,13 @@ export async function runLocal(argv, deps = {}) {
|
|
|
415
416
|
}
|
|
416
417
|
catch (err) {
|
|
417
418
|
if (err instanceof ConfigDirUntrustedError) {
|
|
418
|
-
printErr(err.message);
|
|
419
|
+
await printErr(err.message);
|
|
419
420
|
return 2;
|
|
420
421
|
}
|
|
421
|
-
if (
|
|
422
|
-
logger.warn("
|
|
422
|
+
if (err instanceof ConfigPullError)
|
|
423
|
+
logger.warn("config_source_unreachable_using_env", { source: configProvider.kind, cause: err.pullCause, err: String(err), note: configPullFailureNote(err.pullCause) });
|
|
423
424
|
else
|
|
424
|
-
logger.warn("
|
|
425
|
+
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
426
|
}
|
|
426
427
|
const noDefaultModel = defaultModelRefusal({ models: config.models, modelRefusals: config.modelRefusals, candidateRejectionNotes }, servedModelTableLeg(config));
|
|
427
428
|
if (noDefaultModel !== undefined)
|
|
@@ -436,8 +437,8 @@ export async function runLocal(argv, deps = {}) {
|
|
|
436
437
|
assertGuardPatternsUsable(config);
|
|
437
438
|
}
|
|
438
439
|
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)`);
|
|
440
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
441
|
+
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
442
|
return 2;
|
|
442
443
|
}
|
|
443
444
|
const ungatedCompensation = buildOnlySensitiveBaselineWarning(config, {
|
|
@@ -452,34 +453,39 @@ export async function runLocal(argv, deps = {}) {
|
|
|
452
453
|
if (!deps.brain) {
|
|
453
454
|
const missing = missingGatewayRequirements(config);
|
|
454
455
|
if (missing.length > 0) {
|
|
455
|
-
printErr("cannot run: you still need to set:");
|
|
456
|
+
await printErr("cannot run: you still need to set:");
|
|
456
457
|
for (const m of missing)
|
|
457
|
-
printErr(` - ${m}`);
|
|
458
|
-
printErr(`(local config root: ${root} — put them in ${join(root, ".env")} or your shell env)`);
|
|
458
|
+
await printErr(` - ${m}`);
|
|
459
|
+
await printErr(`(local config root: ${root} — put them in ${join(root, ".env")} or your shell env)`);
|
|
459
460
|
return 2;
|
|
460
461
|
}
|
|
461
462
|
}
|
|
462
463
|
const brain = deps.brain ?? createBrain(config, deps.fetchImpl ? { fetchImpl: deps.fetchImpl } : {});
|
|
463
464
|
const pricing = buildPricing(config.models);
|
|
464
|
-
let
|
|
465
|
+
let backend;
|
|
466
|
+
try {
|
|
467
|
+
backend = openLocalBackend({ ...config, localDataRoot: root }, { lane: "run-local", onWarn: (msg, fields) => logger.warn(msg, fields), onError: (msg, fields) => logger.error(msg, fields) });
|
|
468
|
+
}
|
|
469
|
+
catch (e) {
|
|
470
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
471
|
+
return 2;
|
|
472
|
+
}
|
|
465
473
|
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 }));
|
|
474
|
+
await backend.ensureSchema();
|
|
475
|
+
await runAndLogOneTimeMigrations(logger, backend);
|
|
471
476
|
}
|
|
472
477
|
catch (e) {
|
|
473
|
-
printErr(
|
|
474
|
-
|
|
475
|
-
if (tail !== undefined)
|
|
476
|
-
printErr(tail);
|
|
478
|
+
await printErr(e instanceof Error ? e.message : String(e));
|
|
479
|
+
await backend.close();
|
|
477
480
|
return 2;
|
|
478
481
|
}
|
|
479
|
-
const sessionStore =
|
|
482
|
+
const sessionStore = backend.session();
|
|
483
|
+
const engineStores = backend.engineFileStores();
|
|
480
484
|
const keyResolver = createKeyResolver(config.modelApiKeyEnv, process.env, config.modelApiKeys);
|
|
481
485
|
const hostRx = config.remoteExec.provider === "host" ? config.remoteExec : undefined;
|
|
482
|
-
const
|
|
486
|
+
const launchWorkspace = launchWorkspaceOf(config, args.workspace);
|
|
487
|
+
const workspaceDir = launchWorkspace.dir;
|
|
488
|
+
announceConfigRootEnclosingWorkspace(config, logger, launchWorkspace);
|
|
483
489
|
await settleHostLaneShell(config, logger);
|
|
484
490
|
warnReadDenyFloorUnkept(config, logger);
|
|
485
491
|
const homeDirSeat = buildLaneHomeClaim(config);
|
|
@@ -491,8 +497,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
491
497
|
...(hostRx.commandTimeoutMs != null ? { commandTimeoutMs: hostRx.commandTimeoutMs } : {}),
|
|
492
498
|
})
|
|
493
499
|
: undefined;
|
|
494
|
-
const lspManager =
|
|
500
|
+
const lspManager = createLspManager(config, (event, fields) => logger.info(event, fields));
|
|
495
501
|
const engineDataRoot = fileMemoryEngineRoot(config, root);
|
|
502
|
+
await announceMemoryLedgerForm(config, root, logger);
|
|
496
503
|
const fileEngine = memoryEngineBackendFor(config, root, memoryEngineIncident);
|
|
497
504
|
const memoryEngine = fileEngine !== undefined
|
|
498
505
|
? createMemoryScopeStores({ backend: fileEngine.backend, root: engineDataRoot, onIncident: memoryEngineIncident })
|
|
@@ -501,9 +508,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
501
508
|
judgeConsolidationValve({ config, memoryEngine });
|
|
502
509
|
}
|
|
503
510
|
catch (err) {
|
|
504
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
511
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
505
512
|
void lspManager?.dispose();
|
|
506
|
-
await
|
|
513
|
+
await backend.close();
|
|
507
514
|
return 2;
|
|
508
515
|
}
|
|
509
516
|
let memorySync;
|
|
@@ -565,9 +572,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
565
572
|
orgMemoryAdmission = createOrgMemoryAdmissionWiring({ config, logger, metrics });
|
|
566
573
|
}
|
|
567
574
|
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
|
|
575
|
+
await printErr(`MEMORY_ORG_DIRECTORY_JSON is invalid: ${e instanceof Error ? e.message : String(e)}`);
|
|
576
|
+
await printErr(`(local config root: ${root} — fix it in ${join(root, ".env")} or your shell env, or unset it)`);
|
|
577
|
+
await backend.close();
|
|
571
578
|
return 2;
|
|
572
579
|
}
|
|
573
580
|
assertRetentionLaneWirable({
|
|
@@ -575,8 +582,8 @@ export async function runLocal(argv, deps = {}) {
|
|
|
575
582
|
executor: undefined,
|
|
576
583
|
stores: [
|
|
577
584
|
{ name: "sessionStore", store: sessionStore },
|
|
578
|
-
{ name: "checkpointStore", store:
|
|
579
|
-
{ name: "toolResultStore", store:
|
|
585
|
+
{ name: "checkpointStore", store: engineStores.checkpointStore },
|
|
586
|
+
{ name: "toolResultStore", store: backend.toolResult() },
|
|
580
587
|
],
|
|
581
588
|
locked: (config.lockedConfigKeys ?? []).includes("retentionPolicy"),
|
|
582
589
|
});
|
|
@@ -585,8 +592,8 @@ export async function runLocal(argv, deps = {}) {
|
|
|
585
592
|
logger,
|
|
586
593
|
retentionStores: [
|
|
587
594
|
{ name: "sessionStore", store: sessionStore },
|
|
588
|
-
{ name: "checkpointStore", store:
|
|
589
|
-
{ name: "toolResultStore", store:
|
|
595
|
+
{ name: "checkpointStore", store: engineStores.checkpointStore },
|
|
596
|
+
{ name: "toolResultStore", store: backend.toolResult() },
|
|
590
597
|
],
|
|
591
598
|
retentionExecutor: null,
|
|
592
599
|
});
|
|
@@ -598,21 +605,22 @@ export async function runLocal(argv, deps = {}) {
|
|
|
598
605
|
engineDataRoot,
|
|
599
606
|
governanceSeams,
|
|
600
607
|
logger,
|
|
601
|
-
|
|
608
|
+
commitCoAuthor: "Sema <noreply@vivi-ai.com>",
|
|
602
609
|
brain,
|
|
603
610
|
pricing,
|
|
604
611
|
tracer: createTracer(metrics),
|
|
605
612
|
promptSource,
|
|
606
613
|
executionEnvFactory,
|
|
607
614
|
lspManager,
|
|
608
|
-
backgroundAgentStore:
|
|
609
|
-
mailboxStore:
|
|
610
|
-
rosterStore:
|
|
615
|
+
backgroundAgentStore: engineStores.backgroundAgentStore,
|
|
616
|
+
mailboxStore: engineStores.mailboxStore,
|
|
617
|
+
rosterStore: engineStores.rosterStore,
|
|
611
618
|
deploymentMods,
|
|
612
|
-
toolResultStore:
|
|
619
|
+
toolResultStore: backend.toolResult(),
|
|
620
|
+
fileHistoryStore: undefined,
|
|
613
621
|
checkpointStore: undefined,
|
|
614
|
-
sessionPolicyStore:
|
|
615
|
-
usageWindowStore: config.usageWindows ?
|
|
622
|
+
sessionPolicyStore: backend.sessionPolicy(),
|
|
623
|
+
usageWindowStore: config.usageWindows ? backend.fileUsageWindowStore() : undefined,
|
|
616
624
|
orgMemoryAdmission,
|
|
617
625
|
sharedMemoryStores: undefined,
|
|
618
626
|
mcpRevocations: undefined,
|
|
@@ -644,7 +652,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
644
652
|
const scenarioDeps = {
|
|
645
653
|
runner, subRunner, model: DEFAULT_MODEL_REF, skills, repoClient, logger,
|
|
646
654
|
...(webSearch ? { webSearch } : {}),
|
|
647
|
-
backgroundAgentStore:
|
|
655
|
+
backgroundAgentStore: engineStores.backgroundAgentStore,
|
|
648
656
|
taskListStoreFor: taskListLane.storeFor,
|
|
649
657
|
};
|
|
650
658
|
const scenarios = buildScenarios(scenarioDeps);
|
|
@@ -661,21 +669,25 @@ export async function runLocal(argv, deps = {}) {
|
|
|
661
669
|
}
|
|
662
670
|
catch (err) {
|
|
663
671
|
if (err instanceof HttpError) {
|
|
664
|
-
printErr(`cannot run scenario "${scenarioName}": ${err.message}`);
|
|
672
|
+
await printErr(`cannot run scenario "${scenarioName}": ${err.message}`);
|
|
665
673
|
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)");
|
|
674
|
+
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
675
|
void lspManager?.dispose();
|
|
668
|
-
await
|
|
676
|
+
await backend.close();
|
|
669
677
|
return 2;
|
|
670
678
|
}
|
|
671
679
|
throw err;
|
|
672
680
|
}
|
|
673
|
-
const mention =
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
681
|
+
const { picked: mention } = pickUserModel(config, undefined, args.objective);
|
|
682
|
+
const mentionRefusal = mention.unavailable !== undefined
|
|
683
|
+
? modelUnavailableMessage("@-mention", mention.unavailable.requested, mention.unavailable.name, mention.unavailable.refusal)
|
|
684
|
+
: mention.notAllowed !== undefined
|
|
685
|
+
? modelNotAllowedMessage("@-mention", mention.notAllowed.requested, mention.notAllowed.resolved)
|
|
686
|
+
: undefined;
|
|
687
|
+
if (mentionRefusal !== undefined) {
|
|
688
|
+
await printErr(`cannot run: ${mentionRefusal}`);
|
|
677
689
|
void lspManager?.dispose();
|
|
678
|
-
await
|
|
690
|
+
await backend.close();
|
|
679
691
|
return 2;
|
|
680
692
|
}
|
|
681
693
|
const scope = args.user ?? "local";
|
|
@@ -684,9 +696,9 @@ export async function runLocal(argv, deps = {}) {
|
|
|
684
696
|
assertProjectLayerOwnable(scope, "--user");
|
|
685
697
|
}
|
|
686
698
|
catch (err) {
|
|
687
|
-
printErr(err instanceof Error ? err.message : String(err));
|
|
699
|
+
await printErr(err instanceof Error ? err.message : String(err));
|
|
688
700
|
void lspManager?.dispose();
|
|
689
|
-
await
|
|
701
|
+
await backend.close();
|
|
690
702
|
return 2;
|
|
691
703
|
}
|
|
692
704
|
}
|
|
@@ -732,7 +744,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
732
744
|
const deadline = Date.now() + 5_000;
|
|
733
745
|
try {
|
|
734
746
|
for (;;) {
|
|
735
|
-
const running = (await
|
|
747
|
+
const running = (await engineStores.backgroundAgentStore.listByScope(scope, { status: "running" })).length;
|
|
736
748
|
if (running === 0)
|
|
737
749
|
return;
|
|
738
750
|
if (Date.now() >= deadline) {
|
|
@@ -753,29 +765,29 @@ export async function runLocal(argv, deps = {}) {
|
|
|
753
765
|
result = await taskRunner.runTask(spec);
|
|
754
766
|
}
|
|
755
767
|
catch (err) {
|
|
756
|
-
printErr(`task crashed: ${err instanceof Error ? err.message : String(err)}`);
|
|
768
|
+
await printErr(`task crashed: ${err instanceof Error ? err.message : String(err)}`);
|
|
757
769
|
await settleSessionBackground();
|
|
758
770
|
runner.sessions.dispose();
|
|
759
771
|
subRunner.sessions.dispose();
|
|
760
772
|
void lspManager?.dispose();
|
|
761
|
-
await
|
|
773
|
+
await backend.close();
|
|
762
774
|
return 1;
|
|
763
775
|
}
|
|
764
776
|
const unfinishedStop = unfinishedStopOf(result, refusedWithoutPerson);
|
|
765
777
|
if (args.json) {
|
|
766
|
-
print(JSON.stringify(result, null, 2));
|
|
778
|
+
await print(JSON.stringify(result, null, 2));
|
|
767
779
|
}
|
|
768
780
|
else if (result.terminal.kind === "completed") {
|
|
769
|
-
print(result.result);
|
|
781
|
+
await print(result.result);
|
|
770
782
|
if (unfinishedStop !== undefined)
|
|
771
|
-
printErr(buildUnfinishedStopFooter(unfinishedStop, sessionId));
|
|
783
|
+
await printErr(buildUnfinishedStopFooter(unfinishedStop, sessionId));
|
|
772
784
|
}
|
|
773
785
|
else {
|
|
774
786
|
const plane = outwardPlane(result.terminal);
|
|
775
787
|
const salvage = result.result || result.salvagedOutput || plane.blockedReason || "";
|
|
776
788
|
if (salvage)
|
|
777
|
-
print(salvage);
|
|
778
|
-
printErr(`task ${plane.status}${plane.errorCode ? ` (${plane.errorCode})` : ""}${plane.errorMessage ? `: ${plane.errorMessage}` : ""}`);
|
|
789
|
+
await print(salvage);
|
|
790
|
+
await printErr(`task ${plane.status}${plane.errorCode ? ` (${plane.errorCode})` : ""}${plane.errorMessage ? `: ${plane.errorMessage}` : ""}`);
|
|
779
791
|
}
|
|
780
792
|
if (result.terminal.kind !== "completed" || unfinishedStop !== undefined)
|
|
781
793
|
exitCode = 1;
|
|
@@ -785,7 +797,7 @@ export async function runLocal(argv, deps = {}) {
|
|
|
785
797
|
runner.sessions.dispose();
|
|
786
798
|
subRunner.sessions.dispose();
|
|
787
799
|
void lspManager?.dispose();
|
|
788
|
-
await
|
|
800
|
+
await backend.close();
|
|
789
801
|
return exitCode;
|
|
790
802
|
}
|
|
791
803
|
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
|
package/dist/runs.d.ts
CHANGED
|
@@ -94,7 +94,7 @@ export declare function taskHandleStop(registry: typeof defaultTaskRegistry, han
|
|
|
94
94
|
* 已 fire 的信号永不回调,那样一次真实的人为断连会被吞成「无归因」(子代 settle 时记成 system)。
|
|
95
95
|
* 语义上这两种时序是同一件事:本请求赢下了这条 session,而这条 session 的连接是被人断掉的。
|
|
96
96
|
*/
|
|
97
|
-
export declare function markChildrenStoppedByUserOnAbort(signal: AbortSignal, taskId: string,
|
|
97
|
+
export declare function markChildrenStoppedByUserOnAbort(signal: AbortSignal, taskId: string, subject: string | null | undefined): void;
|
|
98
98
|
export declare function resumeAtHttpStatus(result: {
|
|
99
99
|
terminal: TerminalCause;
|
|
100
100
|
}): number | undefined;
|
|
@@ -114,7 +114,7 @@ export declare function resumeAtHttpStatus(result: {
|
|
|
114
114
|
export declare function syncRefusalHttpStatus(result: Pick<TaskResult, "terminal" | "stats">): number | undefined;
|
|
115
115
|
/**
|
|
116
116
|
* 同步腿零工作拒体的机读事实(交 `refusalBody` 的 `facts`)—— 唯一一处。入参是**出口封口 + 脱敏后**的终局(调用方递 `redactTerminalResult(sealResultForExit(result)).terminal`,
|
|
117
|
-
* 与 run 记录读面 / 流式 `done.result` 上的 `terminal` 同一只来源),本函数只按码取它的 `detail.detail
|
|
117
|
+
* 与 run 记录读面 / 流式 `done.result` 上的 `terminal` 同一只来源),本函数只按码取它的 `detail.detail` 经闭集映射({@link attachmentCauseFacts}),不另读、不另脱。码不在登记表里、终局不是 `failed`、
|
|
118
118
|
* 引擎没给 `coded` 因由 ⇒ `{}`(缺席不造键)。
|
|
119
119
|
* 两张工具名清单的码({@link ENGINE_TOOL_LIST_REFUSAL_CODES})是另一臂:体事实不取引擎的因由,取 `admissionReadings`(受理口对放行侧选择器清单的读数,`PreparedTaskSubmission.warnings`)
|
|
120
120
|
* 去掉 `not_in_roster`、且 `code` 与终局的码相同(同一族清单)的那些 —— 与受理口 400 同一只机读位形;没有读数 ⇒ `{}`。
|
|
@@ -132,8 +132,8 @@ export declare function releaseKeyIfZeroWorkRefusal(runStore: {
|
|
|
132
132
|
releaseIdemKey(taskId: string): Promise<void>;
|
|
133
133
|
}, taskId: string, result: Pick<TaskResult, "terminal" | "stats">): Promise<void>;
|
|
134
134
|
/**
|
|
135
|
-
* E18 resume-at — per-turn anchor capture, shared by runInBackground
|
|
136
|
-
* tricky) capture rule can't drift between the
|
|
135
|
+
* E18 resume-at — per-turn anchor capture, shared by runInBackground, the resume-leg driveResume AND the sync `POST /v1/tasks`
|
|
136
|
+
* leg's plain form so the (single, tricky) capture rule can't drift between the stream-drain loops.
|
|
137
137
|
*
|
|
138
138
|
* A "turn" in core = ONE assistant message + its tool batch. resume-at is valid ONLY at a SETTLED rewindable boundary
|
|
139
139
|
* — core's prepare-task accepts "user messages or finished assistant-text turns" and REJECTS an assistant message that
|
|
@@ -151,7 +151,7 @@ export declare function releaseKeyIfZeroWorkRefusal(runStore: {
|
|
|
151
151
|
* observable instead of a silent feature outage.
|
|
152
152
|
*/
|
|
153
153
|
/**
|
|
154
|
-
* 「这一次用户消息提交是不是这个 run 的**开场提示**」的唯一读法 ——
|
|
154
|
+
* 「这一次用户消息提交是不是这个 run 的**开场提示**」的唯一读法 —— 四处用户回退锚(后台腿 / 续跑腿 / 同步腿 `POST /v1/tasks` 的 {@link TurnAnchorCapture}、`/v1/tasks/stream`
|
|
155
155
|
* 腿的 `userMsgEntryId`)同调这一只;调用点零各自判、零按正文判,且都是「最后一次交出的赢」。
|
|
156
156
|
*
|
|
157
157
|
* **回退锚 = 该轮开场提示,一个 run 一个(开场窗 + 闩)**:run 一开始就开着一个**开场窗**,收集第一次模型输出之前的 user 提交;窗关上之后(闩上),同 run 的 user-role 提交 ——
|
|
@@ -189,13 +189,13 @@ export declare function releaseKeyIfZeroWorkRefusal(runStore: {
|
|
|
189
189
|
export declare function createPromptCommitReader(): (ev: {
|
|
190
190
|
readonly type: string;
|
|
191
191
|
}) => string | undefined;
|
|
192
|
-
/** 回退锚写在哪条腿上(探针行的 `leg=`):流式腿 `POST /v1/tasks/stream
|
|
193
|
-
export type ResumeAnchorLeg = "stream" | "bg" | "resume";
|
|
192
|
+
/** 回退锚写在哪条腿上(探针行的 `leg=`):流式腿 `POST /v1/tasks/stream`、同步腿 `POST /v1/tasks`(非流式)、后台腿 `POST /v1/runs`、续跑腿。 */
|
|
193
|
+
export type ResumeAnchorLeg = "stream" | "sync" | "bg" | "resume";
|
|
194
194
|
/**
|
|
195
|
-
* 回退锚的**唯一**写法(
|
|
195
|
+
* 回退锚的**唯一**写法(四条腿同一只):**有界** await 写入(单行店操作期限 {@link BASELINE_IO_DEADLINE_MS},与项目指令基线的
|
|
196
196
|
* 读写同一只数、同一只 {@link withinIoDeadline} —— 同为单行 PK 写、同在腿的关键路径上);写失败或到期 ⇒ 不抛(锚是这次提示词能不能
|
|
197
197
|
* 回退的手柄,不是 run 的成败),记一次登记过的 fail-open `server.resume-anchor.capture-failed`(`reason=error|timeout`;计数 + 探针行 + 一次性 warn)。
|
|
198
|
-
* 调用方在本腿的终帧(流式腿的 `done
|
|
198
|
+
* 调用方在本腿的终帧(流式腿的 `done`、同步腿的 200 应答)**之前** await 它 ⇒ 客户端拿到终帧时锚已落定或已知没落定,没有「锚晚到」的窗;锚店挂住至多让终帧晚一个期限。
|
|
199
199
|
* 到期只放手不取消:那次写照常在飞,迟到落定的锚照样可用(迟到的失败被吞,不重复计数)。
|
|
200
200
|
* 用户面的读数仍只有一处:会话视图用户消息行的 `taskId?`(present-iff 锚在)与 `resumeAt` 的 404 `resume_at.unknown_event`。
|
|
201
201
|
*/
|
|
@@ -211,7 +211,7 @@ export declare class TurnAnchorCapture {
|
|
|
211
211
|
* `message_committed{role:"user"}` event — its `entryId` is the persisted user-message `SessionTreeEntry.id`,
|
|
212
212
|
* ALWAYS a valid `resumeAt` target (core accepts a user message; it rejects a tool-result / mid-tool-call
|
|
213
213
|
* assistant). This is the CC rewind target ("rewind to the prompt" = the code-restore parity path — a code
|
|
214
|
-
* change happens in a tool turn WITHIN a prompt's run, so rewinding to the prompt +
|
|
214
|
+
* change happens in a tool turn WITHIN a prompt's run, so rewinding to the prompt + restoreFiles undoes it).
|
|
215
215
|
* Keyed by the run's taskId (the handle the shell already holds from the POST response — no eventId→entryId
|
|
216
216
|
* side map / no leaf-read inference needed). The assistant-turn capture above stays as an additive bonus.
|
|
217
217
|
* The anchor is the run's OPENING prompt (the reader's opening window: provisional on the first user commit, corrected
|
|
@@ -232,7 +232,7 @@ export declare class TurnAnchorCapture {
|
|
|
232
232
|
* `message_committed{role:"user"}` event — its `entryId` is the persisted user-message `SessionTreeEntry.id`,
|
|
233
233
|
* ALWAYS a valid `resumeAt` target (core accepts a user message; it rejects a tool-result / mid-tool-call
|
|
234
234
|
* assistant). This is the CC rewind target ("rewind to the prompt" = the code-restore parity path — a code
|
|
235
|
-
* change happens in a tool turn WITHIN a prompt's run, so rewinding to the prompt +
|
|
235
|
+
* change happens in a tool turn WITHIN a prompt's run, so rewinding to the prompt + restoreFiles undoes it).
|
|
236
236
|
* Keyed by the run's taskId (the handle the shell already holds from the POST response — no eventId→entryId
|
|
237
237
|
* side map / no leaf-read inference needed). The assistant-turn capture above stays as an additive bonus.
|
|
238
238
|
* The anchor is the run's OPENING prompt (the reader's opening window: provisional on the first user commit, corrected
|
|
@@ -291,8 +291,8 @@ export declare function graftParkToolCallId<T>(result: T, cs: ParkCheckpointRead
|
|
|
291
291
|
* 续跑在没有认领的会话上驱动(`resume-legs.ts` 认领缺席的成因清单)。顺序承重:先放认领、后作废 ⇒ 两步之间(作废没做成时一直)就是那一形。
|
|
292
292
|
* 停驻没落定的成因不在判据里(停驻行 / 用量行 / 结果到手之后的任何一笔账本写抛):判据只读手里那份结果。
|
|
293
293
|
*
|
|
294
|
-
* `held` = 手里那份结果过了宿主判官之后的形(
|
|
295
|
-
*
|
|
294
|
+
* `held` = 手里那份结果过了宿主判官之后的形(判官提上来的嵌套停驻同样算 —— verify 的实现腿 / 修复轮、cascade 的级上卡,都归本 run 的会话)。
|
|
295
|
+
* 不是停驻 ⇒ 零 I/O。不抛:作废没做成 ⇒ 卡回到「留在待决面上、由兜底收割收走」的形,响亮留痕。
|
|
296
296
|
*/
|
|
297
297
|
export declare function voidHeldParkCard(held: {
|
|
298
298
|
readonly terminal: TerminalCause;
|
|
@@ -328,11 +328,13 @@ export declare function voidHeldParkCard(held: {
|
|
|
328
328
|
* only — a suspended run is steered durably via the checkpoint's `setPendingSteer` instead, and only the
|
|
329
329
|
* plain-stream path holds a steerable stream (the verify/cascade branches return a result, not a stream).
|
|
330
330
|
*/
|
|
331
|
-
export declare function runInBackground(runner: Runner, spec: TaskSpec, runStore: RunStore, taskId: string, metrics?: Metrics,
|
|
331
|
+
export declare function runInBackground(runner: Runner, spec: TaskSpec, runStore: RunStore, taskId: string, metrics?: Metrics,
|
|
332
|
+
/** 本跑的属主主体(分区键;行属主 / ALS 读它)。 */
|
|
333
|
+
principal?: string, verify?: VerifyRoundsSpec, // 快审 F1:number 参升整对象——cost 顶随传
|
|
332
334
|
cascade?: CascadeConfig, instrumentDegenerate?: (result: TaskResult) => void, planCacheProbe?: {
|
|
333
335
|
record: (scope: string | undefined, objective: string, completed: boolean) => void;
|
|
334
336
|
}, persistThinking?: boolean, inflight?: Map<string, RunAbort>, preemptable?: Map<string, AbortController>, steerable?: Map<string, TaskStream>, modelUsage?: ModelUsageTracker, elicitation?: ElicitationCoordinator,
|
|
335
|
-
/** E23: the VERIFIED principal (
|
|
337
|
+
/** E23: the VERIFIED principal (gatedSubject) that may answer this run's elicitations — matches the respond
|
|
336
338
|
* owner-gate's identity source (NOT the cost-attribution `principal`, which on a direct door is the self-asserted
|
|
337
339
|
* header → can be null while a JWT principal exists). Falls back to the run owner when not supplied. */
|
|
338
340
|
elicitOwner?: string | null,
|
|
@@ -435,6 +437,15 @@ workspaceRecorder?: SessionWorkspaceRecorder,
|
|
|
435
437
|
* 缺席 = 嵌入方自带的装配器没铸 ⇒ 账本行不带技能段。
|
|
436
438
|
*/
|
|
437
439
|
runSkills?: readonly RunSkillEntry[]): Promise<void>;
|
|
440
|
+
/** 一次心跳要的那一面(run 店的带属主刷新;交回「行还在 running 吗」)。 */
|
|
441
|
+
export interface RunHeartbeatStore {
|
|
442
|
+
heartbeat(taskId: string, owner: string | null): Promise<boolean>;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* 🔴 **一次心跳**(四条腿的心跳拍与认领心跳 `http/claim-heartbeat.ts` 同一只 —— 判法只在这里):刷新,店交回「这条 run 的行还在 running 吗」;不在 ⇒ `onLost()`,持有者停下自己的腿。
|
|
446
|
+
* 判死一条行(观察口 / 认领冲突 / 收割器)拦不住它的执行者 —— 心跳打空今天不报,两个执行者会同写一只会话;这一答补上那一半。刷新失败不抛(`onError` 计数),下一拍再刷。
|
|
447
|
+
*/
|
|
448
|
+
export declare function beatRunHeartbeat(runStore: RunHeartbeatStore, taskId: string, owner: string | null, onLost: () => void, onError: () => void): void;
|
|
438
449
|
/** How often a running instance refreshes its run's updated_at (liveness, independent of events).
|
|
439
450
|
* Must stay strictly below `runStaleSec` (asserted at startup AND on every hot config candidate) or the
|
|
440
451
|
* reaper would race live runs. [ref]:数值的单源是 `config-invariants.ts`(那条不变量的属主),两个消费面
|