agent-comms 9.1.1 → 9.1.3
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/dist/bridges/user/web/request-handling.d.ts +26 -0
- package/dist/bridges/user/web/request-handling.d.ts.map +1 -0
- package/dist/bridges/user/web/request-handling.js +92 -0
- package/dist/bridges/user/web/request-handling.js.map +1 -0
- package/dist/bridges/user/web/server.d.ts +4 -0
- package/dist/bridges/user/web/server.d.ts.map +1 -1
- package/dist/bridges/user/web/server.js +88 -53
- package/dist/bridges/user/web/server.js.map +1 -1
- package/dist/bridges/user/web/web-access.d.ts.map +1 -1
- package/dist/bridges/user/web/web-access.js +14 -1
- package/dist/bridges/user/web/web-access.js.map +1 -1
- package/dist/bridges/user/web/web-assets.d.ts +2 -1
- package/dist/bridges/user/web/web-assets.d.ts.map +1 -1
- package/dist/bridges/user/web/web-assets.js +2 -2
- package/dist/bridges/user/web/web-assets.js.map +1 -1
- package/dist/bridges/user/web/web-console-static.d.ts.map +1 -1
- package/dist/bridges/user/web/web-console-static.js +34 -22
- package/dist/bridges/user/web/web-console-static.js.map +1 -1
- package/dist/core/detached-work.d.ts +14 -0
- package/dist/core/detached-work.d.ts.map +1 -0
- package/dist/core/detached-work.js +40 -0
- package/dist/core/detached-work.js.map +1 -0
- package/dist/core/election-sessions.d.ts.map +1 -1
- package/dist/core/election-sessions.js +6 -6
- package/dist/core/election-sessions.js.map +1 -1
- package/dist/core/hub-session.d.ts +10 -1
- package/dist/core/hub-session.d.ts.map +1 -1
- package/dist/core/hub-session.js +34 -32
- package/dist/core/hub-session.js.map +1 -1
- package/dist/core/message-limits.d.ts +14 -0
- package/dist/core/message-limits.d.ts.map +1 -0
- package/dist/core/message-limits.js +22 -0
- package/dist/core/message-limits.js.map +1 -0
- package/dist/core/peer-lifecycle.d.ts +2 -0
- package/dist/core/peer-lifecycle.d.ts.map +1 -1
- package/dist/core/peer-lifecycle.js +9 -4
- package/dist/core/peer-lifecycle.js.map +1 -1
- package/dist/core/pending-connection.d.ts +20 -1
- package/dist/core/pending-connection.d.ts.map +1 -1
- package/dist/core/pending-connection.js +27 -0
- package/dist/core/pending-connection.js.map +1 -1
- package/dist/core/relay-server.d.ts +15 -1
- package/dist/core/relay-server.d.ts.map +1 -1
- package/dist/core/relay-server.js +70 -16
- package/dist/core/relay-server.js.map +1 -1
- package/dist/core/room-router.d.ts.map +1 -1
- package/dist/core/room-router.js +31 -10
- package/dist/core/room-router.js.map +1 -1
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +3 -0
- package/dist/core/tool.js.map +1 -1
- package/dist/core/transport-events.d.ts.map +1 -1
- package/dist/core/transport-events.js +9 -5
- package/dist/core/transport-events.js.map +1 -1
- package/dist/core/wire-mesh-transport.d.ts +2 -2
- package/dist/core/wire-mesh-transport.d.ts.map +1 -1
- package/dist/core/wire-mesh-transport.js +96 -115
- package/dist/core/wire-mesh-transport.js.map +1 -1
- package/package.json +2 -2
- package/src/bridges/user/web/request-handling.ts +118 -0
- package/src/bridges/user/web/server.ts +109 -54
- package/src/bridges/user/web/web-access.ts +14 -1
- package/src/bridges/user/web/web-assets.ts +7 -3
- package/src/bridges/user/web/web-console-static.ts +34 -26
- package/src/core/detached-work.ts +55 -0
- package/src/core/election-sessions.ts +8 -4
- package/src/core/hub-session.ts +63 -41
- package/src/core/message-limits.ts +29 -0
- package/src/core/peer-lifecycle.ts +10 -4
- package/src/core/pending-connection.ts +48 -1
- package/src/core/relay-server.ts +110 -23
- package/src/core/room-router.ts +36 -9
- package/src/core/tool.ts +3 -0
- package/src/core/transport-events.ts +9 -5
- package/src/core/wire-mesh-transport.ts +58 -63
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"peer-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Two roles are kept apart here (agent-comms#341). The well-known port listener is only the compatibility first-contact address and introduction path, and is still passed on by graceful handover and recovered by the bind race. The coordinator duties (the stale-agent probe, single-authority departure announcements, the default cc-peer front) follow the elected CoordinatorRole instead, whose holder need not be the peer that bound the port.
|
|
5
5
|
*/
|
|
6
|
+
import { reportRejection } from "./detached-work.js";
|
|
6
7
|
import { normaliseWireState } from "./wire-protocol.js";
|
|
7
8
|
import { parseIsoTimestampMs } from "./iso-timestamp.js";
|
|
8
9
|
import { BECOME_COORDINATOR_BIND_RETRIES, BECOME_COORDINATOR_BIND_RETRY_DELAY_MS, isAddrInUse, isConnectionRefused, } from "./bind-retry.js";
|
|
@@ -91,7 +92,7 @@ export class PeerLifecycle {
|
|
|
91
92
|
// The list always includes this store's own entry — dialling yourself is a wasted connection attempt (and, on some platforms, an immediate self-inflicted ECONNRESET) that never needs to happen.
|
|
92
93
|
if (peer.id === peerId)
|
|
93
94
|
continue;
|
|
94
|
-
|
|
95
|
+
this.detach(this.deps.requireTransport().connectToPeer(peer, peerId));
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
98
|
handlePeerJoined(peer) {
|
|
@@ -99,7 +100,7 @@ export class PeerLifecycle {
|
|
|
99
100
|
const peerId = this.deps.getPeerId();
|
|
100
101
|
if (peer.id === peerId)
|
|
101
102
|
return;
|
|
102
|
-
|
|
103
|
+
this.detach(this.deps.requireTransport().connectToPeer(peer, peerId));
|
|
103
104
|
}
|
|
104
105
|
async handleIntroduction(handle, msg) {
|
|
105
106
|
const newPeer = {
|
|
@@ -161,12 +162,16 @@ export class PeerLifecycle {
|
|
|
161
162
|
this.deps.peerInfo.set(peerId, self);
|
|
162
163
|
for (const peer of peerList) {
|
|
163
164
|
this.deps.peerInfo.set(peer.id, peer);
|
|
164
|
-
|
|
165
|
+
this.detach(this.deps.requireTransport().connectToPeer(peer, peerId));
|
|
165
166
|
}
|
|
166
167
|
await this.claimWhileAlone();
|
|
167
168
|
}
|
|
169
|
+
/** Work started for a peer and not awaited: a failure is reported through onError (or stderr), never left as an unhandled rejection. */
|
|
170
|
+
detach(work) {
|
|
171
|
+
reportRejection(work, () => this.deps.onError);
|
|
172
|
+
}
|
|
168
173
|
handlePeerDisconnected(handle) {
|
|
169
|
-
|
|
174
|
+
this.detach(this.handlePeerDeparture(handle.id));
|
|
170
175
|
}
|
|
171
176
|
/** The awaitable form of handlePeerDisconnected, which TransportEvents forces to be synchronous. A departing peer leaves the peer list. When it held the elected coordinator role, the role is recovered first (the lowest surviving device-id claims at a raised term), so the new holder is already in place by the time the departed peer's agent record is retired; when it held the well-known port this side dialled, the vacated port is contested too. */
|
|
172
177
|
async handlePeerDeparture(peerId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-lifecycle.js","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peer-lifecycle.js","sourceRoot":"","sources":["../../src/core/peer-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* A connect_request held open awaiting a human decision, how long it may wait, and what happens when it waits too long: WireMeshTransport's pending-connection bookkeeping, split out of wire-mesh-transport.ts to keep it under the repo's max-lines cap.
|
|
3
3
|
*/
|
|
4
4
|
import type { AcceptedMeshSession, IncomingManageRequest } from "wire-mesh-core/domain/mesh-session";
|
|
5
|
-
import type { ListenerPolicy } from "./transport.js";
|
|
5
|
+
import type { ConnectionHandle, ListenerPolicy, TransportEvents } from "./transport.js";
|
|
6
6
|
export declare const DEFAULT_PENDING_CONNECTION_TIMEOUT_MS: number;
|
|
7
7
|
/** A human decision on a connect_request: "accept" resumes the still-blocked consumeQuarantined loop as a fully trusted session; "reject" (also used when the requester disconnects before a decision is made) unblocks it to close instead. */
|
|
8
8
|
export type ConnectionDecision = "accept" | "reject";
|
|
@@ -21,4 +21,23 @@ export interface PendingConnection {
|
|
|
21
21
|
}
|
|
22
22
|
/** Auto-rejects a connect_request that has sat unanswered past WireMeshTransport's pendingConnectionTimeoutMs: the same respond-then-resolve shape rejectConnection uses (a real error response, not a silent hang), since unlike watchForDisconnect's own cleanup path the requester's session is still very much alive and waiting to hear back. A no-op if the request was already settled by acceptConnection/rejectConnection/disconnect before this timer fired, since entries are deleted exactly once, by whichever path settles first. */
|
|
23
23
|
export declare function expirePendingConnection(pendingConnections: Map<string, PendingConnection>, id: string): void;
|
|
24
|
+
/** What holdConnectRequest needs: where pending requests are kept, how long one may wait, and where the request is announced. */
|
|
25
|
+
export interface HoldConnectRequestOptions {
|
|
26
|
+
pendingConnections: Map<string, PendingConnection>;
|
|
27
|
+
timeoutMs: number;
|
|
28
|
+
events: Pick<TransportEvents, "onConnectionRequest">;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Holds a connect_request open until a human decides, and settles with that decision. The request is announced through `onConnectionRequest` and answered later by acceptConnection or rejectConnection, or by expirePendingConnection if neither happens within the timeout. The timer is unref()'d so a stray pending connection, whose timer failed to be cleared through some path, can never by itself keep the process alive for up to the timeout after everything else is done.
|
|
32
|
+
*/
|
|
33
|
+
export declare function holdConnectRequest(options: Readonly<HoldConnectRequestOptions>, held: Readonly<{
|
|
34
|
+
request: IncomingManageRequest;
|
|
35
|
+
message: {
|
|
36
|
+
dataPort: number;
|
|
37
|
+
name: string;
|
|
38
|
+
fingerprint: string;
|
|
39
|
+
};
|
|
40
|
+
handle: Readonly<ConnectionHandle>;
|
|
41
|
+
session: AcceptedMeshSession;
|
|
42
|
+
}>): Promise<ConnectionDecision>;
|
|
24
43
|
//# sourceMappingURL=pending-connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-connection.d.ts","sourceRoot":"","sources":["../../src/core/pending-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"pending-connection.d.ts","sourceRoot":"","sources":["../../src/core/pending-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAMxB,eAAO,MAAM,qCAAqC,QACuB,CAAC;AAE1E,gPAAgP;AAChP,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,obAAob;IACpb,OAAO,EAAE,mBAAmB,CAAC;IAC7B,4UAA4U;IAC5U,OAAO,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,kaAAka;IACla,aAAa,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAC9C;AAED,mhBAAmhB;AACnhB,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAClD,EAAE,EAAE,MAAM,GACT,IAAI,CAcN;AAED,iIAAiI;AACjI,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAC5C,IAAI,EAAE,QAAQ,CAAC;IACb,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACnC,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC,GACD,OAAO,CAAC,kBAAkB,CAAC,CAuB7B"}
|
|
@@ -22,4 +22,31 @@ export function expirePendingConnection(pendingConnections, id) {
|
|
|
22
22
|
.catch(() => undefined);
|
|
23
23
|
pending.resolve("reject");
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Holds a connect_request open until a human decides, and settles with that decision. The request is announced through `onConnectionRequest` and answered later by acceptConnection or rejectConnection, or by expirePendingConnection if neither happens within the timeout. The timer is unref()'d so a stray pending connection, whose timer failed to be cleared through some path, can never by itself keep the process alive for up to the timeout after everything else is done.
|
|
27
|
+
*/
|
|
28
|
+
export async function holdConnectRequest(options, held) {
|
|
29
|
+
const { pendingConnections, timeoutMs, events } = options;
|
|
30
|
+
const { request, message, handle, session } = held;
|
|
31
|
+
return new Promise((resolve) => {
|
|
32
|
+
pendingConnections.set(handle.id, {
|
|
33
|
+
respond: request.respond,
|
|
34
|
+
dataPort: message.dataPort,
|
|
35
|
+
name: message.name,
|
|
36
|
+
fingerprint: message.fingerprint,
|
|
37
|
+
policy: handle.policy,
|
|
38
|
+
session,
|
|
39
|
+
resolve,
|
|
40
|
+
timeoutHandle: setTimeout(() => {
|
|
41
|
+
expirePendingConnection(pendingConnections, handle.id);
|
|
42
|
+
}, timeoutMs).unref(),
|
|
43
|
+
});
|
|
44
|
+
events.onConnectionRequest(handle, {
|
|
45
|
+
peerId: handle.id,
|
|
46
|
+
dataPort: message.dataPort,
|
|
47
|
+
name: message.name,
|
|
48
|
+
fingerprint: message.fingerprint,
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
25
52
|
//# sourceMappingURL=pending-connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-connection.js","sourceRoot":"","sources":["../../src/core/pending-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"pending-connection.js","sourceRoot":"","sources":["../../src/core/pending-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,oaAAoa;AACpa,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAC7C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,qCAAqC,GAChD,kCAAkC,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAmB1E,mhBAAmhB;AACnhB,MAAM,UAAU,uBAAuB,CACrC,kBAAkD,EAClD,EAAU;IAEV,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,KAAK,OAAO;SACT,OAAO,CAAC;QACP,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,yDAAyD;KACnE,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AASD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA4C,EAC5C,IAKE;IAEF,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnD,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,EAAE;QACjD,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO;YACP,OAAO;YACP,aAAa,EAAE,UAAU,CAAC,GAAG,EAAE;gBAC7B,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE;YACjC,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -7,6 +7,14 @@ import type { Connection } from "wire-mesh-core/ports/transport";
|
|
|
7
7
|
import { type UplinkFeed } from "./relay-uplink.js";
|
|
8
8
|
/** The wildcard IPv4 address: listening on it serves every interface, loopback and the local network alike. */
|
|
9
9
|
export declare const ALL_INTERFACES_HOST = "0.0.0.0";
|
|
10
|
+
/**
|
|
11
|
+
* The most bytes one WebSocket message may carry to the relay: 16 MiB. It is above the largest frame a legitimate client sends (a full reply of account ledger entries, about 12.6 MiB), equal to the receive cap of the Rust stream transport, and below the 32 MiB the hosted hub accepts, so no frame a conforming peer sends is refused and the relay holds no more of one connection's message than the hub would. The WebSocket server enforces it on the length a frame declares, before its payload is read: a message over it closes that connection with 1009 and nothing else.
|
|
12
|
+
*/
|
|
13
|
+
export declare const MAX_RELAY_FRAME_BYTES: number;
|
|
14
|
+
/** How long a client of the relay has to send its request headers and to complete a request: ample for any real client on a local network, and short because every such client is unauthenticated until it has gossiped an admitted device. */
|
|
15
|
+
export declare const RELAY_REQUEST_TIMEOUT_MS = 10000;
|
|
16
|
+
/** How long a WebSocket client of the relay has, from connecting, to gossip an advert for an admitted device. A connection that has not is closed: it can neither be named by a relay-connect nor relay anything, so holding it open serves no one. */
|
|
17
|
+
export declare const RELAY_ADMISSION_TIMEOUT_MS = 30000;
|
|
10
18
|
export interface RelayServerOptions {
|
|
11
19
|
/** The interface to listen on: ALL_INTERFACES_HOST to serve the local network, or a single address (a test serves loopback only). */
|
|
12
20
|
host: string;
|
|
@@ -14,6 +22,12 @@ export interface RelayServerOptions {
|
|
|
14
22
|
isAdmitted: (deviceHex: string) => boolean;
|
|
15
23
|
/** Reports a failure of the uplink, which is otherwise detached from any caller. */
|
|
16
24
|
onError: (error: Error) => void;
|
|
25
|
+
/** Overrides RELAY_REQUEST_TIMEOUT_MS, the time a client has to send its headers and complete a request. A test sets it small. */
|
|
26
|
+
requestTimeoutMs?: number | undefined;
|
|
27
|
+
/** Overrides RELAY_ADMISSION_TIMEOUT_MS, the time a WebSocket client has to gossip an admitted device. A test sets it small. */
|
|
28
|
+
admissionTimeoutMs?: number | undefined;
|
|
29
|
+
/** Overrides how often Node checks connections against the request timeouts (its default is thirty seconds, which makes a timeout take effect up to that much late). A test sets it small. */
|
|
30
|
+
connectionsCheckingIntervalMs?: number | undefined;
|
|
17
31
|
}
|
|
18
32
|
export declare class RelayServer {
|
|
19
33
|
private readonly options;
|
|
@@ -38,7 +52,7 @@ export declare class RelayServer {
|
|
|
38
52
|
routableClientCount(): number;
|
|
39
53
|
/** Closes every client and the listener. */
|
|
40
54
|
stop(): Promise<void>;
|
|
41
|
-
/** Drives one connection: filters its gossip to admitted devices, registers it with the hub on its first admitted advert, and hands the hub every frame from then on. */
|
|
55
|
+
/** Drives one connection: filters its gossip to admitted devices, registers it with the hub on its first admitted advert and calls `onVerified` once the hub has accepted an advert of it, and hands the hub every frame from then on. A frame that cannot be handled is reported and the next is still read, so one bad frame never ends a connection's service; the loop ends when the connection's own stream does. */
|
|
42
56
|
private serve;
|
|
43
57
|
/** The frame from upstream without the adverts of devices a client of this relay has registered, or undefined when nothing is left of it. An advert that came back round through the upstream hub would otherwise displace the client's own registration whenever it was the fresher, and a relay-connect naming the client would then find no route to it. */
|
|
44
58
|
private withoutClientDevices;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-server.d.ts","sourceRoot":"","sources":["../../src/core/relay-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"relay-server.d.ts","sourceRoot":"","sources":["../../src/core/relay-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAElE,+GAA+G;AAC/G,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAM7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,QACa,CAAC;AAEhD,+OAA+O;AAC/O,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,uPAAuP;AACvP,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAQjD,MAAM,WAAW,kBAAkB;IACjC,qIAAqI;IACrI,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,oFAAoF;IACpF,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,kIAAkI;IAClI,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gIAAgI;IAChI,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,8LAA8L;IAC9L,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD;AAED,qBAAa,WAAW;IAYV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAEjB;IACH,iKAAiK;IACjK,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAC9E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,IAAI,CAAK;IACjB,oHAAoH;IACpH,OAAO,CAAC,UAAU,CAAoC;gBAEzB,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC;IAiDlE,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,qbAAqb;IACrb,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU;IAoBxD,0JAA0J;IAC1J,SAAS,IAAI,MAAM,EAAE;IAQrB,uDAAuD;IACvD,eAAe,IAAI,MAAM;IAIzB,wUAAwU;IACxU,mBAAmB,IAAI,MAAM;IAQ7B,4CAA4C;IACtC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,0ZAA0Z;YAC5Y,KAAK;IA2CnB,+VAA+V;IAC/V,OAAO,CAAC,oBAAoB;IAa5B,yJAAyJ;IACzJ,OAAO,CAAC,KAAK;CAQd"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Admission is deny-by-default, like every other cross-machine decision here: a connection is registered with the hub only once it gossips an advert for a device isAdmitted accepts, and every gossiped advert naming a device it does not accept is dropped before the hub sees it. A connection that never gossips an admitted device can neither be named by a relay-connect nor relay anything, and learns nothing, since the hub's catch-up is sent only in answer to a registered connection's gossip.
|
|
5
5
|
*/
|
|
6
|
+
import { consumeEach, reportRejection, } from "./detached-work.js";
|
|
6
7
|
import { createServer } from "node:http";
|
|
7
8
|
import * as os from "node:os";
|
|
8
9
|
import { WebSocketServer } from "ws";
|
|
@@ -13,6 +14,19 @@ import { wrapWsSocket } from "./ws-dial.js";
|
|
|
13
14
|
import { createUplink } from "./relay-uplink.js";
|
|
14
15
|
/** The wildcard IPv4 address: listening on it serves every interface, loopback and the local network alike. */
|
|
15
16
|
export const ALL_INTERFACES_HOST = "0.0.0.0";
|
|
17
|
+
const BYTES_PER_KIB = 1024;
|
|
18
|
+
const KIB_PER_MIB = 1024;
|
|
19
|
+
const RELAY_FRAME_MIB = 16;
|
|
20
|
+
/**
|
|
21
|
+
* The most bytes one WebSocket message may carry to the relay: 16 MiB. It is above the largest frame a legitimate client sends (a full reply of account ledger entries, about 12.6 MiB), equal to the receive cap of the Rust stream transport, and below the 32 MiB the hosted hub accepts, so no frame a conforming peer sends is refused and the relay holds no more of one connection's message than the hub would. The WebSocket server enforces it on the length a frame declares, before its payload is read: a message over it closes that connection with 1009 and nothing else.
|
|
22
|
+
*/
|
|
23
|
+
export const MAX_RELAY_FRAME_BYTES = RELAY_FRAME_MIB * KIB_PER_MIB * BYTES_PER_KIB;
|
|
24
|
+
/** How long a client of the relay has to send its request headers and to complete a request: ample for any real client on a local network, and short because every such client is unauthenticated until it has gossiped an admitted device. */
|
|
25
|
+
export const RELAY_REQUEST_TIMEOUT_MS = 10_000;
|
|
26
|
+
/** How long a WebSocket client of the relay has, from connecting, to gossip an advert for an admitted device. A connection that has not is closed: it can neither be named by a relay-connect nor relay anything, so holding it open serves no one. */
|
|
27
|
+
export const RELAY_ADMISSION_TIMEOUT_MS = 30_000;
|
|
28
|
+
/** HTTP status for a request to the relay that is not a WebSocket upgrade: the relay speaks nothing else. */
|
|
29
|
+
const HTTP_UPGRADE_REQUIRED = 426;
|
|
16
30
|
/** The loopback address every relay also offers, so a peer on the same machine reaches it without leaving the host. */
|
|
17
31
|
const LOOPBACK_HOST = "127.0.0.1";
|
|
18
32
|
export class RelayServer {
|
|
@@ -22,16 +36,51 @@ export class RelayServer {
|
|
|
22
36
|
});
|
|
23
37
|
/** The devices (hex) each connected client has registered, so an advert for one of them arriving from upstream never displaces the client's own registration. */
|
|
24
38
|
clientDevices = new Map();
|
|
25
|
-
http
|
|
26
|
-
wss
|
|
39
|
+
http;
|
|
40
|
+
wss;
|
|
27
41
|
port = 0;
|
|
28
42
|
/** Settles once the previous uplink has been forgotten by the hub, which refuses a second while one is attached. */
|
|
29
43
|
uplinkDone = Promise.resolve();
|
|
30
44
|
constructor(options) {
|
|
31
45
|
this.options = options;
|
|
46
|
+
const requestTimeoutMs = options.requestTimeoutMs ?? RELAY_REQUEST_TIMEOUT_MS;
|
|
47
|
+
// A request that is not a WebSocket upgrade is answered at once and its connection closed, and a client that sends headers or a request too slowly is cut off by the timeouts: nothing unauthenticated holds a connection open for ever.
|
|
48
|
+
this.http = createServer({
|
|
49
|
+
requestTimeout: requestTimeoutMs,
|
|
50
|
+
headersTimeout: requestTimeoutMs,
|
|
51
|
+
...(options.connectionsCheckingIntervalMs !== undefined && {
|
|
52
|
+
connectionsCheckingInterval: options.connectionsCheckingIntervalMs,
|
|
53
|
+
}),
|
|
54
|
+
}, (_request, response) => {
|
|
55
|
+
response.writeHead(HTTP_UPGRADE_REQUIRED, {
|
|
56
|
+
"Content-Type": "text/plain; charset=utf-8",
|
|
57
|
+
Connection: "close",
|
|
58
|
+
Upgrade: "websocket",
|
|
59
|
+
});
|
|
60
|
+
response.end("Upgrade required");
|
|
61
|
+
});
|
|
62
|
+
this.wss = new WebSocketServer({
|
|
63
|
+
server: this.http,
|
|
64
|
+
maxPayload: MAX_RELAY_FRAME_BYTES,
|
|
65
|
+
});
|
|
66
|
+
// The WebSocket server re-emits an error of its listener; with no handler it would end the process.
|
|
67
|
+
this.wss.on("error", (error) => {
|
|
68
|
+
this.options.onError(error);
|
|
69
|
+
});
|
|
32
70
|
this.wss.on("connection", (socket) => {
|
|
33
71
|
socket.binaryType = "arraybuffer";
|
|
34
|
-
|
|
72
|
+
// The error event a message over the size limit raises is this connection's alone: reported, never left to end the process.
|
|
73
|
+
socket.on("error", (error) => {
|
|
74
|
+
this.options.onError(error);
|
|
75
|
+
});
|
|
76
|
+
const admission = setTimeout(() => {
|
|
77
|
+
socket.terminate();
|
|
78
|
+
}, options.admissionTimeoutMs ?? RELAY_ADMISSION_TIMEOUT_MS);
|
|
79
|
+
reportRejection(this.serve(wrapWsSocket(socket), () => {
|
|
80
|
+
clearTimeout(admission);
|
|
81
|
+
}).finally(() => {
|
|
82
|
+
clearTimeout(admission);
|
|
83
|
+
}), () => this.options.onError);
|
|
35
84
|
});
|
|
36
85
|
}
|
|
37
86
|
/** Binds an OS-assigned port and resolves once listening. */
|
|
@@ -106,13 +155,13 @@ export class RelayServer {
|
|
|
106
155
|
});
|
|
107
156
|
});
|
|
108
157
|
}
|
|
109
|
-
/** Drives one connection: filters its gossip to admitted devices, registers it with the hub on its first admitted advert, and hands the hub every frame from then on. */
|
|
110
|
-
async serve(connection) {
|
|
111
|
-
|
|
158
|
+
/** Drives one connection: filters its gossip to admitted devices, registers it with the hub on its first admitted advert and calls `onVerified` once the hub has accepted an advert of it, and hands the hub every frame from then on. A frame that cannot be handled is reported and the next is still read, so one bad frame never ends a connection's service; the loop ends when the connection's own stream does. */
|
|
159
|
+
async serve(connection, onVerified) {
|
|
160
|
+
const state = { registered: false, verified: false };
|
|
112
161
|
const devices = new Set();
|
|
113
162
|
this.clientDevices.set(connection, devices);
|
|
114
163
|
try {
|
|
115
|
-
|
|
164
|
+
await consumeEach(connection.receive(), async (frame) => {
|
|
116
165
|
const admitted = this.admit(frame);
|
|
117
166
|
if (admitted?.type === "gossip") {
|
|
118
167
|
for (const advert of admitted.peers) {
|
|
@@ -120,23 +169,28 @@ export class RelayServer {
|
|
|
120
169
|
}
|
|
121
170
|
}
|
|
122
171
|
if (admitted === undefined)
|
|
123
|
-
continue;
|
|
124
|
-
if (!registered) {
|
|
172
|
+
return "continue";
|
|
173
|
+
if (!state.registered) {
|
|
125
174
|
if (admitted.type !== "gossip")
|
|
126
|
-
continue;
|
|
175
|
+
return "continue";
|
|
127
176
|
this.hub.registerConnection(connection);
|
|
128
|
-
registered = true;
|
|
177
|
+
state.registered = true;
|
|
129
178
|
}
|
|
130
179
|
await this.hub.onFrame(connection, admitted);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
180
|
+
// The hub verifies an advert after the connection is registered on the device id it names: the key must hash to that device and the signature must verify, or the advert is dropped. Only a connection the hub has accepted something from has proved anything, so only then is its admission deadline lifted.
|
|
181
|
+
if (!state.verified &&
|
|
182
|
+
this.hub.exportConnection(connection) !== undefined) {
|
|
183
|
+
state.verified = true;
|
|
184
|
+
onVerified();
|
|
185
|
+
}
|
|
186
|
+
return "continue";
|
|
187
|
+
}, () => this.options.onError);
|
|
135
188
|
}
|
|
136
189
|
finally {
|
|
137
190
|
this.clientDevices.delete(connection);
|
|
138
|
-
if (registered)
|
|
191
|
+
if (state.registered)
|
|
139
192
|
this.hub.onDisconnect(connection);
|
|
193
|
+
await connection.close().catch(() => undefined);
|
|
140
194
|
}
|
|
141
195
|
}
|
|
142
196
|
/** The frame from upstream without the adverts of devices a client of this relay has registered, or undefined when nothing is left of it. An advert that came back round through the upstream hub would otherwise displace the client's own registration whenever it was the fresher, and a relay-connect naming the client would then find no route to it. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-server.js","sourceRoot":"","sources":["../../src/core/relay-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAe,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,cAAc,EAAiB,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAElE,+GAA+G;AAC/G,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE7C,uHAAuH;AACvH,MAAM,aAAa,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"relay-server.js","sourceRoot":"","sources":["../../src/core/relay-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-router.d.ts","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACd,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"room-router.d.ts","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxE,6ZAA6Z;AAC7Z,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,GACxC,WAAW,GAAG,SAAS,CAOzB;AAsDD,0iBAA0iB;AAC1iB,MAAM,WAAW,iBAAiB;IAChC,scAAsc;IACtc,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,ovBAAovB;AACpvB,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACjC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,4HAA4H;IAC5H,MAAM,EAAE,eAAe,CAAC;IACxB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,0cAA0c;IAC1c,kBAAkB,EAAE,CAClB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,wcAAwc;IACxc,oBAAoB,EAAE,CACpB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,8RAA8R;IAC9R,YAAY,EAAE,CACZ,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAC/B,IAAI,CAAC;CACX;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAmFvE"}
|
package/dist/core/room-router.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Deliberately empty of real room-verb handlers in this phase (P3.3): the router itself, and the unsupported_verb fallback, are the whole deliverable here. Each later phase (P3.4 admission, P3.5 fan-out, P3.6 state-sync, P3.7 kick) registers the handlers for the verbs it implements.
|
|
7
7
|
*/
|
|
8
|
+
import { consumeEach } from "./detached-work.js";
|
|
8
9
|
import { isMeshMessage } from "./wire-protocol.js";
|
|
9
10
|
import { FRAME_VERB } from "./wire-mesh-transport.js";
|
|
10
11
|
/** Extracts and validates the carried MeshMessage from an incoming FRAME_VERB command. Returns undefined for anything that isn't a well-formed frame -- an unrecognised or malformed payload is dropped, not thrown. Exported for WireMeshTransport's own quarantine-gate pre-approval check (introduce/connect_request detection), the one place outside this router that still needs to decode a legacy frame directly. */
|
|
@@ -71,8 +72,12 @@ export function createRoomRouter(options) {
|
|
|
71
72
|
/** A room verb is never carried under FRAME_VERB, so a frame reaching here is not a room request whatever its params claim, and is refused like any other unregistered verb. */
|
|
72
73
|
async function dispatchRoomVerb(request, handle, origin) {
|
|
73
74
|
const verb = extractParamsVerb(request.command.params);
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
// The verb is what a peer sent: look it up among the handlers' own names only, never the members every object has (`constructor`, `toString`), which would be called as a handler.
|
|
76
|
+
const handler = request.command.verb !== FRAME_VERB &&
|
|
77
|
+
verb !== undefined &&
|
|
78
|
+
options.handlers !== undefined &&
|
|
79
|
+
Object.hasOwn(options.handlers, verb)
|
|
80
|
+
? options.handlers[verb]
|
|
76
81
|
: undefined;
|
|
77
82
|
if (handler === undefined) {
|
|
78
83
|
await request
|
|
@@ -80,14 +85,31 @@ export function createRoomRouter(options) {
|
|
|
80
85
|
.catch(() => undefined);
|
|
81
86
|
return;
|
|
82
87
|
}
|
|
83
|
-
|
|
88
|
+
// A handler that throws on what a peer sent answers that request with an error and is reported; it must not end the loop that reads this session's requests, or the process.
|
|
89
|
+
let outcome;
|
|
90
|
+
try {
|
|
91
|
+
outcome = await handler(request, handle, origin);
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
options.events.onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
95
|
+
outcome = { result: "error", code: "internal_error" };
|
|
96
|
+
}
|
|
84
97
|
await request.respond(outcome).catch(() => undefined);
|
|
85
98
|
}
|
|
86
99
|
async function handleLocalRequest(request, handle, origin = {}) {
|
|
87
100
|
if (request.command.verb === FRAME_VERB) {
|
|
88
101
|
const message = extractMessage(request.command);
|
|
89
|
-
|
|
90
|
-
|
|
102
|
+
try {
|
|
103
|
+
if (message !== undefined) {
|
|
104
|
+
routeLegacyMessage(handle, message, options.events);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
options.events.onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
109
|
+
await request
|
|
110
|
+
.respond({ result: "error", code: "internal_error" })
|
|
111
|
+
.catch(() => undefined);
|
|
112
|
+
return;
|
|
91
113
|
}
|
|
92
114
|
await request.respond({ result: "ok" }).catch(() => undefined);
|
|
93
115
|
return;
|
|
@@ -101,11 +123,10 @@ export function createRoomRouter(options) {
|
|
|
101
123
|
handleLocalRequest,
|
|
102
124
|
handleRelayedRequest,
|
|
103
125
|
drainSession(session, handle) {
|
|
104
|
-
void (async () => {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
})();
|
|
126
|
+
void consumeEach(session.incomingManageRequests, async (request) => {
|
|
127
|
+
await handleLocalRequest(request, handle);
|
|
128
|
+
return "continue";
|
|
129
|
+
}, () => options.events.onError);
|
|
109
130
|
},
|
|
110
131
|
};
|
|
111
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-router.js","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,6ZAA6Z;AAC7Z,MAAM,UAAU,cAAc,CAC5B,OAAyC;IAEzC,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,MAAM,GAAY,OAAO,CAAC,MAAM,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,OAAO,GAAY,MAAM,CAAC,OAAO,CAAC;IACxC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,kKAAkK;AAClK,SAAS,kBAAkB,CACzB,MAAkC,EAClC,OAAoB,EACpB,MAAiC;IAEjC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE;gBAC5B,MAAM,EAAE,MAAM,CAAC,EAAE;gBACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,+VAA+V;YAC/V,OAAO;QACT,CAAC;QACD,+NAA+N;QAC/N,KAAK,YAAY,CAAC;QAClB,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,iUAAiU;YACjU,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,6HAA6H;AAC7H,SAAS,iBAAiB,CAAC,MAAe;IACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AA0CD,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,gLAAgL;IAChL,KAAK,UAAU,gBAAgB,CAC7B,OAA8B,EAC9B,MAAkC,EAClC,MAAmC;QAEnC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"room-router.js","sourceRoot":"","sources":["../../src/core/room-router.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAA0B,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAStD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACd,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tool.js
CHANGED
|
@@ -12,6 +12,7 @@ import { lanWebUisAction } from "./lan-web-actions.js";
|
|
|
12
12
|
import { machineName, principalName, petnameClear, petnameList, petnameSet, } from "./naming-actions.js";
|
|
13
13
|
import { shortId } from "./display-name.js";
|
|
14
14
|
import { CommsError } from "./store.js";
|
|
15
|
+
import { requireMessageWithinLimit } from "./message-limits.js";
|
|
15
16
|
import { getOwnPackageVersion } from "./package-version.js";
|
|
16
17
|
import { describeDeliveryFor } from "./send-outcome.js";
|
|
17
18
|
import { formatSelfVersionLines, formatSelfVersionSuffix, handleQueryVersion, } from "./version-report-actions.js";
|
|
@@ -358,6 +359,7 @@ export class CommsTool {
|
|
|
358
359
|
return { content: `Left room "${action.room}".`, isError: false };
|
|
359
360
|
}
|
|
360
361
|
async send(ctx, action) {
|
|
362
|
+
requireMessageWithinLimit(action.content);
|
|
361
363
|
const roomId = action.target;
|
|
362
364
|
const { message, deliveries } = await this.store.sendRoomMessage(roomId, ctx.agentId, action.content, {
|
|
363
365
|
replyTo: action.replyTo,
|
|
@@ -381,6 +383,7 @@ export class CommsTool {
|
|
|
381
383
|
};
|
|
382
384
|
}
|
|
383
385
|
async dm(ctx, action) {
|
|
386
|
+
requireMessageWithinLimit(action.content);
|
|
384
387
|
const targetId = action.target;
|
|
385
388
|
const { message, delivery } = await this.store.sendDm(ctx.agentId, targetId, action.content, action.streamingBehavior);
|
|
386
389
|
// A DM the recipient refused never reaches here: sendDm raises SEND_REFUSED, which handle() turns into an error result naming the reason. What is left is a real delivery or a message merely held for retry, and the wording distinguishes the two rather than calling both "sent".
|