@sentropic/h2a-runtime 0.98.7-rc.1 → 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.
Files changed (213) hide show
  1. package/dist/agent-launch-args.d.ts.map +1 -1
  2. package/dist/agent-launch-args.js +5 -5
  3. package/dist/agent-launch-args.js.map +1 -1
  4. package/dist/agy-claude.d.ts +42 -0
  5. package/dist/agy-claude.d.ts.map +1 -0
  6. package/dist/agy-claude.js +148 -0
  7. package/dist/agy-claude.js.map +1 -0
  8. package/dist/agy-headless.d.ts +11 -0
  9. package/dist/agy-headless.d.ts.map +1 -0
  10. package/dist/agy-headless.js +104 -0
  11. package/dist/agy-headless.js.map +1 -0
  12. package/dist/attach.d.ts +3 -0
  13. package/dist/attach.d.ts.map +1 -1
  14. package/dist/attach.js +2 -0
  15. package/dist/attach.js.map +1 -1
  16. package/dist/central-mcp.d.ts +32 -0
  17. package/dist/central-mcp.d.ts.map +1 -1
  18. package/dist/central-mcp.js +186 -69
  19. package/dist/central-mcp.js.map +1 -1
  20. package/dist/claude-code-cli-isolation.d.ts +53 -0
  21. package/dist/claude-code-cli-isolation.d.ts.map +1 -0
  22. package/dist/claude-code-cli-isolation.js +277 -0
  23. package/dist/claude-code-cli-isolation.js.map +1 -0
  24. package/dist/claude-code-cli-lifecycle.d.ts +80 -0
  25. package/dist/claude-code-cli-lifecycle.d.ts.map +1 -0
  26. package/dist/claude-code-cli-lifecycle.js +402 -0
  27. package/dist/claude-code-cli-lifecycle.js.map +1 -0
  28. package/dist/claude-code-cli-runner.d.ts +89 -0
  29. package/dist/claude-code-cli-runner.d.ts.map +1 -0
  30. package/dist/claude-code-cli-runner.js +659 -0
  31. package/dist/claude-code-cli-runner.js.map +1 -0
  32. package/dist/claude-seat-input.d.ts +47 -0
  33. package/dist/claude-seat-input.d.ts.map +1 -0
  34. package/dist/claude-seat-input.js +272 -0
  35. package/dist/claude-seat-input.js.map +1 -0
  36. package/dist/claude-seat-mesh-contract.d.ts +88 -0
  37. package/dist/claude-seat-mesh-contract.d.ts.map +1 -0
  38. package/dist/claude-seat-mesh-contract.js +13 -0
  39. package/dist/claude-seat-mesh-contract.js.map +1 -0
  40. package/dist/cli-seat-codecs.d.ts +86 -0
  41. package/dist/cli-seat-codecs.d.ts.map +1 -0
  42. package/dist/cli-seat-codecs.js +255 -0
  43. package/dist/cli-seat-codecs.js.map +1 -0
  44. package/dist/cli-seat-fixtures.d.ts +86 -0
  45. package/dist/cli-seat-fixtures.d.ts.map +1 -0
  46. package/dist/cli-seat-fixtures.js +114 -0
  47. package/dist/cli-seat-fixtures.js.map +1 -0
  48. package/dist/cli-seat-materialization.d.ts +245 -0
  49. package/dist/cli-seat-materialization.d.ts.map +1 -0
  50. package/dist/cli-seat-materialization.js +646 -0
  51. package/dist/cli-seat-materialization.js.map +1 -0
  52. package/dist/conv-guard.d.ts.map +1 -1
  53. package/dist/conv-guard.js +6 -2
  54. package/dist/conv-guard.js.map +1 -1
  55. package/dist/delegate.d.ts +10 -0
  56. package/dist/delegate.d.ts.map +1 -1
  57. package/dist/delegate.js +29 -0
  58. package/dist/delegate.js.map +1 -1
  59. package/dist/file-lock.d.ts +4 -2
  60. package/dist/file-lock.d.ts.map +1 -1
  61. package/dist/file-lock.js +24 -10
  62. package/dist/file-lock.js.map +1 -1
  63. package/dist/gateway-host/claude-seat-client.d.ts +32 -0
  64. package/dist/gateway-host/claude-seat-client.d.ts.map +1 -0
  65. package/dist/gateway-host/claude-seat-client.js +38 -0
  66. package/dist/gateway-host/claude-seat-client.js.map +1 -0
  67. package/dist/gateway-host/config-file.d.ts +2 -0
  68. package/dist/gateway-host/config-file.d.ts.map +1 -1
  69. package/dist/gateway-host/config-file.js +5 -1
  70. package/dist/gateway-host/config-file.js.map +1 -1
  71. package/dist/gateway-host/daemon.d.ts.map +1 -1
  72. package/dist/gateway-host/daemon.js +1 -2
  73. package/dist/gateway-host/daemon.js.map +1 -1
  74. package/dist/gateway-host/host.d.ts +6 -0
  75. package/dist/gateway-host/host.d.ts.map +1 -1
  76. package/dist/gateway-host/host.js +24 -3
  77. package/dist/gateway-host/host.js.map +1 -1
  78. package/dist/gateway-host/live-auth.d.ts +62 -0
  79. package/dist/gateway-host/live-auth.d.ts.map +1 -0
  80. package/dist/gateway-host/live-auth.js +87 -0
  81. package/dist/gateway-host/live-auth.js.map +1 -0
  82. package/dist/gateway-host/live-declarations.d.ts.map +1 -1
  83. package/dist/gateway-host/live-declarations.js +13 -7
  84. package/dist/gateway-host/live-declarations.js.map +1 -1
  85. package/dist/gateway-host/live-disclosure.d.ts +124 -0
  86. package/dist/gateway-host/live-disclosure.d.ts.map +1 -0
  87. package/dist/gateway-host/live-disclosure.js +347 -0
  88. package/dist/gateway-host/live-disclosure.js.map +1 -0
  89. package/dist/gateway-host/live-github.d.ts +11 -0
  90. package/dist/gateway-host/live-github.d.ts.map +1 -0
  91. package/dist/gateway-host/live-github.js +374 -0
  92. package/dist/gateway-host/live-github.js.map +1 -0
  93. package/dist/gateway-host/live-host.d.ts +20 -0
  94. package/dist/gateway-host/live-host.d.ts.map +1 -0
  95. package/dist/gateway-host/live-host.js +14 -0
  96. package/dist/gateway-host/live-host.js.map +1 -0
  97. package/dist/gateway-host/live-object-store.d.ts +35 -0
  98. package/dist/gateway-host/live-object-store.d.ts.map +1 -0
  99. package/dist/gateway-host/live-object-store.js +447 -0
  100. package/dist/gateway-host/live-object-store.js.map +1 -0
  101. package/dist/gateway-model-catalog/model-catalog.d.ts +38 -0
  102. package/dist/gateway-model-catalog/model-catalog.d.ts.map +1 -0
  103. package/dist/gateway-model-catalog/model-catalog.js +167 -0
  104. package/dist/gateway-model-catalog/model-catalog.js.map +1 -0
  105. package/dist/identity-cull/cull.js +1 -1
  106. package/dist/identity-cull/cull.js.map +1 -1
  107. package/dist/identity-cull/identity-fence.d.ts +48 -0
  108. package/dist/identity-cull/identity-fence.d.ts.map +1 -0
  109. package/dist/identity-cull/identity-fence.js +221 -0
  110. package/dist/identity-cull/identity-fence.js.map +1 -0
  111. package/dist/identity-operator-break.d.ts +43 -0
  112. package/dist/identity-operator-break.d.ts.map +1 -0
  113. package/dist/identity-operator-break.js +85 -0
  114. package/dist/identity-operator-break.js.map +1 -0
  115. package/dist/index.d.ts +8 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +446 -131
  118. package/dist/index.js.map +1 -1
  119. package/dist/launch-layout.d.ts.map +1 -1
  120. package/dist/launch-layout.js +10 -2
  121. package/dist/launch-layout.js.map +1 -1
  122. package/dist/llm-mesh-accounts.d.ts +128 -6
  123. package/dist/llm-mesh-accounts.d.ts.map +1 -1
  124. package/dist/llm-mesh-accounts.js +370 -14
  125. package/dist/llm-mesh-accounts.js.map +1 -1
  126. package/dist/native-host.d.ts +25 -1
  127. package/dist/native-host.d.ts.map +1 -1
  128. package/dist/native-host.js +184 -23
  129. package/dist/native-host.js.map +1 -1
  130. package/dist/native-restart.d.ts +2 -0
  131. package/dist/native-restart.d.ts.map +1 -1
  132. package/dist/native-restart.js +7 -0
  133. package/dist/native-restart.js.map +1 -1
  134. package/dist/native-terminal/fleet.d.ts +11 -0
  135. package/dist/native-terminal/fleet.d.ts.map +1 -1
  136. package/dist/native-terminal/fleet.js +58 -1
  137. package/dist/native-terminal/fleet.js.map +1 -1
  138. package/dist/native-terminal/host-scope.d.ts +18 -0
  139. package/dist/native-terminal/host-scope.d.ts.map +1 -0
  140. package/dist/native-terminal/host-scope.js +65 -0
  141. package/dist/native-terminal/host-scope.js.map +1 -0
  142. package/dist/native-terminal/host.d.ts +7 -1
  143. package/dist/native-terminal/host.d.ts.map +1 -1
  144. package/dist/native-terminal/host.js +10 -26
  145. package/dist/native-terminal/host.js.map +1 -1
  146. package/dist/native-terminal/op.d.ts +36 -1
  147. package/dist/native-terminal/op.d.ts.map +1 -1
  148. package/dist/native-terminal/op.js +190 -33
  149. package/dist/native-terminal/op.js.map +1 -1
  150. package/dist/native-terminal/process.d.ts.map +1 -1
  151. package/dist/native-terminal/process.js +10 -1
  152. package/dist/native-terminal/process.js.map +1 -1
  153. package/dist/native-terminal/screen.d.ts.map +1 -1
  154. package/dist/native-terminal/screen.js +1 -1
  155. package/dist/native-terminal/screen.js.map +1 -1
  156. package/dist/native-terminal/server.d.ts +12 -2
  157. package/dist/native-terminal/server.d.ts.map +1 -1
  158. package/dist/native-terminal/server.js +143 -42
  159. package/dist/native-terminal/server.js.map +1 -1
  160. package/dist/native-terminal/session-scope.d.ts +2 -0
  161. package/dist/native-terminal/session-scope.d.ts.map +1 -0
  162. package/dist/native-terminal/session-scope.js +32 -0
  163. package/dist/native-terminal/session-scope.js.map +1 -0
  164. package/dist/proc-identity.d.ts +31 -0
  165. package/dist/proc-identity.d.ts.map +1 -1
  166. package/dist/proc-identity.js +54 -0
  167. package/dist/proc-identity.js.map +1 -1
  168. package/dist/prompt-delivery.d.ts +3 -0
  169. package/dist/prompt-delivery.d.ts.map +1 -1
  170. package/dist/prompt-delivery.js +8 -3
  171. package/dist/prompt-delivery.js.map +1 -1
  172. package/dist/protocol-local.d.ts +16 -0
  173. package/dist/protocol-local.d.ts.map +1 -1
  174. package/dist/protocol-local.js +14 -0
  175. package/dist/protocol-local.js.map +1 -1
  176. package/dist/registry.d.ts +16 -12
  177. package/dist/registry.d.ts.map +1 -1
  178. package/dist/registry.js +39 -5
  179. package/dist/registry.js.map +1 -1
  180. package/dist/relaunch.d.ts +16 -0
  181. package/dist/relaunch.d.ts.map +1 -1
  182. package/dist/relaunch.js +42 -1
  183. package/dist/relaunch.js.map +1 -1
  184. package/dist/restore.d.ts +4 -0
  185. package/dist/restore.d.ts.map +1 -1
  186. package/dist/restore.js +9 -37
  187. package/dist/restore.js.map +1 -1
  188. package/dist/resume-launch-options.d.ts +3 -3
  189. package/dist/resume-launch-options.d.ts.map +1 -1
  190. package/dist/resume-launch-options.js +7 -4
  191. package/dist/resume-launch-options.js.map +1 -1
  192. package/dist/run.d.ts +2 -0
  193. package/dist/run.d.ts.map +1 -1
  194. package/dist/run.js +9 -4
  195. package/dist/run.js.map +1 -1
  196. package/dist/soft-refresh.d.ts.map +1 -1
  197. package/dist/soft-refresh.js +6 -0
  198. package/dist/soft-refresh.js.map +1 -1
  199. package/dist/tmux.d.ts +31 -5
  200. package/dist/tmux.d.ts.map +1 -1
  201. package/dist/tmux.js +96 -20
  202. package/dist/tmux.js.map +1 -1
  203. package/dist/vendor/engram-live/contracts.d.ts +619 -2
  204. package/dist/vendor/engram-live/contracts.js +1201 -25
  205. package/dist/vendor/engram-live/integration.d.ts +44 -4
  206. package/dist/vendor/engram-live/integration.js +65 -5
  207. package/dist/vendor/engram-live/pr-sync.d.ts +144 -0
  208. package/dist/vendor/engram-live/pr-sync.js +411 -0
  209. package/dist/vendor/engram-live/registration.d.ts +2 -2
  210. package/dist/vendor/engram-live/registration.js +2 -4
  211. package/dist/vendor/engram-live/retention.d.ts +56 -0
  212. package/dist/vendor/engram-live/retention.js +179 -0
  213. package/package.json +5 -5
@@ -1,11 +1,20 @@
1
1
  /**
2
- * Runtime-side central MCP lifecycle. The core package remains the sole owner
3
- * of marker validation, reclaim, and server startup; this module only selects
4
- * a persisted endpoint, asks core for protected liveness facts, and starts the
5
- * existing foreground command as a detached child when necessary.
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, constants, existsSync, mkdirSync, openSync, readFileSync, readSync, renameSync, statSync, 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";
@@ -14,24 +23,135 @@ const CENTRAL_PORT_BASE = 47_000;
14
23
  const CENTRAL_PORT_SPAN = 10_000;
15
24
  const CENTRAL_START_TIMEOUT_MS = 10_000;
16
25
  const CENTRAL_START_POLL_MS = 100;
17
- let coreCentralMcp;
18
- function loadCoreCentralMcp() {
19
- // Keep the core/runtime boundary dynamic. Core already reaches runtime via a
20
- // string-specifier seam for central marker ownership checks, so a static
21
- // runtime dependency here would turn that boundary into a hard cycle.
22
- const corePackage = "@sentropic/h2a";
23
- coreCentralMcp ??= import(corePackage).then((core) => {
24
- const candidate = core;
25
- if (typeof candidate.H2A_MCP_CENTRAL_ENV !== "string" ||
26
- typeof candidate.H2A_MCP_CENTRAL_ENDPOINT_ENV !== "string" ||
27
- typeof candidate.centralMcpPing !== "function" ||
28
- typeof candidate.readCentralMcpMarker !== "function" ||
29
- typeof candidate.runCli !== "function") {
30
- throw new Error("@sentropic/h2a does not expose the central MCP runtime surface");
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" };
31
95
  }
32
- return candidate;
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" });
33
104
  });
34
- return coreCentralMcp;
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
+ }
35
155
  }
36
156
  function delay(milliseconds) {
37
157
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
@@ -127,7 +247,7 @@ function centralLogFile() {
127
247
  catch { /* rotation is best-effort; the spawn below still proceeds */ }
128
248
  return path;
129
249
  }
130
- async function waitForCentralStart(core, endpoint, spawnFailure) {
250
+ async function waitForCentralStart(paths, endpoint, spawnFailure) {
131
251
  const deadline = Date.now() + CENTRAL_START_TIMEOUT_MS;
132
252
  while (Date.now() < deadline) {
133
253
  const failure = spawnFailure();
@@ -136,9 +256,9 @@ async function waitForCentralStart(core, endpoint, spawnFailure) {
136
256
  appendCrashLog("mcp-server", { event: "startupError", reason: "spawn-failed", detail: failure.message });
137
257
  throw failure;
138
258
  }
139
- const ping = await core.centralMcpPing(endpoint, CENTRAL_START_POLL_MS);
259
+ const ping = await centralMcpPing(endpoint, CENTRAL_START_POLL_MS);
140
260
  if (ping.kind === "generation") {
141
- const marker = core.readCentralMcpMarker();
261
+ const marker = readCentralMcpMarker(paths);
142
262
  if (marker?.endpoint === endpoint && marker.generation === ping.generation) {
143
263
  return { endpoint, generation: ping.generation };
144
264
  }
@@ -159,10 +279,10 @@ export async function ensureCentralMcp(options = {}) {
159
279
  const endpoint = configuredCentralEndpoint();
160
280
  if (!endpoint)
161
281
  return undefined;
162
- const core = await loadCoreCentralMcp();
163
- const marker = core.readCentralMcpMarker();
282
+ const paths = options.paths ?? {};
283
+ const marker = readCentralMcpMarker(paths);
164
284
  if (marker) {
165
- const ping = await core.centralMcpPing(marker.endpoint);
285
+ const ping = await centralMcpPing(marker.endpoint);
166
286
  if (ping.kind === "ambiguous") {
167
287
  appendCrashLog("mcp-server", { event: "refusal", instanceId: marker.generation, reason: "ambiguous-liveness", detail: marker.endpoint });
168
288
  throw new Error(`central MCP liveness at ${marker.endpoint} is ambiguous; refusing to start another server`);
@@ -185,8 +305,8 @@ export async function ensureCentralMcp(options = {}) {
185
305
  stdio: ["ignore", logFd, logFd],
186
306
  env: {
187
307
  ...process.env,
188
- [core.H2A_MCP_CENTRAL_ENV]: "1",
189
- [core.H2A_MCP_CENTRAL_ENDPOINT_ENV]: endpoint,
308
+ [H2A_MCP_CENTRAL_ENV]: "1",
309
+ [H2A_MCP_CENTRAL_ENDPOINT_ENV]: endpoint,
190
310
  },
191
311
  });
192
312
  child.once("error", (error) => {
@@ -211,7 +331,7 @@ export async function ensureCentralMcp(options = {}) {
211
331
  finally {
212
332
  closeSync(logFd);
213
333
  }
214
- return waitForCentralStart(core, endpoint, () => spawnError);
334
+ return waitForCentralStart(paths, endpoint, () => spawnError);
215
335
  }
216
336
  function profileMcpConfig(profile, cwd) {
217
337
  switch (profile) {
@@ -235,33 +355,9 @@ function profileMcpConfig(profile, cwd) {
235
355
  return undefined;
236
356
  }
237
357
  }
238
- function coherentHostSetupReport(host) {
239
- return {
240
- ok: true,
241
- repair: false,
242
- dryRun: false,
243
- sessionFreshnessGuarantee: "runtime central MCP writer",
244
- nativeCommandFailureLimit: "runtime central MCP writer",
245
- version: "runtime-central-mcp",
246
- hosts: [{
247
- host,
248
- ok: true,
249
- findings: [],
250
- diagnostics: [],
251
- changed: [],
252
- preserved: [],
253
- failures: [],
254
- unverifiable: [],
255
- unrepaired: [],
256
- coherencePaths: [],
257
- plannedActions: [],
258
- repairMarkerPath: "",
259
- }],
260
- };
261
- }
262
- function activateCentralMcpEnvironment(core, endpoint) {
263
- process.env[core.H2A_MCP_CENTRAL_ENV] = "1";
264
- 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;
265
361
  }
266
362
  function deactivateCentralMcpEnvironment() {
267
363
  delete process.env.H2A_MCP_CENTRAL;
@@ -284,25 +380,46 @@ function restoreHostConfig(path, snapshot) {
284
380
  function errorMessage(error) {
285
381
  return error instanceof Error ? error.message : String(error);
286
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
+ }
287
407
  /** Ensure central MCP and rewrite the launched host's existing MCP config path. */
288
408
  export async function prepareCentralMcpForLaunch(options) {
289
409
  let hostConfig;
290
410
  try {
291
- const central = await ensureCentralMcp({ ...(options.root ? { root: options.root } : {}) });
411
+ const central = await ensureCentralMcp({
412
+ ...(options.root ? { root: options.root } : {}),
413
+ ...(options.paths ? { paths: options.paths } : {}),
414
+ });
292
415
  if (!central)
293
416
  return undefined;
294
- const core = await loadCoreCentralMcp();
295
417
  const target = profileMcpConfig(options.profile, options.cwd);
296
418
  if (target)
297
419
  hostConfig = { path: target.path, snapshot: captureHostConfig(target.path) };
298
- activateCentralMcpEnvironment(core, central.endpoint);
299
- if (target) {
300
- const quiet = { stdout: { write: () => true }, stderr: { write: () => true }, cwd: () => options.cwd };
301
- const code = core.runCli(["host", "setup", "--host", target.host, "--write", target.path], quiet, { doctorHostInstallations: () => coherentHostSetupReport(target.host) });
302
- if (code !== 0) {
303
- throw new Error(`central MCP could not write the ${target.host} host config at ${target.path}`);
304
- }
305
- }
420
+ activateCentralMcpEnvironment(central.endpoint);
421
+ if (target)
422
+ writeHostConfig(target, options.cwd);
306
423
  return { status: "central", ...central };
307
424
  }
308
425
  catch (error) {
@@ -325,7 +442,7 @@ export async function prepareCentralMcpForRestore(options = {}) {
325
442
  const central = await ensureCentralMcp(options);
326
443
  if (!central)
327
444
  return undefined;
328
- activateCentralMcpEnvironment(await loadCoreCentralMcp(), central.endpoint);
445
+ activateCentralMcpEnvironment(central.endpoint);
329
446
  return { status: "central", ...central };
330
447
  }
331
448
  catch (error) {
@@ -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"}