agent-comms 9.1.0 → 9.1.2

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 (83) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/dist/bridges/user/web/request-handling.d.ts +26 -0
  5. package/dist/bridges/user/web/request-handling.d.ts.map +1 -0
  6. package/dist/bridges/user/web/request-handling.js +92 -0
  7. package/dist/bridges/user/web/request-handling.js.map +1 -0
  8. package/dist/bridges/user/web/server.d.ts +4 -0
  9. package/dist/bridges/user/web/server.d.ts.map +1 -1
  10. package/dist/bridges/user/web/server.js +88 -53
  11. package/dist/bridges/user/web/server.js.map +1 -1
  12. package/dist/bridges/user/web/web-access.d.ts.map +1 -1
  13. package/dist/bridges/user/web/web-access.js +14 -1
  14. package/dist/bridges/user/web/web-access.js.map +1 -1
  15. package/dist/bridges/user/web/web-assets.d.ts +2 -1
  16. package/dist/bridges/user/web/web-assets.d.ts.map +1 -1
  17. package/dist/bridges/user/web/web-assets.js +2 -2
  18. package/dist/bridges/user/web/web-assets.js.map +1 -1
  19. package/dist/bridges/user/web/web-console-static.d.ts.map +1 -1
  20. package/dist/bridges/user/web/web-console-static.js +34 -22
  21. package/dist/bridges/user/web/web-console-static.js.map +1 -1
  22. package/dist/core/coordinator-role.d.ts +15 -2
  23. package/dist/core/coordinator-role.d.ts.map +1 -1
  24. package/dist/core/coordinator-role.js +109 -11
  25. package/dist/core/coordinator-role.js.map +1 -1
  26. package/dist/core/detached-work.d.ts +14 -0
  27. package/dist/core/detached-work.d.ts.map +1 -0
  28. package/dist/core/detached-work.js +40 -0
  29. package/dist/core/detached-work.js.map +1 -0
  30. package/dist/core/election-sessions.d.ts.map +1 -1
  31. package/dist/core/election-sessions.js +6 -6
  32. package/dist/core/election-sessions.js.map +1 -1
  33. package/dist/core/hub-session.d.ts +10 -1
  34. package/dist/core/hub-session.d.ts.map +1 -1
  35. package/dist/core/hub-session.js +34 -32
  36. package/dist/core/hub-session.js.map +1 -1
  37. package/dist/core/message-limits.d.ts +14 -0
  38. package/dist/core/message-limits.d.ts.map +1 -0
  39. package/dist/core/message-limits.js +22 -0
  40. package/dist/core/message-limits.js.map +1 -0
  41. package/dist/core/peer-lifecycle.d.ts +2 -0
  42. package/dist/core/peer-lifecycle.d.ts.map +1 -1
  43. package/dist/core/peer-lifecycle.js +9 -4
  44. package/dist/core/peer-lifecycle.js.map +1 -1
  45. package/dist/core/pending-connection.d.ts +20 -1
  46. package/dist/core/pending-connection.d.ts.map +1 -1
  47. package/dist/core/pending-connection.js +27 -0
  48. package/dist/core/pending-connection.js.map +1 -1
  49. package/dist/core/relay-server.d.ts +15 -1
  50. package/dist/core/relay-server.d.ts.map +1 -1
  51. package/dist/core/relay-server.js +70 -16
  52. package/dist/core/relay-server.js.map +1 -1
  53. package/dist/core/room-router.d.ts.map +1 -1
  54. package/dist/core/room-router.js +31 -10
  55. package/dist/core/room-router.js.map +1 -1
  56. package/dist/core/tool.d.ts.map +1 -1
  57. package/dist/core/tool.js +3 -0
  58. package/dist/core/tool.js.map +1 -1
  59. package/dist/core/transport-events.d.ts.map +1 -1
  60. package/dist/core/transport-events.js +9 -5
  61. package/dist/core/transport-events.js.map +1 -1
  62. package/dist/core/wire-mesh-transport.d.ts +2 -2
  63. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  64. package/dist/core/wire-mesh-transport.js +96 -115
  65. package/dist/core/wire-mesh-transport.js.map +1 -1
  66. package/package.json +1 -1
  67. package/src/bridges/user/web/request-handling.ts +118 -0
  68. package/src/bridges/user/web/server.ts +109 -54
  69. package/src/bridges/user/web/web-access.ts +14 -1
  70. package/src/bridges/user/web/web-assets.ts +7 -3
  71. package/src/bridges/user/web/web-console-static.ts +34 -26
  72. package/src/core/coordinator-role.ts +126 -7
  73. package/src/core/detached-work.ts +55 -0
  74. package/src/core/election-sessions.ts +8 -4
  75. package/src/core/hub-session.ts +63 -41
  76. package/src/core/message-limits.ts +29 -0
  77. package/src/core/peer-lifecycle.ts +10 -4
  78. package/src/core/pending-connection.ts +48 -1
  79. package/src/core/relay-server.ts +110 -23
  80. package/src/core/room-router.ts +36 -9
  81. package/src/core/tool.ts +3 -0
  82. package/src/core/transport-events.ts +9 -5
  83. package/src/core/wire-mesh-transport.ts +58 -63
@@ -15,7 +15,7 @@
15
15
  "source": "url",
16
16
  "url": "https://github.com/ExaDev/agent-comms.git"
17
17
  },
18
- "version": "9.1.0"
18
+ "version": "9.1.2"
19
19
  }
20
20
  ]
21
21
  }
@@ -17,5 +17,5 @@
17
17
  },
18
18
  "name": "agent-comms",
19
19
  "repository": "https://github.com/ExaDev/agent-comms",
20
- "version": "9.1.0"
20
+ "version": "9.1.2"
21
21
  }
package/README.md CHANGED
@@ -342,7 +342,7 @@ A bridge's web server listens on loopback only unless told otherwise, and a brow
342
342
  AGENT_COMMS_WEB_HOST=0.0.0.0 npx agent-comms chat
343
343
  ```
344
344
 
345
- The server exposes every mutating action (`POST /api/action` and the `/ws/mesh` socket), so a bind beyond loopback always comes with a per-process secret token, generated at start and printed once to stderr (never stdout, which can be an MCP channel) as ready-to-open URLs of the form `http://<address>:<port>/?token=<token>`. Every client not on this machine must present it, as an `Authorization: Bearer <token>` header or as the cookie that opening the URL sets (the server then redirects to the same path without the token, so it does not stay in the address bar). The cookie is named `agent_comms_web_token_<port>`, because browsers scope cookies to a host and not a port, and two bridges on one machine each have their own token. Requests without the token get 401 and the comparison is constant-time. A client on this machine, meaning loopback or one of this machine's own interface addresses, needs no token, so the `web_url` an agent is given works even for a server bound to one interface address. Every request from every client, loopback included, must carry a `Host` header naming an address the server is bound to, a loopback name or this machine's own name, which blocks DNS rebinding; any `Origin` header, from any client and loopback included, must name the server itself over http, which blocks cross-site requests and cross-site WebSocket hijacking from a page open in the operator's own browser (the server sends no CORS headers). The one exception is the dashboard hosted on GitHub Pages, which reaches a local bridge by probing loopback ports: its origin is admitted from a client on this machine only. The access cookie is `SameSite=Lax`, so opening the printed URL from a link on another site still sets it; Lax cookies are not sent on cross-site POSTs or WebSocket upgrades, and the Origin check covers the rest. The token lives in memory and changes on every start.
345
+ The server exposes every mutating action (`POST /api/action` and the `/ws/mesh` socket), so a bind beyond loopback always comes with a per-process secret token, generated at start and printed once to stderr (never stdout, which can be an MCP channel) as ready-to-open URLs of the form `http://<address>:<port>/?token=<token>`. Every client not on this machine must present it, as an `Authorization: Bearer <token>` header or as the cookie that opening the URL sets (the server then redirects to the same path without the token, so it does not stay in the address bar). The cookie is named `agent_comms_web_token_<port>`, because browsers scope cookies to a host and not a port, and two bridges on one machine each have their own token. Requests without the token get 401 and the comparison is constant-time. A client on this machine, meaning loopback or one of this machine's own interface addresses, needs no token, so the `web_url` an agent is given works even for a server bound to one interface address. Every request from every client, loopback included, must carry a `Host` header naming an address the server is bound to, a loopback name or this machine's own name, which blocks DNS rebinding; any `Origin` header, from any client and loopback included, must name the server itself over http, which blocks cross-site requests and cross-site WebSocket hijacking from a page open in the operator's own browser (the server sends no CORS headers). The one exception is the dashboard hosted on GitHub Pages, which reaches a local bridge by probing loopback ports: its origin is admitted from a client on this machine only. The access cookie is `SameSite=Lax`, so opening the printed URL from a link on another site still sets it; Lax cookies are not sent on cross-site POSTs or WebSocket upgrades, and the Origin check covers the rest. The token lives in memory and changes on every start. A request body and a WebSocket message are limited to one mebibyte (the largest legitimate request is a chat message a person typed or pasted): a larger body is answered `413` and the connection closed, and a larger socket message closes that socket with status 1009. A body that is not a JSON object (an array included) is answered `400`, a route whose work fails is answered `500` with fixed text, a request not completely received in the time a body of the largest size takes at a slow but steady rate (thirty-two seconds) is answered `408` and its connection closed, which Node checks at intervals of thirty seconds, so the answer comes within about a minute of the request starting, and an upgraded WebSocket is not subject to it, every response forbids content sniffing, and no request can end the bridge. The `content` of a message sent through the tool's `send` or `dm` action has the same limit, counted in UTF-8 bytes, and a longer one is refused before anything is sent. A relay a bridge serves accepts a WebSocket message of at most 16 MiB, which is above the largest frame a conforming peer sends; a larger one closes that connection with status 1009 and nothing else. No client of the relay is held open without a deadline: a request that is not a WebSocket upgrade is answered `426` and its connection closed, a request whose headers or body stop arriving is cut off after ten seconds (answered `408` where Node can), and a WebSocket that has not gossiped an advert for an admitted device within thirty seconds is closed.
346
346
 
347
347
  Plain `http` also means the token, and everything the dashboard shows or sends, crosses the network unencrypted: anyone who can observe traffic on that network segment can read the token and then act as the operator. Bind to an interface address on a network you trust (a home or office LAN, a private Tailscale interface address) rather than to `0.0.0.0` on a shared or public network. A reverse proxy running on the same machine reaches the server from loopback and so counts as a client on this machine: it bypasses the token check, which leaves the proxy's own authentication as the only protection, although the `Host` check still applies.
348
348
 
@@ -0,0 +1,26 @@
1
+ /**
2
+ * How the web bridge reads a request body and answers a route whose work fails: every body has a maximum size, every failure of a route's asynchronous work becomes a response, and nothing a client sends can end the process.
3
+ */
4
+ import type * as http from "node:http";
5
+ /** A request the bridge refuses with a specific status and message, rather than failing it as a server fault. */
6
+ export declare class RequestRefusedError extends Error {
7
+ readonly status: number;
8
+ constructor(status: number, message: string);
9
+ }
10
+ /** A body that is not valid JSON, or not a JSON object. */
11
+ export declare function invalidJsonBody(): RequestRefusedError;
12
+ /**
13
+ * Reads a request body of at most MAX_MESSAGE_BYTES. Rejects with RequestRefusedError (413) as soon as the declared length, or the bytes actually received, pass the limit, without reading on: the caller answers and the connection is closed, so the rest of an oversized body is never buffered.
14
+ */
15
+ export declare function readBoundedBody(req: http.IncomingMessage): Promise<string>;
16
+ /**
17
+ * How long a client has to send a whole request, headers and body: the time a body of the largest size takes at the slowest accepted rate. A request not complete by then is answered 408 and its connection closed, so a client that declares a body and stops sending cannot hold a handler and its buffered bytes for Node's default of five minutes.
18
+ */
19
+ export declare const REQUEST_TIMEOUT_MS: number;
20
+ /**
21
+ * Runs a route's asynchronous work and answers the request with its failure, so no rejection is left unhandled. A refusal keeps its status and message; anything else is a 500 with a fixed message (the error itself goes to `report`), since an unexpected error's text is not for the client. An answer that has already begun is ended, not started again. A refusal for size also closes the connection, so the rest of the body is not read.
22
+ */
23
+ export declare function serveRoute(req: http.IncomingMessage, res: http.ServerResponse, work: () => Promise<void>, report?: (error: Error) => void): void;
24
+ /** The message of a failure a client may be told: a CommsError states what was refused and why, so it is shown. Anything else can quote a path or an address, so a client gets fixed text. */
25
+ export declare function meshErrorMessage(err: unknown): string;
26
+ //# sourceMappingURL=request-handling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-handling.d.ts","sourceRoot":"","sources":["../../../../src/bridges/user/web/request-handling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAevC,iHAAiH;AACjH,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CAKlB;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,IAAI,mBAAmB,CAErD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,IAAI,CAAC,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,QACuC,CAAC;AASvE;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACzB,MAAM,GAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAqB,GAC9C,IAAI,CAuBN;AAMD,8LAA8L;AAC9L,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * How the web bridge reads a request body and answers a route whose work fails: every body has a maximum size, every failure of a route's asynchronous work becomes a response, and nothing a client sends can end the process.
3
+ */
4
+ import { MAX_MESSAGE_BYTES } from "../../../core/message-limits.js";
5
+ import { CommsError } from "../../../core/store.js";
6
+ const HTTP_BAD_REQUEST = 400;
7
+ const BYTES_PER_KIB = 1024;
8
+ const HTTP_PAYLOAD_TOO_LARGE = 413;
9
+ const HTTP_INTERNAL_SERVER_ERROR = 500;
10
+ const MS_PER_SECOND = 1000;
11
+ /** The slowest rate at which a client is still given time to send a body: 32 KiB a second, about a hundredth of a modest uplink, so a slow but moving client is served and one that sends a few bytes and stops is not. */
12
+ const MIN_BODY_RATE_KIB_PER_SECOND = 32;
13
+ const MIN_BODY_RATE_BYTES_PER_SECOND = MIN_BODY_RATE_KIB_PER_SECOND * BYTES_PER_KIB;
14
+ /** A request the bridge refuses with a specific status and message, rather than failing it as a server fault. */
15
+ export class RequestRefusedError extends Error {
16
+ status;
17
+ constructor(status, message) {
18
+ super(message);
19
+ this.status = status;
20
+ this.name = "RequestRefusedError";
21
+ }
22
+ }
23
+ /** A body that is not valid JSON, or not a JSON object. */
24
+ export function invalidJsonBody() {
25
+ return new RequestRefusedError(HTTP_BAD_REQUEST, "Invalid JSON");
26
+ }
27
+ /**
28
+ * Reads a request body of at most MAX_MESSAGE_BYTES. Rejects with RequestRefusedError (413) as soon as the declared length, or the bytes actually received, pass the limit, without reading on: the caller answers and the connection is closed, so the rest of an oversized body is never buffered.
29
+ */
30
+ export async function readBoundedBody(req) {
31
+ const declared = Number(req.headers["content-length"]);
32
+ if (Number.isFinite(declared) && declared > MAX_MESSAGE_BYTES) {
33
+ throw tooLarge();
34
+ }
35
+ return new Promise((resolve, reject) => {
36
+ const chunks = [];
37
+ let received = 0;
38
+ req.on("data", (chunk) => {
39
+ received += chunk.length;
40
+ if (received > MAX_MESSAGE_BYTES) {
41
+ chunks.length = 0;
42
+ reject(tooLarge());
43
+ return;
44
+ }
45
+ chunks.push(chunk);
46
+ });
47
+ req.on("end", () => {
48
+ resolve(Buffer.concat(chunks).toString());
49
+ });
50
+ req.on("error", reject);
51
+ });
52
+ }
53
+ /**
54
+ * How long a client has to send a whole request, headers and body: the time a body of the largest size takes at the slowest accepted rate. A request not complete by then is answered 408 and its connection closed, so a client that declares a body and stops sending cannot hold a handler and its buffered bytes for Node's default of five minutes.
55
+ */
56
+ export const REQUEST_TIMEOUT_MS = (MAX_MESSAGE_BYTES / MIN_BODY_RATE_BYTES_PER_SECOND) * MS_PER_SECOND;
57
+ function tooLarge() {
58
+ return new RequestRefusedError(HTTP_PAYLOAD_TOO_LARGE, `Request body exceeds ${String(MAX_MESSAGE_BYTES)} bytes`);
59
+ }
60
+ /**
61
+ * Runs a route's asynchronous work and answers the request with its failure, so no rejection is left unhandled. A refusal keeps its status and message; anything else is a 500 with a fixed message (the error itself goes to `report`), since an unexpected error's text is not for the client. An answer that has already begun is ended, not started again. A refusal for size also closes the connection, so the rest of the body is not read.
62
+ */
63
+ export function serveRoute(req, res, work, report = reportToStderr) {
64
+ work().catch((err) => {
65
+ const refused = err instanceof RequestRefusedError ? err : undefined;
66
+ if (refused === undefined) {
67
+ report(err instanceof Error ? err : new Error(String(err)));
68
+ }
69
+ if (res.headersSent || res.writableEnded) {
70
+ res.end();
71
+ return;
72
+ }
73
+ res.writeHead(refused?.status ?? HTTP_INTERNAL_SERVER_ERROR, {
74
+ "Content-Type": "application/json",
75
+ ...(refused?.status === HTTP_PAYLOAD_TOO_LARGE
76
+ ? { Connection: "close" }
77
+ : {}),
78
+ });
79
+ res.end(JSON.stringify({ error: refused?.message ?? "Internal server error" }), () => {
80
+ if (refused?.status === HTTP_PAYLOAD_TOO_LARGE)
81
+ req.destroy();
82
+ });
83
+ });
84
+ }
85
+ function reportToStderr(error) {
86
+ process.stderr.write(`agent-comms web UI: ${error.message}\n`);
87
+ }
88
+ /** The message of a failure a client may be told: a CommsError states what was refused and why, so it is shown. Anything else can quote a path or an address, so a client gets fixed text. */
89
+ export function meshErrorMessage(err) {
90
+ return err instanceof CommsError ? err.message : "Internal server error";
91
+ }
92
+ //# sourceMappingURL=request-handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-handling.js","sourceRoot":"","sources":["../../../../src/bridges/user/web/request-handling.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,10 @@ export declare function createWebServer(options?: {
62
62
  firstContactPort?: number | undefined;
63
63
  /** Overrides the hub a fresh controller's own coordinator role dials on takeover -- ChatController's own hubUrl, ignored when existingController is supplied since that controller already made its own choice. See ChatController's own hubUrl doc comment. */
64
64
  hubUrl?: string | undefined;
65
+ /** Overrides REQUEST_TIMEOUT_MS, the time a client has to send a whole request. A test sets it small to see the 408. */
66
+ requestTimeoutMs?: number | undefined;
67
+ /** Overrides how often Node checks connections against that timeout (its default is thirty seconds, so a timeout takes effect up to that much after it is due). A test sets it small. */
68
+ connectionsCheckingIntervalMs?: number | undefined;
65
69
  }): Promise<WebServerHandle>;
66
70
  export declare function runWeb(userName: string, port?: number): Promise<void>;
67
71
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/bridges/user/web/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAqB1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAiE1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,EAAE,eAAe,CAAC;IACrB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,2HAA2H;IAC3H,IAAI,EAAE,MAAM,CAAC;IACb,uIAAuI;IACvI,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,8JAA8J;AAC9J,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGtE;AAED,0VAA0V;AAC1V,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,YAAY,CAKd;AAMD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,CAAC;IAAE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,GAC1D,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAUtC;AAgED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,sOAAsO;IACtO,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,iMAAiM;IACjM,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,uQAAuQ;IACvQ,oBAAoB,CAAC,EAAE,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/D,2JAA2J;IAC3J,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAChD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,6KAA6K;IAC7K,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gQAAgQ;IAChQ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GAAG,OAAO,CAAC,eAAe,CAAC,CAoH3B;AAkFD,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/bridges/user/web/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAsB1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA6E1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,EAAE,eAAe,CAAC;IACrB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,2HAA2H;IAC3H,IAAI,EAAE,MAAM,CAAC;IACb,uIAAuI;IACvI,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,8JAA8J;AAC9J,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGtE;AAED,0VAA0V;AAC1V,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,YAAY,CAKd;AAMD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,CAAC;IAAE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,GAC1D,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAUtC;AAgED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,sOAAsO;IACtO,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,iMAAiM;IACjM,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,uQAAuQ;IACvQ,oBAAoB,CAAC,EAAE,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/D,2JAA2J;IAC3J,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAChD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,6KAA6K;IAC7K,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gQAAgQ;IAChQ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,wHAAwH;IACxH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,yLAAyL;IACzL,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD,GAAG,OAAO,CAAC,eAAe,CAAC,CAoJ3B;AAyFD,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E"}
@@ -14,6 +14,7 @@ import { WebSocketServer } from "ws";
14
14
  import { RPCHandler } from "@orpc/server/websocket";
15
15
  import { ChatController } from "../controller.js";
16
16
  import { CommsError } from "../../../core/store.js";
17
+ import { MAX_MESSAGE_BYTES } from "../../../core/message-limits.js";
17
18
  import { createRoomAction, declineInviteAction, destroyRoomAction, dmAction, inviteAction, joinRoomAction, kickAction, leaveRoomAction, listAgentsAction, listRoomsAction, readRoomAction, renameAgentAction, sendAction, } from "./actions.js";
18
19
  import { getMeshGraphRead, getMeshTraceRead, getRoomMessagesRead, } from "./reads.js";
19
20
  import { MeshEventPublisher } from "./event-publisher.js";
@@ -22,6 +23,7 @@ import { resolveWebConsoleDist, serveWebConsole, } from "./web-console-static.js
22
23
  import { ACCESS_QUERY_PARAM, accessUrls, authorise, generateAccessToken, localWebUrl, ownInterfaceAddresses, requiresAccessToken, resolveWebBindHost, } from "./web-access.js";
23
24
  import { bridgePortRange } from "./bridge-port-range.js";
24
25
  import { startWebBeacon } from "./web-beacon.js";
26
+ import { REQUEST_TIMEOUT_MS, meshErrorMessage, invalidJsonBody, readBoundedBody, serveRoute, } from "./request-handling.js";
25
27
  import { createFrontendAssetLoader, FrontendNotBuiltError, } from "./web-assets.js";
26
28
  const HTTP_OK = 200;
27
29
  const HTTP_BAD_REQUEST = 400;
@@ -34,6 +36,8 @@ const HTTP_SERVICE_UNAVAILABLE = 503;
34
36
  // Static assets — read from the frontend build on first request
35
37
  // ---------------------------------------------------------------------------
36
38
  const frontendAssets = createFrontendAssetLoader(fileURLToPath(new URL("./dist", import.meta.url)));
39
+ /** The body of the 503 for a frontend that was never built. */
40
+ const FRONTEND_NOT_BUILT_BODY = "The web frontend is not built. A git checkout does not include the build output; install the npm package, or run `pnpm build:frontend` in a checkout with its development dependencies installed.";
37
41
  /**
38
42
  * The frontend build output, or undefined after answering 503 because the build is absent. The server module is imported by every bridge, so a checkout without the build must still start; only the routes that serve the frontend are unavailable.
39
43
  */
@@ -47,7 +51,8 @@ function frontendOrUnavailable(res) {
47
51
  res.writeHead(HTTP_SERVICE_UNAVAILABLE, {
48
52
  "Content-Type": "text/plain; charset=utf-8",
49
53
  });
50
- res.end(error.message);
54
+ // Fixed text: the error's own message names the install path of this machine, which is not for a client.
55
+ res.end(FRONTEND_NOT_BUILT_BODY);
51
56
  return undefined;
52
57
  }
53
58
  }
@@ -144,7 +149,7 @@ function boundPortOf(server) {
144
149
  * Dashboard controller is created.
145
150
  */
146
151
  export async function createWebServer(options) {
147
- const { port, bridgePortBase, host: requestedHost, localClientAddresses = ownInterfaceAddresses, beaconPort, existingController, coordinatorPort, firstContactPort, hubUrl, } = options ?? {};
152
+ const { port, bridgePortBase, host: requestedHost, localClientAddresses = ownInterfaceAddresses, beaconPort, existingController, coordinatorPort, firstContactPort, hubUrl, requestTimeoutMs = REQUEST_TIMEOUT_MS, connectionsCheckingIntervalMs, } = options ?? {};
148
153
  const controller = existingController ??
149
154
  new ChatController("Dashboard", {
150
155
  coordinatorPort,
@@ -166,10 +171,30 @@ export async function createWebServer(options) {
166
171
  port: port ?? 0,
167
172
  localClientAddresses,
168
173
  };
169
- const server = http.createServer((req, res) => {
170
- if (!admitRequest(accessPolicy, req, res))
171
- return;
172
- handleRequest(req, res, controller, webConsoleDist);
174
+ const server = http.createServer({
175
+ requestTimeout: requestTimeoutMs,
176
+ headersTimeout: requestTimeoutMs,
177
+ ...(connectionsCheckingIntervalMs !== undefined && {
178
+ connectionsCheckingInterval: connectionsCheckingIntervalMs,
179
+ }),
180
+ }, (req, res) => {
181
+ // Every response, the fixed routes and the operator's web-console files alike, forbids a browser to guess a type other than the one declared.
182
+ res.setHeader("X-Content-Type-Options", "nosniff");
183
+ try {
184
+ if (!admitRequest(accessPolicy, req, res))
185
+ return;
186
+ handleRequest(req, res, controller, webConsoleDist);
187
+ }
188
+ catch (err) {
189
+ // A request the synchronous routing cannot handle is answered, not thrown: an exception out of this listener would end the process.
190
+ process.stderr.write(`agent-comms web UI: ${err instanceof Error ? err.message : String(err)}\n`);
191
+ if (!res.headersSent) {
192
+ jsonError(res, "Internal server error", HTTP_INTERNAL_SERVER_ERROR);
193
+ }
194
+ else {
195
+ res.end();
196
+ }
197
+ }
173
198
  });
174
199
  let boundPort;
175
200
  try {
@@ -187,9 +212,14 @@ export async function createWebServer(options) {
187
212
  controller.on("message", (event) => {
188
213
  publisher.publish({ kind: "delivery", event });
189
214
  });
190
- const wss = new WebSocketServer({ noServer: true });
215
+ const wss = new WebSocketServer({
216
+ noServer: true,
217
+ maxPayload: MAX_MESSAGE_BYTES,
218
+ });
191
219
  const rpcHandler = new RPCHandler(meshRouter);
192
220
  server.on("upgrade", (req, socket, head) => {
221
+ // A socket error before or after the upgrade (a peer that resets, say) is that connection's alone.
222
+ socket.on("error", reportSocketError);
193
223
  const decision = authorise(accessPolicy, requestOf(req));
194
224
  if (decision.kind !== "allow") {
195
225
  const status = decision.kind === "deny" ? decision.status : HTTP_UNAUTHORIZED;
@@ -208,6 +238,8 @@ export async function createWebServer(options) {
208
238
  }
209
239
  });
210
240
  wss.on("connection", (ws) => {
241
+ // A socket error (a message over the size limit closes the socket with code 1009 and raises one) is handled here: an error event with no listener would end the process.
242
+ ws.on("error", reportSocketError);
211
243
  // RPCHandler.upgrade() wants a DOM-shaped WebSocket (addEventListener's overload set), which "ws"'s own type declarations don't structurally satisfy (its addEventListener options param is narrower than DOM's) -- .message()/.close() accept the looser { send } shape "ws" does satisfy, and are the documented manual equivalent to .upgrade().
212
244
  const context = { controller, publisher };
213
245
  ws.on("message", (data, isBinary) => {
@@ -216,10 +248,10 @@ export async function createWebServer(options) {
216
248
  const bytes = raw instanceof ArrayBuffer ? Buffer.from(raw) : raw;
217
249
  // Buffer's .buffer is typed ArrayBufferLike (Buffer can wrap a SharedArrayBuffer); RPCHandler.message() wants the narrower Uint8Array<ArrayBuffer> -- a fresh Uint8Array.from() copy is always backed by a plain ArrayBuffer, satisfying that exactly.
218
250
  const payload = isBinary ? Uint8Array.from(bytes) : bytes.toString();
219
- void rpcHandler.message(ws, payload, { context });
251
+ rpcHandler.message(ws, payload, { context }).catch(reportSocketError);
220
252
  });
221
253
  ws.on("close", () => {
222
- void rpcHandler.close(ws);
254
+ rpcHandler.close(ws).catch(reportSocketError);
223
255
  });
224
256
  });
225
257
  // stderr, not stdout: a stdio MCP bridge owns stdout for JSON-RPC, so any other line there is protocol noise to a strictly framed client.
@@ -229,6 +261,10 @@ export async function createWebServer(options) {
229
261
  }
230
262
  return { server, controller, wss, publisher, host, accessToken };
231
263
  }
264
+ /** Reports a failure of one WebSocket connection to stderr: it only ever affects that connection. */
265
+ function reportSocketError(err) {
266
+ process.stderr.write(`agent-comms web UI: socket error: ${err instanceof Error ? err.message : String(err)}\n`);
267
+ }
232
268
  function requestOf(req) {
233
269
  return {
234
270
  method: req.method ?? "GET",
@@ -298,18 +334,28 @@ export async function runWeb(userName, port) {
298
334
  await handle.controller.shutdown();
299
335
  process.exit(0);
300
336
  };
301
- process.on("SIGINT", () => {
302
- void cleanup();
303
- });
304
- process.on("SIGTERM", () => {
305
- void cleanup();
306
- });
337
+ const shutDown = () => {
338
+ cleanup().catch((err) => {
339
+ process.stderr.write(`agent-comms web UI: shutdown failed: ${err instanceof Error ? err.message : String(err)}\n`);
340
+ process.exit(1);
341
+ });
342
+ };
343
+ process.on("SIGINT", shutDown);
344
+ process.on("SIGTERM", shutDown);
307
345
  }
308
346
  // ---------------------------------------------------------------------------
309
347
  // HTTP handler
310
348
  // ---------------------------------------------------------------------------
311
349
  function handleRequest(req, res, controller, webConsoleDist) {
312
- const url = new URL(req.url ?? "/", `http://localhost`);
350
+ let url;
351
+ try {
352
+ url = new URL(req.url ?? "/", `http://localhost`);
353
+ }
354
+ catch {
355
+ // A request target that names no URL (an empty authority, say) is a bad request, not a fault.
356
+ jsonError(res, "Bad request", HTTP_BAD_REQUEST);
357
+ return;
358
+ }
313
359
  // wire-mesh's web-console — an alternate, generic reference-client UI, served only when AGENT_COMMS_WEB_CONSOLE_DIST resolves to a real build.
314
360
  if (webConsoleDist !== undefined &&
315
361
  req.method === "GET" &&
@@ -382,8 +428,8 @@ function handleRequest(req, res, controller, webConsoleDist) {
382
428
  const assets = frontendOrUnavailable(res);
383
429
  if (assets === undefined)
384
430
  return;
385
- const icon = assets.icons[filename];
386
- if (icon) {
431
+ const icon = assets.icons.get(filename);
432
+ if (icon !== undefined) {
387
433
  res.writeHead(HTTP_OK, {
388
434
  "Content-Type": "image/svg+xml",
389
435
  "Cache-Control": "public, max-age=604800",
@@ -394,23 +440,21 @@ function handleRequest(req, res, controller, webConsoleDist) {
394
440
  }
395
441
  // API routes
396
442
  if (url.pathname === "/api/agents" && req.method === "GET") {
397
- void (async () => {
398
- const agents = await controller.getAgents();
399
- json(res, agents);
400
- })();
443
+ serveRoute(req, res, async () => {
444
+ json(res, await controller.getAgents());
445
+ });
401
446
  return;
402
447
  }
403
448
  if (url.pathname === "/api/rooms" && req.method === "GET") {
404
- void (async () => {
405
- const rooms = await controller.getRooms();
406
- json(res, rooms);
407
- })();
449
+ serveRoute(req, res, async () => {
450
+ json(res, await controller.getRooms());
451
+ });
408
452
  return;
409
453
  }
410
454
  if (url.pathname.startsWith("/api/rooms/") &&
411
455
  url.pathname.endsWith("/messages") &&
412
456
  req.method === "GET") {
413
- void (async () => {
457
+ serveRoute(req, res, async () => {
414
458
  const roomId = url.pathname.split("/")[3];
415
459
  if (roomId === undefined || roomId === "") {
416
460
  jsonError(res, "Room ID required", HTTP_BAD_REQUEST);
@@ -422,7 +466,7 @@ function handleRequest(req, res, controller, webConsoleDist) {
422
466
  since,
423
467
  });
424
468
  json(res, messages);
425
- })();
469
+ });
426
470
  return;
427
471
  }
428
472
  if (url.pathname === "/api/mesh/graph" && req.method === "GET") {
@@ -435,7 +479,7 @@ function handleRequest(req, res, controller, webConsoleDist) {
435
479
  return;
436
480
  }
437
481
  if (url.pathname === "/api/mesh/trace" && req.method === "GET") {
438
- void (async () => {
482
+ serveRoute(req, res, async () => {
439
483
  const target = url.searchParams.get("target");
440
484
  if (target === null || target === "") {
441
485
  jsonError(res, "target query parameter required", HTTP_BAD_REQUEST);
@@ -453,21 +497,28 @@ function handleRequest(req, res, controller, webConsoleDist) {
453
497
  catch (err) {
454
498
  jsonError(res, meshErrorMessage(err), meshErrorStatus(err, HTTP_BAD_REQUEST));
455
499
  }
456
- })();
500
+ });
457
501
  return;
458
502
  }
459
503
  if (url.pathname === "/api/action" && req.method === "POST") {
460
- void (async () => {
461
- const body = await readBody(req);
462
- const parsed = JSON.parse(body);
463
- if (typeof parsed !== "object" || parsed === null) {
464
- jsonError(res, "Invalid JSON", HTTP_BAD_REQUEST);
465
- return;
504
+ serveRoute(req, res, async () => {
505
+ const body = await readBoundedBody(req);
506
+ let parsed;
507
+ try {
508
+ parsed = JSON.parse(body);
509
+ }
510
+ catch {
511
+ throw invalidJsonBody();
512
+ }
513
+ if (typeof parsed !== "object" ||
514
+ parsed === null ||
515
+ Array.isArray(parsed)) {
516
+ throw invalidJsonBody();
466
517
  }
467
518
  const params = Object.fromEntries(Object.entries(parsed));
468
519
  const result = await executeAction(controller, params);
469
520
  json(res, result);
470
- })();
521
+ });
471
522
  return;
472
523
  }
473
524
  res.writeHead(HTTP_NOT_FOUND);
@@ -578,10 +629,6 @@ function jsonError(res, message, status) {
578
629
  res.writeHead(status, { "Content-Type": "application/json" });
579
630
  res.end(JSON.stringify({ error: message }));
580
631
  }
581
- /** Extracts a reportable message from whatever meshGraph()/meshTrace() threw -- a CommsError has a real message, anything else is reported generically rather than leaking an unexpected error shape to the client. */
582
- function meshErrorMessage(err) {
583
- return err instanceof Error ? err.message : "Unknown error";
584
- }
585
632
  /** A transport that doesn't support mesh_graph/mesh_trace (CommsError code NOT_SUPPORTED, e.g. this bridge is running on FileStore rather than a real mesh) is a client-visible "this endpoint isn't available here" rather than a server fault. Any other error falls back to `otherwise` -- HTTP_BAD_REQUEST for mesh_trace, since its only other realistic failure is a malformed client-supplied target; HTTP_INTERNAL_SERVER_ERROR for mesh_graph, which takes no client input at all. */
586
633
  function meshErrorStatus(err, otherwise) {
587
634
  if (err instanceof CommsError && err.code === "NOT_SUPPORTED") {
@@ -589,16 +636,4 @@ function meshErrorStatus(err, otherwise) {
589
636
  }
590
637
  return otherwise;
591
638
  }
592
- async function readBody(req) {
593
- return new Promise((resolve, reject) => {
594
- const chunks = [];
595
- req.on("data", (chunk) => {
596
- chunks.push(chunk);
597
- });
598
- req.on("end", () => {
599
- resolve(Buffer.concat(chunks).toString());
600
- });
601
- req.on("error", reject);
602
- });
603
- }
604
639
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/bridges/user/web/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/bridges/user/web/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-access.d.ts","sourceRoot":"","sources":["../../../../src/bridges/user/web/web-access.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,yMAAyM;AACzM,eAAO,MAAM,YAAY,yBAAyB,CAAC;AAEnD,kEAAkE;AAClE,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,+TAA+T;AAC/T,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAE5D,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAkC1C,iJAAiJ;AACjJ,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,uJAAuJ;AACvJ,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CASR;AAED,6GAA6G;AAC7G,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIxE;AAwBD,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,EAAE,MAAM,WAAW,CAAC,MAAM,CAE3D,CAAC;AAEF,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,8HAA8H;IAC9H,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,mWAAmW;IACnW,QAAQ,CAAC,oBAAoB,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1D;AAED,0IAA0I;AAC1I,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IACE,4IAA4I;IAC5I,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AA8IN;;GAEG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,OAAO,EAAE,aAAa,GACrB,cAAc,CAkChB;AAED,4XAA4X;AAC5X,wBAAgB,UAAU,CACxB,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC3D,UAAU,GAAE,MAAM,MAAM,CAAC,IAAI,CAC3B,EAAE,CAAC,oBAAoB,EAAE,CACH,GACvB,MAAM,EAAE,CAkBV"}
1
+ {"version":3,"file":"web-access.d.ts","sourceRoot":"","sources":["../../../../src/bridges/user/web/web-access.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export const ACCESS_QUERY_PARAM = "token";
23
23
  const ACCESS_TOKEN_BYTES = 32;
24
24
  /** The port a Host header with no explicit port names (HTTP). */
25
25
  const HTTP_DEFAULT_PORT = 80;
26
+ const HTTP_BAD_REQUEST = 400;
26
27
  const HTTP_UNAUTHORIZED = 401;
27
28
  const HTTP_FORBIDDEN = 403;
28
29
  const HTTP_FOUND = 302;
@@ -272,7 +273,10 @@ export function authorise(policy, request) {
272
273
  return { kind: "allow" };
273
274
  }
274
275
  if (request.method === "GET") {
275
- const url = new URL(request.url, "http://placeholder");
276
+ const url = parseRequestUrl(request.url);
277
+ if (url === undefined) {
278
+ return { kind: "deny", status: HTTP_BAD_REQUEST, message: "Bad request" };
279
+ }
276
280
  const offered = url.searchParams.get(ACCESS_QUERY_PARAM);
277
281
  if (offered !== null && tokensMatch(offered, token)) {
278
282
  url.searchParams.delete(ACCESS_QUERY_PARAM);
@@ -286,6 +290,15 @@ export function authorise(policy, request) {
286
290
  }
287
291
  return { kind: "deny", status: HTTP_UNAUTHORIZED, message: "Unauthorized" };
288
292
  }
293
+ /** The URL a request line names, or undefined when it names none: a request target that cannot be parsed is refused, never thrown out of the request listener, which would end the process. */
294
+ function parseRequestUrl(target) {
295
+ try {
296
+ return new URL(target, "http://placeholder");
297
+ }
298
+ catch {
299
+ return undefined;
300
+ }
301
+ }
289
302
  /** The URLs an operator can open on the LAN, each carrying the token for the one-time exchange. A wildcard bind lists every external, non-link-local address of this machine that the bind family can reach (IPv6 bracketed, and only under `::`, since `0.0.0.0` accepts IPv4 alone); a specific bind lists that address. The list is empty when a wildcard bind finds no such address. */
290
303
  export function accessUrls(policy, interfaces = os.networkInterfaces) {
291
304
  const hosts = [];