@linkshell/gateway 0.2.46 → 0.2.48

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 (39) hide show
  1. package/dist/gateway/src/agent-permission-http.d.ts +18 -9
  2. package/dist/gateway/src/agent-permission-http.js +18 -10
  3. package/dist/gateway/src/agent-permission-http.js.map +1 -1
  4. package/dist/gateway/src/embedded.js +119 -55
  5. package/dist/gateway/src/embedded.js.map +1 -1
  6. package/dist/gateway/src/index.js +158 -91
  7. package/dist/gateway/src/index.js.map +1 -1
  8. package/dist/gateway/src/pairings.d.ts +3 -3
  9. package/dist/gateway/src/pairings.js +4 -5
  10. package/dist/gateway/src/pairings.js.map +1 -1
  11. package/dist/gateway/src/relay.d.ts +1 -1
  12. package/dist/gateway/src/relay.js +25 -18
  13. package/dist/gateway/src/relay.js.map +1 -1
  14. package/dist/gateway/src/sessions.d.ts +35 -28
  15. package/dist/gateway/src/sessions.js +165 -145
  16. package/dist/gateway/src/sessions.js.map +1 -1
  17. package/dist/gateway/src/state-store.d.ts +9 -6
  18. package/dist/gateway/src/state-store.js +26 -19
  19. package/dist/gateway/src/state-store.js.map +1 -1
  20. package/dist/gateway/src/tokens.d.ts +27 -7
  21. package/dist/gateway/src/tokens.js +86 -60
  22. package/dist/gateway/src/tokens.js.map +1 -1
  23. package/dist/gateway/src/tunnel.d.ts +11 -10
  24. package/dist/gateway/src/tunnel.js +46 -35
  25. package/dist/gateway/src/tunnel.js.map +1 -1
  26. package/dist/gateway/tsconfig.tsbuildinfo +1 -1
  27. package/dist/shared-protocol/src/index.d.ts +662 -494
  28. package/dist/shared-protocol/src/index.js +52 -15
  29. package/dist/shared-protocol/src/index.js.map +1 -1
  30. package/package.json +2 -2
  31. package/src/agent-permission-http.ts +18 -10
  32. package/src/embedded.ts +122 -54
  33. package/src/index.ts +162 -91
  34. package/src/pairings.ts +6 -7
  35. package/src/relay.ts +28 -20
  36. package/src/sessions.ts +179 -150
  37. package/src/state-store.ts +41 -25
  38. package/src/tokens.ts +109 -63
  39. package/src/tunnel.ts +57 -39
@@ -3,7 +3,8 @@ import type { SessionManager } from "./sessions.js";
3
3
  import type { TokenManager } from "./tokens.js";
4
4
  export declare const agentPermissionHttpBodySchema: z.ZodDiscriminatedUnion<"protocol", [z.ZodObject<{
5
5
  protocol: z.ZodLiteral<"v2">;
6
- sessionId: z.ZodString;
6
+ hostDeviceId: z.ZodOptional<z.ZodString>;
7
+ sessionId: z.ZodOptional<z.ZodString>;
7
8
  conversationId: z.ZodString;
8
9
  requestId: z.ZodString;
9
10
  outcome: z.ZodEnum<["allow", "deny", "cancelled"]>;
@@ -12,25 +13,28 @@ export declare const agentPermissionHttpBodySchema: z.ZodDiscriminatedUnion<"pro
12
13
  agentSessionId: z.ZodOptional<z.ZodString>;
13
14
  }, "strip", z.ZodTypeAny, {
14
15
  protocol: "v2";
15
- sessionId: string;
16
16
  conversationId: string;
17
17
  requestId: string;
18
18
  outcome: "allow" | "deny" | "cancelled";
19
+ hostDeviceId?: string | undefined;
20
+ sessionId?: string | undefined;
19
21
  optionId?: string | undefined;
20
22
  terminalId?: string | undefined;
21
23
  agentSessionId?: string | undefined;
22
24
  }, {
23
25
  protocol: "v2";
24
- sessionId: string;
25
26
  conversationId: string;
26
27
  requestId: string;
27
28
  outcome: "allow" | "deny" | "cancelled";
29
+ hostDeviceId?: string | undefined;
30
+ sessionId?: string | undefined;
28
31
  optionId?: string | undefined;
29
32
  terminalId?: string | undefined;
30
33
  agentSessionId?: string | undefined;
31
34
  }>, z.ZodObject<{
32
35
  protocol: z.ZodLiteral<"legacy">;
33
- sessionId: z.ZodString;
36
+ hostDeviceId: z.ZodOptional<z.ZodString>;
37
+ sessionId: z.ZodOptional<z.ZodString>;
34
38
  conversationId: z.ZodOptional<z.ZodString>;
35
39
  agentSessionId: z.ZodOptional<z.ZodString>;
36
40
  requestId: z.ZodString;
@@ -39,25 +43,28 @@ export declare const agentPermissionHttpBodySchema: z.ZodDiscriminatedUnion<"pro
39
43
  terminalId: z.ZodOptional<z.ZodString>;
40
44
  }, "strip", z.ZodTypeAny, {
41
45
  protocol: "legacy";
42
- sessionId: string;
43
46
  requestId: string;
44
47
  outcome: "allow" | "deny" | "cancelled";
48
+ hostDeviceId?: string | undefined;
49
+ sessionId?: string | undefined;
45
50
  conversationId?: string | undefined;
46
51
  optionId?: string | undefined;
47
52
  terminalId?: string | undefined;
48
53
  agentSessionId?: string | undefined;
49
54
  }, {
50
55
  protocol: "legacy";
51
- sessionId: string;
52
56
  requestId: string;
53
57
  outcome: "allow" | "deny" | "cancelled";
58
+ hostDeviceId?: string | undefined;
59
+ sessionId?: string | undefined;
54
60
  conversationId?: string | undefined;
55
61
  optionId?: string | undefined;
56
62
  terminalId?: string | undefined;
57
63
  agentSessionId?: string | undefined;
58
64
  }>, z.ZodObject<{
59
65
  protocol: z.ZodLiteral<"terminal">;
60
- sessionId: z.ZodString;
66
+ hostDeviceId: z.ZodOptional<z.ZodString>;
67
+ sessionId: z.ZodOptional<z.ZodString>;
61
68
  conversationId: z.ZodOptional<z.ZodString>;
62
69
  requestId: z.ZodString;
63
70
  outcome: z.ZodEnum<["allow", "deny", "cancelled"]>;
@@ -66,18 +73,20 @@ export declare const agentPermissionHttpBodySchema: z.ZodDiscriminatedUnion<"pro
66
73
  agentSessionId: z.ZodOptional<z.ZodString>;
67
74
  }, "strip", z.ZodTypeAny, {
68
75
  protocol: "terminal";
69
- sessionId: string;
70
76
  requestId: string;
71
77
  outcome: "allow" | "deny" | "cancelled";
78
+ hostDeviceId?: string | undefined;
79
+ sessionId?: string | undefined;
72
80
  conversationId?: string | undefined;
73
81
  optionId?: string | undefined;
74
82
  terminalId?: string | undefined;
75
83
  agentSessionId?: string | undefined;
76
84
  }, {
77
85
  protocol: "terminal";
78
- sessionId: string;
79
86
  requestId: string;
80
87
  outcome: "allow" | "deny" | "cancelled";
88
+ hostDeviceId?: string | undefined;
89
+ sessionId?: string | undefined;
81
90
  conversationId?: string | undefined;
82
91
  optionId?: string | undefined;
83
92
  terminalId?: string | undefined;
@@ -5,7 +5,8 @@ const PERMISSION_ACK_TIMEOUT_MS = 12_000;
5
5
  export const agentPermissionHttpBodySchema = z.discriminatedUnion("protocol", [
6
6
  z.object({
7
7
  protocol: z.literal("v2"),
8
- sessionId: z.string().min(1),
8
+ hostDeviceId: z.string().min(1).optional(),
9
+ sessionId: z.string().min(1).optional(),
9
10
  conversationId: z.string().min(1),
10
11
  requestId: z.string().min(1),
11
12
  outcome: permissionOutcomeSchema,
@@ -15,7 +16,8 @@ export const agentPermissionHttpBodySchema = z.discriminatedUnion("protocol", [
15
16
  }),
16
17
  z.object({
17
18
  protocol: z.literal("legacy"),
18
- sessionId: z.string().min(1),
19
+ hostDeviceId: z.string().min(1).optional(),
20
+ sessionId: z.string().min(1).optional(),
19
21
  conversationId: z.string().optional(),
20
22
  agentSessionId: z.string().optional(),
21
23
  requestId: z.string().min(1),
@@ -25,7 +27,8 @@ export const agentPermissionHttpBodySchema = z.discriminatedUnion("protocol", [
25
27
  }),
26
28
  z.object({
27
29
  protocol: z.literal("terminal"),
28
- sessionId: z.string().min(1),
30
+ hostDeviceId: z.string().min(1).optional(),
31
+ sessionId: z.string().min(1).optional(),
29
32
  conversationId: z.string().optional(),
30
33
  requestId: z.string().min(1),
31
34
  outcome: permissionOutcomeSchema,
@@ -72,7 +75,8 @@ function waitForAck(sessionId, requestId) {
72
75
  }
73
76
  export async function forwardAgentPermissionHttp(input) {
74
77
  const { token, body, sessionManager, tokenManager } = input;
75
- if (!token || !tokenManager.owns(token, body.sessionId)) {
78
+ const hostDeviceId = body.hostDeviceId ?? body.sessionId;
79
+ if (!hostDeviceId || !token || !tokenManager.owns(token, hostDeviceId)) {
76
80
  return {
77
81
  status: 401,
78
82
  body: {
@@ -81,7 +85,7 @@ export async function forwardAgentPermissionHttp(input) {
81
85
  },
82
86
  };
83
87
  }
84
- const session = sessionManager.get(body.sessionId);
88
+ const session = sessionManager.get(hostDeviceId);
85
89
  if (!session) {
86
90
  return {
87
91
  status: 404,
@@ -103,7 +107,7 @@ export async function forwardAgentPermissionHttp(input) {
103
107
  try {
104
108
  const envelopes = createPermissionEnvelopes(body);
105
109
  const waitsForDelivery = envelopes.some((envelope) => envelope.type === "permission.decision");
106
- const ackPromise = waitsForDelivery ? waitForAck(body.sessionId, body.requestId) : null;
110
+ const ackPromise = waitsForDelivery ? waitForAck(hostDeviceId, body.requestId) : null;
107
111
  for (const envelope of envelopes) {
108
112
  session.host.socket.send(serializeEnvelope(envelope));
109
113
  }
@@ -173,6 +177,10 @@ export async function forwardAgentPermissionHttp(input) {
173
177
  }
174
178
  }
175
179
  function createPermissionEnvelopes(body) {
180
+ const hostDeviceId = body.hostDeviceId ?? body.sessionId;
181
+ if (!hostDeviceId) {
182
+ throw new Error("hostDeviceId is required");
183
+ }
176
184
  if (body.protocol === "v2") {
177
185
  const payload = parseTypedPayload("agent.v2.permission.respond", {
178
186
  conversationId: body.conversationId,
@@ -182,7 +190,7 @@ function createPermissionEnvelopes(body) {
182
190
  });
183
191
  return [createEnvelope({
184
192
  type: "agent.v2.permission.respond",
185
- sessionId: body.sessionId,
193
+ hostDeviceId,
186
194
  deviceId: "live-activity",
187
195
  payload,
188
196
  })];
@@ -196,7 +204,7 @@ function createPermissionEnvelopes(body) {
196
204
  });
197
205
  const envelopes = [createEnvelope({
198
206
  type: "agent.permission.response",
199
- sessionId: body.sessionId,
207
+ hostDeviceId,
200
208
  deviceId: "live-activity",
201
209
  payload: legacyPayload,
202
210
  })];
@@ -211,7 +219,7 @@ function createPermissionEnvelopes(body) {
211
219
  });
212
220
  envelopes.push(createEnvelope({
213
221
  type: "permission.decision",
214
- sessionId: body.sessionId,
222
+ hostDeviceId,
215
223
  terminalId: body.terminalId ?? "default",
216
224
  deviceId: "live-activity",
217
225
  payload: decisionPayload,
@@ -225,7 +233,7 @@ function createPermissionEnvelopes(body) {
225
233
  });
226
234
  return [createEnvelope({
227
235
  type: "permission.decision",
228
- sessionId: body.sessionId,
236
+ hostDeviceId,
229
237
  terminalId: body.terminalId ?? "default",
230
238
  deviceId: "live-activity",
231
239
  payload,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-permission-http.js","sourceRoot":"","sources":["../../../src/agent-permission-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-permission-http.js","sourceRoot":"","sources":["../../../src/agent-permission-http.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,17 @@ import { PairingManager } from "./pairings.js";
8
8
  import { TokenManager } from "./tokens.js";
9
9
  import { handleSocketMessage } from "./relay.js";
10
10
  import { agentPermissionHttpBodySchema, forwardAgentPermissionHttp, } from "./agent-permission-http.js";
11
- import { parseTunnelPath, parseTunnelCookie, handleTunnelRequest, handleTunnelWsUpgrade, } from "./tunnel.js";
11
+ import { parseTunnelPath, parseTunnelCookie, handleTunnelRequest, handleTunnelWsUpgrade, cleanupSessionTunnels, } from "./tunnel.js";
12
12
  const PING_INTERVAL = 20_000;
13
13
  const MAX_BODY_SIZE = 4096;
14
14
  const MAX_WS_MESSAGE_SIZE = 50 * 1024 * 1024; // 50MB (supports base64 image uploads)
15
15
  const LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
16
- const createPairingBody = z.object({ sessionId: z.string().optional() });
16
+ const createPairingBody = z.object({ hostDeviceId: z.string().min(1) });
17
17
  const claimPairingBody = z.object({
18
18
  pairingCode: z.string().length(6),
19
19
  deviceToken: z.string().min(1).optional(),
20
+ clientDeviceId: z.string().min(1).optional(),
21
+ clientName: z.string().min(1).optional(),
20
22
  });
21
23
  class BodyTooLargeError extends Error {
22
24
  }
@@ -111,15 +113,15 @@ export function startEmbeddedGateway(options = {}) {
111
113
  });
112
114
  const forwarded = result.forwarded?.map((item) => item.terminalId ? `${item.type}:${item.terminalId}` : item.type).join(",") ?? "none";
113
115
  const ack = result.ack ? ` resolved=${result.ack.resolved} delivered=${result.ack.delivered}` : "";
114
- log(result.status === 200 ? "info" : "warn", `agent permission respond protocol=${body.protocol} session=${body.sessionId} request=${body.requestId} status=${result.status} forwarded=${forwarded}${ack}`);
116
+ log(result.status === 200 ? "info" : "warn", `agent permission respond protocol=${body.protocol} hostDevice=${body.hostDeviceId ?? body.sessionId ?? "unknown"} request=${body.requestId} status=${result.status} forwarded=${forwarded}${ack}`);
115
117
  json(res, result.status, result.body);
116
118
  return;
117
119
  }
118
120
  if (method === "POST" && url.pathname === "/pairings") {
119
121
  const body = createPairingBody.parse(await readJson(req));
120
- const record = pairingManager.create(body.sessionId);
122
+ const record = pairingManager.create(body.hostDeviceId);
121
123
  json(res, 201, {
122
- sessionId: record.sessionId,
124
+ hostDeviceId: record.hostDeviceId,
123
125
  pairingCode: record.pairingCode,
124
126
  expiresAt: new Date(record.expiresAt).toISOString(),
125
127
  });
@@ -133,11 +135,18 @@ export function startEmbeddedGateway(options = {}) {
133
135
  return;
134
136
  }
135
137
  const token = tokenManager.register(body.deviceToken);
136
- tokenManager.bind(token, result.sessionId);
137
- json(res, 200, { sessionId: result.sessionId, deviceToken: token });
138
+ const authorization = tokenManager.authorize(token, result.hostDeviceId, {
139
+ clientDeviceId: body.clientDeviceId,
140
+ clientName: body.clientName,
141
+ });
142
+ json(res, 200, {
143
+ hostDeviceId: result.hostDeviceId,
144
+ deviceToken: token,
145
+ authorizationId: authorization?.authorizationId,
146
+ });
138
147
  return;
139
148
  }
140
- if (method === "GET" && url.pathname === "/sessions") {
149
+ if (method === "GET" && url.pathname === "/devices") {
141
150
  const token = extractBearerToken(req);
142
151
  if (!token || !tokenManager.validate(token)) {
143
152
  json(res, 401, {
@@ -146,32 +155,37 @@ export function startEmbeddedGateway(options = {}) {
146
155
  });
147
156
  return;
148
157
  }
149
- const allowedIds = tokenManager.getSessionIds(token);
150
- const sessions = sessionManager
151
- .listActive()
152
- .filter((s) => allowedIds.has(s.id))
153
- .map((s) => ({
154
- id: s.id,
155
- state: s.state,
156
- hasHost: !!s.host && s.host.socket.readyState === s.host.socket.OPEN,
157
- clientCount: s.clients.size,
158
- controllerId: s.controllerId ?? null,
159
- lastActivity: s.lastActivity,
160
- createdAt: s.createdAt,
161
- provider: s.provider ?? null,
162
- machineId: s.machineId ?? null,
163
- hostname: s.hostname ?? null,
164
- platform: s.platform ?? null,
165
- cwd: s.cwd ?? null,
166
- projectName: s.projectName ?? null,
167
- }));
168
- json(res, 200, { sessions });
158
+ const allowedIds = tokenManager.getHostDeviceIds(token);
159
+ const devices = [...allowedIds].map((hostDeviceId) => {
160
+ const summary = sessionManager.getSummary(hostDeviceId);
161
+ return {
162
+ ...(summary ?? {
163
+ id: hostDeviceId,
164
+ hostDeviceId,
165
+ state: "host_disconnected",
166
+ online: false,
167
+ hasHost: false,
168
+ clientCount: 0,
169
+ controllerId: null,
170
+ lastActivity: null,
171
+ createdAt: null,
172
+ bufferSize: 0,
173
+ machineId: null,
174
+ hostname: null,
175
+ platform: null,
176
+ cwd: null,
177
+ capabilities: [],
178
+ }),
179
+ authorizationId: tokenManager.getAuthorizationId(token, hostDeviceId) ?? null,
180
+ };
181
+ });
182
+ json(res, 200, { devices });
169
183
  return;
170
184
  }
171
- const sessionMatch = url.pathname.match(/^\/sessions\/([^/]+)$/);
172
- if (method === "GET" && sessionMatch) {
185
+ const deviceMatch = url.pathname.match(/^\/devices\/([^/]+)$/);
186
+ if (method === "GET" && deviceMatch) {
173
187
  const token = extractBearerToken(req);
174
- const targetId = sessionMatch[1];
188
+ const targetId = deviceMatch[1];
175
189
  if (!token || !tokenManager.owns(token, targetId)) {
176
190
  json(res, 401, {
177
191
  error: "unauthorized",
@@ -181,10 +195,48 @@ export function startEmbeddedGateway(options = {}) {
181
195
  }
182
196
  const summary = sessionManager.getSummary(targetId);
183
197
  if (!summary) {
184
- json(res, 404, { error: "session_not_found" });
198
+ json(res, 200, {
199
+ id: targetId,
200
+ hostDeviceId: targetId,
201
+ state: "host_disconnected",
202
+ online: false,
203
+ hasHost: false,
204
+ clientCount: 0,
205
+ controllerId: null,
206
+ lastActivity: null,
207
+ createdAt: null,
208
+ bufferSize: 0,
209
+ machineId: null,
210
+ hostname: null,
211
+ platform: null,
212
+ cwd: null,
213
+ capabilities: [],
214
+ authorizationId: tokenManager.getAuthorizationId(token, targetId) ?? null,
215
+ });
185
216
  return;
186
217
  }
187
- json(res, 200, summary);
218
+ json(res, 200, {
219
+ ...summary,
220
+ authorizationId: tokenManager.getAuthorizationId(token, targetId) ?? null,
221
+ });
222
+ return;
223
+ }
224
+ const revokeMatch = url.pathname.match(/^\/devices\/([^/]+)\/authorizations\/([^/]+)$/);
225
+ if (method === "DELETE" && revokeMatch) {
226
+ const token = extractBearerToken(req);
227
+ const hostDeviceId = decodeURIComponent(revokeMatch[1]);
228
+ const authorizationId = decodeURIComponent(revokeMatch[2]);
229
+ if (!token ||
230
+ tokenManager.getAuthorizationId(token, hostDeviceId) !== authorizationId ||
231
+ !tokenManager.revoke(token, hostDeviceId, authorizationId)) {
232
+ json(res, 401, {
233
+ error: "unauthorized",
234
+ message: "Valid device authorization required",
235
+ });
236
+ return;
237
+ }
238
+ sessionManager.disconnectAuthorization(hostDeviceId, authorizationId);
239
+ json(res, 200, { ok: true });
188
240
  return;
189
241
  }
190
242
  const pairingMatch = url.pathname.match(/^\/pairings\/(\d{6})\/status$/);
@@ -207,7 +259,7 @@ export function startEmbeddedGateway(options = {}) {
207
259
  const tunnelCookie = parseTunnelCookie(req);
208
260
  if (tunnelCookie) {
209
261
  const fallbackParsed = {
210
- sessionId: tunnelCookie.sessionId,
262
+ hostDeviceId: tunnelCookie.hostDeviceId,
211
263
  port: tunnelCookie.port,
212
264
  path: url.pathname,
213
265
  };
@@ -259,7 +311,7 @@ export function startEmbeddedGateway(options = {}) {
259
311
  const tunnelCookie = parseTunnelCookie(request);
260
312
  if (tunnelCookie && url.pathname !== "/ws") {
261
313
  const fallbackParsed = {
262
- sessionId: tunnelCookie.sessionId,
314
+ hostDeviceId: tunnelCookie.hostDeviceId,
263
315
  port: tunnelCookie.port,
264
316
  path: url.pathname,
265
317
  };
@@ -278,31 +330,42 @@ export function startEmbeddedGateway(options = {}) {
278
330
  });
279
331
  });
280
332
  wss.on("connection", (socket, _request, url) => {
281
- const sessionId = url.searchParams.get("sessionId");
333
+ const hostDeviceId = url.searchParams.get("hostDeviceId") ?? url.searchParams.get("sessionId");
282
334
  const role = url.searchParams.get("role");
283
- if (!sessionId || !role || (role !== "host" && role !== "client")) {
284
- socket.close(1008, "missing sessionId or role");
335
+ if (!hostDeviceId || !role || (role !== "host" && role !== "client")) {
336
+ socket.close(1008, "missing hostDeviceId or role");
285
337
  return;
286
338
  }
287
339
  const deviceId = url.searchParams.get("deviceId") ?? randomUUID();
340
+ let clientToken;
341
+ let clientAuthorizationId;
288
342
  if (role === "client") {
289
343
  const token = url.searchParams.get("token");
290
- if (!token || !tokenManager.owns(token, sessionId)) {
344
+ if (!token || !tokenManager.owns(token, hostDeviceId)) {
291
345
  socket.close(4001, "unauthorized");
292
346
  return;
293
347
  }
348
+ clientToken = token;
349
+ clientAuthorizationId = tokenManager.getAuthorizationId(token, hostDeviceId);
294
350
  }
295
- const device = { socket, role, deviceId, connectedAt: Date.now() };
351
+ const device = {
352
+ socket,
353
+ role,
354
+ deviceId,
355
+ token: clientToken,
356
+ authorizationId: clientAuthorizationId,
357
+ connectedAt: Date.now(),
358
+ };
296
359
  if (role === "host") {
297
- const existingSession = sessionManager.get(sessionId);
360
+ const existingSession = sessionManager.get(hostDeviceId);
298
361
  const isReconnect = existingSession &&
299
362
  existingSession.clients.size > 0 &&
300
363
  existingSession.state === "host_disconnected";
301
- sessionManager.setHost(sessionId, device);
364
+ sessionManager.setHost(hostDeviceId, device);
302
365
  if (isReconnect) {
303
366
  const notification = serializeEnvelope(createEnvelope({
304
- type: "session.host_reconnected",
305
- sessionId,
367
+ type: "device.host_reconnected",
368
+ hostDeviceId,
306
369
  payload: {},
307
370
  }));
308
371
  for (const [, client] of existingSession.clients) {
@@ -312,11 +375,11 @@ export function startEmbeddedGateway(options = {}) {
312
375
  }
313
376
  }
314
377
  else {
315
- sessionManager.addClient(sessionId, device);
378
+ sessionManager.addClient(hostDeviceId, device);
316
379
  }
317
380
  socket.send(serializeEnvelope(createEnvelope({
318
- type: "session.connect",
319
- sessionId,
381
+ type: "device.connect",
382
+ hostDeviceId,
320
383
  payload: {
321
384
  role,
322
385
  clientName: deviceId,
@@ -329,14 +392,14 @@ export function startEmbeddedGateway(options = {}) {
329
392
  }, PING_INTERVAL);
330
393
  socket.on("message", (data) => {
331
394
  try {
332
- handleSocketMessage(socket, data.toString(), role, sessionId, deviceId, sessionManager);
395
+ handleSocketMessage(socket, data.toString(), role, hostDeviceId, deviceId, sessionManager);
333
396
  }
334
397
  catch (err) {
335
- log("error", `unhandled websocket message error for session ${sessionId}: ${err instanceof Error ? err.message : String(err)}`);
398
+ log("error", `unhandled websocket message error for host device ${hostDeviceId}: ${err instanceof Error ? err.message : String(err)}`);
336
399
  if (socket.readyState === socket.OPEN) {
337
400
  socket.send(serializeEnvelope(createEnvelope({
338
- type: "session.error",
339
- sessionId,
401
+ type: "device.error",
402
+ hostDeviceId,
340
403
  payload: {
341
404
  code: "invalid_message",
342
405
  message: "Failed to handle message",
@@ -348,11 +411,12 @@ export function startEmbeddedGateway(options = {}) {
348
411
  socket.on("close", () => {
349
412
  clearInterval(pingTimer);
350
413
  if (role === "host") {
351
- const result = sessionManager.removeHost(sessionId);
414
+ const result = sessionManager.removeHost(hostDeviceId);
415
+ cleanupSessionTunnels(hostDeviceId);
352
416
  if (result) {
353
417
  const notification = serializeEnvelope(createEnvelope({
354
- type: "session.host_disconnected",
355
- sessionId,
418
+ type: "device.host_disconnected",
419
+ hostDeviceId,
356
420
  payload: { reason: "host connection closed" },
357
421
  }));
358
422
  for (const [, client] of result.clients) {
@@ -362,7 +426,7 @@ export function startEmbeddedGateway(options = {}) {
362
426
  }
363
427
  }
364
428
  else {
365
- sessionManager.removeClient(sessionId, deviceId);
429
+ sessionManager.removeClient(hostDeviceId, deviceId);
366
430
  }
367
431
  });
368
432
  socket.on("error", () => { });
@@ -1 +1 @@
1
- {"version":3,"file":"embedded.js","sourceRoot":"","sources":["../../../src/embedded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedded.js","sourceRoot":"","sources":["../../../src/embedded.ts"],"names":[],"mappings":"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"}