@sema-agent/server 7.146.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 +1423 -24
- package/README.md +21 -8
- package/README.zh-CN.md +15 -9
- package/USAGE.md +537 -216
- package/deploy/facts/lanes.json +7 -0
- package/deploy/sema-up/README.md +18 -7
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/templates/_helpers.tpl +42 -4
- package/deploy/sema-up/chart/templates/server-v4pro.yaml +5 -4
- package/deploy/sema-up/chart/templates/server.yaml +5 -4
- package/deploy/sema-up/chart/values.yaml +4 -3
- package/deploy/sema-up/cluster-up.sh +75 -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/flagshape.sh +4 -0
- 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/lanes.json +2 -5
- 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 +26 -48
- 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 +18 -5
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +25 -3
- 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 +32 -34
- 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 +16 -14
- package/dist/approval.js +3 -3
- package/dist/audit.d.ts +10 -3
- package/dist/audit.js +17 -9
- 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 +8 -3
- 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/crash-last.js +2 -1
- package/dist/boot/deployment-mods.d.ts +1 -1
- package/dist/boot/device-lane.js +5 -5
- package/dist/boot/engine-lease.d.ts +12 -11
- package/dist/boot/execution-env.d.ts +19 -8
- package/dist/boot/execution-env.js +80 -62
- package/dist/boot/execution-lane.d.ts +37 -9
- package/dist/boot/execution-lane.js +74 -20
- package/dist/boot/exit-boundary.d.ts +3 -3
- package/dist/boot/exit-boundary.js +6 -5
- package/dist/boot/exit-last.js +2 -1
- package/dist/boot/fatal-exit.d.ts +3 -5
- package/dist/boot/fatal-exit.js +2 -2
- package/dist/boot/governance-seams.d.ts +2 -2
- package/dist/boot/leader.d.ts +15 -0
- package/dist/boot/leader.js +18 -16
- package/dist/boot/memory-boundary.d.ts +11 -11
- package/dist/boot/memory-boundary.js +3 -3
- package/dist/boot/memory-consolidation.d.ts +50 -53
- package/dist/boot/memory-consolidation.js +11 -18
- package/dist/boot/org-memory.js +4 -3
- package/dist/boot/parked-revive-gate.d.ts +1 -1
- package/dist/boot/parked-revive-gate.js +3 -3
- package/dist/boot/reapers.d.ts +4 -3
- package/dist/boot/reapers.js +20 -17
- package/dist/boot/resolve-spec.d.ts +5 -3
- package/dist/boot/resolve-spec.js +133 -165
- package/dist/boot/retention-lane.d.ts +7 -45
- 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 +17 -7
- package/dist/boot/session-faces.js +122 -96
- package/dist/boot/shutdown.d.ts +5 -4
- package/dist/boot/shutdown.js +6 -4
- package/dist/boot/stage-01-config.d.ts +1 -1
- package/dist/boot/stage-01-config.js +14 -2
- package/dist/boot/stage-02-web-admin-pull.d.ts +2 -1
- package/dist/boot/stage-02-web-admin-pull.js +15 -8
- package/dist/boot/stage-03-store-backend.d.ts +4 -1
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +3 -1
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +9 -5
- package/dist/boot/stage-05-execution-env.js +5 -5
- package/dist/boot/stage-06-runners.d.ts +13 -15
- package/dist/boot/stage-06-runners.js +24 -18
- package/dist/boot/stage-07-capability-layer.d.ts +14 -11
- package/dist/boot/stage-07-capability-layer.js +9 -12
- package/dist/boot/stage-08-reapers.d.ts +14 -11
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +16 -18
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +16 -18
- package/dist/boot/stage-10-http-server.js +9 -5
- package/dist/boot/store-evidence.d.ts +20 -0
- package/dist/boot/store-evidence.js +13 -0
- package/dist/boot/stores.d.ts +12 -0
- package/dist/boot/stores.js +39 -17
- 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 +58 -38
- 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 +9 -1
- package/dist/capabilities/center-plugins.js +37 -11
- package/dist/capabilities/center-wiring.js +1 -1
- package/dist/capabilities/composite-members.d.ts +3 -2
- package/dist/capabilities/composite-members.js +3 -2
- package/dist/capabilities/execution-lane.d.ts +7 -7
- package/dist/capabilities/execution-lane.js +2 -2
- package/dist/capabilities/hands-lane.d.ts +1 -1
- package/dist/capabilities/repo-tools.d.ts +2 -0
- package/dist/capabilities/repo-tools.js +14 -12
- package/dist/capabilities/scenarios.d.ts +38 -33
- package/dist/capabilities/scenarios.js +24 -25
- package/dist/capabilities/settings-contract.d.ts +29 -0
- package/dist/capabilities/settings-contract.js +14 -0
- package/dist/capabilities/skills.d.ts +6 -6
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +69 -4
- package/dist/capability-facts.js +77 -5
- 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 +10 -5
- package/dist/config-catalog.d.ts +16 -1
- package/dist/config-catalog.js +68 -61
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +58 -4
- package/dist/config-invariants.js +104 -23
- package/dist/config-lkg.d.ts +24 -2
- package/dist/config-lkg.js +22 -9
- package/dist/config-provider.d.ts +9 -9
- package/dist/config-provider.js +25 -108
- package/dist/config-pull-failure.d.ts +50 -0
- package/dist/config-pull-failure.js +48 -0
- package/dist/config-types.d.ts +215 -202
- package/dist/config.d.ts +69 -14
- package/dist/config.js +188 -96
- package/dist/degenerate-instrument.js +1 -1
- package/dist/delegated-session-owner.d.ts +1 -1
- package/dist/deleted-session-ids.d.ts +3 -2
- package/dist/deploy-facts.js +3 -2
- package/dist/deployment-governance.d.ts +3 -3
- package/dist/deployment-shape.d.ts +51 -16
- package/dist/deployment-shape.js +31 -6
- 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.d.ts +7 -5
- package/dist/env-facts.js +12 -7
- package/dist/env-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-config-root.d.ts +5 -5
- package/dist/execution-config-root.js +5 -5
- package/dist/execution-env-purpose.d.ts +14 -0
- package/dist/execution-env-purpose.js +29 -0
- package/dist/execution-lane-caps.d.ts +53 -103
- package/dist/execution-lane-caps.js +51 -83
- package/dist/execution-placement.d.ts +65 -9
- package/dist/execution-placement.js +58 -0
- 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.d.ts +2 -2
- package/dist/file-history-disclosure.js +1 -0
- package/dist/fleet/drain-entry.d.ts +17 -10
- package/dist/fleet/drain-entry.js +1 -1
- 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 +6 -7
- 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 +42 -0
- package/dist/history-anchor.js +34 -0
- 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 +1 -4
- package/dist/hooks/command-spawn.js +0 -11
- package/dist/hooks/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +119 -65
- package/dist/hooks/hook-runner.js +415 -217
- 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 +5 -8
- package/dist/http/approval-sweeps.js +55 -30
- package/dist/http/caller-trust.d.ts +8 -10
- package/dist/http/caller-trust.js +1 -2
- package/dist/http/checkpoint-ctx.d.ts +17 -0
- package/dist/http/checkpoint-ctx.js +6 -0
- package/dist/http/claim-heartbeat.d.ts +49 -0
- package/dist/http/claim-heartbeat.js +46 -0
- package/dist/http/claim-latency.d.ts +10 -0
- package/dist/http/claim-latency.js +12 -0
- package/dist/http/claimed-run.d.ts +4 -3
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +77 -31
- package/dist/http/durable-run-leg.d.ts +3 -3
- package/dist/http/durable-run-leg.js +18 -12
- package/dist/http/execution-context.d.ts +18 -42
- package/dist/http/execution-context.js +11 -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 +7 -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 +3 -3
- package/dist/http/memory-store-refusal-reply.js +6 -0
- package/dist/http/owner-access.d.ts +391 -56
- package/dist/http/owner-access.js +372 -33
- package/dist/http/principal-gate.d.ts +26 -94
- package/dist/http/principal-gate.js +24 -81
- package/dist/http/refusal-body.d.ts +35 -2
- package/dist/http/refusal-body.js +34 -0
- package/dist/http/request-guards.d.ts +10 -14
- 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 +24 -24
- package/dist/http/resume-legs.js +260 -171
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/rewind-files-reply.d.ts +34 -0
- package/dist/http/rewind-files-reply.js +36 -0
- package/dist/http/route-ctx.d.ts +56 -47
- package/dist/http/route-table.js +2 -0
- 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 +73 -88
- 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 +23 -20
- package/dist/http/routes/config-catalog.js +2 -2
- package/dist/http/routes/devices.d.ts +3 -3
- package/dist/http/routes/devices.js +5 -5
- 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 +3 -1
- 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 +12 -20
- 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 +70 -0
- package/dist/http/routes/projects.js +87 -0
- package/dist/http/routes/retention-ops.js +6 -9
- package/dist/http/routes/rules.js +50 -7
- 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 +148 -233
- 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 +48 -30
- package/dist/http/routes/sessions-list.d.ts +3 -3
- package/dist/http/routes/sessions-list.js +9 -9
- package/dist/http/routes/sessions.d.ts +7 -1
- package/dist/http/routes/sessions.js +177 -112
- package/dist/http/routes/shared-memory.js +6 -6
- package/dist/http/routes/side-query.js +2 -2
- package/dist/http/routes/tasks.js +144 -122
- 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 +63 -50
- package/dist/http/server.js +52 -16
- 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 +17 -3
- package/dist/http/stored-body-replay.js +11 -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 +23 -13
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/instruction-source-notice.d.ts +1 -1
- 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-embedder-reembed.d.ts +38 -0
- package/dist/memory-embedder-reembed.js +20 -0
- package/dist/memory-incident-sink.d.ts +0 -28
- package/dist/memory-incident-sink.js +5 -0
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-scope.d.ts +31 -4
- package/dist/memory-scope.js +65 -16
- package/dist/memory-store-refusal.d.ts +20 -4
- package/dist/memory-store-refusal.js +1 -1
- package/dist/memory-sync-client.d.ts +5 -2
- package/dist/memory-sync-client.js +19 -14
- package/dist/memory-sync.js +1 -1
- package/dist/model-compat.d.ts +51 -28
- package/dist/model-compat.js +55 -23
- 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 +46 -17
- package/dist/model-entry-refusal.js +47 -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 +28 -2
- package/dist/namespaced-rule-name.js +10 -1
- 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 +75 -47
- package/dist/observability/fail-open.js +77 -47
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.d.ts +2 -0
- package/dist/observability/metrics.js +5 -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/observability/secret-env-scrub.d.ts +30 -4
- package/dist/observability/secret-env-scrub.js +15 -3
- 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-agent-session-index.d.ts +7 -12
- package/dist/orchestration/workflow-agent-session-index.js +1 -6
- package/dist/orchestration/workflow-completion-inbox.d.ts +29 -9
- package/dist/orchestration/workflow-completion-inbox.js +65 -46
- package/dist/org-delivery-gate.d.ts +5 -4
- package/dist/org-delivery-gate.js +7 -6
- package/dist/org-memory-admission.d.ts +5 -2
- package/dist/org-memory-admission.js +25 -10
- 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 +100 -31
- package/dist/parked-decide.js +162 -48
- 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 +28 -9
- package/dist/plugins/approval-ask-store-file.js +74 -18
- package/dist/plugins/approval-ask-store-memory.d.ts +17 -7
- package/dist/plugins/approval-ask-store-memory.js +35 -12
- package/dist/plugins/approval-ask-store-sql.d.ts +42 -20
- package/dist/plugins/approval-ask-store-sql.js +44 -11
- 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 +40 -195
- package/dist/plugins/blob-backend.js +41 -234
- package/dist/plugins/caching-session-store.d.ts +22 -5
- package/dist/plugins/caching-session-store.js +43 -4
- package/dist/plugins/checkpoint-index-columns.d.ts +33 -6
- package/dist/plugins/checkpoint-index-columns.js +39 -3
- package/dist/plugins/checkpoint-store-face.d.ts +84 -11
- package/dist/plugins/checkpoint-store-face.js +18 -1
- package/dist/plugins/device-store-sql.d.ts +2 -2
- package/dist/plugins/device-store-sql.js +6 -10
- 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/execution-lane-rename-m40.d.ts +20 -0
- package/dist/plugins/execution-lane-rename-m40.js +10 -0
- package/dist/plugins/execution-placement-sql.d.ts +63 -88
- package/dist/plugins/execution-placement-sql.js +94 -54
- package/dist/plugins/file-run-store.d.ts +89 -35
- package/dist/plugins/file-run-store.js +197 -142
- 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 +19 -10
- package/dist/plugins/imported-layer-root-retirement.js +4 -8
- package/dist/plugins/inbox-payload-column.d.ts +14 -0
- package/dist/plugins/inbox-payload-column.js +13 -0
- 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 +63 -23
- package/dist/plugins/local-checkpoint-store.js +204 -81
- package/dist/plugins/local-data-dir-modes-m39.d.ts +48 -0
- package/dist/plugins/local-data-dir-modes-m39.js +183 -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 +13 -0
- package/dist/plugins/local-engine-high-water.js +62 -0
- package/dist/plugins/local-session-store.d.ts +442 -143
- package/dist/plugins/local-session-store.js +941 -289
- 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 +20 -1
- package/dist/plugins/local-task-attachment-store.js +32 -12
- package/dist/plugins/memory-embedder-fingerprint.d.ts +33 -10
- package/dist/plugins/memory-embedder-fingerprint.js +52 -12
- package/dist/plugins/memory-embedder.d.ts +1 -1
- package/dist/plugins/memory-embedder.js +11 -9
- package/dist/plugins/memory-engine-pg.d.ts +7 -5
- package/dist/plugins/memory-engine-pg.js +18 -9
- package/dist/plugins/memory-engine-sql-apply.d.ts +21 -8
- package/dist/plugins/memory-engine-sql-apply.js +7 -9
- package/dist/plugins/memory-engine-tidb.d.ts +12 -7
- package/dist/plugins/memory-engine-tidb.js +18 -10
- 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 +325 -74
- package/dist/plugins/one-time-migrations.js +705 -230
- package/dist/plugins/org-delivery-quota-store.js +2 -1
- package/dist/plugins/owner-only-file-mode.d.ts +29 -0
- package/dist/plugins/owner-only-file-mode.js +141 -0
- package/dist/plugins/permission-rule-store-file.d.ts +11 -11
- package/dist/plugins/permission-rule-store-file.js +14 -2
- 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 +3 -32
- package/dist/plugins/pg-pool.js +27 -11
- package/dist/plugins/release-version.d.ts +20 -0
- package/dist/plugins/release-version.js +28 -0
- package/dist/plugins/remote-env-adb.d.ts +20 -4
- package/dist/plugins/remote-env-adb.js +39 -11
- package/dist/plugins/remote-env-e2b.d.ts +19 -28
- package/dist/plugins/remote-env-e2b.js +40 -29
- package/dist/plugins/remote-env-host.d.ts +11 -10
- package/dist/plugins/remote-env-host.js +40 -27
- package/dist/plugins/remote-env-k8s.d.ts +45 -47
- package/dist/plugins/remote-env-k8s.js +122 -62
- package/dist/plugins/remote-env-local-docker.d.ts +152 -15
- package/dist/plugins/remote-env-local-docker.js +370 -75
- package/dist/plugins/remote-env-ssh.d.ts +8 -2
- package/dist/plugins/remote-env-ssh.js +26 -24
- package/dist/plugins/remote-scratchpad.js +4 -0
- package/dist/plugins/remote-shell.d.ts +59 -30
- package/dist/plugins/remote-shell.js +175 -62
- package/dist/plugins/retention-declaration.d.ts +37 -0
- package/dist/plugins/retention-declaration.js +9 -0
- package/dist/plugins/retention-deployment.d.ts +158 -0
- package/dist/plugins/retention-deployment.js +119 -0
- package/dist/plugins/retention-lane-store-sql.d.ts +74 -4
- package/dist/plugins/retention-lane-store-sql.js +103 -1
- package/dist/plugins/retention-sql.d.ts +29 -0
- package/dist/plugins/retention-sql.js +8 -0
- 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 -15
- package/dist/plugins/schema-consistency.js +213 -13
- 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 +10 -1
- package/dist/plugins/schema-ensure-legs.js +12 -2
- 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 +98 -0
- package/dist/plugins/session-ext-table.js +134 -0
- package/dist/plugins/session-fork.d.ts +16 -2
- 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 +20 -7
- package/dist/plugins/session-row-sql.js +16 -8
- 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 +157 -0
- package/dist/plugins/session-store-sql.js +398 -0
- package/dist/plugins/session-withdraw-sql.d.ts +36 -0
- package/dist/plugins/session-withdraw-sql.js +42 -0
- package/dist/plugins/session-workspace-cell.d.ts +2 -2
- package/dist/plugins/session-workspace-cell.js +2 -2
- package/dist/plugins/shared-memory-store-sql.d.ts +10 -69
- package/dist/plugins/shared-memory-store-sql.js +15 -14
- 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/snapshot-bucket-presence.js +1 -1
- package/dist/plugins/sql-driver.d.ts +24 -8
- package/dist/plugins/sql-driver.js +43 -9
- package/dist/plugins/sql-errors.d.ts +35 -5
- package/dist/plugins/sql-errors.js +55 -3
- 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 +114 -18
- package/dist/plugins/store-backend.js +340 -87
- package/dist/plugins/store-contracts.d.ts +97 -30
- package/dist/plugins/store-contracts.js +23 -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 +21 -11
- package/dist/plugins/task-attachment-store.js +37 -19
- package/dist/plugins/task-list-store-sql.d.ts +1 -1
- package/dist/plugins/text-column-capacity.d.ts +21 -0
- package/dist/plugins/text-column-capacity.js +5 -0
- package/dist/plugins/tidb-pool.d.ts +3 -2
- package/dist/plugins/tidb-pool.js +42 -39
- package/dist/plugins/user-input-ledger-sql.d.ts +1 -1
- 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/read-face-posture.d.ts +6 -6
- package/dist/read-face-posture.js +2 -2
- 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/request-value-closure.d.ts +5 -5
- package/dist/request-value-closure.js +1 -1
- 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 +46 -16
- package/dist/rules-consent.js +102 -53
- 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 +109 -93
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +73 -44
- package/dist/runs.js +65 -43
- package/dist/runtime-caps-resolver.d.ts +36 -14
- package/dist/runtime-caps-resolver.js +31 -14
- package/dist/runtime-governance.d.ts +2 -2
- package/dist/runtime-governance.js +5 -3
- package/dist/sealed-key-layout.d.ts +12 -6
- package/dist/sealed-key-layout.js +5 -1
- package/dist/sealed-key.d.ts +12 -2
- package/dist/sealed-key.js +116 -26
- package/dist/security.d.ts +133 -161
- package/dist/security.js +163 -59
- package/dist/sema-config-dir.d.ts +20 -0
- package/dist/sema-config-dir.js +27 -2
- package/dist/server-secret-env.d.ts +23 -5
- package/dist/server-secret-env.js +14 -4
- package/dist/service-version.d.ts +2 -1
- package/dist/service-version.js +2 -2
- 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 +6 -6
- package/dist/session-error-wire.js +1 -1
- package/dist/session-incarnation.d.ts +60 -10
- 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 +29 -47
- package/dist/session-resident-background.js +77 -8
- package/dist/session-row.d.ts +3 -2
- package/dist/session-rules-seat.d.ts +12 -0
- package/dist/session-rules-seat.js +19 -0
- package/dist/session-sync-kernel.d.ts +1 -1
- package/dist/session-titler.d.ts +7 -15
- package/dist/session-titler.js +1 -1
- package/dist/session-workspace.d.ts +11 -2
- package/dist/session-workspace.js +5 -0
- package/dist/sighup-idle.d.ts +1 -1
- package/dist/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-posture.d.ts +138 -21
- package/dist/store-posture.js +188 -3
- package/dist/stored-request-hooks-m20.d.ts +3 -2
- package/dist/stored-request-hooks-m20.js +21 -16
- 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/blob-index-sql.d.ts +148 -0
- package/dist/stores-sql/blob-index-sql.js +154 -0
- package/dist/stores-sql/checkpoint-store-sql.d.ts +34 -29
- package/dist/stores-sql/checkpoint-store-sql.js +86 -71
- package/dist/{plugins → stores-sql}/file-history-store-sql.d.ts +23 -11
- package/dist/{plugins → stores-sql}/file-history-store-sql.js +23 -18
- package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
- package/dist/stores-sql/mailbox-store-sql.js +31 -32
- package/dist/{plugins → stores-sql}/pg-session-storage.d.ts +30 -81
- package/dist/{plugins → stores-sql}/pg-session-storage.js +123 -244
- package/dist/{plugins → stores-sql}/retention-store-sql.d.ts +197 -223
- package/dist/{plugins → stores-sql}/retention-store-sql.js +148 -207
- package/dist/{plugins → stores-sql}/session-event-payload.d.ts +1 -1
- package/dist/{plugins → stores-sql}/session-event-payload.js +1 -1
- package/dist/stores-sql/session-policy-store-sql.d.ts +33 -11
- package/dist/stores-sql/session-policy-store-sql.js +44 -36
- package/dist/stores-sql/session-write-hooks.d.ts +65 -0
- package/dist/stores-sql/session-write-hooks.js +2 -0
- package/dist/{plugins → stores-sql}/tidb-session-storage.d.ts +14 -15
- package/dist/{plugins → stores-sql}/tidb-session-storage.js +22 -28
- package/dist/{plugins → stores-sql}/tidb-session-store.d.ts +67 -138
- package/dist/{plugins → stores-sql}/tidb-session-store.js +130 -200
- package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
- package/dist/stores-sql/tool-result-store-sql.js +1 -1
- package/dist/stores-sql/windowed-session-storage.d.ts +61 -0
- package/dist/stores-sql/windowed-session-storage.js +70 -0
- package/dist/submission-exit.d.ts +50 -0
- package/dist/submission-exit.js +108 -0
- package/dist/task-a2a.d.ts +7 -1
- package/dist/task-a2a.js +18 -17
- package/dist/task-cwd.d.ts +31 -3
- package/dist/task-cwd.js +25 -1
- package/dist/task-mcp.d.ts +11 -3
- package/dist/task-mcp.js +16 -19
- package/dist/task-settings.d.ts +23 -14
- package/dist/task-settings.js +35 -13
- package/dist/terminal.d.ts +25 -43
- package/dist/terminal.js +31 -11
- package/dist/tool-approval.d.ts +152 -137
- package/dist/tool-approval.js +199 -199
- package/dist/trace/core-keyset-guard.d.ts +22 -9
- 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 +1 -1
- package/dist/trace/engine-notice-wire.js +2 -0
- package/dist/trace/exit-seat.d.ts +52 -4
- package/dist/trace/exit-seat.js +43 -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 +88 -58
- package/dist/trace/project.js +64 -28
- package/dist/trace/redact.d.ts +124 -28
- package/dist/trace/redact.js +936 -328
- package/dist/trace/self-minted-wire.d.ts +750 -29
- package/dist/trace/self-minted-wire.js +262 -25
- package/dist/trace/sema-provenance.d.ts +45 -41
- package/dist/trace/sema-provenance.js +81 -10
- package/dist/trace/task-notification-facets.d.ts +70 -2
- package/dist/trace/task-notification-facets.js +71 -1
- package/dist/trace/wire-projection-faces.d.ts +43 -8
- package/dist/trace/wire-projection-faces.js +28 -3
- package/dist/unread-request-members.d.ts +66 -0
- package/dist/unread-request-members.js +41 -0
- 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 -40
- 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/candidate-gate.d.ts +35 -3
- package/dist/web-admin-client/candidate-gate.js +53 -5
- package/dist/web-admin-client/center-request.d.ts +6 -3
- package/dist/web-admin-client/center-request.js +17 -16
- package/dist/web-admin-client/effective-keys.d.ts +1 -1
- package/dist/web-admin-client/effective-keys.js +1 -2
- 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/facade.d.ts +1 -1
- package/dist/web-admin-client/http-client.d.ts +2 -1
- package/dist/web-admin-client/http-client.js +40 -13
- 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 +13 -6
- package/dist/web-admin-client/skills-mcp.d.ts +22 -8
- package/dist/web-admin-client/skills-mcp.js +26 -21
- package/dist/web-admin-client/types.d.ts +35 -51
- package/dist/workspace-space.d.ts +3 -2
- package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
- package/package.json +16 -12
- package/scripts/drain-check-local.mjs +118 -173
- package/scripts/drain-check.mysql.sql +20 -16
- package/scripts/drain-check.pg.sql +20 -16
- package/wire-changes/server@7.147.0.json +813 -0
- 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/lsp/manager.d.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { LspDiagnosticsRegistry } from "@sema-agent/core";
|
|
2
|
-
import type { ExecutionEnv } from "@sema-agent/core";
|
|
3
|
-
import type { LspServerManager, LspSession, LspTransport } from "./types.js";
|
|
4
|
-
/** The E2B surface the LSP needs beyond base ExecutionEnv (present on RemoteContainerExecutionEnv).
|
|
5
|
-
* `exec`'s `stdout` is optional/structural (§DESIGN-V2 F7) — additive to the existing `stderr`-only shape so
|
|
6
|
-
* the postmortem/install-failure tail reads (`tail -n … <log>`, whose output arrives on stdout) can use the
|
|
7
|
-
* SAME duck-typed surface without widening what a plain command result MUST carry. */
|
|
8
|
-
export interface LspCapableEnv {
|
|
9
|
-
exec(command: string): Promise<{
|
|
10
|
-
ok: boolean;
|
|
11
|
-
value?: {
|
|
12
|
-
exitCode: number;
|
|
13
|
-
stderr: string;
|
|
14
|
-
stdout?: string;
|
|
15
|
-
};
|
|
16
|
-
}>;
|
|
17
|
-
startBackground(command: string): Promise<void>;
|
|
18
|
-
writeFile(path: string, content: string): Promise<{
|
|
19
|
-
ok: boolean;
|
|
20
|
-
}>;
|
|
21
|
-
getHost(port: number): Promise<string | undefined>;
|
|
22
|
-
readTextFile(path: string): Promise<{
|
|
23
|
-
ok: boolean;
|
|
24
|
-
value?: string;
|
|
25
|
-
}>;
|
|
26
|
-
workspaceHandle(): {
|
|
27
|
-
mountPath: string;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* §DESIGN-V2 B/F5/F7: the fixed, model-facing failure vocabulary for `unavailableReason`. Three are STATIC
|
|
32
|
-
* (re-derivable synchronously from `filePath`+`env` alone, without ever having attempted an open —
|
|
33
|
-
* `env-not-lsp-capable` / `language-not-mapped` / `no-server-command`); the other five are DYNAMIC (only
|
|
34
|
-
* knowable after an actual open attempt, so they're recorded in `lastFailure` per env+language and read back).
|
|
35
|
-
* Short + stable by design — a model reads these directly (core lsp.js renders `why` straight into the tool's
|
|
36
|
-
* degrade text), so adding/renaming a word is a behavior-facing change, not a refactor.
|
|
37
|
-
*/
|
|
38
|
-
export type LspUnavailableReason = "env-not-lsp-capable" | "language-not-mapped" | "no-server-command" | "install-failed" | "bridge-start-failed" | "bridge-connect-exhausted" | "bridge-restart-budget-exhausted" | "session-open-failed";
|
|
39
|
-
/** §DESIGN-V2 F5: the transport factory's discriminated result — replaces the old plain `LspTransport|undefined`
|
|
40
|
-
* so the bridge-resource owner (e2b-manager's `transportFactory`) can report WHY an attempt failed directly
|
|
41
|
-
* through its return value, instead of a side channel that could drift from what actually happened. */
|
|
42
|
-
export type LspFactoryResult = {
|
|
43
|
-
ok: true;
|
|
44
|
-
transport: LspTransport;
|
|
45
|
-
} | {
|
|
46
|
-
ok: false;
|
|
47
|
-
reason: LspUnavailableReason;
|
|
48
|
-
};
|
|
49
|
-
/** Duck-type check: is this ExecutionEnv an E2B adapter with the LSP surface? */
|
|
50
|
-
export declare function isLspCapable(env: ExecutionEnv): env is ExecutionEnv & LspCapableEnv;
|
|
51
|
-
export interface E2bLspManagerOptions {
|
|
52
|
-
/** Opens (+ `initialize`s) a WS transport to the language server inside THIS env's sandbox. */
|
|
53
|
-
transportFactory: (language: string, env: LspCapableEnv) => Promise<LspFactoryResult>;
|
|
54
|
-
/** Override the file-extension → languageId map. */
|
|
55
|
-
extToLang?: Readonly<Record<string, string>>;
|
|
56
|
-
/** Observability hook (open/heal/degrade events) — prod wires the service logger; silent when unset. */
|
|
57
|
-
log?: (event: string, fields: Record<string, unknown>) => void;
|
|
58
|
-
/** §DESIGN-V2 F5: synchronous re-derivation of the "no-server-command" static reason — owned by the factory
|
|
59
|
-
* (e2b-manager's `SERVER_CMD` table), which this generic manager doesn't import. `undefined` (option unset)
|
|
60
|
-
* or a `true` return ⇒ a server command IS configured, so a miss (if any) is dynamic (read from
|
|
61
|
-
* `lastFailure`) rather than this static one. */
|
|
62
|
-
hasServerCommand?: (language: string) => boolean;
|
|
63
|
-
/** §DESIGN-V2 E: `lsp_session_open_total{language,outcome}` / `lsp_session_heal_total{outcome}` — fired at
|
|
64
|
-
* the SAME point as the matching `log()` call (event and metric share one source, never drift apart). */
|
|
65
|
-
metrics?: {
|
|
66
|
-
inc(name: string, labels?: Record<string, string>): void;
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* §DESIGN-V2 F1/F8/F9 —— 本文件曾**手抄**一份 core 的 `settleOnAbort`(注释自陈 core「un-exported」,并写下
|
|
71
|
-
* 「一旦 core 导出即 find-and-delete」的计划)。[ref]([ref])执行了那句话:core 现已从包根导出它
|
|
72
|
-
* (`index.d.ts`,来自 `core/lsp.js`),手抄件遂删除,本文件的两处调用直接消费 core 的实现。
|
|
73
|
-
*
|
|
74
|
-
* 它的语义(读点在 `open` 的两处调用):给**这一个**调用方一个自己的 settle —— 调用方的 `signal` 让它拿到
|
|
75
|
-
* `onAbort()` 的返回,而**共享作业本身不受打扰**(别的调用方可能还等着它)。铁律仍在:绝不能把 signal 穿进
|
|
76
|
-
* 作业里(F9:共享的 open/heal 链不接受 per-caller signal,见 `open` 的文档)。
|
|
77
|
-
*/
|
|
78
|
-
export declare class E2bLspManager implements LspServerManager {
|
|
79
|
-
/** Per-sandbox session cache: env (weak) → language → the (self-contained, see `startJob`) shared job. */
|
|
80
|
-
private readonly perEnv;
|
|
81
|
-
/** §DESIGN-V2 B/F10: env (weak) → language → the reason the MOST RECENT open/heal attempt failed. Cleared
|
|
82
|
-
* on a successful open (F10) so a stale reason never outlives the failure that produced it. */
|
|
83
|
-
private readonly lastFailure;
|
|
84
|
-
private readonly factory;
|
|
85
|
-
private readonly extToLang;
|
|
86
|
-
private readonly log;
|
|
87
|
-
private readonly hasServerCommand;
|
|
88
|
-
private readonly metrics;
|
|
89
|
-
/** [ref] (core 1.220, board [S] ①): the workspace diagnostics registry — WORKSPACE-scoped (survives
|
|
90
|
-
* heal/evict; diagnostics belong to files, not servers), drained by the Runner at turn boundaries. Every
|
|
91
|
-
* session feeds it from `textDocument/publishDiagnostics` (the WS transport now dispatches notifications).
|
|
92
|
-
* ⚠️ ONE registry across sandboxes on this manager instance (it is per-deployment) — same posture as
|
|
93
|
-
* NodeLspManager's workspace scoping; a task only sees diagnostics for files IT touched (delivered-set +
|
|
94
|
-
* fileEdited keying is per-uri, and sandbox workspace paths are per-task-unique). */
|
|
95
|
-
readonly diagnostics: LspDiagnosticsRegistry;
|
|
96
|
-
constructor(opts: E2bLspManagerOptions);
|
|
97
|
-
/**
|
|
98
|
-
* §DESIGN-V2 B: the core 1.86.2+ seam's optional method — WHY the most recent `sessionFor` miss for this
|
|
99
|
-
* file happened. Three reasons are STATIC (re-derived here fresh, every call, from `filePath`+`env` alone —
|
|
100
|
-
* never stored, since they don't need an open attempt to be knowable); the rest are DYNAMIC, read back from
|
|
101
|
-
* `lastFailure`. `undefined` = this exact (env, language) was never attempted (NOT "available" — a
|
|
102
|
-
* best-effort postmortem surface, per the seam's own contract).
|
|
103
|
-
*/
|
|
104
|
-
unavailableReason(filePath: string, env?: ExecutionEnv): LspUnavailableReason | undefined;
|
|
105
|
-
sessionFor(filePath: string, signal?: AbortSignal, env?: ExecutionEnv): Promise<LspSession | undefined>;
|
|
106
|
-
/**
|
|
107
|
-
* §DESIGN-V2 F1 (aligned with core's `NodeLspManager.open`, node-lsp-manager.js `open` — same self-
|
|
108
|
-
* contained-job shape, not the same code: that manager also tracks a TTL/LRU cache and per-job
|
|
109
|
-
* `SharedAbortScope`, which this one has no equivalent of per F9). The returned job is SELF-completing:
|
|
110
|
-
*
|
|
111
|
-
* - self-caches: registers itself into `sessions` synchronously BEFORE returning (so a concurrent caller
|
|
112
|
-
* in the SAME microtask sees it — no dedupe race);
|
|
113
|
-
* - self-cleans: on failure, removes ITSELF from `sessions` (never a newer entry a racer already installed
|
|
114
|
-
* — the `sessions.get(language) === job` check) so the next request retries instead of caching a miss;
|
|
115
|
-
* - self-warms: a heal job (`heal` set) `warmOpen`s the carried files as part of settling, before anyone
|
|
116
|
-
* can observe it as "done" — no caller-side extra step, no window where a racer sees a warm-less session;
|
|
117
|
-
* - self-closes an orphan: if a CONCURRENT heal already replaced this job in `sessions` before it settled
|
|
118
|
-
* (this job "lost" the race), the just-opened transport is closed instead of leaked with no owner.
|
|
119
|
-
*
|
|
120
|
-
* Callers must NEVER wrap `settleOnAbort` around a naive `await` of a SHARED promise and then branch the
|
|
121
|
-
* logging/cache-eviction on THAT wrapped value — a caller whose OWN signal aborted would then look
|
|
122
|
-
* indistinguishable from the job itself failing, misfiring `lsp_session_*_failed` and evicting a still-live
|
|
123
|
-
* in-flight entry out from under a concurrent caller (§DESIGN-V2 F1). `sessionFor` only ever wraps the
|
|
124
|
-
* RETURN boundary; every cache/log decision above happens INSIDE the job, driven by the job's own outcome.
|
|
125
|
-
*/
|
|
126
|
-
private startJob;
|
|
127
|
-
private open;
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=manager.d.ts.map
|
package/dist/lsp/manager.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { TransportLspSession, LspDiagnosticsRegistry, settleOnAbort } from "@sema-agent/core";
|
|
3
|
-
export function isLspCapable(env) {
|
|
4
|
-
const e = env;
|
|
5
|
-
return typeof e.getHost === "function" && typeof e.startBackground === "function" && typeof e.workspaceHandle === "function";
|
|
6
|
-
}
|
|
7
|
-
const DEFAULT_EXT_TO_LANG = {
|
|
8
|
-
".ts": "typescript",
|
|
9
|
-
".tsx": "typescript",
|
|
10
|
-
".mts": "typescript",
|
|
11
|
-
".cts": "typescript",
|
|
12
|
-
".js": "javascript",
|
|
13
|
-
".jsx": "javascript",
|
|
14
|
-
".mjs": "javascript",
|
|
15
|
-
".cjs": "javascript",
|
|
16
|
-
".py": "python",
|
|
17
|
-
".go": "go",
|
|
18
|
-
".dart": "dart",
|
|
19
|
-
".kt": "kotlin",
|
|
20
|
-
".kts": "kotlin",
|
|
21
|
-
".java": "java",
|
|
22
|
-
".swift": "swift",
|
|
23
|
-
".rs": "rust",
|
|
24
|
-
};
|
|
25
|
-
export class E2bLspManager {
|
|
26
|
-
perEnv = new WeakMap();
|
|
27
|
-
lastFailure = new WeakMap();
|
|
28
|
-
factory;
|
|
29
|
-
extToLang;
|
|
30
|
-
log;
|
|
31
|
-
hasServerCommand;
|
|
32
|
-
metrics;
|
|
33
|
-
diagnostics = new LspDiagnosticsRegistry();
|
|
34
|
-
constructor(opts) {
|
|
35
|
-
this.factory = opts.transportFactory;
|
|
36
|
-
this.extToLang = opts.extToLang ?? DEFAULT_EXT_TO_LANG;
|
|
37
|
-
this.log = opts.log ?? (() => { });
|
|
38
|
-
this.hasServerCommand = opts.hasServerCommand ?? (() => true);
|
|
39
|
-
this.metrics = opts.metrics;
|
|
40
|
-
}
|
|
41
|
-
unavailableReason(filePath, env) {
|
|
42
|
-
if (!env || !isLspCapable(env))
|
|
43
|
-
return "env-not-lsp-capable";
|
|
44
|
-
const language = this.extToLang[path.extname(filePath).toLowerCase()];
|
|
45
|
-
if (!language)
|
|
46
|
-
return "language-not-mapped";
|
|
47
|
-
if (!this.hasServerCommand(language))
|
|
48
|
-
return "no-server-command";
|
|
49
|
-
return this.lastFailure.get(env)?.get(language);
|
|
50
|
-
}
|
|
51
|
-
async sessionFor(filePath, signal, env) {
|
|
52
|
-
if (!env || !isLspCapable(env))
|
|
53
|
-
return undefined;
|
|
54
|
-
const language = this.extToLang[path.extname(filePath).toLowerCase()];
|
|
55
|
-
if (!language)
|
|
56
|
-
return undefined;
|
|
57
|
-
let sessions = this.perEnv.get(env);
|
|
58
|
-
if (!sessions) {
|
|
59
|
-
sessions = new Map();
|
|
60
|
-
this.perEnv.set(env, sessions);
|
|
61
|
-
}
|
|
62
|
-
let pending = sessions.get(language) ?? this.startJob(env, sessions, language);
|
|
63
|
-
let session = await settleOnAbort(pending, signal, () => undefined);
|
|
64
|
-
if (session?.closed) {
|
|
65
|
-
const carry = session.openedFiles();
|
|
66
|
-
pending = sessions.get(language) === pending ? this.startJob(env, sessions, language, { carry }) : sessions.get(language);
|
|
67
|
-
session = await settleOnAbort(pending, signal, () => undefined);
|
|
68
|
-
}
|
|
69
|
-
return session;
|
|
70
|
-
}
|
|
71
|
-
startJob(env, sessions, language, heal) {
|
|
72
|
-
const job = this.open(language, env)
|
|
73
|
-
.then(async (session) => {
|
|
74
|
-
if (!session) {
|
|
75
|
-
if (sessions.get(language) === job)
|
|
76
|
-
sessions.delete(language);
|
|
77
|
-
this.log(heal ? "lsp_session_heal_failed" : "lsp_session_open_failed", { language, ...(heal ? { carried: heal.carry.length } : {}) });
|
|
78
|
-
this.metrics?.inc(heal ? "lsp_session_heal_total" : "lsp_session_open_total", heal ? { outcome: "failed" } : { language, outcome: "failed" });
|
|
79
|
-
return undefined;
|
|
80
|
-
}
|
|
81
|
-
if (heal)
|
|
82
|
-
await session.warmOpen(heal.carry).catch(() => ({ opened: 0, failed: heal.carry.length, deferred: 0 }));
|
|
83
|
-
if (sessions.get(language) !== job) {
|
|
84
|
-
await session.close().catch(() => undefined);
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
this.log(heal ? "lsp_session_heal" : "lsp_session_open", { language, ...(heal ? { carried: heal.carry.length } : {}) });
|
|
88
|
-
this.metrics?.inc(heal ? "lsp_session_heal_total" : "lsp_session_open_total", heal ? { outcome: "ok" } : { language, outcome: "ok" });
|
|
89
|
-
return session;
|
|
90
|
-
})
|
|
91
|
-
.catch((e) => {
|
|
92
|
-
if (sessions.get(language) === job)
|
|
93
|
-
sessions.delete(language);
|
|
94
|
-
this.log(heal ? "lsp_session_heal_failed" : "lsp_session_open_failed", {
|
|
95
|
-
language,
|
|
96
|
-
error: e instanceof Error ? e.message : String(e),
|
|
97
|
-
...(heal ? { carried: heal.carry.length } : {}),
|
|
98
|
-
});
|
|
99
|
-
this.metrics?.inc(heal ? "lsp_session_heal_total" : "lsp_session_open_total", heal ? { outcome: "failed" } : { language, outcome: "failed" });
|
|
100
|
-
return undefined;
|
|
101
|
-
});
|
|
102
|
-
sessions.set(language, job);
|
|
103
|
-
return job;
|
|
104
|
-
}
|
|
105
|
-
async open(language, env) {
|
|
106
|
-
const result = await this.factory(language, env).catch(() => ({ ok: false, reason: "session-open-failed" }));
|
|
107
|
-
let byLang = this.lastFailure.get(env);
|
|
108
|
-
if (!result.ok) {
|
|
109
|
-
if (!byLang) {
|
|
110
|
-
byLang = new Map();
|
|
111
|
-
this.lastFailure.set(env, byLang);
|
|
112
|
-
}
|
|
113
|
-
byLang.set(language, result.reason);
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
byLang?.delete(language);
|
|
117
|
-
const transport = result.transport;
|
|
118
|
-
const readText = async (fp) => {
|
|
119
|
-
const r = await env.readTextFile(fp);
|
|
120
|
-
if (!r.ok || r.value === undefined)
|
|
121
|
-
throw new Error("lsp: read failed");
|
|
122
|
-
return r.value;
|
|
123
|
-
};
|
|
124
|
-
return new TransportLspSession(transport, language, readText, this.log, undefined, this.diagnostics);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=manager.js.map
|
package/dist/lsp/types.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LSP sidecar — service-side types ([ref] §13.1). core 1.82+ ships `createLspTool(manager)`
|
|
3
|
-
* + the `LspServerManager`/`LspSession`/`LspResult` SEAM (`@sema-agent/core`); the runner mounts the tool
|
|
4
|
-
* when OUR manager is wired via `RunnerDeps.lspManager`. We re-export core's seam types — SINGLE SOURCE OF TRUTH,
|
|
5
|
-
* incl. the injectable `LspTransport` (the WS-bridge connection to the language server inside E2B) + `LspReadText`.
|
|
6
|
-
* The protocol LOGIC + the `TransportLspSession` were originally ported FROM core; core later deduplicated them
|
|
7
|
-
* back (session.ts/op-map.ts deleted, byte-equivalence verified). The one thing that stays SERVICE-side is the WS
|
|
8
|
-
* `LspTransport` IMPLEMENTATION (`WsLspTransport` in ws-transport.ts) — core has no WebSocket transport (raw TCP
|
|
9
|
-
* doesn't traverse E2B's HTTP proxy; WS does). "1:1-copy-CC" is the protocol; the WS transport is ours.
|
|
10
|
-
*/
|
|
11
|
-
export type { LspOperation, LspRequestParams, LspResult, LspServerManager, LspSession, LspTransport, LspReadText, } from "@sema-agent/core";
|
|
12
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/lsp/types.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { LspTransport } from "./types.js";
|
|
2
|
-
/** The slice of `ws`'s WebSocket the transport uses (so tests can supply a fake). */
|
|
3
|
-
export interface WsLike {
|
|
4
|
-
send(data: string): void;
|
|
5
|
-
close(): void;
|
|
6
|
-
on(event: "message" | "close" | "error" | "pong", listener: (arg?: unknown) => void): void;
|
|
7
|
-
/** WS ping frame (keepalive + liveness probe). Optional — fakes without it get no ping-liveness. */
|
|
8
|
-
ping?(): void;
|
|
9
|
-
/** Hard-kill the socket (skip the close handshake) — used when a ping goes unanswered (half-open). */
|
|
10
|
-
terminate?(): void;
|
|
11
|
-
}
|
|
12
|
-
export declare class WsLspTransport implements LspTransport {
|
|
13
|
-
private readonly ws;
|
|
14
|
-
private readonly requestTimeoutMs;
|
|
15
|
-
private nextId;
|
|
16
|
-
private readonly pending;
|
|
17
|
-
private isClosed;
|
|
18
|
-
private keepalive;
|
|
19
|
-
private awaitingPong;
|
|
20
|
-
/** [ref]: server→client NOTIFICATION subscribers (publishDiagnostics etc.). */
|
|
21
|
-
private readonly notificationHandlers;
|
|
22
|
-
constructor(ws: WsLike, requestTimeoutMs?: number, keepaliveMs?: number);
|
|
23
|
-
/** Manager-visible liveness (LspTransport.closed): evict + reopen instead of reusing a dead connection. */
|
|
24
|
-
get closed(): boolean;
|
|
25
|
-
private onMessage;
|
|
26
|
-
private failAll;
|
|
27
|
-
request(method: string, params: unknown, signal?: AbortSignal): Promise<unknown>;
|
|
28
|
-
notify(method: string, params: unknown): void;
|
|
29
|
-
/** [ref] (core 1.220): subscribe to server→client notifications; returns unsubscribe. Additive —
|
|
30
|
-
* core's diagnostics registry is the intended consumer; with no subscriber, behavior is byte-identical. */
|
|
31
|
-
onNotification(handler: (method: string, params: unknown) => void): () => void;
|
|
32
|
-
close(): Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Connect to a language server's WS bridge inside E2B and run the LSP `initialize`/`initialized` handshake.
|
|
36
|
-
* Returns `undefined` on any failure (→ the manager degrades that language gracefully). `wsUrl` is the
|
|
37
|
-
* `wss://…e2b.dev` URL from `sandbox.getHost(port)`; `rootPath` is the in-sandbox workspace root.
|
|
38
|
-
*/
|
|
39
|
-
export declare function connectWsLspTransport(wsUrl: string, rootPath: string, signal?: AbortSignal, initializationOptions?: unknown): Promise<LspTransport | undefined>;
|
|
40
|
-
//# sourceMappingURL=ws-transport.d.ts.map
|
package/dist/lsp/ws-transport.js
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import WebSocket from "ws";
|
|
2
|
-
import { pathToUri } from "@sema-agent/core";
|
|
3
|
-
function toError(e) {
|
|
4
|
-
if (e instanceof Error)
|
|
5
|
-
return e;
|
|
6
|
-
const m = e?.message;
|
|
7
|
-
return new Error(typeof m === "string" && m ? m : String(e));
|
|
8
|
-
}
|
|
9
|
-
export class WsLspTransport {
|
|
10
|
-
ws;
|
|
11
|
-
requestTimeoutMs;
|
|
12
|
-
nextId = 0;
|
|
13
|
-
pending = new Map();
|
|
14
|
-
isClosed = false;
|
|
15
|
-
keepalive;
|
|
16
|
-
awaitingPong = false;
|
|
17
|
-
notificationHandlers = new Set();
|
|
18
|
-
constructor(ws, requestTimeoutMs = 30_000, keepaliveMs = 20_000) {
|
|
19
|
-
this.ws = ws;
|
|
20
|
-
this.requestTimeoutMs = requestTimeoutMs;
|
|
21
|
-
ws.on("message", (data) => this.onMessage(typeof data === "string" ? data : String(data)));
|
|
22
|
-
ws.on("close", () => this.failAll(new Error("LSP websocket closed")));
|
|
23
|
-
ws.on("error", (e) => this.failAll(toError(e)));
|
|
24
|
-
if (keepaliveMs > 0) {
|
|
25
|
-
ws.on("pong", () => {
|
|
26
|
-
this.awaitingPong = false;
|
|
27
|
-
});
|
|
28
|
-
this.keepalive = setInterval(() => {
|
|
29
|
-
if (this.awaitingPong) {
|
|
30
|
-
this.failAll(new Error("LSP websocket unresponsive (no pong)"));
|
|
31
|
-
try {
|
|
32
|
-
(ws.terminate ?? ws.close).call(ws);
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
}
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (typeof ws.ping === "function") {
|
|
39
|
-
this.awaitingPong = true;
|
|
40
|
-
try {
|
|
41
|
-
ws.ping();
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
this.notify("$/keepalive", {});
|
|
47
|
-
}, keepaliveMs);
|
|
48
|
-
this.keepalive.unref?.();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
get closed() {
|
|
52
|
-
return this.isClosed;
|
|
53
|
-
}
|
|
54
|
-
onMessage(raw) {
|
|
55
|
-
let msg;
|
|
56
|
-
try {
|
|
57
|
-
msg = JSON.parse(raw);
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (typeof msg.method === "string") {
|
|
63
|
-
if (msg.id !== undefined && msg.id !== null) {
|
|
64
|
-
try {
|
|
65
|
-
this.ws.send(JSON.stringify({ jsonrpc: "2.0", id: msg.id, error: { code: -32601, message: "method not found" } }));
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
}
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const params = msg.params;
|
|
72
|
-
for (const h of this.notificationHandlers) {
|
|
73
|
-
try {
|
|
74
|
-
h(msg.method, params);
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
if (typeof msg.id === "number") {
|
|
82
|
-
const p = this.pending.get(msg.id);
|
|
83
|
-
if (p) {
|
|
84
|
-
this.pending.delete(msg.id);
|
|
85
|
-
if (msg.error)
|
|
86
|
-
p.reject(new Error(msg.error.message ?? "LSP error"));
|
|
87
|
-
else
|
|
88
|
-
p.resolve(msg.result);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
failAll(err) {
|
|
93
|
-
this.isClosed = true;
|
|
94
|
-
if (this.keepalive)
|
|
95
|
-
clearInterval(this.keepalive);
|
|
96
|
-
for (const p of this.pending.values())
|
|
97
|
-
p.reject(err);
|
|
98
|
-
this.pending.clear();
|
|
99
|
-
}
|
|
100
|
-
request(method, params, signal) {
|
|
101
|
-
if (this.isClosed)
|
|
102
|
-
return Promise.reject(new Error("LSP transport closed"));
|
|
103
|
-
const id = ++this.nextId;
|
|
104
|
-
return new Promise((resolve, reject) => {
|
|
105
|
-
const timer = setTimeout(() => {
|
|
106
|
-
if (this.pending.delete(id)) {
|
|
107
|
-
signal?.removeEventListener("abort", onAbort);
|
|
108
|
-
reject(new Error(`LSP ${method} timed out after ${this.requestTimeoutMs}ms`));
|
|
109
|
-
}
|
|
110
|
-
}, this.requestTimeoutMs);
|
|
111
|
-
const cleanup = () => {
|
|
112
|
-
clearTimeout(timer);
|
|
113
|
-
signal?.removeEventListener("abort", onAbort);
|
|
114
|
-
};
|
|
115
|
-
const onAbort = () => {
|
|
116
|
-
if (this.pending.delete(id)) {
|
|
117
|
-
cleanup();
|
|
118
|
-
reject(new Error(`LSP ${method} aborted`));
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
this.pending.set(id, {
|
|
122
|
-
resolve: (v) => {
|
|
123
|
-
cleanup();
|
|
124
|
-
resolve(v);
|
|
125
|
-
},
|
|
126
|
-
reject: (e) => {
|
|
127
|
-
cleanup();
|
|
128
|
-
reject(e);
|
|
129
|
-
},
|
|
130
|
-
});
|
|
131
|
-
if (signal) {
|
|
132
|
-
if (signal.aborted)
|
|
133
|
-
return onAbort();
|
|
134
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
135
|
-
}
|
|
136
|
-
try {
|
|
137
|
-
this.ws.send(JSON.stringify({ jsonrpc: "2.0", id, method, params }));
|
|
138
|
-
}
|
|
139
|
-
catch (e) {
|
|
140
|
-
if (this.pending.delete(id)) {
|
|
141
|
-
cleanup();
|
|
142
|
-
reject(e instanceof Error ? e : new Error(String(e)));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
notify(method, params) {
|
|
148
|
-
if (this.isClosed)
|
|
149
|
-
return;
|
|
150
|
-
try {
|
|
151
|
-
this.ws.send(JSON.stringify({ jsonrpc: "2.0", method, params }));
|
|
152
|
-
}
|
|
153
|
-
catch {
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
onNotification(handler) {
|
|
157
|
-
this.notificationHandlers.add(handler);
|
|
158
|
-
return () => this.notificationHandlers.delete(handler);
|
|
159
|
-
}
|
|
160
|
-
async close() {
|
|
161
|
-
this.failAll(new Error("LSP transport closed"));
|
|
162
|
-
try {
|
|
163
|
-
this.ws.close();
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
export async function connectWsLspTransport(wsUrl, rootPath, signal, initializationOptions) {
|
|
170
|
-
let socket;
|
|
171
|
-
try {
|
|
172
|
-
socket = new WebSocket(wsUrl);
|
|
173
|
-
socket.on("error", () => { });
|
|
174
|
-
await new Promise((resolve, reject) => {
|
|
175
|
-
const onAbort = () => reject(new Error("connect aborted"));
|
|
176
|
-
const settle = (fn) => {
|
|
177
|
-
signal?.removeEventListener("abort", onAbort);
|
|
178
|
-
fn();
|
|
179
|
-
};
|
|
180
|
-
socket.once("open", () => settle(resolve));
|
|
181
|
-
socket.once("error", (e) => settle(() => reject(toError(e))));
|
|
182
|
-
if (signal)
|
|
183
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
catch {
|
|
187
|
-
try {
|
|
188
|
-
socket?.close();
|
|
189
|
-
}
|
|
190
|
-
catch {
|
|
191
|
-
}
|
|
192
|
-
return undefined;
|
|
193
|
-
}
|
|
194
|
-
const transport = new WsLspTransport(socket);
|
|
195
|
-
try {
|
|
196
|
-
await transport.request("initialize", {
|
|
197
|
-
processId: null,
|
|
198
|
-
rootUri: pathToUri(rootPath),
|
|
199
|
-
capabilities: { textDocument: { definition: {}, references: {}, hover: {}, documentSymbol: {}, implementation: {}, callHierarchy: {} }, workspace: { symbol: {} } },
|
|
200
|
-
...(initializationOptions !== undefined ? { initializationOptions } : {}),
|
|
201
|
-
}, signal);
|
|
202
|
-
transport.notify("initialized", {});
|
|
203
|
-
return transport;
|
|
204
|
-
}
|
|
205
|
-
catch {
|
|
206
|
-
await transport.close();
|
|
207
|
-
return undefined;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=ws-transport.js.map
|