@pellux/goodvibes-daemon-sdk 1.6.1 → 1.7.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-server.d.ts","sourceRoot":"","sources":["../src/relay-server.ts"],"names":[],"mappings":"AAoBA,OAAO,EASL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,wCAAwC,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAChE;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;CAChD;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAMlC,CAAC;AAwCF;;;GAGG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;gBAEvC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAO;IAM7F,6DAA6D;IAC7D,KAAK,IAAI;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAI7D,8DAA8D;IAC9D,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,iDAAiD;IACjD,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe;IAMtE,gBAAgB;IAChB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,mGAAmG;IACnG,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,GAAG,cAAc,GAAG,IAAI;IAQ9E,2DAA2D;IAC3D,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;KAAE,GAAG,cAAc;IAclI,0FAA0F;IAC1F,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO;IAO1E,wFAAwF;IACxF,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO;IAUxD,uEAAuE;IACvE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAUvF,sEAAsE;IACtE,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;CAYrC;AAED,sEAAsE;AACtE,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,OAAO,CAAC,IAAI,CAA8C;IAC1D,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,MAAM,CAAqB;gBAGhB,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM;IAGrC,sDAAsD;IACtD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkB9B,qDAAqD;IACrD,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;IAkBlD,6BAA6B;IAC7B,WAAW,IAAI,IAAI;IAQnB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,IAAI;CAIb"}
@@ -0,0 +1,261 @@
1
+ // relay-server.ts
2
+ //
3
+ // A minimal, self-hostable, zero-knowledge rendezvous relay. Deploy one process
4
+ // on any VPS with `bun`, point daemons and surfaces at it, and it pairs them
5
+ // without ever being able to read their traffic. It does exactly three things:
6
+ //
7
+ // 1. Lets a daemon connect OUTBOUND and register under an unguessable
8
+ // rendezvous id (no inbound port on the daemon's network required).
9
+ // 2. Lets a client dial that same rendezvous id and opens a multiplexed pipe
10
+ // between the two.
11
+ // 3. Forwards OPAQUE bytes between the paired endpoints. The end-to-end
12
+ // handshake (see @pellux/goodvibes-transport-core/relay) runs inside each
13
+ // pipe before any application data, so the relay only ever sees ciphertext
14
+ // plus connection metadata (who paired with whom, byte counts, timing).
15
+ //
16
+ // There are NO accounts and NO stored state — a public instance is protected
17
+ // only by caps and rate limits so it cannot be turned into a liability. The
18
+ // core `RelayHub` is runtime-neutral and socket-agnostic (testable without a
19
+ // real server); `createBunRelayServer` is the thin Bun.serve adapter.
20
+ import { RELAY_PROTOCOL_VERSION, RELAY_PIPE_ID_BYTES, decodeControlFrame, encodeControlFrame, framePipePayload, randomBytes, toBase64Url, unframePipePayload, } from '@pellux/goodvibes-transport-core/relay';
21
+ export const DEFAULT_RELAY_LIMITS = {
22
+ maxDaemons: 256,
23
+ maxPipes: 4096,
24
+ maxPipesPerDaemon: 64,
25
+ maxMessageBytes: 4 * 1024 * 1024,
26
+ maxHandshakesPerMinutePerAddr: 120,
27
+ };
28
+ const SILENT_LOGGER = { info: () => { }, warn: () => { }, error: () => { } };
29
+ function errorFrame(code, message, pipe) {
30
+ return encodeControlFrame(pipe !== undefined ? { t: 'error', code, message, pipe } : { t: 'error', code, message });
31
+ }
32
+ /** A simple per-address rolling-minute counter for handshake attempts. */
33
+ class HandshakeRateLimiter {
34
+ perMinute;
35
+ hits = new Map();
36
+ constructor(perMinute) {
37
+ this.perMinute = perMinute;
38
+ }
39
+ allow(addr, now) {
40
+ const cutoff = now - 60_000;
41
+ const list = (this.hits.get(addr) ?? []).filter((t) => t > cutoff);
42
+ if (list.length >= this.perMinute) {
43
+ this.hits.set(addr, list);
44
+ return false;
45
+ }
46
+ list.push(now);
47
+ this.hits.set(addr, list);
48
+ return true;
49
+ }
50
+ forget(addr) {
51
+ this.hits.delete(addr);
52
+ }
53
+ }
54
+ /**
55
+ * The runtime-neutral rendezvous core. One instance per relay process. Every
56
+ * connection is represented by a `RelayConnection` returned from `accept`.
57
+ */
58
+ export class RelayHub {
59
+ daemons = new Map();
60
+ pipes = new Map();
61
+ limits;
62
+ logger;
63
+ rateLimiter;
64
+ constructor(options = {}) {
65
+ this.limits = { ...DEFAULT_RELAY_LIMITS, ...options.limits };
66
+ this.logger = options.logger ?? SILENT_LOGGER;
67
+ this.rateLimiter = new HandshakeRateLimiter(this.limits.maxHandshakesPerMinutePerAddr);
68
+ }
69
+ /** Current occupancy — surfaces/monitoring can read this. */
70
+ stats() {
71
+ return { daemons: this.daemons.size, pipes: this.pipes.size };
72
+ }
73
+ /** Maximum bytes allowed in a single forwarded data frame. */
74
+ get maxMessageBytes() {
75
+ return this.limits.maxMessageBytes;
76
+ }
77
+ /** Begin tracking a freshly-connected socket. */
78
+ accept(socket, remoteAddr) {
79
+ return new RelayConnection(this, socket, remoteAddr);
80
+ }
81
+ // ── internal operations invoked by RelayConnection ──
82
+ /** @internal */
83
+ _rateOk(addr) {
84
+ return this.rateLimiter.allow(addr, Date.now());
85
+ }
86
+ /** @internal Register a daemon under a rendezvous id. Returns an error code or null on success. */
87
+ _register(rid, socket) {
88
+ if (this.daemons.has(rid))
89
+ return 'rid-taken';
90
+ if (this.daemons.size >= this.limits.maxDaemons)
91
+ return 'capacity';
92
+ this.daemons.set(rid, { socket, pipes: new Set() });
93
+ this.logger.info('relay daemon registered', { rid, daemons: this.daemons.size });
94
+ return null;
95
+ }
96
+ /** @internal Open a client pipe to a registered daemon. */
97
+ _openPipe(rid, client) {
98
+ const daemon = this.daemons.get(rid);
99
+ if (!daemon)
100
+ return 'daemon-offline';
101
+ if (this.pipes.size >= this.limits.maxPipes)
102
+ return 'capacity';
103
+ if (daemon.pipes.size >= this.limits.maxPipesPerDaemon)
104
+ return 'capacity';
105
+ const pipeIdBytes = randomBytes(RELAY_PIPE_ID_BYTES);
106
+ const pipeId = toBase64Url(pipeIdBytes);
107
+ this.pipes.set(pipeId, { rid, client, daemon: daemon.socket, pipeIdBytes });
108
+ daemon.pipes.add(pipeId);
109
+ daemon.socket.send(encodeControlFrame({ t: 'pipe-open', pipe: pipeId }));
110
+ this.logger.info('relay pipe opened', { rid, pipe: pipeId, pipes: this.pipes.size });
111
+ return { pipeId, pipeIdBytes };
112
+ }
113
+ /** @internal Forward an opaque payload from a client to its daemon (adds pipe prefix). */
114
+ _clientToDaemon(pipeId, payload) {
115
+ const pipe = this.pipes.get(pipeId);
116
+ if (!pipe)
117
+ return false;
118
+ pipe.daemon.send(framePipePayload(pipe.pipeIdBytes, payload));
119
+ return true;
120
+ }
121
+ /** @internal Forward an opaque daemon frame ([pipeId][payload]) to the right client. */
122
+ _daemonToClient(frame) {
123
+ const split = unframePipePayload(frame);
124
+ if (!split)
125
+ return false;
126
+ const pipeId = toBase64Url(split.pipeId.slice());
127
+ const pipe = this.pipes.get(pipeId);
128
+ if (!pipe)
129
+ return false;
130
+ pipe.client.send(split.payload.slice());
131
+ return true;
132
+ }
133
+ /** @internal Tear down a single pipe, notifying the surviving peer. */
134
+ _closePipe(pipeId, notify, reason) {
135
+ const pipe = this.pipes.get(pipeId);
136
+ if (!pipe)
137
+ return;
138
+ this.pipes.delete(pipeId);
139
+ this.daemons.get(pipe.rid)?.pipes.delete(pipeId);
140
+ const closeFrame = encodeControlFrame(reason !== undefined ? { t: 'pipe-close', pipe: pipeId, reason } : { t: 'pipe-close', pipe: pipeId });
141
+ if (notify === 'client' || notify === 'both')
142
+ pipe.client.send(closeFrame);
143
+ if (notify === 'daemon' || notify === 'both')
144
+ pipe.daemon.send(closeFrame);
145
+ }
146
+ /** @internal Remove a daemon registration and close all its pipes. */
147
+ _unregister(rid) {
148
+ const daemon = this.daemons.get(rid);
149
+ if (!daemon)
150
+ return;
151
+ for (const pipeId of [...daemon.pipes]) {
152
+ const pipe = this.pipes.get(pipeId);
153
+ this.pipes.delete(pipeId);
154
+ pipe?.client.send(encodeControlFrame({ t: 'pipe-close', pipe: pipeId, reason: 'daemon-disconnected' }));
155
+ pipe?.client.close(1001, 'daemon-disconnected');
156
+ }
157
+ this.daemons.delete(rid);
158
+ this.logger.info('relay daemon unregistered', { rid, daemons: this.daemons.size });
159
+ }
160
+ }
161
+ /** Per-connection state machine. One instance per accepted socket. */
162
+ export class RelayConnection {
163
+ hub;
164
+ socket;
165
+ remoteAddr;
166
+ role = 'unknown';
167
+ rid;
168
+ pipeId;
169
+ constructor(hub, socket, remoteAddr) {
170
+ this.hub = hub;
171
+ this.socket = socket;
172
+ this.remoteAddr = remoteAddr;
173
+ }
174
+ /** Handle a text (control) frame from this socket. */
175
+ handleText(text) {
176
+ const frame = decodeControlFrame(text);
177
+ if (!frame) {
178
+ this.fail('malformed', 'Unparseable control frame.');
179
+ return;
180
+ }
181
+ if (frame.t === 'register' && this.role === 'unknown') {
182
+ this.onRegister(frame.protocol, frame.rid);
183
+ return;
184
+ }
185
+ if (frame.t === 'connect' && this.role === 'unknown') {
186
+ this.onConnect(frame.protocol, frame.rid);
187
+ return;
188
+ }
189
+ // Any other control frame from an endpoint is out of protocol.
190
+ this.fail('malformed', `Unexpected control frame "${frame.t}" for role "${this.role}".`);
191
+ }
192
+ /** Handle a binary (data) frame from this socket. */
193
+ handleBinary(bytes) {
194
+ if (bytes.length > this.hub.maxMessageBytes) {
195
+ this.fail('capacity', 'Data frame exceeds the relay message-size cap.');
196
+ return;
197
+ }
198
+ if (this.role === 'client' && this.pipeId) {
199
+ if (!this.hub._clientToDaemon(this.pipeId, bytes))
200
+ this.socket.close(1011, 'pipe-gone');
201
+ return;
202
+ }
203
+ if (this.role === 'daemon') {
204
+ if (!this.hub._daemonToClient(bytes)) {
205
+ // Unknown/closed pipe — ignore silently (client may have just left).
206
+ }
207
+ return;
208
+ }
209
+ this.fail('malformed', 'Data frame before pairing.');
210
+ }
211
+ /** Handle socket closure. */
212
+ handleClose() {
213
+ if (this.role === 'daemon' && this.rid) {
214
+ this.hub._unregister(this.rid);
215
+ }
216
+ else if (this.role === 'client' && this.pipeId) {
217
+ this.hub._closePipe(this.pipeId, 'daemon', 'client-disconnected');
218
+ }
219
+ }
220
+ onRegister(protocol, rid) {
221
+ if (protocol !== RELAY_PROTOCOL_VERSION) {
222
+ this.fail('protocol-version', `Relay speaks protocol ${RELAY_PROTOCOL_VERSION}.`);
223
+ return;
224
+ }
225
+ if (!this.hub._rateOk(this.remoteAddr)) {
226
+ this.fail('rate-limited', 'Too many handshake attempts.');
227
+ return;
228
+ }
229
+ const err = this.hub._register(rid, this.socket);
230
+ if (err) {
231
+ this.fail(err, err === 'rid-taken' ? 'Rendezvous id already registered.' : 'Relay at capacity.');
232
+ return;
233
+ }
234
+ this.role = 'daemon';
235
+ this.rid = rid;
236
+ this.socket.send(encodeControlFrame({ t: 'registered', rid }));
237
+ }
238
+ onConnect(protocol, rid) {
239
+ if (protocol !== RELAY_PROTOCOL_VERSION) {
240
+ this.fail('protocol-version', `Relay speaks protocol ${RELAY_PROTOCOL_VERSION}.`);
241
+ return;
242
+ }
243
+ if (!this.hub._rateOk(this.remoteAddr)) {
244
+ this.fail('rate-limited', 'Too many handshake attempts.');
245
+ return;
246
+ }
247
+ const result = this.hub._openPipe(rid, this.socket);
248
+ if (typeof result === 'string') {
249
+ this.fail(result, result === 'daemon-offline' ? 'No daemon is registered for that rendezvous id.' : 'Relay at capacity.');
250
+ return;
251
+ }
252
+ this.role = 'client';
253
+ this.rid = rid;
254
+ this.pipeId = result.pipeId;
255
+ this.socket.send(encodeControlFrame({ t: 'connected', pipe: result.pipeId }));
256
+ }
257
+ fail(code, message) {
258
+ this.socket.send(errorFrame(code, message));
259
+ this.socket.close(1008, code);
260
+ }
261
+ }
@@ -73,7 +73,6 @@ export interface DaemonRuntimeRouteContext {
73
73
  readonly parseOptionalJsonBody: (req: Request) => Promise<JsonRecord | null | Response>;
74
74
  readonly recordApiResponse: (req: Request, path: string, response: Response) => Response;
75
75
  readonly requireAdmin: (req: Request) => Response | null;
76
- readonly snapshotMetrics: () => Record<string, unknown>;
77
76
  readonly sessionBroker: {
78
77
  start(): Promise<void>;
79
78
  submitMessage(input: {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-route-types.d.ts","sourceRoot":"","sources":["../src/runtime-route-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-route-types.d.ts","sourceRoot":"","sources":["../src/runtime-route-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-routes.d.ts","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,yBAAyB,GACjC,0BAA0B,CAM5B"}
1
+ {"version":3,"file":"runtime-routes.d.ts","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,yBAAyB,GACjC,0BAA0B,CAK5B"}
@@ -4,6 +4,5 @@ export function createDaemonRuntimeRouteHandlers(context) {
4
4
  return {
5
5
  ...createDaemonRuntimeSessionRouteHandlers(context),
6
6
  ...createDaemonRuntimeAutomationRouteHandlers(context),
7
- getRuntimeMetrics: () => Response.json(context.snapshotMetrics()),
8
7
  };
9
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-daemon-sdk",
3
- "version": "1.6.1",
3
+ "version": "1.7.1",
4
4
  "engines": {
5
5
  "bun": "1.3.10",
6
6
  "node": ">=22.0.0"
@@ -9,6 +9,9 @@
9
9
  "type": "module",
10
10
  "main": "./dist/index.js",
11
11
  "types": "./dist/index.d.ts",
12
+ "bin": {
13
+ "goodvibes-relay": "./dist/relay-server-entry.js"
14
+ },
12
15
  "exports": {
13
16
  ".": {
14
17
  "types": "./dist/index.d.ts",
@@ -90,6 +93,18 @@
90
93
  "types": "./dist/remote-routes.d.ts",
91
94
  "import": "./dist/remote-routes.js"
92
95
  },
96
+ "./relay-server": {
97
+ "types": "./dist/relay-server.d.ts",
98
+ "import": "./dist/relay-server.js"
99
+ },
100
+ "./relay-registration": {
101
+ "types": "./dist/relay-registration.d.ts",
102
+ "import": "./dist/relay-registration.js"
103
+ },
104
+ "./relay-server-entry": {
105
+ "types": "./dist/relay-server-entry.d.ts",
106
+ "import": "./dist/relay-server-entry.js"
107
+ },
93
108
  "./remote": {
94
109
  "types": "./dist/remote.d.ts",
95
110
  "import": "./dist/remote.js"
@@ -157,8 +172,9 @@
157
172
  "control-plane"
158
173
  ],
159
174
  "dependencies": {
160
- "@pellux/goodvibes-contracts": "1.6.1",
161
- "@pellux/goodvibes-errors": "1.6.1"
175
+ "@pellux/goodvibes-contracts": "1.7.1",
176
+ "@pellux/goodvibes-errors": "1.7.1",
177
+ "@pellux/goodvibes-transport-core": "1.7.1"
162
178
  },
163
179
  "publishConfig": {
164
180
  "access": "public"