agentfootprint 7.26.0 → 7.27.1

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 (48) hide show
  1. package/dist/adapters/hosting/agentcore.js +128 -23
  2. package/dist/adapters/hosting/agentcore.js.map +1 -1
  3. package/dist/esm/adapters/hosting/agentcore.d.ts +36 -5
  4. package/dist/esm/adapters/hosting/agentcore.js +128 -23
  5. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  6. package/dist/esm/hosting/httpHost.d.ts +75 -1
  7. package/dist/esm/hosting/httpHost.js +186 -10
  8. package/dist/esm/hosting/httpHost.js.map +1 -1
  9. package/dist/esm/hosting/nodeHost.d.ts +31 -0
  10. package/dist/esm/hosting/nodeHost.js +9 -0
  11. package/dist/esm/hosting/nodeHost.js.map +1 -1
  12. package/dist/esm/hosting/webSocketConversation.d.ts +5 -0
  13. package/dist/esm/hosting/webSocketConversation.js +79 -19
  14. package/dist/esm/hosting/webSocketConversation.js.map +1 -1
  15. package/dist/esm/hosting/webSocketFrames.d.ts +6 -0
  16. package/dist/esm/hosting/webSocketFrames.js +6 -0
  17. package/dist/esm/hosting/webSocketFrames.js.map +1 -1
  18. package/dist/esm/memory/define.js.map +1 -1
  19. package/dist/esm/memory/define.types.d.ts +15 -3
  20. package/dist/esm/memory/define.types.js.map +1 -1
  21. package/dist/esm/memory/index.d.ts +11 -1
  22. package/dist/esm/memory/index.js.map +1 -1
  23. package/dist/hosting/httpHost.js +186 -10
  24. package/dist/hosting/httpHost.js.map +1 -1
  25. package/dist/hosting/nodeHost.js +9 -0
  26. package/dist/hosting/nodeHost.js.map +1 -1
  27. package/dist/hosting/webSocketConversation.js +79 -19
  28. package/dist/hosting/webSocketConversation.js.map +1 -1
  29. package/dist/hosting/webSocketFrames.js +6 -0
  30. package/dist/hosting/webSocketFrames.js.map +1 -1
  31. package/dist/memory/define.js.map +1 -1
  32. package/dist/memory/define.types.js.map +1 -1
  33. package/dist/memory/index.js.map +1 -1
  34. package/dist/types/adapters/hosting/agentcore.d.ts +36 -5
  35. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  36. package/dist/types/hosting/httpHost.d.ts +75 -1
  37. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  38. package/dist/types/hosting/nodeHost.d.ts +31 -0
  39. package/dist/types/hosting/nodeHost.d.ts.map +1 -1
  40. package/dist/types/hosting/webSocketConversation.d.ts +5 -0
  41. package/dist/types/hosting/webSocketConversation.d.ts.map +1 -1
  42. package/dist/types/hosting/webSocketFrames.d.ts +6 -0
  43. package/dist/types/hosting/webSocketFrames.d.ts.map +1 -1
  44. package/dist/types/memory/define.types.d.ts +15 -3
  45. package/dist/types/memory/define.types.d.ts.map +1 -1
  46. package/dist/types/memory/index.d.ts +11 -1
  47. package/dist/types/memory/index.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -35,6 +35,21 @@
35
35
  * detaches and drains without closing a socket it never opened. That is the
36
36
  * whole difference; every other law on this page is the same either way.
37
37
  *
38
+ * ── …and the same seam, inverted: `onUnhandled` ──────────────────────────────
39
+ * `server` lends the host a socket somebody else owns. `onUnhandled` lends the
40
+ * CALLER every path this host does not own on a socket the host owns. One port
41
+ * either way; which side binds it is the only difference. The host still never
42
+ * answers for the application — with this hook it no longer has to 404 for it
43
+ * either. Refused alongside `server`, where unmatched paths are already the
44
+ * caller's and a second answer would just race the first.
45
+ *
46
+ * ── The law under all of it ──────────────────────────────────────────────────
47
+ * **Nothing in a request's lifecycle may ever be the process's failure.** Every
48
+ * listener body on this page that computes is wrapped, because node calls them
49
+ * from its own stack and a throw there is uncaught — the death of a container,
50
+ * bought with one malformed request. Stated in full at `readJson`, which is
51
+ * where the field found it.
52
+ *
38
53
  * ── The third door: a conversation ───────────────────────────────────────────
39
54
  * `serveConversations(handler)` sits beside `serve(handler)` and takes upgrades
40
55
  * on `conversationPath`, because `HostRequest → HostReply` is one exchange and
@@ -140,8 +155,27 @@ function httpHost(options) {
140
155
  `an address, and this host binds nothing when you pass one. Drop the port/hostname, ` +
141
156
  `or drop the server and let this host bind its own socket.`);
142
157
  }
158
+ // Refused at construction for the same reason and in the same breath: on a
159
+ // server the caller owns, unmatched paths ALREADY reach their own listeners,
160
+ // so a hook for them here is a second answer to one question and the winner
161
+ // would be whichever listener was registered first.
162
+ const onUnhandled = options.onUnhandled;
163
+ if (ownServer && onUnhandled !== undefined) {
164
+ throw new Error(`[hosting] httpHost('${name}') was given both a caller-owned 'server' and an ` +
165
+ `'onUnhandled'. On a server you own, a path this host does not own is already yours — ` +
166
+ `it falls through to your own 'request' listeners untouched — so this hook would be a ` +
167
+ `second answer to the same question. Route unmatched paths on your server, or drop ` +
168
+ `'server' and let this host own the socket and hand you what it does not answer.`);
169
+ }
143
170
  const port = options.port ?? 8080;
144
171
  const hostname = options.hostname ?? '0.0.0.0';
172
+ /**
173
+ * The paths this host answers on. Everything else is unowned and may be
174
+ * handed to `onUnhandled` — the conversation path included in the ownership,
175
+ * because a door that takes upgrades still OWNS its path when something
176
+ * arrives on it that is not one.
177
+ */
178
+ const ownsPath = (path) => path === invokePath || path === healthPath || path === conversationPath;
145
179
  // A door that exists is a capability that can be honoured; one built without
146
180
  // a path is not, and says so rather than being discovered at runtime.
147
181
  const capabilities = options.capabilities ??
@@ -256,11 +290,29 @@ function httpHost(options) {
256
290
  accepting: () => accepting,
257
291
  });
258
292
  const onUpgrade = (request, socketOfConversation) => {
259
- if (door.handleUpgrade(request, socketOfConversation))
293
+ // THE LAW again, on the other door: an `'upgrade'` listener runs on
294
+ // node's own stack too, so a throw here is uncaught and would end every
295
+ // OTHER conversation — and every request — for one bad handshake.
296
+ let claimed;
297
+ try {
298
+ claimed = door.handleUpgrade(request, socketOfConversation);
299
+ }
300
+ catch {
301
+ // The door answers its own refusals; anything that got past them
302
+ // costs THIS socket and nothing else.
303
+ socketOfConversation.destroy();
304
+ return;
305
+ }
306
+ if (claimed)
260
307
  return;
261
308
  // Not our path. On the caller's server that is theirs to answer or to
262
309
  // ignore, exactly as an unmatched request path is; on ours nobody else
263
310
  // can, so leaving the socket hanging would be the one dishonest option.
311
+ //
312
+ // `onUnhandled` deliberately does NOT extend here: it is a hook for
313
+ // ROUTES, and an upgrade is a protocol handover with a socket to answer
314
+ // by hand rather than a response to write. An unclaimed upgrade on a
315
+ // private socket keeps exactly the answer it has always had.
264
316
  if (ownServer)
265
317
  return;
266
318
  socketOfConversation.end('HTTP/1.1 400 Bad Request\r\nconnection: close\r\n\r\n' +
@@ -312,7 +364,7 @@ function httpHost(options) {
312
364
  const inFlight = new Set();
313
365
  let accepting = true;
314
366
  let closing;
315
- const onRequest = (req, res) => {
367
+ const route = (req, res) => {
316
368
  // On a shared server an earlier listener may already have answered.
317
369
  // Writing again would corrupt its reply; there is nothing to add.
318
370
  if (res.headersSent)
@@ -328,6 +380,15 @@ function httpHost(options) {
328
380
  // and a 404 from us would answer for their application.
329
381
  if (ownServer)
330
382
  return;
383
+ // …and on a socket THIS host owns, the caller can still claim the
384
+ // paths it does not: their code, here, INSTEAD of our 404. What the
385
+ // host owns never reaches them — a wrong method on an owned path is
386
+ // still this host's question to answer, and a route that could shadow
387
+ // a door would be a second door with the same name.
388
+ if (onUnhandled !== undefined && !ownsPath(path)) {
389
+ onUnhandled(req, res);
390
+ return;
391
+ }
331
392
  sendJson(res, 404, wire.failure(`no route for ${req.method ?? '?'} ${path}`));
332
393
  return;
333
394
  }
@@ -338,8 +399,23 @@ function httpHost(options) {
338
399
  }
339
400
  const served = serveOne(req, res, handler, wire);
340
401
  inFlight.add(served);
402
+ // `serveOne` never rejects, by construction — see its doc.
341
403
  void served.finally(() => inFlight.delete(served));
342
404
  };
405
+ // THE LAW (see `readJson`): nothing in a request's lifecycle may ever be
406
+ // the process's failure. Routing computes — a wire's `health()`, a body
407
+ // that has to stringify, a caller's `onUnhandled` — and every one of
408
+ // those is somebody else's code running on node's own stack, where a
409
+ // throw is uncaught. So the whole body is wrapped, and whatever went
410
+ // wrong is answered to the request that caused it.
411
+ const onRequest = (req, res) => {
412
+ try {
413
+ route(req, res);
414
+ }
415
+ catch (err) {
416
+ failSafely(res, wire, err);
417
+ }
418
+ };
343
419
  const server = await acquireSocket();
344
420
  server.on('request', onRequest);
345
421
  let where;
@@ -384,8 +460,26 @@ function httpHost(options) {
384
460
  };
385
461
  }
386
462
  exports.httpHost = httpHost;
387
- /** Run one request through the handler and write whatever it decides. */
463
+ /**
464
+ * Run one request through the handler and write whatever it decides.
465
+ *
466
+ * Total by construction: this promise NEVER rejects. It is held in a Set and
467
+ * voided at the call site, so a rejection would be an unhandled rejection —
468
+ * which on node's defaults is the same crash the law above forbids, reached by
469
+ * a different road.
470
+ */
388
471
  async function serveOne(req, res, handler, wire) {
472
+ try {
473
+ await dispatchOne(req, res, handler, wire);
474
+ }
475
+ catch (err) {
476
+ // Everything inside answers its own failures; anything that got past them
477
+ // — a dialect that threw, a body that would not stringify — is still this
478
+ // REQUEST's failure and not the process's.
479
+ failSafely(res, wire, err);
480
+ }
481
+ }
482
+ async function dispatchOne(req, res, handler, wire) {
389
483
  const wantsStream = (req.headers.accept ?? '').includes('text/event-stream');
390
484
  const controller = new AbortController();
391
485
  let body;
@@ -410,8 +504,15 @@ async function serveOne(req, res, handler, wire) {
410
504
  // The caller hung up before we answered — tell the handler so it can stop
411
505
  // paying for work nobody is waiting for.
412
506
  res.once('close', () => {
413
- if (!settled)
414
- controller.abort();
507
+ try {
508
+ if (!settled)
509
+ controller.abort();
510
+ }
511
+ catch {
512
+ // An abort listener the HANDLER installed threw while being told the
513
+ // caller left. That is a fault in somebody's teardown, and a fault in
514
+ // teardown is not a reason for this process to stop serving everyone.
515
+ }
415
516
  });
416
517
  const reply = {
417
518
  emit(chunk) {
@@ -492,21 +593,59 @@ async function serveOne(req, res, handler, wire) {
492
593
  reply.fail(new Error('[hosting] the handler returned without calling complete() or fail().'));
493
594
  }
494
595
  }
596
+ /**
597
+ * The body, as JSON — and never as the process's failure.
598
+ *
599
+ * ── A chunk is not always a Buffer ───────────────────────────────────────────
600
+ * `'data'` delivers whatever encoding the stream is in, and the encoding is not
601
+ * this host's to assume. Anything else holding the same request may have called
602
+ * `req.setEncoding(...)` — a co-listener on a shared server, a framework that
603
+ * installs its own catch-all `'request'` handler — and from that moment every
604
+ * chunk arrives as a STRING. `Buffer.concat` on strings throws, and it threw
605
+ * INSIDE the `'end'` listener. Field-reported, and process-fatal: see the law
606
+ * below.
607
+ *
608
+ * A string chunk is coerced back rather than refused, and no bytes are lost
609
+ * doing it: `setEncoding` decodes through a `StringDecoder`, which holds a
610
+ * partial multi-byte sequence across a chunk boundary rather than splitting it,
611
+ * so what arrives is whole text and `Buffer.from(chunk, 'utf8')` reproduces
612
+ * exactly the bytes that were sent.
613
+ *
614
+ * ── THE LAW, stated where it was broken ─────────────────────────────────────
615
+ * **Nothing in a request's lifecycle may ever be the process's failure.**
616
+ * `node:http` calls these listeners from its own stack: a throw inside one is
617
+ * not a rejected promise anybody awaits and not an exception anybody catches —
618
+ * it is an UNCAUGHT exception, and an uncaught exception ends the process. One
619
+ * malformed request would take every other request with it, every open
620
+ * conversation, and — on the shared socket this file exists for — everything
621
+ * else the container was serving.
622
+ *
623
+ * So every listener body here that COMPUTES is wrapped, not just the line that
624
+ * was found to break: a surprise this file has not imagined yet becomes THIS
625
+ * REQUEST's 400 or 500, the failure of the thing that caused it.
626
+ */
495
627
  function readJson(req) {
496
628
  return new Promise((resolve, reject) => {
497
629
  const chunks = [];
498
- req.on('data', (c) => chunks.push(c));
630
+ req.on('data', (c) => {
631
+ try {
632
+ chunks.push(typeof c === 'string' ? Buffer.from(c, 'utf8') : c);
633
+ }
634
+ catch (err) {
635
+ reject(asError(err));
636
+ }
637
+ });
499
638
  req.on('error', reject);
500
639
  req.on('end', () => {
501
- const raw = Buffer.concat(chunks).toString('utf8');
502
- if (!raw)
503
- return resolve({});
504
640
  try {
641
+ const raw = Buffer.concat(chunks).toString('utf8');
642
+ if (!raw)
643
+ return resolve({});
505
644
  const parsed = JSON.parse(raw);
506
645
  resolve(parsed && typeof parsed === 'object' ? parsed : {});
507
646
  }
508
647
  catch (err) {
509
- reject(err);
648
+ reject(asError(err));
510
649
  }
511
650
  });
512
651
  });
@@ -515,6 +654,43 @@ function sendJson(res, status, body) {
515
654
  res.writeHead(status, { 'content-type': 'application/json' });
516
655
  res.end(JSON.stringify(body));
517
656
  }
657
+ /**
658
+ * The last answer a request can be given: its own 500.
659
+ *
660
+ * This is the floor under the law — reached where the ORDINARY reply path is
661
+ * what went wrong (a dialect that threw, a body that would not stringify, a
662
+ * caller's route handler that raised), so it assumes as little as possible and
663
+ * cannot itself throw.
664
+ *
665
+ * A response already committed to the wire is ENDED rather than overwritten:
666
+ * two half-answers on one socket is worse than one answer that stopped early,
667
+ * and a status line cannot be taken back.
668
+ */
669
+ function failSafely(res, wire, err) {
670
+ const message = asError(err).message;
671
+ try {
672
+ if (res.writableEnded)
673
+ return;
674
+ if (res.headersSent) {
675
+ res.end();
676
+ return;
677
+ }
678
+ let body;
679
+ try {
680
+ body = JSON.stringify(wire.failure(message));
681
+ }
682
+ catch {
683
+ // The DIALECT is what broke. Answer in the one shape nothing can refuse.
684
+ body = JSON.stringify({ error: message });
685
+ }
686
+ res.writeHead(500, { 'content-type': 'application/json' });
687
+ res.end(body);
688
+ }
689
+ catch {
690
+ // The socket went away while we were answering it. There is nothing left
691
+ // to say, and nothing here that is the process's business either.
692
+ }
693
+ }
518
694
  function asError(err) {
519
695
  return err instanceof Error ? err : new Error(String(err));
520
696
  }
@@ -1 +1 @@
1
- {"version":3,"file":"httpHost.js","sourceRoot":"","sources":["../../src/hosting/httpHost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpHost.js","sourceRoot":"","sources":["../../src/hosting/httpHost.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,11 @@
22
22
  * instead of binding one, so a WebSocket upgrade or your own routes can share
23
23
  * the port. `close()` then detaches and drains, and your socket stays up.
24
24
  *
25
+ * **Or the socket can be the host's and the routes yours.** Pass `onUnhandled`
26
+ * and every path this adapter does not own is handed to your code instead of
27
+ * collecting its 404 — the same one port, bound by the host rather than by you.
28
+ * The two are opposite ends of one seam and are refused together.
29
+ *
25
30
  * **There is a third door.** `serveConversations(handler)` takes WebSocket
26
31
  * upgrades on `/conversation` and hands each one to your handler as a
27
32
  * `HostConversation` — a channel that stays open, for the callers that cannot
@@ -117,6 +122,10 @@ function nodeHost(options = {}) {
117
122
  ...(options.port !== undefined && { port: options.port }),
118
123
  ...(options.hostname !== undefined && { hostname: options.hostname }),
119
124
  ...(options.server !== undefined && { server: options.server }),
125
+ // Passed through as given for the same reason: with a caller-owned server
126
+ // this hook is refused BY NAME rather than dropped, so a caller who asked
127
+ // for both learns which one this host cannot honour.
128
+ ...(options.onUnhandled !== undefined && { onUnhandled: options.onUnhandled }),
120
129
  });
121
130
  }
122
131
  exports.nodeHost = nodeHost;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeHost.js","sourceRoot":"","sources":["../../src/hosting/nodeHost.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;;;AAEH,+CAMuB;AAqDvB,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B;;;;;;;GAOG;AACU,QAAA,QAAQ,GAAa;IAChC,WAAW,CAAC,KAAK;QACf,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,MAAM,SAAS,GAAG,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5D,4EAA4E;QAC5E,wEAAwE;QACxE,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,OAAO;YACL,KAAK;YACL,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1E,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC9C,gBAAgB,CAAC,KAAK;QACpB,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,gFAAgF;QAChF,MAAM,SAAS,GACb,IAAA,yBAAW,EAAC,KAAK,EAAE,cAAc,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;QAClF,OAAO,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACnF,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ,CAAC,UAA2B,EAAE;IACpD,OAAO,IAAA,sBAAQ,EAAC;QACd,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,gBAAQ;QACd,yEAAyE;QACzE,wDAAwD;QACxD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,eAAe;QAC7D,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,IAAI;YAC9C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SAC/C,CAAC;QACF,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,0DAA0D;QAC1D,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;KAChE,CAAC,CAAC;AACL,CAAC;AApBD,4BAoBC"}
1
+ {"version":3,"file":"nodeHost.js","sourceRoot":"","sources":["../../src/hosting/nodeHost.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,11 @@
29
29
  * - **The port's frame is the whole message.** A message the transport
30
30
  * delivered in fragments counts against `maxFrameBytes` in total, so
31
31
  * fragmentation cannot be used to walk around the ceiling.
32
+ * - **Nothing in a conversation's lifecycle is ever the PROCESS's failure.**
33
+ * Node calls a socket's listeners from its own stack, so a throw inside one
34
+ * is uncaught and ends the container. Every listener body here that computes
35
+ * is wrapped: a surprise costs THIS conversation, with a reason, and the
36
+ * door keeps carrying everybody else's.
32
37
  *
33
38
  * Pattern: Adapter. Role: outer ring, one transport.
34
39
  */
@@ -67,7 +72,19 @@ function conversationDoor(options) {
67
72
  headers,
68
73
  query: new URLSearchParams(url.split('?')[1] ?? ''),
69
74
  };
70
- const read = options.readConversation?.(facts) ?? {};
75
+ // A dialect is somebody else's code, and it runs on node's own stack: a
76
+ // throw here is UNCAUGHT and would end the process — every other
77
+ // conversation on this door and every request beside them — for one
78
+ // handshake it could not read. Nothing in a request's lifecycle may ever
79
+ // be the process's failure, and a handshake is the start of one.
80
+ let read;
81
+ try {
82
+ read = options.readConversation?.(facts) ?? {};
83
+ }
84
+ catch (err) {
85
+ refuse(socket, 500, `the '${options.hostName}' host could not read this handshake: ${asMessage(err)}`);
86
+ return true;
87
+ }
71
88
  socket.write((0, webSocketFrames_js_1.handshakeResponse)(key, read.protocol));
72
89
  const conversation = openConversation(socket, {
73
90
  hostName: options.hostName,
@@ -101,10 +118,16 @@ function conversationDoor(options) {
101
118
  };
102
119
  }
103
120
  exports.conversationDoor = conversationDoor;
121
+ /** The three statuses this door answers a pre-101 socket with. */
122
+ const REFUSAL_REASON = {
123
+ 400: 'Bad Request',
124
+ 500: 'Internal Server Error',
125
+ 503: 'Service Unavailable',
126
+ };
104
127
  /** Answer an upgrade we will not carry, in the one language a pre-101 socket speaks. */
105
128
  function refuse(socket, status, message) {
106
129
  const text = `[hosting] ${message}.`;
107
- const reason = status === 503 ? 'Service Unavailable' : 'Bad Request';
130
+ const reason = REFUSAL_REASON[status] ?? 'Bad Request';
108
131
  socket.end(`HTTP/1.1 ${status} ${reason}\r\n` +
109
132
  `content-type: text/plain\r\n` +
110
133
  `content-length: ${Buffer.byteLength(text)}\r\n` +
@@ -140,16 +163,28 @@ function openConversation(socket, options) {
140
163
  if (ending !== undefined)
141
164
  return;
142
165
  ending = close;
143
- if (wireCode !== undefined && socket.writable) {
144
- socket.write((0, webSocketFrames_js_1.encodeClose)(wireCode, wireReason ?? close.reason));
166
+ // Saying goodbye is the part that touches the transport, so it is the part
167
+ // that can fail — and a failure to say goodbye must not stop the handler
168
+ // being TOLD, or leave `ended` unresolved and every shutdown sharing this
169
+ // socket waiting on it.
170
+ try {
171
+ if (wireCode !== undefined && socket.writable) {
172
+ socket.write((0, webSocketFrames_js_1.encodeClose)(wireCode, wireReason ?? close.reason));
173
+ }
174
+ // end() flushes what is queued and then sends FIN — the polite half of
175
+ // the close. The timer is the impolite half, for a peer that never
176
+ // answers.
177
+ socket.end();
178
+ const grace = setTimeout(() => socket.destroy(), CLOSE_GRACE_MS);
179
+ if (typeof grace.unref === 'function')
180
+ grace.unref();
181
+ socket.once('close', () => clearTimeout(grace));
182
+ }
183
+ catch {
184
+ // The socket could not be told. It is going away either way, and the
185
+ // conversation is over regardless of how politely.
186
+ socket.destroy();
145
187
  }
146
- // end() flushes what is queued and then sends FIN — the polite half of the
147
- // close. The timer is the impolite half, for a peer that never answers.
148
- socket.end();
149
- const grace = setTimeout(() => socket.destroy(), CLOSE_GRACE_MS);
150
- if (typeof grace.unref === 'function')
151
- grace.unref();
152
- socket.once('close', () => clearTimeout(grace));
153
188
  const subscribers = [...closeSubscribers];
154
189
  closeSubscribers.clear();
155
190
  for (const cb of subscribers) {
@@ -258,7 +293,32 @@ function openConversation(socket, options) {
258
293
  const code = err instanceof webSocketFrames_js_1.FrameProtocolError ? err.closeCode : webSocketFrames_js_1.CLOSE_CODE.protocolError;
259
294
  finish({ by: 'far-side', reason: asMessage(err) }, code, asMessage(err));
260
295
  }
261
- socket.on('data', (chunk) => {
296
+ /**
297
+ * One socket's version of the law the request door states: **nothing in a
298
+ * conversation's lifecycle may ever be the process's failure.** An upgraded
299
+ * socket is a plain stream and node calls its listeners from its own stack,
300
+ * so a throw inside one is uncaught — and would end every OTHER conversation
301
+ * on this door, plus the requests beside them, for one peer's bad frame.
302
+ * Wrapped, it ends THIS conversation and says why.
303
+ */
304
+ function contained(body) {
305
+ return (...args) => {
306
+ try {
307
+ body(...args);
308
+ }
309
+ catch (err) {
310
+ finish({ by: 'host', reason: `this conversation could not be read: ${asMessage(err)}` }, webSocketFrames_js_1.CLOSE_CODE.internalError);
311
+ socket.destroy();
312
+ }
313
+ };
314
+ }
315
+ // Chunks here are always BYTES, and that is node's guarantee rather than this
316
+ // door's assumption: an upgraded socket refuses `setEncoding` outright
317
+ // (`ERR_HTTP_SOCKET_ENCODING`, "not allowed per RFC7230 Section 3"), so the
318
+ // co-listener that can turn a REQUEST body into strings cannot do it to a
319
+ // conversation. Pinned by a test, because the reason this is safe lives in
320
+ // node and could change there.
321
+ socket.on('data', contained((chunk) => {
262
322
  if (ending !== undefined)
263
323
  return;
264
324
  let frames;
@@ -271,25 +331,25 @@ function openConversation(socket, options) {
271
331
  }
272
332
  for (const frame of frames)
273
333
  handleFrame(frame);
274
- });
275
- socket.on('error', (err) => {
334
+ }));
335
+ socket.on('error', contained((err) => {
276
336
  finish({ by: 'transport', reason: err.message });
277
337
  socket.destroy();
278
- });
338
+ }));
279
339
  // BOTH halves, and `'end'` is the one that matters. An upgraded socket is
280
340
  // half-open: when the far side vanishes, node delivers `'end'` and then waits
281
341
  // for THIS side to end too — no `'error'`, and no `'close'` until we act. A
282
342
  // door listening only for `'close'` would never fire onClose for a caller
283
343
  // that walked away, and would hold a socket open that keeps every shutdown
284
344
  // sharing this port waiting. Measured, not assumed.
285
- socket.on('end', () => {
345
+ socket.on('end', contained(() => {
286
346
  finish({ by: 'transport', reason: 'the connection ended without a close frame' });
287
- });
288
- socket.on('close', () => {
347
+ }));
348
+ socket.on('close', contained(() => {
289
349
  // No close frame from either side: the connection went away rather than
290
350
  // ended, and those are different facts to whoever is watching.
291
351
  finish({ by: 'transport', reason: 'the connection closed without a close frame' });
292
- });
352
+ }));
293
353
  const port = {
294
354
  ...(sessionId !== undefined && { sessionId }),
295
355
  headers: options.headers,
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketConversation.js","sourceRoot":"","sources":["../../src/hosting/webSocketConversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocketConversation.js","sourceRoot":"","sources":["../../src/hosting/webSocketConversation.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,12 @@ exports.CLOSE_CODE = {
73
73
  invalidPayload: 1007,
74
74
  /** Past a declared ceiling. */
75
75
  tooBig: 1009,
76
+ /**
77
+ * Something went wrong on THIS side — the RFC's own word for a condition
78
+ * that stopped this endpoint fulfilling the request. Used where the fault is
79
+ * demonstrably not the peer's, so that a close code never blames them for it.
80
+ */
81
+ internalError: 1011,
76
82
  };
77
83
  /**
78
84
  * A peer that broke the protocol, carrying the close code the RFC names for
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketFrames.js","sourceRoot":"","sources":["../../src/hosting/webSocketFrames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocketFrames.js","sourceRoot":"","sources":["../../src/hosting/webSocketFrames.ts"],"names":[],"mappings":"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"}