@peekdev/mcp 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (72) hide show
  1. package/README.md +178 -0
  2. package/dist/db/open.d.ts +19 -1
  3. package/dist/db/open.d.ts.map +1 -1
  4. package/dist/db/open.js +25 -1
  5. package/dist/db/open.js.map +1 -1
  6. package/dist/entrypoint.d.ts +8 -0
  7. package/dist/entrypoint.d.ts.map +1 -0
  8. package/dist/entrypoint.js +33 -0
  9. package/dist/entrypoint.js.map +1 -0
  10. package/dist/mcp/action-schema.d.ts +156 -0
  11. package/dist/mcp/action-schema.d.ts.map +1 -1
  12. package/dist/mcp/action-schema.js +69 -0
  13. package/dist/mcp/action-schema.js.map +1 -1
  14. package/dist/mcp/event-blobs.d.ts +12 -2
  15. package/dist/mcp/event-blobs.d.ts.map +1 -1
  16. package/dist/mcp/event-blobs.js +55 -6
  17. package/dist/mcp/event-blobs.js.map +1 -1
  18. package/dist/mcp/event-walker.d.ts +30 -0
  19. package/dist/mcp/event-walker.d.ts.map +1 -1
  20. package/dist/mcp/event-walker.js +67 -1
  21. package/dist/mcp/event-walker.js.map +1 -1
  22. package/dist/mcp/host-bridge.d.ts +50 -1
  23. package/dist/mcp/host-bridge.d.ts.map +1 -1
  24. package/dist/mcp/host-bridge.js +133 -0
  25. package/dist/mcp/host-bridge.js.map +1 -1
  26. package/dist/mcp/index.d.ts +6 -0
  27. package/dist/mcp/index.d.ts.map +1 -1
  28. package/dist/mcp/index.js +11 -1
  29. package/dist/mcp/index.js.map +1 -1
  30. package/dist/mcp/playwright-repro.d.ts.map +1 -1
  31. package/dist/mcp/playwright-repro.js +58 -9
  32. package/dist/mcp/playwright-repro.js.map +1 -1
  33. package/dist/mcp/server.d.ts +3 -2
  34. package/dist/mcp/server.d.ts.map +1 -1
  35. package/dist/mcp/server.js +301 -63
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/mcp/summary.d.ts +7 -0
  38. package/dist/mcp/summary.d.ts.map +1 -1
  39. package/dist/mcp/summary.js +7 -1
  40. package/dist/mcp/summary.js.map +1 -1
  41. package/dist/native-host/action-protocol.d.ts +15 -2
  42. package/dist/native-host/action-protocol.d.ts.map +1 -1
  43. package/dist/native-host/audit.d.ts +1 -1
  44. package/dist/native-host/audit.d.ts.map +1 -1
  45. package/dist/native-host/audit.js +1 -1
  46. package/dist/native-host/audit.js.map +1 -1
  47. package/dist/native-host/host-socket.d.ts +137 -0
  48. package/dist/native-host/host-socket.d.ts.map +1 -0
  49. package/dist/native-host/host-socket.js +369 -0
  50. package/dist/native-host/host-socket.js.map +1 -0
  51. package/dist/native-host/host.d.ts +11 -0
  52. package/dist/native-host/host.d.ts.map +1 -1
  53. package/dist/native-host/host.js +54 -0
  54. package/dist/native-host/host.js.map +1 -1
  55. package/dist/native-host/ingest.js +4 -4
  56. package/dist/native-host/ingest.js.map +1 -1
  57. package/dist/native-host/installer.d.ts +21 -0
  58. package/dist/native-host/installer.d.ts.map +1 -1
  59. package/dist/native-host/installer.js +64 -2
  60. package/dist/native-host/installer.js.map +1 -1
  61. package/dist/native-host/manifest.d.ts +7 -2
  62. package/dist/native-host/manifest.d.ts.map +1 -1
  63. package/dist/native-host/manifest.js +29 -15
  64. package/dist/native-host/manifest.js.map +1 -1
  65. package/dist/native-host/socket-path.d.ts +10 -0
  66. package/dist/native-host/socket-path.d.ts.map +1 -0
  67. package/dist/native-host/socket-path.js +31 -0
  68. package/dist/native-host/socket-path.js.map +1 -0
  69. package/dist/postinstall.d.ts.map +1 -1
  70. package/dist/postinstall.js +15 -15
  71. package/dist/postinstall.js.map +1 -1
  72. package/package.json +34 -4
@@ -0,0 +1,369 @@
1
+ // Native-host-side IPC relay (Task 3.24 IPC layer).
2
+ //
3
+ // The MCP-server process talks to this server over the local socket
4
+ // (`~/.peek/host.sock`) using the {@link LocalSocketHostBridge}. This server
5
+ // runs INSIDE the native-host process — the one that owns the
6
+ // `chrome.runtime.connectNative` port to the service worker. It relays:
7
+ //
8
+ // socket act.request → native-port action.request (host → SW)
9
+ // native-port action.result / action.confirm.shown → socket act.response
10
+ //
11
+ // Correlation has TWO id spaces that must not be conflated:
12
+ // • the socket wire `id` (the LocalSocketHostBridge's RequestRegistry id) —
13
+ // the MCP process correlates `act.response` back to its awaiting tool call.
14
+ // • the native-port `requestId` (UUID) — the SW echoes it on its reply so we
15
+ // find the originating socket connection.
16
+ // We hold a `Map<requestId, { conn, wireId }>` so an `action.result` resolves
17
+ // to the right connection AND echoes the right wire id.
18
+ //
19
+ // Security / robustness: per-connection newline-JSON framing (reused shape from
20
+ // the bridge); a malformed frame is dropped, never crashes the loop; an
21
+ // `action.result` for an unknown requestId is dropped (a stale reply after a
22
+ // timeout must not throw). The policy deltas are loaded per request (the file
23
+ // is tiny) and forwarded so the SW's destructive matcher merges them.
24
+ import { mkdirSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
25
+ import * as net from 'node:net';
26
+ import { platform } from 'node:os';
27
+ import { join } from 'node:path';
28
+ import { setTimeout as delay } from 'node:timers/promises';
29
+ import { peekHomeDir } from '../db/open.js';
30
+ import { loadPolicy } from './policy.js';
31
+ import { hostSocketPath } from './socket-path.js';
32
+ /**
33
+ * Item E + I: unlink a Unix-domain-socket file ONLY when it's safe to do so —
34
+ * the path is a socket inode (never a regular file the user owns). This is the
35
+ * pure filesystem guard; the LIVE-vs-stale decision (item I) is made by the
36
+ * caller via {@link probeSocketAlive} BEFORE calling this, because the mere
37
+ * existence of a socket inode does NOT mean it's stale — a live host could be
38
+ * listening on it. Clobbering a live host's socket would silently break it.
39
+ *
40
+ * A missing path is a no-op. Windows named pipes aren't filesystem paths, so
41
+ * this is skipped there. Best-effort: any stat/unlink error is swallowed.
42
+ */
43
+ export function cleanupStaleSocket(path) {
44
+ if (platform() === 'win32')
45
+ return; // named pipe — not a filesystem inode
46
+ try {
47
+ const st = statSync(path);
48
+ if (!st.isSocket())
49
+ return; // never clobber a regular file / dir
50
+ unlinkSync(path);
51
+ }
52
+ catch {
53
+ // ENOENT (nothing there) or any other stat/unlink error — leave it for the
54
+ // bind to report. Don't throw; cleanup is best-effort.
55
+ }
56
+ }
57
+ /**
58
+ * Item I: probe whether a LIVE server is listening at `path`. Connects with a
59
+ * short timeout: a successful connect → a live host owns the socket (do NOT
60
+ * unlink it); a refused/ENOENT/timeout → the inode is stale (safe to unlink and
61
+ * retry the bind). Windows named pipes are probed the same way (net.connect
62
+ * accepts the pipe path). Resolves false on any error so a probe failure can't
63
+ * wedge startup.
64
+ */
65
+ export function probeSocketAlive(path, timeoutMs = 500) {
66
+ return new Promise((resolve) => {
67
+ let settled = false;
68
+ const done = (alive) => {
69
+ if (settled)
70
+ return;
71
+ settled = true;
72
+ try {
73
+ client.destroy();
74
+ }
75
+ catch {
76
+ // ignore
77
+ }
78
+ resolve(alive);
79
+ };
80
+ const client = net.connect(path);
81
+ client.setTimeout?.(timeoutMs);
82
+ client.on('connect', () => done(true)); // a live server accepted us
83
+ client.on('error', () => done(false)); // ECONNREFUSED / ENOENT → stale
84
+ client.on('timeout', () => done(false));
85
+ });
86
+ }
87
+ /**
88
+ * How long to wait before retrying `listen()` after unlinking a stale endpoint.
89
+ *
90
+ * A POSIX socket inode is gone the instant `unlink` returns, so an immediate
91
+ * rebind works (delay 0). A Windows named pipe (`\\.\pipe\…`) has no inode to
92
+ * unlink — it's released by the OS shortly after the prior owner's process
93
+ * exits, which can lag the EADDRINUSE we just observed. A brief beat gives that
94
+ * release time to land so the single retry actually succeeds instead of failing
95
+ * and degrading the action write-path. Pure (depends only on the path shape) so
96
+ * it unit-tests without timers.
97
+ */
98
+ export function rebindRetryDelayMs(socketPath) {
99
+ return socketPath.startsWith('\\\\.\\pipe\\') ? 150 : 0;
100
+ }
101
+ /** Default cap for a single inbound newline-delimited frame (item J). 1 MiB. */
102
+ const DEFAULT_MAX_LINE_BYTES = 1024 * 1024;
103
+ /**
104
+ * Default screenshot spill-to-disk: write the decoded PNG under
105
+ * `~/.peek/screenshots/<requestId>.png` with 0600 perms (mirrors the ingest.ts
106
+ * blob-write precedent) and return its `{ path, bytes }`. Kept as a standalone
107
+ * export so the {@link HostSocketServer} can inject a fake in tests.
108
+ */
109
+ export function writeScreenshotFile(requestId, buf) {
110
+ const dir = join(peekHomeDir(), 'screenshots');
111
+ mkdirSync(dir, { recursive: true });
112
+ const path = join(dir, `${requestId}.png`);
113
+ writeFileSync(path, buf, { mode: 0o600 });
114
+ return { path, bytes: buf.length };
115
+ }
116
+ /**
117
+ * Map a terminal {@link ActionResultMessage} to the wire `payload` the bridge
118
+ * expects (a {@link HostActionResponse}). Drops the wire-protocol envelope
119
+ * fields (`type`, `requestId`, `tool`) and keeps the verdict/result data —
120
+ * INCLUDING `confirmToken` when the SW issued one (request_authorization).
121
+ *
122
+ * SCREENSHOT SPILL-TO-DISK: a `screenshot` action's `details.dataUrl` is a
123
+ * base64 PNG that can be megabytes — far too large to round-trip back to the
124
+ * MCP client over the socket as inline JSON. This is the single chokepoint
125
+ * every `action.result` flows through, so we spill it to disk HERE: write the
126
+ * decoded PNG under `~/.peek/screenshots/<requestId>.png` (0600, mirroring the
127
+ * ingest.ts blob-write precedent) and REPLACE `details` with a compact
128
+ * `{ path, bytes, format }` pointer.
129
+ *
130
+ * STRICT GUARD: the fs path (`writeScreenshot`) is invoked ONLY when
131
+ * `details.dataUrl` is present. Every non-screenshot reply passes through
132
+ * byte-for-byte with ZERO fs calls.
133
+ */
134
+ function toResponsePayload(result, writeScreenshot) {
135
+ const payload = {
136
+ verdict: result.verdict,
137
+ result: result.result,
138
+ approver: result.approver,
139
+ };
140
+ if (result.approvalMs !== undefined)
141
+ payload.approvalMs = result.approvalMs;
142
+ if (result.destructiveTerm !== undefined)
143
+ payload.destructiveTerm = result.destructiveTerm;
144
+ if (result.details !== undefined)
145
+ payload.details = result.details;
146
+ if (result.error !== undefined)
147
+ payload.error = result.error;
148
+ if (result.confirmToken !== undefined)
149
+ payload.confirmToken = result.confirmToken;
150
+ // Spill a screenshot dataUrl to disk (see doc comment). Guarded so any other
151
+ // reply shape — including a `details` object WITHOUT `dataUrl` — is untouched
152
+ // and makes ZERO fs calls (writeScreenshot is never invoked).
153
+ const details = result.details;
154
+ if (details && typeof details.dataUrl === 'string') {
155
+ const b64 = details.dataUrl.replace(/^data:image\/png;base64,/, '');
156
+ const buf = Buffer.from(b64, 'base64');
157
+ try {
158
+ const { path, bytes } = writeScreenshot(result.requestId, buf);
159
+ payload.details = { path, bytes, format: 'png' };
160
+ }
161
+ catch (err) {
162
+ // Persisting the screenshot failed (EACCES on ~/.peek, disk full, a
163
+ // Windows lock, …). Do NOT rethrow: this runs synchronously inside the
164
+ // SW-message handler, and a throw here would skip writing the act.response
165
+ // entirely — the MCP tool call would hang until it times out with no
166
+ // useful error. Drop the multi-MB base64 (never inline it) and return a
167
+ // compact error pointer so the caller gets a clean, actionable result.
168
+ payload.details = {
169
+ format: 'png',
170
+ error: `failed to persist screenshot: ${err instanceof Error ? err.message : String(err)}`,
171
+ };
172
+ }
173
+ }
174
+ return payload;
175
+ }
176
+ export class HostSocketServer {
177
+ #deps;
178
+ #inFlight = new Map();
179
+ #server;
180
+ /** Whether we've already done the one stale-unlink retry (item I). */
181
+ #retriedAfterUnlink = false;
182
+ constructor(deps) {
183
+ this.#deps = {
184
+ postToSw: deps.postToSw,
185
+ loadPolicy: deps.loadPolicy ?? (() => loadPolicy()),
186
+ generateRequestId: deps.generateRequestId ?? (() => globalThis.crypto.randomUUID()),
187
+ socketPath: deps.socketPath ?? hostSocketPath(),
188
+ maxLineBytes: deps.maxLineBytes ?? DEFAULT_MAX_LINE_BYTES,
189
+ probeSocketAlive: deps.probeSocketAlive ?? ((p) => probeSocketAlive(p)),
190
+ unlinkSocket: deps.unlinkSocket ?? ((p) => cleanupStaleSocket(p)),
191
+ writeScreenshot: deps.writeScreenshot ?? ((id, buf) => writeScreenshotFile(id, buf)),
192
+ ...(deps.onListenError ? { onListenError: deps.onListenError } : {}),
193
+ createServer: deps.createServer ??
194
+ ((onConnection) => {
195
+ const server = net.createServer((socket) => {
196
+ socket.setEncoding('utf8');
197
+ onConnection(socket);
198
+ });
199
+ let errorHandler;
200
+ server.on('error', (err) => errorHandler?.(err));
201
+ return {
202
+ // Item I: do NOT blindly unlink before binding (that could clobber a
203
+ // LIVE host's socket). Bind directly; if it emits EADDRINUSE the
204
+ // listen() orchestration probes live-vs-stale and only then unlinks.
205
+ listen: () => server.listen(this.#deps.socketPath),
206
+ close: () => server.close(),
207
+ on: (_ev, handler) => {
208
+ errorHandler = handler;
209
+ },
210
+ };
211
+ }),
212
+ };
213
+ }
214
+ /**
215
+ * Start listening for MCP-process connections. Item I: bind failures
216
+ * (EADDRINUSE/EACCES) surface ASYNC via the server 'error' event, not a throw,
217
+ * so we attach an error handler and run the stale-vs-live policy:
218
+ * • EADDRINUSE + probe says LIVE → another host owns it: report + stay down.
219
+ * • EADDRINUSE + probe says stale → unlink + retry listen ONCE.
220
+ * • any other bind error (e.g. EACCES) or a second EADDRINUSE → report + down.
221
+ * "Report" calls onListenError so startNativeHost degrades gracefully.
222
+ */
223
+ listen() {
224
+ if (this.#server)
225
+ return;
226
+ const server = this.#deps.createServer((conn) => this.#onConnection(conn));
227
+ this.#server = server;
228
+ server.on?.('error', (err) => {
229
+ void this.#handleListenError(err);
230
+ });
231
+ server.listen();
232
+ }
233
+ async #handleListenError(err) {
234
+ // Only EADDRINUSE is recoverable via the stale-unlink dance; everything else
235
+ // (EACCES, etc.) is reported as-is.
236
+ if (err.code !== 'EADDRINUSE' || this.#retriedAfterUnlink) {
237
+ this.#reportListenFailure(err);
238
+ return;
239
+ }
240
+ const alive = await this.#deps.probeSocketAlive(this.#deps.socketPath).catch(() => false);
241
+ if (alive) {
242
+ // A live host already owns this socket — DO NOT clobber it. Degrade.
243
+ this.#reportListenFailure(err);
244
+ return;
245
+ }
246
+ // Stale inode: unlink it and retry the bind exactly once.
247
+ this.#retriedAfterUnlink = true;
248
+ this.#deps.unlinkSocket(this.#deps.socketPath);
249
+ // A short beat so the rebind settles. On POSIX this is ~0 (the inode is gone
250
+ // after unlink); on a Windows named pipe it's a bit longer to let the OS
251
+ // finish releasing the pipe after the prior owner exited (see
252
+ // {@link rebindRetryDelayMs}).
253
+ await delay(rebindRetryDelayMs(this.#deps.socketPath));
254
+ this.#server?.listen();
255
+ }
256
+ #reportListenFailure(err) {
257
+ this.#server = undefined;
258
+ this.#deps.onListenError?.(err);
259
+ }
260
+ /** Stop the server (best-effort). */
261
+ close() {
262
+ this.#server?.close();
263
+ this.#server = undefined;
264
+ this.#inFlight.clear();
265
+ }
266
+ /**
267
+ * Inbound from the SW over the native port. For a terminal `action.result`,
268
+ * find the originating connection by requestId and write back the mapped
269
+ * `act.response`. `action.confirm.shown` is a non-terminal timing signal —
270
+ * the verdict still arrives in a later `action.result` — so we drop it here.
271
+ */
272
+ onSwMessage(message) {
273
+ if (message.type !== 'action.result')
274
+ return; // confirm.shown: timing only
275
+ const inFlight = this.#inFlight.get(message.requestId);
276
+ if (!inFlight)
277
+ return; // stale reply after a timeout — drop, don't throw
278
+ this.#inFlight.delete(message.requestId);
279
+ const frame = {
280
+ kind: 'act.response',
281
+ id: inFlight.wireId,
282
+ payload: toResponsePayload(message, this.#deps.writeScreenshot),
283
+ };
284
+ try {
285
+ inFlight.conn.write(`${JSON.stringify(frame)}\n`);
286
+ }
287
+ catch {
288
+ // The MCP process closed the socket mid-flight; its tool call will time
289
+ // out. Nothing else to do here.
290
+ }
291
+ }
292
+ #onConnection(conn) {
293
+ let buf = '';
294
+ let dropped = false;
295
+ conn.on('data', (chunk) => {
296
+ if (dropped)
297
+ return; // connection already torn down for an over-cap line
298
+ buf += String(chunk);
299
+ // Item J: local-DoS guard (mirrors the bridge). If the buffer grows past
300
+ // the cap WITHOUT a frame delimiter, a hostile/malformed peer is trying to
301
+ // make us buffer unbounded — drop the connection + clear the buffer.
302
+ if (buf.length > this.#deps.maxLineBytes && buf.indexOf('\n') < 0) {
303
+ dropped = true;
304
+ buf = '';
305
+ try {
306
+ conn.destroy?.();
307
+ conn.end?.();
308
+ }
309
+ catch {
310
+ // best-effort teardown
311
+ }
312
+ return;
313
+ }
314
+ let nl;
315
+ // biome-ignore lint/suspicious/noAssignInExpressions: idiomatic frame-drain loop
316
+ while ((nl = buf.indexOf('\n')) >= 0) {
317
+ const line = buf.slice(0, nl);
318
+ buf = buf.slice(nl + 1);
319
+ if (!line.trim())
320
+ continue;
321
+ if (line.length > this.#deps.maxLineBytes)
322
+ continue; // oversized framed line — drop it
323
+ this.#handleFrame(conn, line);
324
+ }
325
+ });
326
+ // A connection error / close leaves any of its in-flight entries dangling;
327
+ // they'll never be resolved (the MCP tool call times out). Drop them so the
328
+ // map doesn't grow unbounded.
329
+ const drop = () => {
330
+ for (const [requestId, entry] of this.#inFlight.entries()) {
331
+ if (entry.conn === conn)
332
+ this.#inFlight.delete(requestId);
333
+ }
334
+ };
335
+ conn.on('error', drop);
336
+ conn.on('close', drop);
337
+ conn.on('end', drop);
338
+ }
339
+ #handleFrame(conn, line) {
340
+ let frame;
341
+ try {
342
+ frame = JSON.parse(line);
343
+ }
344
+ catch {
345
+ return; // malformed — drop, keep the loop alive
346
+ }
347
+ if (frame.kind !== 'act.request' || typeof frame.id !== 'string')
348
+ return;
349
+ const payload = frame.payload;
350
+ if (!payload || payload.tool === undefined || payload.action === undefined)
351
+ return;
352
+ const requestId = this.#deps.generateRequestId();
353
+ this.#inFlight.set(requestId, { conn, wireId: frame.id });
354
+ const policy = this.#deps.loadPolicy().destructiveTerms;
355
+ const request = {
356
+ type: 'action.request',
357
+ requestId,
358
+ tool: payload.tool,
359
+ sessionId: payload.sessionId ?? '',
360
+ action: payload.action,
361
+ client: payload.client ?? 'unknown',
362
+ policy: { add: policy.add, remove: policy.remove },
363
+ ...(payload.tabId !== undefined ? { tabId: payload.tabId } : {}),
364
+ ...(payload.confirmToken !== undefined ? { confirmToken: payload.confirmToken } : {}),
365
+ };
366
+ this.#deps.postToSw(request);
367
+ }
368
+ }
369
+ //# sourceMappingURL=host-socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-socket.js","sourceRoot":"","sources":["../../src/native-host/host-socket.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,17 @@ export interface NativeHostOptions {
20
20
  readonly input?: Readable;
21
21
  /** Override the output stream (default: process.stdout). */
22
22
  readonly output?: Writable;
23
+ /**
24
+ * Override the IPC socket / named-pipe path the {@link HostSocketServer}
25
+ * listens on (tests + alternate PEEK_HOME). Defaults to ~/.peek/host.sock.
26
+ */
27
+ readonly socketPath?: string;
28
+ /**
29
+ * When false, skip starting the {@link HostSocketServer}. Defaults to true.
30
+ * Tests that only exercise the ingest/handshake path set this false to avoid
31
+ * binding a real socket.
32
+ */
33
+ readonly startSocketServer?: boolean;
23
34
  }
24
35
  /**
25
36
  * Start the native messaging host: open the DB (running migrations) and begin
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/native-host/host.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKtD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mCAAmC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;CAC5B;AAUD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CA4EjF"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/native-host/host.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQtD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mCAAmC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAaD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAmIjF"}
@@ -9,8 +9,12 @@
9
9
  // network.append / shadow.report). The act-tool action-protocol dispatch
10
10
  // (request/result correlation through the SW) lands alongside the IPC bridge.
11
11
  import { openDb, peekHomeDir, schemaVersion } from '../db/open.js';
12
+ import { HostSocketServer } from './host-socket.js';
12
13
  import { ingest } from './ingest.js';
14
+ import { hostSocketPath } from './socket-path.js';
13
15
  import { readMessages, writeMessage } from './transport.js';
16
+ /** Message types the SW sends back on the action-request correlation channel. */
17
+ const ACTION_REPLY_TYPES = new Set(['action.result', 'action.confirm.shown']);
14
18
  /** Message-type strings the ingest handler claims. */
15
19
  const INGEST_TYPES = new Set([
16
20
  'session.append',
@@ -35,6 +39,47 @@ export function startNativeHost(options = {}) {
35
39
  };
36
40
  if (options.input !== undefined)
37
41
  readOptions.input = options.input;
42
+ // IPC relay to the MCP-server process (Task 3.24). The MCP process's
43
+ // LocalSocketHostBridge connects here; the server relays `act.request` →
44
+ // native-port `action.request` (via `write`, the host → SW direction) and
45
+ // `action.result` (inbound, see handleMessage) → `act.response`.
46
+ let socketServer;
47
+ if (options.startSocketServer !== false) {
48
+ // Resolve the socket path: explicit option wins; else derive from the
49
+ // (possibly test-overridden) peek data dir via hostSocketPath(home). This
50
+ // is the SAME function the MCP-process bridge dials, so both sides agree —
51
+ // including under a custom $PEEK_HOME (item D). On Windows it's the fixed
52
+ // named pipe; a test `home` binds its own socket and never collides.
53
+ const socketPath = options.socketPath ?? hostSocketPath(home);
54
+ socketServer = new HostSocketServer({
55
+ // postToSw writes the action.request out the native port (host → SW).
56
+ postToSw: (message) => {
57
+ void write(message).catch((err) => {
58
+ console.error(`native host: action.request post failed — ${err instanceof Error ? err.message : String(err)}`);
59
+ });
60
+ },
61
+ socketPath,
62
+ // Item I/J: bind failures (EADDRINUSE/EACCES) are emitted ASYNC via the
63
+ // server 'error' event, so a try/catch around listen() can't catch them.
64
+ // The server probes live-vs-stale + retries once on a stale socket; if it
65
+ // still can't bind it calls this. Degrade — the action write-path is down,
66
+ // but ingest/capture still flows — never crash the host.
67
+ onListenError: (err) => {
68
+ console.error(`native host: IPC socket failed to listen — ${err.message}`);
69
+ socketServer = undefined;
70
+ },
71
+ });
72
+ // listen() is async-internally (the bind-error/probe/retry path); it never
73
+ // throws synchronously, but keep the try/catch for a defensive construct-time
74
+ // failure.
75
+ try {
76
+ socketServer.listen();
77
+ }
78
+ catch (err) {
79
+ console.error(`native host: IPC socket listen threw — ${err instanceof Error ? err.message : String(err)}`);
80
+ socketServer = undefined;
81
+ }
82
+ }
38
83
  const done = readMessages((message) => {
39
84
  // A reply-write failure (e.g. the browser closed the port mid-reply) must
40
85
  // not become an unhandled rejection that tears down the host.
@@ -45,6 +90,7 @@ export function startNativeHost(options = {}) {
45
90
  return {
46
91
  done,
47
92
  close() {
93
+ socketServer?.close();
48
94
  db.close();
49
95
  },
50
96
  };
@@ -60,6 +106,14 @@ export function startNativeHost(options = {}) {
60
106
  });
61
107
  return;
62
108
  }
109
+ // Action-request correlation replies from the SW (Task 3.24). Forward to
110
+ // the IPC relay, which writes the mapped `act.response` back to the
111
+ // originating MCP-process socket connection. These are NOT acked over the
112
+ // native port (the MCP process is the one awaiting, over the socket).
113
+ if (type !== undefined && ACTION_REPLY_TYPES.has(type)) {
114
+ socketServer?.onSwMessage(message);
115
+ return;
116
+ }
63
117
  if (type !== undefined && INGEST_TYPES.has(type)) {
64
118
  // ingest() catches its own throws + returns a structured reply. The
65
119
  // try/catch here is defense in depth: if a future regression introduces
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/native-host/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/native-host/host.ts"],"names":[],"mappings":"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"}
@@ -120,10 +120,10 @@ function ingestSessionAppend(msg, ctx) {
120
120
  WHERE id = ?`);
121
121
  const tx = ctx.db.transaction(() => {
122
122
  upsertSession.run(msg.sessionId, nowIso, nowIso, msg.url ?? null, msg.title ?? null, origin ?? null,
123
- // events_blob_path stays a per-session pointer label; chunk rows carry the per-seq path.
124
- // We record the session-level directory (relative to PEEK_HOME) on first insert via the
125
- // `?` placeholder above; the INSERT-OR-IGNORE on conflict won't update it (intentional).
126
- join('rrweb-events', msg.sessionId));
123
+ // events_blob_path is the per-session directory relative to <PEEK_HOME>/rrweb-events/
124
+ // (the reader's resolveBlobPath base). Just the sessionId no `rrweb-events/` prefix,
125
+ // or the reader will double it. Chunk rows carry the per-seq filename inside the dir.
126
+ msg.sessionId);
127
127
  const ins = insertChunk.run(msg.sessionId, seq, startMs, endMs, msg.events.length, fileBytes, nowIso);
128
128
  if (ins.changes > 0) {
129
129
  // Only accumulate when we actually inserted (a duplicate seq is a no-op).
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/native-host/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/native-host/ingest.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,21 @@ export interface InstallResult {
16
16
  * so tests can capture argv without spawning a real Windows process.
17
17
  */
18
18
  export type RegExecFn = (file: string, args: readonly string[]) => void;
19
+ /**
20
+ * Turn the error `execFileSync` throws when `reg.exe` exits non-zero into a
21
+ * message that actually says *why* it failed.
22
+ *
23
+ * Windows-hardening fix: previously the default `execFn` ran `reg.exe` with
24
+ * `stdio: 'ignore'`, so on failure (EACCES on a redirected/locked HKCU hive,
25
+ * the host running under a restricted token, etc.) the child's stderr was
26
+ * discarded and `installManifests` recorded a useless bare "Command failed".
27
+ * Capturing stderr and folding it (plus the exit status) into the thrown
28
+ * Error's message means the per-target `result.error` is now actionable.
29
+ *
30
+ * Accepts the raw caught value (typed `unknown`) so callers don't have to
31
+ * pre-narrow; reads `.stderr` / `.status` off `execFileSync`'s error shape.
32
+ */
33
+ export declare function formatRegExecError(err: unknown): string;
19
34
  /** Injectable side-effect surface (defaults to real fs + registry). */
20
35
  export interface InstallSink {
21
36
  /** Write a manifest JSON file at an absolute path (creating parent dirs). */
@@ -35,6 +50,12 @@ export interface InstallSink {
35
50
  export declare function buildRealSink(deps?: {
36
51
  execFn?: RegExecFn;
37
52
  platform?: NodeJS.Platform;
53
+ /**
54
+ * Map a thrown `execFn` error → the message to rethrow. Injectable so the
55
+ * stderr-surfacing wrapper is unit-testable; defaults to
56
+ * {@link formatRegExecError}.
57
+ */
58
+ wrapExecError?: (err: unknown) => string;
38
59
  }): InstallSink;
39
60
  /**
40
61
  * Default real-OS sink (writes to disk + the Windows registry). Constructed
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/native-host/installer.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEvE,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;AAExE,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CACvB,GACL,WAAW,CAmCb;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,WAA6B,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,cAAmB,GAC3B,aAAa,EAAE,CAwCjB"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/native-host/installer.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEvE,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;AAmBxE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAWvD;AAED,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,GACL,WAAW,CAkDb;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,WAA6B,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,cAAmB,GAC3B,aAAa,EAAE,CAwCjB"}