@sentropic/h2a-runtime 0.98.6 → 0.98.7-rc.10
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/dist/agent-launch-args.d.ts.map +1 -1
- package/dist/agent-launch-args.js +5 -5
- package/dist/agent-launch-args.js.map +1 -1
- package/dist/agy-claude.d.ts +42 -0
- package/dist/agy-claude.d.ts.map +1 -0
- package/dist/agy-claude.js +148 -0
- package/dist/agy-claude.js.map +1 -0
- package/dist/agy-headless.d.ts +11 -0
- package/dist/agy-headless.d.ts.map +1 -0
- package/dist/agy-headless.js +104 -0
- package/dist/agy-headless.js.map +1 -0
- package/dist/attach.d.ts +5 -0
- package/dist/attach.d.ts.map +1 -1
- package/dist/attach.js +75 -6
- package/dist/attach.js.map +1 -1
- package/dist/auth-login.d.ts +24 -1
- package/dist/auth-login.d.ts.map +1 -1
- package/dist/auth-login.js +132 -4
- package/dist/auth-login.js.map +1 -1
- package/dist/central-mcp.d.ts +34 -0
- package/dist/central-mcp.d.ts.map +1 -1
- package/dist/central-mcp.js +275 -71
- package/dist/central-mcp.js.map +1 -1
- package/dist/claude-code-cli-isolation.d.ts +53 -0
- package/dist/claude-code-cli-isolation.d.ts.map +1 -0
- package/dist/claude-code-cli-isolation.js +277 -0
- package/dist/claude-code-cli-isolation.js.map +1 -0
- package/dist/claude-code-cli-lifecycle.d.ts +80 -0
- package/dist/claude-code-cli-lifecycle.d.ts.map +1 -0
- package/dist/claude-code-cli-lifecycle.js +402 -0
- package/dist/claude-code-cli-lifecycle.js.map +1 -0
- package/dist/claude-code-cli-runner.d.ts +89 -0
- package/dist/claude-code-cli-runner.d.ts.map +1 -0
- package/dist/claude-code-cli-runner.js +659 -0
- package/dist/claude-code-cli-runner.js.map +1 -0
- package/dist/claude-seat-input.d.ts +47 -0
- package/dist/claude-seat-input.d.ts.map +1 -0
- package/dist/claude-seat-input.js +272 -0
- package/dist/claude-seat-input.js.map +1 -0
- package/dist/claude-seat-mesh-contract.d.ts +88 -0
- package/dist/claude-seat-mesh-contract.d.ts.map +1 -0
- package/dist/claude-seat-mesh-contract.js +13 -0
- package/dist/claude-seat-mesh-contract.js.map +1 -0
- package/dist/cli-help-groups.js +1 -1
- package/dist/cli-help-groups.js.map +1 -1
- package/dist/cli-seat-codecs.d.ts +86 -0
- package/dist/cli-seat-codecs.d.ts.map +1 -0
- package/dist/cli-seat-codecs.js +255 -0
- package/dist/cli-seat-codecs.js.map +1 -0
- package/dist/cli-seat-fixtures.d.ts +86 -0
- package/dist/cli-seat-fixtures.d.ts.map +1 -0
- package/dist/cli-seat-fixtures.js +114 -0
- package/dist/cli-seat-fixtures.js.map +1 -0
- package/dist/cli-seat-materialization.d.ts +245 -0
- package/dist/cli-seat-materialization.d.ts.map +1 -0
- package/dist/cli-seat-materialization.js +646 -0
- package/dist/cli-seat-materialization.js.map +1 -0
- package/dist/conv-guard.d.ts.map +1 -1
- package/dist/conv-guard.js +6 -2
- package/dist/conv-guard.js.map +1 -1
- package/dist/crash-log.d.ts +112 -0
- package/dist/crash-log.d.ts.map +1 -0
- package/dist/crash-log.js +560 -0
- package/dist/crash-log.js.map +1 -0
- package/dist/delegate.d.ts +10 -0
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +29 -0
- package/dist/delegate.js.map +1 -1
- package/dist/file-lock.d.ts +4 -2
- package/dist/file-lock.d.ts.map +1 -1
- package/dist/file-lock.js +24 -10
- package/dist/file-lock.js.map +1 -1
- package/dist/gateway-host/claude-seat-client.d.ts +32 -0
- package/dist/gateway-host/claude-seat-client.d.ts.map +1 -0
- package/dist/gateway-host/claude-seat-client.js +38 -0
- package/dist/gateway-host/claude-seat-client.js.map +1 -0
- package/dist/gateway-host/config-file.d.ts +2 -0
- package/dist/gateway-host/config-file.d.ts.map +1 -1
- package/dist/gateway-host/config-file.js +5 -1
- package/dist/gateway-host/config-file.js.map +1 -1
- package/dist/gateway-host/daemon.d.ts.map +1 -1
- package/dist/gateway-host/daemon.js +1 -2
- package/dist/gateway-host/daemon.js.map +1 -1
- package/dist/gateway-host/host.d.ts +6 -0
- package/dist/gateway-host/host.d.ts.map +1 -1
- package/dist/gateway-host/host.js +24 -3
- package/dist/gateway-host/host.js.map +1 -1
- package/dist/gateway-host/live-auth.d.ts +62 -0
- package/dist/gateway-host/live-auth.d.ts.map +1 -0
- package/dist/gateway-host/live-auth.js +87 -0
- package/dist/gateway-host/live-auth.js.map +1 -0
- package/dist/gateway-host/live-declarations.d.ts +58 -0
- package/dist/gateway-host/live-declarations.d.ts.map +1 -0
- package/dist/gateway-host/live-declarations.js +429 -0
- package/dist/gateway-host/live-declarations.js.map +1 -0
- package/dist/gateway-host/live-disclosure.d.ts +124 -0
- package/dist/gateway-host/live-disclosure.d.ts.map +1 -0
- package/dist/gateway-host/live-disclosure.js +347 -0
- package/dist/gateway-host/live-disclosure.js.map +1 -0
- package/dist/gateway-host/live-github.d.ts +11 -0
- package/dist/gateway-host/live-github.d.ts.map +1 -0
- package/dist/gateway-host/live-github.js +374 -0
- package/dist/gateway-host/live-github.js.map +1 -0
- package/dist/gateway-host/live-host.d.ts +20 -0
- package/dist/gateway-host/live-host.d.ts.map +1 -0
- package/dist/gateway-host/live-host.js +14 -0
- package/dist/gateway-host/live-host.js.map +1 -0
- package/dist/gateway-host/live-object-store.d.ts +35 -0
- package/dist/gateway-host/live-object-store.d.ts.map +1 -0
- package/dist/gateway-host/live-object-store.js +447 -0
- package/dist/gateway-host/live-object-store.js.map +1 -0
- package/dist/gateway-host/live-registration.d.ts +162 -0
- package/dist/gateway-host/live-registration.d.ts.map +1 -0
- package/dist/gateway-host/live-registration.js +455 -0
- package/dist/gateway-host/live-registration.js.map +1 -0
- package/dist/gateway-model-catalog/model-catalog.d.ts +38 -0
- package/dist/gateway-model-catalog/model-catalog.d.ts.map +1 -0
- package/dist/gateway-model-catalog/model-catalog.js +167 -0
- package/dist/gateway-model-catalog/model-catalog.js.map +1 -0
- package/dist/identity-cull/cull.js +1 -1
- package/dist/identity-cull/cull.js.map +1 -1
- package/dist/identity-cull/identity-fence.d.ts +48 -0
- package/dist/identity-cull/identity-fence.d.ts.map +1 -0
- package/dist/identity-cull/identity-fence.js +221 -0
- package/dist/identity-cull/identity-fence.js.map +1 -0
- package/dist/identity-operator-break.d.ts +43 -0
- package/dist/identity-operator-break.d.ts.map +1 -0
- package/dist/identity-operator-break.js +85 -0
- package/dist/identity-operator-break.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +525 -132
- package/dist/index.js.map +1 -1
- package/dist/launch-layout.d.ts.map +1 -1
- package/dist/launch-layout.js +10 -2
- package/dist/launch-layout.js.map +1 -1
- package/dist/llm-mesh-accounts.d.ts +128 -6
- package/dist/llm-mesh-accounts.d.ts.map +1 -1
- package/dist/llm-mesh-accounts.js +370 -14
- package/dist/llm-mesh-accounts.js.map +1 -1
- package/dist/native-host.d.ts +25 -1
- package/dist/native-host.d.ts.map +1 -1
- package/dist/native-host.js +211 -28
- package/dist/native-host.js.map +1 -1
- package/dist/native-restart.d.ts +2 -0
- package/dist/native-restart.d.ts.map +1 -1
- package/dist/native-restart.js +7 -0
- package/dist/native-restart.js.map +1 -1
- package/dist/native-terminal/fleet.d.ts +11 -0
- package/dist/native-terminal/fleet.d.ts.map +1 -1
- package/dist/native-terminal/fleet.js +58 -1
- package/dist/native-terminal/fleet.js.map +1 -1
- package/dist/native-terminal/host-scope.d.ts +18 -0
- package/dist/native-terminal/host-scope.d.ts.map +1 -0
- package/dist/native-terminal/host-scope.js +65 -0
- package/dist/native-terminal/host-scope.js.map +1 -0
- package/dist/native-terminal/host.d.ts +7 -1
- package/dist/native-terminal/host.d.ts.map +1 -1
- package/dist/native-terminal/host.js +10 -26
- package/dist/native-terminal/host.js.map +1 -1
- package/dist/native-terminal/journal.d.ts +5 -0
- package/dist/native-terminal/journal.d.ts.map +1 -1
- package/dist/native-terminal/journal.js +28 -16
- package/dist/native-terminal/journal.js.map +1 -1
- package/dist/native-terminal/op.d.ts +49 -1
- package/dist/native-terminal/op.d.ts.map +1 -1
- package/dist/native-terminal/op.js +254 -38
- package/dist/native-terminal/op.js.map +1 -1
- package/dist/native-terminal/process.d.ts.map +1 -1
- package/dist/native-terminal/process.js +10 -1
- package/dist/native-terminal/process.js.map +1 -1
- package/dist/native-terminal/screen.d.ts.map +1 -1
- package/dist/native-terminal/screen.js +1 -1
- package/dist/native-terminal/screen.js.map +1 -1
- package/dist/native-terminal/server.d.ts +12 -2
- package/dist/native-terminal/server.d.ts.map +1 -1
- package/dist/native-terminal/server.js +143 -42
- package/dist/native-terminal/server.js.map +1 -1
- package/dist/native-terminal/session-scope.d.ts +2 -0
- package/dist/native-terminal/session-scope.d.ts.map +1 -0
- package/dist/native-terminal/session-scope.js +32 -0
- package/dist/native-terminal/session-scope.js.map +1 -0
- package/dist/proc-identity.d.ts +31 -0
- package/dist/proc-identity.d.ts.map +1 -1
- package/dist/proc-identity.js +54 -0
- package/dist/proc-identity.js.map +1 -1
- package/dist/prompt-delivery.d.ts +3 -0
- package/dist/prompt-delivery.d.ts.map +1 -1
- package/dist/prompt-delivery.js +8 -3
- package/dist/prompt-delivery.js.map +1 -1
- package/dist/protocol-local.d.ts +16 -0
- package/dist/protocol-local.d.ts.map +1 -1
- package/dist/protocol-local.js +14 -0
- package/dist/protocol-local.js.map +1 -1
- package/dist/registry.d.ts +16 -12
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +39 -5
- package/dist/registry.js.map +1 -1
- package/dist/relaunch.d.ts +16 -0
- package/dist/relaunch.d.ts.map +1 -1
- package/dist/relaunch.js +42 -1
- package/dist/relaunch.js.map +1 -1
- package/dist/restore.d.ts +4 -0
- package/dist/restore.d.ts.map +1 -1
- package/dist/restore.js +9 -37
- package/dist/restore.js.map +1 -1
- package/dist/resume-launch-options.d.ts +3 -3
- package/dist/resume-launch-options.d.ts.map +1 -1
- package/dist/resume-launch-options.js +7 -4
- package/dist/resume-launch-options.js.map +1 -1
- package/dist/run.d.ts +2 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +88 -20
- package/dist/run.js.map +1 -1
- package/dist/soft-refresh.d.ts.map +1 -1
- package/dist/soft-refresh.js +6 -0
- package/dist/soft-refresh.js.map +1 -1
- package/dist/terminal-reset.d.ts +104 -0
- package/dist/terminal-reset.d.ts.map +1 -0
- package/dist/terminal-reset.js +229 -0
- package/dist/terminal-reset.js.map +1 -0
- package/dist/tmux.d.ts +54 -8
- package/dist/tmux.d.ts.map +1 -1
- package/dist/tmux.js +143 -36
- package/dist/tmux.js.map +1 -1
- package/dist/vendor/engram-live/contracts.d.ts +825 -0
- package/dist/vendor/engram-live/contracts.js +1734 -0
- package/dist/vendor/engram-live/integration.d.ts +113 -0
- package/dist/vendor/engram-live/integration.js +254 -0
- package/dist/vendor/engram-live/pr-sync.d.ts +144 -0
- package/dist/vendor/engram-live/pr-sync.js +411 -0
- package/dist/vendor/engram-live/registration.d.ts +138 -0
- package/dist/vendor/engram-live/registration.js +358 -0
- package/dist/vendor/engram-live/retention.d.ts +56 -0
- package/dist/vendor/engram-live/retention.js +179 -0
- package/package.json +6 -6
package/dist/central-mcp.js
CHANGED
|
@@ -1,36 +1,157 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Runtime-side central MCP lifecycle.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Runtime-side central MCP lifecycle. This module owns its end of the
|
|
3
|
+
* central contract: endpoint selection, marker read/validation, HTTP
|
|
4
|
+
* liveness ping, and starting the existing foreground serve command as a
|
|
5
|
+
* detached child when necessary. It deliberately never names the core
|
|
6
|
+
* package: host-config rendering stays a core command invoked over the
|
|
7
|
+
* `h2a` binary (the same spawn pattern used for `mcp-central-serve`
|
|
8
|
+
* below), so isolated installs of this package keep working and degrade
|
|
9
|
+
* cleanly where core is absent.
|
|
10
|
+
*
|
|
11
|
+
* Cross-package constants below (env names, marker directory/file, ping
|
|
12
|
+
* path, file mode) mirror the core contract values. They are pinned by the
|
|
13
|
+
* vitest suite in this directory, which exercises them against real
|
|
14
|
+
* markers and a real HTTP peer.
|
|
6
15
|
*/
|
|
7
|
-
import { spawn } from "node:child_process";
|
|
8
|
-
import { chmodSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
16
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
17
|
+
import { chmodSync, closeSync, constants, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, renameSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
9
18
|
import { homedir } from "node:os";
|
|
10
19
|
import { dirname, join } from "node:path";
|
|
11
20
|
import { getH2aConfig, resolveConfigPath, setH2aConfig } from "./config.js";
|
|
21
|
+
import { appendCrashLog, MAX_CRASH_LOG_BYTES } from "./crash-log.js";
|
|
12
22
|
const CENTRAL_PORT_BASE = 47_000;
|
|
13
23
|
const CENTRAL_PORT_SPAN = 10_000;
|
|
14
24
|
const CENTRAL_START_TIMEOUT_MS = 10_000;
|
|
15
25
|
const CENTRAL_START_POLL_MS = 100;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
// Stable cross-package contract values (mirrored from core; pinned by the
|
|
27
|
+
// vitest suite in this directory against real markers and a real HTTP peer).
|
|
28
|
+
export const H2A_MCP_CENTRAL_ENV = "H2A_MCP_CENTRAL";
|
|
29
|
+
export const H2A_MCP_CENTRAL_ENDPOINT_ENV = "H2A_MCP_CENTRAL_ENDPOINT";
|
|
30
|
+
const CENTRAL_RUNTIME_DIRECTORY = "h2a-mcp-central";
|
|
31
|
+
const CENTRAL_MARKER_FILE = "marker.json";
|
|
32
|
+
const CENTRAL_PING_PATH = "/_h2a-central/ping";
|
|
33
|
+
const CENTRAL_LIVENESS_TIMEOUT_MS = 1_500;
|
|
34
|
+
const CENTRAL_HOST_SETUP_TIMEOUT_MS = 60_000;
|
|
35
|
+
function currentUid() {
|
|
36
|
+
if (typeof process.getuid !== "function") {
|
|
37
|
+
throw new Error(`${H2A_MCP_CENTRAL_ENDPOINT_ENV} requires a current uid`);
|
|
38
|
+
}
|
|
39
|
+
return process.getuid();
|
|
40
|
+
}
|
|
41
|
+
function centralMcpMarkerPath(paths = {}) {
|
|
42
|
+
const base = paths.runtimeBase ?? join("/run/user", String(currentUid()));
|
|
43
|
+
return join(base, CENTRAL_RUNTIME_DIRECTORY, CENTRAL_MARKER_FILE);
|
|
44
|
+
}
|
|
45
|
+
function isLoopbackHostname(hostname) {
|
|
46
|
+
return hostname === "127.0.0.1" || hostname === "::1" || hostname === "[::1]" || hostname === "localhost";
|
|
47
|
+
}
|
|
48
|
+
function parseCentralMcpEndpoint(value) {
|
|
49
|
+
if (!value || value.trim().length === 0) {
|
|
50
|
+
throw new Error(`${H2A_MCP_CENTRAL_ENDPOINT_ENV} must be a non-empty absolute http URL`);
|
|
51
|
+
}
|
|
52
|
+
let endpoint;
|
|
53
|
+
try {
|
|
54
|
+
endpoint = new URL(value);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
throw new Error(`${H2A_MCP_CENTRAL_ENDPOINT_ENV} must be a non-empty absolute http URL`);
|
|
58
|
+
}
|
|
59
|
+
if (endpoint.protocol !== "http:" ||
|
|
60
|
+
!isLoopbackHostname(endpoint.hostname) ||
|
|
61
|
+
!endpoint.port ||
|
|
62
|
+
Number(endpoint.port) < 1 ||
|
|
63
|
+
Number(endpoint.port) > 65_535 ||
|
|
64
|
+
endpoint.username ||
|
|
65
|
+
endpoint.password ||
|
|
66
|
+
endpoint.search ||
|
|
67
|
+
endpoint.hash) {
|
|
68
|
+
throw new Error(`${H2A_MCP_CENTRAL_ENDPOINT_ENV} must be an absolute http URL with an explicit port`);
|
|
69
|
+
}
|
|
70
|
+
return endpoint.href;
|
|
71
|
+
}
|
|
72
|
+
function errorHasCode(error, expectedCode) {
|
|
73
|
+
let current = error;
|
|
74
|
+
for (let depth = 0; depth < 4 && current && typeof current === "object"; depth += 1) {
|
|
75
|
+
if (current.code === expectedCode)
|
|
76
|
+
return true;
|
|
77
|
+
current = current.cause;
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
export async function centralMcpPing(endpoint, timeoutMs = CENTRAL_LIVENESS_TIMEOUT_MS) {
|
|
82
|
+
const canonicalEndpoint = parseCentralMcpEndpoint(endpoint);
|
|
83
|
+
const controller = new AbortController();
|
|
84
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
85
|
+
const pingUrl = new URL(CENTRAL_PING_PATH, canonicalEndpoint).href;
|
|
86
|
+
return fetch(pingUrl, { signal: controller.signal }).then(async (response) => {
|
|
87
|
+
clearTimeout(timeout);
|
|
88
|
+
if (!response.ok)
|
|
89
|
+
return { kind: "dead" };
|
|
90
|
+
try {
|
|
91
|
+
const body = (await response.json());
|
|
92
|
+
return typeof body.generation === "string" && body.generation.length > 0
|
|
93
|
+
? { kind: "generation", generation: body.generation }
|
|
94
|
+
: { kind: "dead" };
|
|
30
95
|
}
|
|
31
|
-
|
|
96
|
+
catch {
|
|
97
|
+
return { kind: "dead" };
|
|
98
|
+
}
|
|
99
|
+
}, (error) => {
|
|
100
|
+
clearTimeout(timeout);
|
|
101
|
+
// ECONNREFUSED is the only transport failure that positively proves no
|
|
102
|
+
// listener owns this registration. Timeouts and all other errors are not.
|
|
103
|
+
return (errorHasCode(error, "ECONNREFUSED") ? { kind: "dead" } : { kind: "ambiguous" });
|
|
32
104
|
});
|
|
33
|
-
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Read the protected central marker without exposing its token to callers
|
|
108
|
+
* that only need liveness/generation metadata. A missing marker is the sole
|
|
109
|
+
* non-error absence case; malformed or insecure state remains a hard failure.
|
|
110
|
+
*/
|
|
111
|
+
export function readCentralMcpMarker(paths = {}) {
|
|
112
|
+
const path = centralMcpMarkerPath(paths);
|
|
113
|
+
let info;
|
|
114
|
+
try {
|
|
115
|
+
info = lstatSync(path);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error.code === "ENOENT")
|
|
119
|
+
return undefined;
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
if (!info.isFile())
|
|
123
|
+
throw new Error(`central MCP marker is not a regular file: ${path}`);
|
|
124
|
+
if (info.uid !== currentUid())
|
|
125
|
+
throw new Error(`central MCP marker is not owned by the current user: ${path}`);
|
|
126
|
+
if ((info.mode & 0o777) !== 0o600)
|
|
127
|
+
throw new Error(`central MCP marker must have mode 0600: ${path}`);
|
|
128
|
+
let value;
|
|
129
|
+
try {
|
|
130
|
+
value = JSON.parse(readFileSync(path, "utf8"));
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
throw new Error(`central MCP marker is malformed: ${path}`);
|
|
134
|
+
}
|
|
135
|
+
if (typeof value.endpoint !== "string" ||
|
|
136
|
+
typeof value.generation !== "string" ||
|
|
137
|
+
value.generation.length === 0 ||
|
|
138
|
+
typeof value.pid !== "number" ||
|
|
139
|
+
typeof value.startedAt !== "string" ||
|
|
140
|
+
typeof value.token !== "string" ||
|
|
141
|
+
value.token.length === 0) {
|
|
142
|
+
throw new Error(`central MCP marker is malformed: ${path}`);
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
return {
|
|
146
|
+
endpoint: parseCentralMcpEndpoint(value.endpoint),
|
|
147
|
+
generation: value.generation,
|
|
148
|
+
pid: value.pid,
|
|
149
|
+
startedAt: value.startedAt,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
throw new Error(`central MCP marker is malformed: ${path}`);
|
|
154
|
+
}
|
|
34
155
|
}
|
|
35
156
|
function delay(milliseconds) {
|
|
36
157
|
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
@@ -57,26 +178,96 @@ function configuredCentralEndpoint() {
|
|
|
57
178
|
});
|
|
58
179
|
return endpoint;
|
|
59
180
|
}
|
|
181
|
+
/** Raw (unstructured) central MCP server output. Read by `h2a logs`, rotated at spawn. */
|
|
182
|
+
export function resolveCentralMcpLogPath() {
|
|
183
|
+
return join(dirname(resolveConfigPath()), "mcp-central.log");
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Cap a rotated raw log to its last bound bytes, line-aligned, mode
|
|
187
|
+
* preserved. Reads the tail window positionally — the (possibly huge)
|
|
188
|
+
* rotation is never loaded whole.
|
|
189
|
+
*/
|
|
190
|
+
function boundRawLogTail(path) {
|
|
191
|
+
let fd;
|
|
192
|
+
try {
|
|
193
|
+
const size = statSync(path).size;
|
|
194
|
+
if (size <= MAX_CRASH_LOG_BYTES)
|
|
195
|
+
return;
|
|
196
|
+
fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
197
|
+
const tail = Buffer.alloc(MAX_CRASH_LOG_BYTES);
|
|
198
|
+
const start = size - MAX_CRASH_LOG_BYTES;
|
|
199
|
+
for (let offset = 0; offset < tail.length;) {
|
|
200
|
+
const read = readSync(fd, tail, offset, tail.length - offset, start + offset);
|
|
201
|
+
if (read <= 0)
|
|
202
|
+
break;
|
|
203
|
+
offset += read;
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
closeSync(fd);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
/* fall through to the truncation below */
|
|
210
|
+
}
|
|
211
|
+
fd = undefined;
|
|
212
|
+
const cut = tail.indexOf(0x0a);
|
|
213
|
+
writeFileSync(path, cut < 0 ? tail : tail.subarray(cut + 1));
|
|
214
|
+
chmodSync(path, 0o600);
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
/* best-effort: bounding never blocks the spawn below */
|
|
218
|
+
}
|
|
219
|
+
finally {
|
|
220
|
+
if (fd !== undefined) {
|
|
221
|
+
try {
|
|
222
|
+
closeSync(fd);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
/* bounding never throws */
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
60
230
|
function centralLogFile() {
|
|
61
|
-
const path =
|
|
231
|
+
const path = resolveCentralMcpLogPath();
|
|
62
232
|
mkdirSync(dirname(path), { recursive: true });
|
|
233
|
+
// Bounded at spawn: rotate the raw server output instead of growing it
|
|
234
|
+
// forever, and cap the rotation so a long-running server cannot leave an
|
|
235
|
+
// unbounded `.1` behind either. Output written between spawns is still
|
|
236
|
+
// unbounded (only the server could pace that); `h2a logs` shows its tail.
|
|
237
|
+
try {
|
|
238
|
+
if (existsSync(path) && statSync(path).size >= MAX_CRASH_LOG_BYTES) {
|
|
239
|
+
try {
|
|
240
|
+
unlinkSync(`${path}.1`);
|
|
241
|
+
}
|
|
242
|
+
catch { /* missing rotation is fine */ }
|
|
243
|
+
renameSync(path, `${path}.1`);
|
|
244
|
+
boundRawLogTail(`${path}.1`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch { /* rotation is best-effort; the spawn below still proceeds */ }
|
|
63
248
|
return path;
|
|
64
249
|
}
|
|
65
|
-
async function waitForCentralStart(
|
|
250
|
+
async function waitForCentralStart(paths, endpoint, spawnFailure) {
|
|
66
251
|
const deadline = Date.now() + CENTRAL_START_TIMEOUT_MS;
|
|
67
252
|
while (Date.now() < deadline) {
|
|
68
253
|
const failure = spawnFailure();
|
|
69
|
-
if (failure)
|
|
254
|
+
if (failure) {
|
|
255
|
+
// The server child never started: a startup failure, not a child exit.
|
|
256
|
+
appendCrashLog("mcp-server", { event: "startupError", reason: "spawn-failed", detail: failure.message });
|
|
70
257
|
throw failure;
|
|
71
|
-
|
|
258
|
+
}
|
|
259
|
+
const ping = await centralMcpPing(endpoint, CENTRAL_START_POLL_MS);
|
|
72
260
|
if (ping.kind === "generation") {
|
|
73
|
-
const marker =
|
|
261
|
+
const marker = readCentralMcpMarker(paths);
|
|
74
262
|
if (marker?.endpoint === endpoint && marker.generation === ping.generation) {
|
|
75
263
|
return { endpoint, generation: ping.generation };
|
|
76
264
|
}
|
|
77
265
|
}
|
|
78
266
|
await delay(CENTRAL_START_POLL_MS);
|
|
79
267
|
}
|
|
268
|
+
// No child exited: the launcher gave up waiting, so `exit` (not
|
|
269
|
+
// `childExit`) keeps the record honest.
|
|
270
|
+
appendCrashLog("mcp-server", { event: "exit", reason: "readiness-timeout", detail: endpoint });
|
|
80
271
|
throw new Error(`central MCP did not become ready at ${endpoint} within ${CENTRAL_START_TIMEOUT_MS}ms`);
|
|
81
272
|
}
|
|
82
273
|
/**
|
|
@@ -88,17 +279,19 @@ export async function ensureCentralMcp(options = {}) {
|
|
|
88
279
|
const endpoint = configuredCentralEndpoint();
|
|
89
280
|
if (!endpoint)
|
|
90
281
|
return undefined;
|
|
91
|
-
const
|
|
92
|
-
const marker =
|
|
282
|
+
const paths = options.paths ?? {};
|
|
283
|
+
const marker = readCentralMcpMarker(paths);
|
|
93
284
|
if (marker) {
|
|
94
|
-
const ping = await
|
|
285
|
+
const ping = await centralMcpPing(marker.endpoint);
|
|
95
286
|
if (ping.kind === "ambiguous") {
|
|
287
|
+
appendCrashLog("mcp-server", { event: "refusal", instanceId: marker.generation, reason: "ambiguous-liveness", detail: marker.endpoint });
|
|
96
288
|
throw new Error(`central MCP liveness at ${marker.endpoint} is ambiguous; refusing to start another server`);
|
|
97
289
|
}
|
|
98
290
|
if (ping.kind === "generation") {
|
|
99
291
|
if (marker.endpoint === endpoint && ping.generation === marker.generation) {
|
|
100
292
|
return { endpoint, generation: marker.generation };
|
|
101
293
|
}
|
|
294
|
+
appendCrashLog("mcp-server", { event: "refusal", instanceId: marker.generation, reason: "marker-listener-mismatch", detail: marker.endpoint });
|
|
102
295
|
throw new Error(`central MCP marker/listener mismatch (${marker.endpoint}, generation ${marker.generation}); refusing to replace a live server`);
|
|
103
296
|
}
|
|
104
297
|
}
|
|
@@ -112,19 +305,33 @@ export async function ensureCentralMcp(options = {}) {
|
|
|
112
305
|
stdio: ["ignore", logFd, logFd],
|
|
113
306
|
env: {
|
|
114
307
|
...process.env,
|
|
115
|
-
[
|
|
116
|
-
[
|
|
308
|
+
[H2A_MCP_CENTRAL_ENV]: "1",
|
|
309
|
+
[H2A_MCP_CENTRAL_ENDPOINT_ENV]: endpoint,
|
|
117
310
|
},
|
|
118
311
|
});
|
|
119
312
|
child.once("error", (error) => {
|
|
120
313
|
spawnError = error;
|
|
121
314
|
});
|
|
315
|
+
// A post-readiness crash leaves a structured record while this launcher
|
|
316
|
+
// is still alive. (Once the launcher exits, only the raw server output
|
|
317
|
+
// in mcp-central.log witnesses a later death — see `h2a logs`.)
|
|
318
|
+
child.once("exit", (code, signal) => {
|
|
319
|
+
if (code === 0 || (code === null && signal === null))
|
|
320
|
+
return;
|
|
321
|
+
appendCrashLog("mcp-server", {
|
|
322
|
+
event: "childExit",
|
|
323
|
+
reason: "server-exit",
|
|
324
|
+
...(typeof code === "number" ? { exitCode: code } : {}),
|
|
325
|
+
...(typeof signal === "string" && signal.length > 0 ? { signal } : {}),
|
|
326
|
+
detail: `central MCP server exited${typeof signal === "string" && signal.length > 0 ? ` on ${signal}` : ""}`,
|
|
327
|
+
});
|
|
328
|
+
});
|
|
122
329
|
child.unref();
|
|
123
330
|
}
|
|
124
331
|
finally {
|
|
125
332
|
closeSync(logFd);
|
|
126
333
|
}
|
|
127
|
-
return waitForCentralStart(
|
|
334
|
+
return waitForCentralStart(paths, endpoint, () => spawnError);
|
|
128
335
|
}
|
|
129
336
|
function profileMcpConfig(profile, cwd) {
|
|
130
337
|
switch (profile) {
|
|
@@ -148,33 +355,9 @@ function profileMcpConfig(profile, cwd) {
|
|
|
148
355
|
return undefined;
|
|
149
356
|
}
|
|
150
357
|
}
|
|
151
|
-
function
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
repair: false,
|
|
155
|
-
dryRun: false,
|
|
156
|
-
sessionFreshnessGuarantee: "runtime central MCP writer",
|
|
157
|
-
nativeCommandFailureLimit: "runtime central MCP writer",
|
|
158
|
-
version: "runtime-central-mcp",
|
|
159
|
-
hosts: [{
|
|
160
|
-
host,
|
|
161
|
-
ok: true,
|
|
162
|
-
findings: [],
|
|
163
|
-
diagnostics: [],
|
|
164
|
-
changed: [],
|
|
165
|
-
preserved: [],
|
|
166
|
-
failures: [],
|
|
167
|
-
unverifiable: [],
|
|
168
|
-
unrepaired: [],
|
|
169
|
-
coherencePaths: [],
|
|
170
|
-
plannedActions: [],
|
|
171
|
-
repairMarkerPath: "",
|
|
172
|
-
}],
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
function activateCentralMcpEnvironment(core, endpoint) {
|
|
176
|
-
process.env[core.H2A_MCP_CENTRAL_ENV] = "1";
|
|
177
|
-
process.env[core.H2A_MCP_CENTRAL_ENDPOINT_ENV] = endpoint;
|
|
358
|
+
function activateCentralMcpEnvironment(endpoint) {
|
|
359
|
+
process.env[H2A_MCP_CENTRAL_ENV] = "1";
|
|
360
|
+
process.env[H2A_MCP_CENTRAL_ENDPOINT_ENV] = endpoint;
|
|
178
361
|
}
|
|
179
362
|
function deactivateCentralMcpEnvironment() {
|
|
180
363
|
delete process.env.H2A_MCP_CENTRAL;
|
|
@@ -197,25 +380,46 @@ function restoreHostConfig(path, snapshot) {
|
|
|
197
380
|
function errorMessage(error) {
|
|
198
381
|
return error instanceof Error ? error.message : String(error);
|
|
199
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Render the host config through the core CLI over the `h2a` binary (never an
|
|
385
|
+
* in-process core import). Output stays captured (quiet launch path); a
|
|
386
|
+
* nonzero exit degrades to the per-session sidecar exactly like before. The
|
|
387
|
+
* real installation doctor runs here instead of the former always-ok stub, so
|
|
388
|
+
* a genuinely incoherent host setup now surfaces as degraded-with-reason
|
|
389
|
+
* rather than a masked central — still fail-closed, never a crash.
|
|
390
|
+
*/
|
|
391
|
+
function writeHostConfig(target, cwd) {
|
|
392
|
+
let status = null;
|
|
393
|
+
let spawnError;
|
|
394
|
+
try {
|
|
395
|
+
const result = spawnSync("h2a", ["host", "setup", "--host", target.host, "--write", target.path], { cwd, stdio: "pipe", encoding: "utf8", timeout: CENTRAL_HOST_SETUP_TIMEOUT_MS });
|
|
396
|
+
status = result.status;
|
|
397
|
+
spawnError = result.error;
|
|
398
|
+
}
|
|
399
|
+
catch (error) {
|
|
400
|
+
spawnError = error instanceof Error ? error : new Error(String(error));
|
|
401
|
+
}
|
|
402
|
+
if (status !== 0) {
|
|
403
|
+
throw new Error(`central MCP could not write the ${target.host} host config at ${target.path}` +
|
|
404
|
+
(spawnError ? ` (${spawnError.message})` : ""));
|
|
405
|
+
}
|
|
406
|
+
}
|
|
200
407
|
/** Ensure central MCP and rewrite the launched host's existing MCP config path. */
|
|
201
408
|
export async function prepareCentralMcpForLaunch(options) {
|
|
202
409
|
let hostConfig;
|
|
203
410
|
try {
|
|
204
|
-
const central = await ensureCentralMcp({
|
|
411
|
+
const central = await ensureCentralMcp({
|
|
412
|
+
...(options.root ? { root: options.root } : {}),
|
|
413
|
+
...(options.paths ? { paths: options.paths } : {}),
|
|
414
|
+
});
|
|
205
415
|
if (!central)
|
|
206
416
|
return undefined;
|
|
207
|
-
const core = await loadCoreCentralMcp();
|
|
208
417
|
const target = profileMcpConfig(options.profile, options.cwd);
|
|
209
418
|
if (target)
|
|
210
419
|
hostConfig = { path: target.path, snapshot: captureHostConfig(target.path) };
|
|
211
|
-
activateCentralMcpEnvironment(
|
|
212
|
-
if (target)
|
|
213
|
-
|
|
214
|
-
const code = core.runCli(["host", "setup", "--host", target.host, "--write", target.path], quiet, { doctorHostInstallations: () => coherentHostSetupReport(target.host) });
|
|
215
|
-
if (code !== 0) {
|
|
216
|
-
throw new Error(`central MCP could not write the ${target.host} host config at ${target.path}`);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
420
|
+
activateCentralMcpEnvironment(central.endpoint);
|
|
421
|
+
if (target)
|
|
422
|
+
writeHostConfig(target, options.cwd);
|
|
219
423
|
return { status: "central", ...central };
|
|
220
424
|
}
|
|
221
425
|
catch (error) {
|
|
@@ -238,7 +442,7 @@ export async function prepareCentralMcpForRestore(options = {}) {
|
|
|
238
442
|
const central = await ensureCentralMcp(options);
|
|
239
443
|
if (!central)
|
|
240
444
|
return undefined;
|
|
241
|
-
activateCentralMcpEnvironment(
|
|
445
|
+
activateCentralMcpEnvironment(central.endpoint);
|
|
242
446
|
return { status: "central", ...central };
|
|
243
447
|
}
|
|
244
448
|
catch (error) {
|
package/dist/central-mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"central-mcp.js","sourceRoot":"","sources":["../src/central-mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"central-mcp.js","sourceRoot":"","sources":["../src/central-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ClaudeCodeAccessProjection } from "./claude-seat-mesh-contract.js";
|
|
2
|
+
export interface ClaudeRunSandbox {
|
|
3
|
+
readonly runId: string;
|
|
4
|
+
readonly runDir: string;
|
|
5
|
+
readonly homeDir: string;
|
|
6
|
+
readonly configDir: string;
|
|
7
|
+
readonly cwdDir: string;
|
|
8
|
+
readonly tmpDir: string;
|
|
9
|
+
readonly credentialPath: string;
|
|
10
|
+
readonly settingsPath: string;
|
|
11
|
+
readonly mcpConfigPath: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const ALLOWED_ENV_VARS: readonly ["PATH", "LANG", "LC_ALL", "HOME", "TMPDIR", "XDG_CONFIG_HOME", "CLAUDE_CONFIG_DIR"];
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the dedicated private runtime root outside workspaces and backups.
|
|
16
|
+
* Only per-user bases are candidates (XDG_RUNTIME_DIR, then /run/user/<euid>
|
|
17
|
+
* on Linux). Shared temporary roots (/dev/shm, tmpdir()) are never used;
|
|
18
|
+
* when no per-user base is available resolution fails closed.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolvePrivateRuntimeRoot(customRoot?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Creates isolated 0700 run/config/home/cwd directories and an exclusive 0600 .credentials.json.
|
|
23
|
+
* Writes access token only; real provider expiry preserved; NO refresh token.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createClaudeRunSandbox(options: {
|
|
26
|
+
readonly access: ClaudeCodeAccessProjection;
|
|
27
|
+
readonly runId?: string;
|
|
28
|
+
readonly rootDir?: string;
|
|
29
|
+
}): ClaudeRunSandbox;
|
|
30
|
+
/**
|
|
31
|
+
* Record child PID and start time in the run's run-meta.json so orphan sweeps
|
|
32
|
+
* can identify and reap detached child process trees.
|
|
33
|
+
*/
|
|
34
|
+
export declare function recordChildPidInSandbox(sandbox: ClaudeRunSandbox, childPid: number): void;
|
|
35
|
+
/**
|
|
36
|
+
* Construct an environment allowlist; strips all ambient auth, proxies, traces, and overrides.
|
|
37
|
+
* PATH is never inherited: a fixed minimal value (plus the binary directory
|
|
38
|
+
* when known) replaces whatever the parent carried.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildIsolatedEnvironment(sandbox: ClaudeRunSandbox, baseEnv?: NodeJS.ProcessEnv, options?: {
|
|
41
|
+
readonly binaryPath?: string;
|
|
42
|
+
}): Record<string, string>;
|
|
43
|
+
/**
|
|
44
|
+
* Verify that the child process did not rewrite credentials, change auth, or write back a refresh token.
|
|
45
|
+
*/
|
|
46
|
+
export declare function verifyCredentialNotRewritten(sandbox: ClaudeRunSandbox, expectedAccess: ClaudeCodeAccessProjection): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Content-blind cleanup of the dedicated sandbox directory without following symlinks.
|
|
49
|
+
* Throws a static error when the run directory persists: callers must block
|
|
50
|
+
* any success terminal on cleanup failure (no success without custody release).
|
|
51
|
+
*/
|
|
52
|
+
export declare function cleanClaudeRunSandbox(sandbox: ClaudeRunSandbox): void;
|
|
53
|
+
//# sourceMappingURL=claude-code-cli-isolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-cli-isolation.d.ts","sourceRoot":"","sources":["../src/claude-code-cli-isolation.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,gBAAgB,+FAQnB,CAAC;AA8DX;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,gBAAgB,CA4EnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBzF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,MAAM,CAAC,UAAwB,EACxC,OAAO,GAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,cAAc,EAAE,0BAA0B,GACzC,OAAO,CA0BT;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAWrE"}
|