@gtc6244/immediacy-daemon 0.2.2 → 0.2.4

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 (57) hide show
  1. package/dist/src/crypto.d.ts +18 -39
  2. package/dist/src/crypto.js +33 -152
  3. package/dist/src/crypto.js.map +1 -1
  4. package/dist/src/devices.d.ts +46 -0
  5. package/dist/src/devices.js +114 -0
  6. package/dist/src/devices.js.map +1 -0
  7. package/dist/src/envelope.d.ts +3 -3
  8. package/dist/src/envelope.js +3 -3
  9. package/dist/src/forward.d.ts +4 -4
  10. package/dist/src/forward.js +1 -1
  11. package/dist/src/forward.js.map +1 -1
  12. package/dist/src/framing.d.ts +76 -0
  13. package/dist/src/framing.js +133 -0
  14. package/dist/src/framing.js.map +1 -0
  15. package/dist/src/hub.d.ts +21 -9
  16. package/dist/src/hub.js +6 -5
  17. package/dist/src/hub.js.map +1 -1
  18. package/dist/src/index.d.ts +3 -3
  19. package/dist/src/index.js +79 -17
  20. package/dist/src/index.js.map +1 -1
  21. package/dist/src/lan.d.ts +103 -0
  22. package/dist/src/lan.js +182 -0
  23. package/dist/src/lan.js.map +1 -0
  24. package/dist/src/pairing.d.ts +69 -0
  25. package/dist/src/pairing.js +125 -0
  26. package/dist/src/pairing.js.map +1 -0
  27. package/dist/src/protocol.d.ts +75 -21
  28. package/dist/src/relay-transport.d.ts +62 -0
  29. package/dist/src/relay-transport.js +180 -0
  30. package/dist/src/relay-transport.js.map +1 -0
  31. package/dist/src/relay-wire.d.ts +25 -0
  32. package/dist/src/relay-wire.js +37 -0
  33. package/dist/src/relay-wire.js.map +1 -0
  34. package/dist/src/rendezvous.d.ts +57 -0
  35. package/dist/src/rendezvous.js +152 -0
  36. package/dist/src/rendezvous.js.map +1 -0
  37. package/dist/src/server.d.ts +19 -7
  38. package/dist/src/server.js +181 -61
  39. package/dist/src/server.js.map +1 -1
  40. package/dist/src/session-socket.d.ts +34 -0
  41. package/dist/src/session-socket.js +84 -0
  42. package/dist/src/session-socket.js.map +1 -0
  43. package/dist/src/session.d.ts +151 -0
  44. package/dist/src/session.js +241 -0
  45. package/dist/src/session.js.map +1 -0
  46. package/dist/src/tcp-transport.d.ts +37 -0
  47. package/dist/src/tcp-transport.js +106 -0
  48. package/dist/src/tcp-transport.js.map +1 -0
  49. package/dist/src/telemetry.d.ts +69 -0
  50. package/dist/src/telemetry.js +64 -0
  51. package/dist/src/telemetry.js.map +1 -0
  52. package/dist/src/transport.d.ts +75 -0
  53. package/dist/src/transport.js +136 -0
  54. package/dist/src/transport.js.map +1 -0
  55. package/dist/src/workspace.d.ts +4 -4
  56. package/dist/src/workspace.js.map +1 -1
  57. package/package.json +16 -4
@@ -14,8 +14,12 @@ import { dirname, extname, join, normalize, resolve, sep } from "node:path";
14
14
  import { WebSocketServer } from "ws";
15
15
  import { PROTOCOL_VERSION } from "./protocol.js";
16
16
  import { make, ProtocolError } from "./envelope.js";
17
- import { addPeer, boxCodec, isValidPublicKeyB64 } from "./crypto.js";
17
+ import { clearCodec, sessionCodec } from "./crypto.js";
18
+ import { isValidSignPublicKeyB64 } from "./rendezvous.js";
19
+ import { buildPairingPayload } from "./pairing.js";
20
+ import { acceptHandshake, HandshakeError, } from "./session.js";
18
21
  import { Hub } from "./hub.js";
22
+ import { SessionSocket } from "./session-socket.js";
19
23
  import { WorkspaceManager } from "./workspace.js";
20
24
  import { PortScanner } from "./ports.js";
21
25
  import { ForwardManager } from "./forward.js";
@@ -144,7 +148,9 @@ async function serveMedia(reqUrl, method, res, workspaces) {
144
148
  export async function startServer(opts) {
145
149
  // E2E on ⇒ require a sealed channel before fanning broadcasts to a socket, so
146
150
  // an un-handshaked device can't be sent cleartext payloads over the tunnel.
147
- const hub = new Hub(Boolean(opts.crypto));
151
+ // No tunnel to protect anymore: local/LAN/relay sockets may be cleartext until
152
+ // they complete the session handshake, which then binds a sealing codec.
153
+ const hub = new Hub(false);
148
154
  // Bring the structured log up first: rotate an oversized prior file, then
149
155
  // fan every entry out to any client following the log (the Logs pane).
150
156
  await logger.start();
@@ -197,6 +203,46 @@ export async function startServer(opts) {
197
203
  const forwardScanner = new PortScanner(() => workspaces.list().map((r) => ({ ws: r.id, worktreePath: r.worktreePath })), (ports) => hub.broadcast("forward.available", null, { ports }));
198
204
  const forwards = new ForwardManager(hub, (ws, port) => forwardScanner.isOwned(ws, port));
199
205
  let clientCount = 0;
206
+ // Shared per-connection setup for EVERY transport (WS, LAN, relay): register
207
+ // the socket, push daemon.info, and return the frame dispatch + teardown. The
208
+ // WS handler and the session (LAN/relay) attach both call this.
209
+ function attachSocket(socket) {
210
+ hub.add(socket);
211
+ // A fresh socket is cleartext until it seals, so this unsolicited push lands
212
+ // first. (LAN/relay sessions are already sealed; the SessionSocket seals it.)
213
+ hub.sendTo(socket, "daemon.info", null, identity.info());
214
+ if (clientCount++ === 0)
215
+ forwardScanner.start();
216
+ else
217
+ void forwardScanner.refresh();
218
+ const connId = randomUUID();
219
+ const dispatch = (raw) => handleFrame(socket, raw, connId, hub, workspaces, jobs, credentials, appConfig, identity, forwards, forwardScanner, pushTokens, opts.rendezvous);
220
+ let torn = false;
221
+ const teardown = () => {
222
+ if (torn)
223
+ return;
224
+ torn = true;
225
+ hub.remove(socket);
226
+ workspaces.reapDevice(connId);
227
+ forwards.reapClient(socket);
228
+ if (--clientCount <= 0) {
229
+ clientCount = 0;
230
+ forwardScanner.stop();
231
+ }
232
+ };
233
+ return { dispatch, teardown };
234
+ }
235
+ /** Attach a completed LAN/relay handshake session to the same dispatch. */
236
+ function attachSession(session) {
237
+ const socket = new SessionSocket(session.mux, session.channel, session.close);
238
+ const { dispatch, teardown } = attachSocket(socket);
239
+ socket.onMessage(dispatch);
240
+ socket.onClose(teardown);
241
+ session.onClose(() => {
242
+ socket.handlePeerClose();
243
+ });
244
+ logger.info("conn", "session attached (LAN/relay)");
245
+ }
200
246
  // Own the HTTP server explicitly so we can serve a plaintext /healthz probe
201
247
  // on the same port cloudflared dials. launchd (KeepAlive) restarts the daemon
202
248
  // if it exits; /healthz lets the tunnel's ingress and any external monitor see
@@ -222,6 +268,32 @@ export async function startServer(opts) {
222
268
  res.end(body);
223
269
  return;
224
270
  }
271
+ // Local pairing (co-located app). A LOOPBACK-ONLY endpoint that mints a
272
+ // single-use pairing code + returns this daemon's identity, so an app
273
+ // supervising this daemon on the same machine can pair without the PAIRING=1
274
+ // QR dance: the app fetches this, then runs the normal §5.3 handshake with the
275
+ // code (redeemed over LAN). Loopback-gated because local disk access already
276
+ // implies trust (identity.key lives on this machine); a network peer can't
277
+ // reach it. The code still expires (60s) and is single-use.
278
+ if (req.method === "GET" && req.url === "/pair/local") {
279
+ const ra = req.socket.remoteAddress ?? "";
280
+ const isLoopback = ra === "127.0.0.1" || ra === "::1" || ra === "::ffff:127.0.0.1";
281
+ if (!isLoopback || !opts.rendezvous) {
282
+ res.writeHead(403, { "content-type": "text/plain" });
283
+ res.end("forbidden");
284
+ return;
285
+ }
286
+ const { code } = opts.rendezvous.pairing.issue();
287
+ const payload = buildPairingPayload({
288
+ rendezvousId: opts.rendezvous.identity.rendezvousId(),
289
+ daemonPublicKeyB64: opts.rendezvous.identity.publicKeyB64(),
290
+ code,
291
+ signalUrl: process.env.SIGNAL_URL,
292
+ });
293
+ res.writeHead(200, { "content-type": "application/json", "cache-control": "no-store" });
294
+ res.end(JSON.stringify(payload));
295
+ return;
296
+ }
225
297
  // Agent-produced image bytes for the web client: same-origin, Access-cookie
226
298
  // authorized, and immutably cacheable (the id is the content hash, so the URL
227
299
  // never changes meaning). E2E clients use the sealed `media.get` WS path
@@ -254,46 +326,29 @@ export async function startServer(opts) {
254
326
  wss.on("connection", (socket, req) => {
255
327
  const peer = req.socket.remoteAddress ?? "unknown";
256
328
  logger.info("conn", `client connected from ${peer}`);
257
- hub.add(socket);
258
- // Announce this daemon's identity so a client connected to several daemons can
259
- // label this connection (name defaults to the machine hostname). Only pushed
260
- // unsolicited on a CLEARTEXT socket — with E2E on, the socket starts cleartext
261
- // and the client flips to sealed-only right after its `hello`, so a cleartext
262
- // push would race and be rejected as unsealed. Those clients fetch it instead
263
- // via a sealed `daemon.get` after the handshake.
264
- if (!opts.crypto)
265
- hub.sendTo(socket, "daemon.info", null, identity.info());
266
- // First client attaching turns on port discovery; a fresh scan runs now so
267
- // this client sees any already-running dev servers without waiting a tick.
268
- if (clientCount++ === 0)
269
- forwardScanner.start();
270
- else
271
- void forwardScanner.refresh();
272
- // Fallback device identity for clients that don't send a stable deviceId:
273
- // isolates this connection's terminal, though it won't survive a reconnect.
274
- const connId = randomUUID();
275
- socket.on("message", (data) => handleFrame(socket, data.toString(), connId, opts.crypto, hub, workspaces, jobs, credentials, appConfig, identity, forwards, forwardScanner, pushTokens));
329
+ const { dispatch, teardown } = attachSocket(socket);
330
+ socket.on("message", (data) => dispatch(data.toString()));
276
331
  socket.on("close", (code) => {
277
- hub.remove(socket);
278
- // Reap the per-connection terminal (keyed by this connection's fallback
279
- // connId) so a client that sends no stable deviceId doesn't leak a PTY on
280
- // every reconnect. Stable-deviceId terminals are left for reconnect.
281
- workspaces.reapDevice(connId);
282
- // Drop every forwarded stream this socket owned, and stop scanning once the
283
- // last client leaves (lsof polling is pointless with nobody to notify).
284
- forwards.reapClient(socket);
285
- if (--clientCount <= 0) {
286
- clientCount = 0;
287
- forwardScanner.stop();
288
- }
332
+ teardown();
289
333
  logger.info("conn", `client ${peer} disconnected`, { data: { closeCode: code } });
290
334
  });
291
335
  socket.on("error", (err) => logger.error("conn", "socket error", {
292
336
  data: { peer, message: err instanceof Error ? err.message : String(err) },
293
337
  }));
294
338
  });
339
+ // LAN (Phase 3) + relay (Phase 4): each completed handshake session is attached
340
+ // to the same dispatch via attachSession, so a phone reaching the daemon over
341
+ // LAN or the relay gets the full IDE protocol identically to a WS client.
342
+ if (opts.rendezvous) {
343
+ if (opts.lan) {
344
+ opts.lan.onSession = (s) => attachSession(s);
345
+ }
346
+ if (opts.relay) {
347
+ opts.relay.onSession = (s) => attachSession(s);
348
+ }
349
+ }
295
350
  http.listen(opts.port, opts.host, () => logger.info("system", `listening on ws://${opts.host}:${opts.port} (health: http://${opts.host}:${opts.port}/healthz)`));
296
- return { http, wss, hub, workspaces, jobs };
351
+ return { http, wss, hub, workspaces, jobs, rendezvous: opts.rendezvous };
297
352
  }
298
353
  async function projects(workspaces) {
299
354
  return Promise.all(workspaces.listProjects().map(async (p) => {
@@ -349,7 +404,7 @@ function sanitizeAttachments(raw) {
349
404
  }
350
405
  return out.length > 0 ? out : undefined;
351
406
  }
352
- async function handleFrame(socket, raw, connId, crypto, hub, workspaces, jobs, credentials, appConfig, identity, forwards, forwardScanner, pushTokens) {
407
+ async function handleFrame(socket, raw, connId, hub, workspaces, jobs, credentials, appConfig, identity, forwards, forwardScanner, pushTokens, rendezvous) {
353
408
  let env;
354
409
  try {
355
410
  // Decode with this socket's own codec — cleartext until it has completed the
@@ -393,41 +448,106 @@ async function handleFrame(socket, raw, connId, crypto, hub, workspaces, jobs, c
393
448
  }
394
449
  return;
395
450
  }
396
- case "hello": {
397
- // Multi-device pairing handshake. The client announces its public key
398
- // (cleartext, but already inside the Access-authenticated tunnel — the
399
- // Access token IS the pairing secret, so this is trust-on-first-use).
400
- // We bind THIS socket to a box sealed to that key; other devices keep
401
- // their own keys and codecs, so no device clobbers another.
451
+ case "pair.begin": {
452
+ // Multi-transport pairing (docs/WEBRTC_MIGRATION.md §5.1). Redeem the
453
+ // single-use code from the scanned QR and register this device's
454
+ // long-term Ed25519 key. Cleartext: the code IS the pairing secret.
455
+ if (!rendezvous) {
456
+ reply(make("pair.begin.result", null, { ok: false, error: "not_supported" }));
457
+ return;
458
+ }
402
459
  const p = env.payload;
403
- if (!crypto) {
404
- // E2E off: acknowledge but stay cleartext.
405
- reply(make("hello.ok", null, { pub: "", sealed: false }));
460
+ if (typeof p.devicePub !== "string" || !isValidSignPublicKeyB64(p.devicePub)) {
461
+ reply(make("pair.begin.result", null, { ok: false, error: "bad_key" }));
406
462
  return;
407
463
  }
408
- if (typeof p.pub !== "string" || !isValidPublicKeyB64(p.pub)) {
409
- reply(make("error", null, { code: "bad_pubkey", message: "hello.pub is not a valid public key" }));
464
+ if (typeof p.code !== "string" || !rendezvous.pairing.consume(p.code)) {
465
+ // Wrong/expired/reused code — never reveal which; just refuse.
466
+ logger.warn("conn", "pairing rejected: bad or expired code");
467
+ reply(make("pair.begin.result", null, { ok: false, error: "bad_code" }));
410
468
  return;
411
469
  }
412
- const label = typeof p.label === "string" ? p.label : undefined;
413
- // Switch this socket to a sealed codec SYNCHRONOUSLY — before any await —
414
- // so a sealed frame the client sends right after hello can't race in and
415
- // get decoded with the stale cleartext codec. Persistence is best-effort
416
- // and runs after (its own writes are serialized in addPeer).
417
- hub.setCodec(socket, boxCodec(crypto.self, Buffer.from(p.pub, "base64")));
418
- // Sealed from here on: the client enabled its box right after sending
419
- // hello, so it can open this reply.
420
- reply(make("hello.ok", null, { pub: crypto.self.publicKey.toString("base64"), sealed: true }));
421
- void addPeer(p.pub, label).catch((err) => logger.error("conn", "failed to persist peer", {
422
- data: { message: err instanceof Error ? err.message : String(err) },
470
+ const label = typeof p.label === "string" ? p.label : "";
471
+ await rendezvous.devices.add(p.devicePub, label);
472
+ reply(make("pair.begin.result", null, {
473
+ ok: true,
474
+ rendezvousId: rendezvous.identity.rendezvousId(),
475
+ daemonPub: rendezvous.identity.publicKeyB64(),
476
+ label: identity.info().name,
423
477
  }));
424
- // Never log the device public key — only that a labelled device paired.
425
- logger.info("conn", "paired device", { data: { label: label ?? "no label" } });
478
+ // Never log the device key — only that a labelled device paired.
479
+ logger.info("conn", "paired device (session)", { data: { label: label || "no label" } });
480
+ return;
481
+ }
482
+ case "pairing.issue": {
483
+ // Mint a fresh pairing payload for a connected client to render as a QR,
484
+ // so a *new* device can scan it and pair. This is the inverse of
485
+ // `pair.begin`. The reply carries a live single-use bearer code, so unlike
486
+ // `pair.begin` (where the code IS the presented secret) this op is
487
+ // sealed-only: only an already-authenticated device may mint one.
488
+ if (!rendezvous) {
489
+ reply(make("pairing.issue.result", null, { ok: false, error: "not_supported" }));
490
+ return;
491
+ }
492
+ // Authenticated iff the socket completed the §5.3 handshake. A LAN/relay
493
+ // SessionSocket is always post-handshake (it seals at the transport
494
+ // boundary, so its hub codec stays cleartext); a live WS socket proves it
495
+ // by having upgraded off the cleartext codec via `session.begin`.
496
+ const authenticated = socket instanceof SessionSocket || hub.codecFor(socket) !== clearCodec;
497
+ if (!authenticated) {
498
+ logger.warn("conn", "pairing.issue refused: socket not authenticated");
499
+ reply(make("pairing.issue.result", null, { ok: false, error: "not_authenticated" }));
500
+ return;
501
+ }
502
+ const { code } = rendezvous.pairing.issue();
503
+ const payload = buildPairingPayload({
504
+ rendezvousId: rendezvous.identity.rendezvousId(),
505
+ daemonPublicKeyB64: rendezvous.identity.publicKeyB64(),
506
+ code,
507
+ signalUrl: process.env.SIGNAL_URL,
508
+ });
509
+ reply(make("pairing.issue.result", null, { ok: true, payload }));
510
+ logger.info("conn", "issued pairing payload for QR (session)");
426
511
  return;
427
512
  }
428
- case "pair.info":
429
- reply(make("pair.info.result", null, { pub: crypto?.self.publicKey.toString("base64") ?? "" }));
513
+ case "session.begin": {
514
+ // The §5.3 mutual-auth handshake. Verify the device against the table
515
+ // (unknown/revoked ⇒ reject), reply with the daemon's signed msg2, then
516
+ // seal every subsequent frame on this socket with the derived keys.
517
+ if (!rendezvous) {
518
+ reply(make("session.begin.result", null, { ok: false, error: "not_supported" }));
519
+ return;
520
+ }
521
+ const p = env.payload;
522
+ let result;
523
+ try {
524
+ result = acceptHandshake(p.msg1, {
525
+ daemonSignSecret: rendezvous.identity.signSecretKey(),
526
+ rendezvousId: rendezvous.identity.rendezvousId(),
527
+ isPaired: (dev) => rendezvous.devices.has(dev),
528
+ });
529
+ }
530
+ catch (err) {
531
+ const code = err instanceof HandshakeError ? err.code : "bad_message";
532
+ logger.warn("conn", "session handshake rejected", { data: { code } });
533
+ reply(make("session.begin.result", null, { ok: false, error: code }));
534
+ return;
535
+ }
536
+ // Send msg2 on the CURRENT (cleartext) codec so the client — which has
537
+ // not yet derived its keys — can read it. Then flip this socket to the
538
+ // sealed session codec. Ordering is safe: the client can only send a
539
+ // sealed frame after it receives msg2, by which point we've already
540
+ // switched. Mirrors the `hello` → boxCodec upgrade.
541
+ reply(make("session.begin.result", null, { ok: true, msg2: result.msg2 }));
542
+ hub.setCodec(socket, sessionCodec(result.channel));
543
+ // Best-effort: record that this device just connected.
544
+ const dev = p.msg1?.dev;
545
+ if (typeof dev === "string") {
546
+ void rendezvous.devices.touch(dev).catch(() => { });
547
+ }
548
+ logger.info("conn", "session established");
430
549
  return;
550
+ }
431
551
  case "daemon.get":
432
552
  reply(make("daemon.info", null, identity.info()));
433
553
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * SessionSocket — presents a LAN/relay session (a frame `Mux` + a handshake
3
+ * `SecureChannel`) to the server dispatch as a `SocketLike`, so one `handleFrame`
4
+ * serves every transport (docs/WEBRTC_MIGRATION.md Phase 4 wiring).
5
+ *
6
+ * App traffic rides the `rpc` channel: each envelope JSON is sealed with the
7
+ * session key and sent as one Mux message; inbound frames are opened back to a
8
+ * JSON string and handed to the dispatch. The Hub treats this socket with the
9
+ * cleartext codec (plain JSON in/out) — the sealing happens here, at the
10
+ * transport boundary, exactly like the WS `sessionCodec` does for the live path.
11
+ */
12
+ import type { Mux } from "./transport.js";
13
+ import type { SecureChannel } from "./session.js";
14
+ import type { SocketLike } from "./hub.js";
15
+ export declare class SessionSocket implements SocketLike {
16
+ private readonly mux;
17
+ private readonly channel;
18
+ private readonly closeTransport;
19
+ readyState: number;
20
+ private onMsg;
21
+ private onCloseCb;
22
+ constructor(mux: Mux, channel: SecureChannel, closeTransport: () => void);
23
+ /** Backpressure isn't surfaced per-session here; the Mux paces large sends. */
24
+ get bufferedAmount(): number;
25
+ send(data: string, cb?: (err?: Error) => void): void;
26
+ /** Register the inbound-envelope handler (the server's dispatch). */
27
+ onMessage(cb: (data: string) => void): void;
28
+ /** Register the close handler (the server's teardown). */
29
+ onClose(cb: () => void): void;
30
+ /** Close from our side (tears down the underlying transport). */
31
+ close(): void;
32
+ /** The peer/transport dropped — mark closed and notify (no re-teardown). */
33
+ handlePeerClose(): void;
34
+ }