@linkshell/gateway 0.2.26 → 0.2.27
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/dist/gateway/src/index.js +5 -2
- package/dist/gateway/src/index.js.map +1 -1
- package/dist/gateway/src/pairings.d.ts +5 -1
- package/dist/gateway/src/pairings.js +35 -2
- package/dist/gateway/src/pairings.js.map +1 -1
- package/dist/gateway/src/relay.js +22 -13
- package/dist/gateway/src/relay.js.map +1 -1
- package/dist/gateway/src/sessions.d.ts +1 -1
- package/dist/gateway/src/sessions.js +13 -3
- package/dist/gateway/src/sessions.js.map +1 -1
- package/dist/gateway/src/state-store.d.ts +21 -0
- package/dist/gateway/src/state-store.js +93 -0
- package/dist/gateway/src/state-store.js.map +1 -0
- package/dist/gateway/src/tokens.d.ts +5 -1
- package/dist/gateway/src/tokens.js +46 -1
- package/dist/gateway/src/tokens.js.map +1 -1
- package/dist/gateway/tsconfig.tsbuildinfo +1 -1
- package/dist/shared-protocol/src/index.d.ts +46 -40
- package/dist/shared-protocol/src/index.js +4 -1
- package/dist/shared-protocol/src/index.js.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +5 -2
- package/src/pairings.ts +34 -2
- package/src/relay.ts +29 -18
- package/src/sessions.ts +16 -3
- package/src/state-store.ts +131 -0
- package/src/tokens.ts +45 -1
|
@@ -18,9 +18,9 @@ export declare const envelopeSchema: z.ZodObject<{
|
|
|
18
18
|
ack: z.ZodOptional<z.ZodNumber>;
|
|
19
19
|
payload: z.ZodUnknown;
|
|
20
20
|
}, "strip", z.ZodTypeAny, {
|
|
21
|
-
id: string;
|
|
22
|
-
type: string;
|
|
23
21
|
sessionId: string;
|
|
22
|
+
type: string;
|
|
23
|
+
id: string;
|
|
24
24
|
timestamp: string;
|
|
25
25
|
terminalId?: string | undefined;
|
|
26
26
|
deviceId?: string | undefined;
|
|
@@ -29,9 +29,9 @@ export declare const envelopeSchema: z.ZodObject<{
|
|
|
29
29
|
ack?: number | undefined;
|
|
30
30
|
payload?: unknown;
|
|
31
31
|
}, {
|
|
32
|
-
id: string;
|
|
33
|
-
type: string;
|
|
34
32
|
sessionId: string;
|
|
33
|
+
type: string;
|
|
34
|
+
id: string;
|
|
35
35
|
timestamp: string;
|
|
36
36
|
terminalId?: string | undefined;
|
|
37
37
|
deviceId?: string | undefined;
|
|
@@ -89,7 +89,7 @@ export declare const sessionConnectPayloadSchema: z.ZodObject<{
|
|
|
89
89
|
}, "strip", z.ZodTypeAny, {
|
|
90
90
|
role: "host" | "client";
|
|
91
91
|
clientName: string;
|
|
92
|
-
provider?: "
|
|
92
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
93
93
|
protocolVersion?: number | undefined;
|
|
94
94
|
hostname?: string | undefined;
|
|
95
95
|
platform?: string | undefined;
|
|
@@ -98,7 +98,7 @@ export declare const sessionConnectPayloadSchema: z.ZodObject<{
|
|
|
98
98
|
}, {
|
|
99
99
|
role: "host" | "client";
|
|
100
100
|
clientName: string;
|
|
101
|
-
provider?: "
|
|
101
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
102
102
|
protocolVersion?: number | undefined;
|
|
103
103
|
hostname?: string | undefined;
|
|
104
104
|
platform?: string | undefined;
|
|
@@ -123,11 +123,14 @@ export declare const sessionAckPayloadSchema: z.ZodObject<{
|
|
|
123
123
|
seq: number;
|
|
124
124
|
}>;
|
|
125
125
|
export declare const sessionResumePayloadSchema: z.ZodObject<{
|
|
126
|
-
lastAckedSeq: z.ZodNumber
|
|
126
|
+
lastAckedSeq: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
127
|
+
lastAckedSeqByTerminal: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>>;
|
|
127
128
|
}, "strip", z.ZodTypeAny, {
|
|
128
129
|
lastAckedSeq: number;
|
|
130
|
+
lastAckedSeqByTerminal: Record<string, number>;
|
|
129
131
|
}, {
|
|
130
|
-
lastAckedSeq
|
|
132
|
+
lastAckedSeq?: number | undefined;
|
|
133
|
+
lastAckedSeqByTerminal?: Record<string, number> | undefined;
|
|
131
134
|
}>;
|
|
132
135
|
export declare const sessionHeartbeatPayloadSchema: z.ZodObject<{
|
|
133
136
|
ts: z.ZodNumber;
|
|
@@ -248,8 +251,8 @@ export declare const screenStatusPayloadSchema: z.ZodObject<{
|
|
|
248
251
|
error?: string | undefined;
|
|
249
252
|
}, {
|
|
250
253
|
active: boolean;
|
|
251
|
-
mode?: "webrtc" | "fallback" | "off" | undefined;
|
|
252
254
|
error?: string | undefined;
|
|
255
|
+
mode?: "webrtc" | "fallback" | "off" | undefined;
|
|
253
256
|
}>;
|
|
254
257
|
export declare const screenOfferPayloadSchema: z.ZodObject<{
|
|
255
258
|
sdp: z.ZodString;
|
|
@@ -283,10 +286,10 @@ export declare const terminalSpawnPayloadSchema: z.ZodObject<{
|
|
|
283
286
|
provider: z.ZodOptional<z.ZodEnum<["claude", "codex", "custom"]>>;
|
|
284
287
|
}, "strip", z.ZodTypeAny, {
|
|
285
288
|
cwd: string;
|
|
286
|
-
provider?: "
|
|
289
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
287
290
|
}, {
|
|
288
291
|
cwd: string;
|
|
289
|
-
provider?: "
|
|
292
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
290
293
|
}>;
|
|
291
294
|
export declare const terminalInfoSchema: z.ZodObject<{
|
|
292
295
|
terminalId: z.ZodString;
|
|
@@ -295,14 +298,14 @@ export declare const terminalInfoSchema: z.ZodObject<{
|
|
|
295
298
|
provider: z.ZodString;
|
|
296
299
|
status: z.ZodEnum<["running", "exited"]>;
|
|
297
300
|
}, "strip", z.ZodTypeAny, {
|
|
298
|
-
terminalId: string;
|
|
299
301
|
status: "running" | "exited";
|
|
302
|
+
terminalId: string;
|
|
300
303
|
provider: string;
|
|
301
304
|
cwd: string;
|
|
302
305
|
projectName: string;
|
|
303
306
|
}, {
|
|
304
|
-
terminalId: string;
|
|
305
307
|
status: "running" | "exited";
|
|
308
|
+
terminalId: string;
|
|
306
309
|
provider: string;
|
|
307
310
|
cwd: string;
|
|
308
311
|
projectName: string;
|
|
@@ -315,30 +318,30 @@ export declare const terminalListPayloadSchema: z.ZodObject<{
|
|
|
315
318
|
provider: z.ZodString;
|
|
316
319
|
status: z.ZodEnum<["running", "exited"]>;
|
|
317
320
|
}, "strip", z.ZodTypeAny, {
|
|
318
|
-
terminalId: string;
|
|
319
321
|
status: "running" | "exited";
|
|
322
|
+
terminalId: string;
|
|
320
323
|
provider: string;
|
|
321
324
|
cwd: string;
|
|
322
325
|
projectName: string;
|
|
323
326
|
}, {
|
|
324
|
-
terminalId: string;
|
|
325
327
|
status: "running" | "exited";
|
|
328
|
+
terminalId: string;
|
|
326
329
|
provider: string;
|
|
327
330
|
cwd: string;
|
|
328
331
|
projectName: string;
|
|
329
332
|
}>, "many">;
|
|
330
333
|
}, "strip", z.ZodTypeAny, {
|
|
331
334
|
terminals: {
|
|
332
|
-
terminalId: string;
|
|
333
335
|
status: "running" | "exited";
|
|
336
|
+
terminalId: string;
|
|
334
337
|
provider: string;
|
|
335
338
|
cwd: string;
|
|
336
339
|
projectName: string;
|
|
337
340
|
}[];
|
|
338
341
|
}, {
|
|
339
342
|
terminals: {
|
|
340
|
-
terminalId: string;
|
|
341
343
|
status: "running" | "exited";
|
|
344
|
+
terminalId: string;
|
|
342
345
|
provider: string;
|
|
343
346
|
cwd: string;
|
|
344
347
|
projectName: string;
|
|
@@ -455,7 +458,7 @@ export declare const terminalStatusPayloadSchema: z.ZodObject<{
|
|
|
455
458
|
}>>;
|
|
456
459
|
pendingPermissionCount: z.ZodOptional<z.ZodNumber>;
|
|
457
460
|
}, "strip", z.ZodTypeAny, {
|
|
458
|
-
phase: "
|
|
461
|
+
phase: "error" | "thinking" | "tool_use" | "outputting" | "waiting" | "idle";
|
|
459
462
|
seq?: number | undefined;
|
|
460
463
|
toolName?: string | undefined;
|
|
461
464
|
toolInput?: string | undefined;
|
|
@@ -470,7 +473,7 @@ export declare const terminalStatusPayloadSchema: z.ZodObject<{
|
|
|
470
473
|
} | undefined;
|
|
471
474
|
pendingPermissionCount?: number | undefined;
|
|
472
475
|
}, {
|
|
473
|
-
phase: "
|
|
476
|
+
phase: "error" | "thinking" | "tool_use" | "outputting" | "waiting" | "idle";
|
|
474
477
|
seq?: number | undefined;
|
|
475
478
|
toolName?: string | undefined;
|
|
476
479
|
toolInput?: string | undefined;
|
|
@@ -523,17 +526,17 @@ export declare const tunnelRequestPayloadSchema: z.ZodObject<{
|
|
|
523
526
|
body: z.ZodNullable<z.ZodString>;
|
|
524
527
|
port: z.ZodNumber;
|
|
525
528
|
}, "strip", z.ZodTypeAny, {
|
|
529
|
+
headers: Record<string, string>;
|
|
526
530
|
requestId: string;
|
|
527
531
|
method: string;
|
|
528
532
|
url: string;
|
|
529
|
-
headers: Record<string, string>;
|
|
530
533
|
body: string | null;
|
|
531
534
|
port: number;
|
|
532
535
|
}, {
|
|
536
|
+
headers: Record<string, string>;
|
|
533
537
|
requestId: string;
|
|
534
538
|
method: string;
|
|
535
539
|
url: string;
|
|
536
|
-
headers: Record<string, string>;
|
|
537
540
|
body: string | null;
|
|
538
541
|
port: number;
|
|
539
542
|
}>;
|
|
@@ -544,15 +547,15 @@ export declare const tunnelResponsePayloadSchema: z.ZodObject<{
|
|
|
544
547
|
body: z.ZodString;
|
|
545
548
|
isFinal: z.ZodBoolean;
|
|
546
549
|
}, "strip", z.ZodTypeAny, {
|
|
550
|
+
headers: Record<string, string>;
|
|
547
551
|
isFinal: boolean;
|
|
548
552
|
requestId: string;
|
|
549
|
-
headers: Record<string, string>;
|
|
550
553
|
body: string;
|
|
551
554
|
statusCode: number;
|
|
552
555
|
}, {
|
|
556
|
+
headers: Record<string, string>;
|
|
553
557
|
isFinal: boolean;
|
|
554
558
|
requestId: string;
|
|
555
|
-
headers: Record<string, string>;
|
|
556
559
|
body: string;
|
|
557
560
|
statusCode: number;
|
|
558
561
|
}>;
|
|
@@ -612,7 +615,7 @@ export declare const protocolMessageSchemas: {
|
|
|
612
615
|
}, "strip", z.ZodTypeAny, {
|
|
613
616
|
role: "host" | "client";
|
|
614
617
|
clientName: string;
|
|
615
|
-
provider?: "
|
|
618
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
616
619
|
protocolVersion?: number | undefined;
|
|
617
620
|
hostname?: string | undefined;
|
|
618
621
|
platform?: string | undefined;
|
|
@@ -621,7 +624,7 @@ export declare const protocolMessageSchemas: {
|
|
|
621
624
|
}, {
|
|
622
625
|
role: "host" | "client";
|
|
623
626
|
clientName: string;
|
|
624
|
-
provider?: "
|
|
627
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
625
628
|
protocolVersion?: number | undefined;
|
|
626
629
|
hostname?: string | undefined;
|
|
627
630
|
platform?: string | undefined;
|
|
@@ -636,11 +639,14 @@ export declare const protocolMessageSchemas: {
|
|
|
636
639
|
seq: number;
|
|
637
640
|
}>;
|
|
638
641
|
readonly "session.resume": z.ZodObject<{
|
|
639
|
-
lastAckedSeq: z.ZodNumber
|
|
642
|
+
lastAckedSeq: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
643
|
+
lastAckedSeqByTerminal: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>>;
|
|
640
644
|
}, "strip", z.ZodTypeAny, {
|
|
641
645
|
lastAckedSeq: number;
|
|
646
|
+
lastAckedSeqByTerminal: Record<string, number>;
|
|
642
647
|
}, {
|
|
643
|
-
lastAckedSeq
|
|
648
|
+
lastAckedSeq?: number | undefined;
|
|
649
|
+
lastAckedSeqByTerminal?: Record<string, number> | undefined;
|
|
644
650
|
}>;
|
|
645
651
|
readonly "session.heartbeat": z.ZodObject<{
|
|
646
652
|
ts: z.ZodNumber;
|
|
@@ -817,8 +823,8 @@ export declare const protocolMessageSchemas: {
|
|
|
817
823
|
error?: string | undefined;
|
|
818
824
|
}, {
|
|
819
825
|
active: boolean;
|
|
820
|
-
mode?: "webrtc" | "fallback" | "off" | undefined;
|
|
821
826
|
error?: string | undefined;
|
|
827
|
+
mode?: "webrtc" | "fallback" | "off" | undefined;
|
|
822
828
|
}>;
|
|
823
829
|
readonly "screen.offer": z.ZodObject<{
|
|
824
830
|
sdp: z.ZodString;
|
|
@@ -862,10 +868,10 @@ export declare const protocolMessageSchemas: {
|
|
|
862
868
|
provider: z.ZodOptional<z.ZodEnum<["claude", "codex", "custom"]>>;
|
|
863
869
|
}, "strip", z.ZodTypeAny, {
|
|
864
870
|
cwd: string;
|
|
865
|
-
provider?: "
|
|
871
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
866
872
|
}, {
|
|
867
873
|
cwd: string;
|
|
868
|
-
provider?: "
|
|
874
|
+
provider?: "claude" | "codex" | "custom" | undefined;
|
|
869
875
|
}>;
|
|
870
876
|
readonly "terminal.spawned": z.ZodObject<{
|
|
871
877
|
terminalId: z.ZodString;
|
|
@@ -891,30 +897,30 @@ export declare const protocolMessageSchemas: {
|
|
|
891
897
|
provider: z.ZodString;
|
|
892
898
|
status: z.ZodEnum<["running", "exited"]>;
|
|
893
899
|
}, "strip", z.ZodTypeAny, {
|
|
894
|
-
terminalId: string;
|
|
895
900
|
status: "running" | "exited";
|
|
901
|
+
terminalId: string;
|
|
896
902
|
provider: string;
|
|
897
903
|
cwd: string;
|
|
898
904
|
projectName: string;
|
|
899
905
|
}, {
|
|
900
|
-
terminalId: string;
|
|
901
906
|
status: "running" | "exited";
|
|
907
|
+
terminalId: string;
|
|
902
908
|
provider: string;
|
|
903
909
|
cwd: string;
|
|
904
910
|
projectName: string;
|
|
905
911
|
}>, "many">;
|
|
906
912
|
}, "strip", z.ZodTypeAny, {
|
|
907
913
|
terminals: {
|
|
908
|
-
terminalId: string;
|
|
909
914
|
status: "running" | "exited";
|
|
915
|
+
terminalId: string;
|
|
910
916
|
provider: string;
|
|
911
917
|
cwd: string;
|
|
912
918
|
projectName: string;
|
|
913
919
|
}[];
|
|
914
920
|
}, {
|
|
915
921
|
terminals: {
|
|
916
|
-
terminalId: string;
|
|
917
922
|
status: "running" | "exited";
|
|
923
|
+
terminalId: string;
|
|
918
924
|
provider: string;
|
|
919
925
|
cwd: string;
|
|
920
926
|
projectName: string;
|
|
@@ -1002,7 +1008,7 @@ export declare const protocolMessageSchemas: {
|
|
|
1002
1008
|
}>>;
|
|
1003
1009
|
pendingPermissionCount: z.ZodOptional<z.ZodNumber>;
|
|
1004
1010
|
}, "strip", z.ZodTypeAny, {
|
|
1005
|
-
phase: "
|
|
1011
|
+
phase: "error" | "thinking" | "tool_use" | "outputting" | "waiting" | "idle";
|
|
1006
1012
|
seq?: number | undefined;
|
|
1007
1013
|
toolName?: string | undefined;
|
|
1008
1014
|
toolInput?: string | undefined;
|
|
@@ -1017,7 +1023,7 @@ export declare const protocolMessageSchemas: {
|
|
|
1017
1023
|
} | undefined;
|
|
1018
1024
|
pendingPermissionCount?: number | undefined;
|
|
1019
1025
|
}, {
|
|
1020
|
-
phase: "
|
|
1026
|
+
phase: "error" | "thinking" | "tool_use" | "outputting" | "waiting" | "idle";
|
|
1021
1027
|
seq?: number | undefined;
|
|
1022
1028
|
toolName?: string | undefined;
|
|
1023
1029
|
toolInput?: string | undefined;
|
|
@@ -1050,17 +1056,17 @@ export declare const protocolMessageSchemas: {
|
|
|
1050
1056
|
body: z.ZodNullable<z.ZodString>;
|
|
1051
1057
|
port: z.ZodNumber;
|
|
1052
1058
|
}, "strip", z.ZodTypeAny, {
|
|
1059
|
+
headers: Record<string, string>;
|
|
1053
1060
|
requestId: string;
|
|
1054
1061
|
method: string;
|
|
1055
1062
|
url: string;
|
|
1056
|
-
headers: Record<string, string>;
|
|
1057
1063
|
body: string | null;
|
|
1058
1064
|
port: number;
|
|
1059
1065
|
}, {
|
|
1066
|
+
headers: Record<string, string>;
|
|
1060
1067
|
requestId: string;
|
|
1061
1068
|
method: string;
|
|
1062
1069
|
url: string;
|
|
1063
|
-
headers: Record<string, string>;
|
|
1064
1070
|
body: string | null;
|
|
1065
1071
|
port: number;
|
|
1066
1072
|
}>;
|
|
@@ -1071,15 +1077,15 @@ export declare const protocolMessageSchemas: {
|
|
|
1071
1077
|
body: z.ZodString;
|
|
1072
1078
|
isFinal: z.ZodBoolean;
|
|
1073
1079
|
}, "strip", z.ZodTypeAny, {
|
|
1080
|
+
headers: Record<string, string>;
|
|
1074
1081
|
isFinal: boolean;
|
|
1075
1082
|
requestId: string;
|
|
1076
|
-
headers: Record<string, string>;
|
|
1077
1083
|
body: string;
|
|
1078
1084
|
statusCode: number;
|
|
1079
1085
|
}, {
|
|
1086
|
+
headers: Record<string, string>;
|
|
1080
1087
|
isFinal: boolean;
|
|
1081
1088
|
requestId: string;
|
|
1082
|
-
headers: Record<string, string>;
|
|
1083
1089
|
body: string;
|
|
1084
1090
|
statusCode: number;
|
|
1085
1091
|
}>;
|
|
@@ -67,7 +67,10 @@ export const sessionAckPayloadSchema = z.object({
|
|
|
67
67
|
seq: z.number().int().nonnegative(),
|
|
68
68
|
});
|
|
69
69
|
export const sessionResumePayloadSchema = z.object({
|
|
70
|
-
|
|
70
|
+
// Backward-compatible single-terminal cursor.
|
|
71
|
+
lastAckedSeq: z.number().int().min(-1).optional().default(-1),
|
|
72
|
+
// Multi-terminal resume cursor keyed by terminalId.
|
|
73
|
+
lastAckedSeqByTerminal: z.record(z.number().int().min(-1)).optional().default({}),
|
|
71
74
|
});
|
|
72
75
|
export const sessionHeartbeatPayloadSchema = z.object({
|
|
73
76
|
ts: z.number(), // unix ms
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../shared-protocol/src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../shared-protocol/src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linkshell/gateway",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.27",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/gateway/src/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -25,8 +25,14 @@
|
|
|
25
25
|
"publishConfig": {
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc -p tsconfig.json",
|
|
30
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
31
|
+
"dev": "tsx src/index.ts",
|
|
32
|
+
"test": "vitest run"
|
|
33
|
+
},
|
|
28
34
|
"dependencies": {
|
|
29
|
-
"@linkshell/protocol": "^0.2.
|
|
35
|
+
"@linkshell/protocol": "^0.2.20",
|
|
30
36
|
"zod": "^3.24.3",
|
|
31
37
|
"ws": "^8.18.1"
|
|
32
38
|
},
|
|
@@ -34,11 +40,5 @@
|
|
|
34
40
|
"@types/ws": "^8.5.14",
|
|
35
41
|
"tsx": "^4.19.3",
|
|
36
42
|
"vitest": "^3.2.1"
|
|
37
|
-
},
|
|
38
|
-
"scripts": {
|
|
39
|
-
"build": "tsc -p tsconfig.json",
|
|
40
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
41
|
-
"dev": "tsx src/index.ts",
|
|
42
|
-
"test": "vitest run"
|
|
43
43
|
}
|
|
44
|
-
}
|
|
44
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { z, ZodError } from "zod";
|
|
|
12
12
|
import { SessionManager } from "./sessions.js";
|
|
13
13
|
import { PairingManager } from "./pairings.js";
|
|
14
14
|
import { TokenManager } from "./tokens.js";
|
|
15
|
+
import { createSupabaseStateStore } from "./state-store.js";
|
|
15
16
|
import { handleSocketMessage } from "./relay.js";
|
|
16
17
|
import {
|
|
17
18
|
parseTunnelPath,
|
|
@@ -35,9 +36,11 @@ function log(level: "debug" | "info" | "warn" | "error", msg: string): void {
|
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
const stateStore = createSupabaseStateStore();
|
|
38
40
|
const sessionManager = new SessionManager();
|
|
39
|
-
const pairingManager = new PairingManager();
|
|
40
|
-
const tokenManager = new TokenManager();
|
|
41
|
+
const pairingManager = new PairingManager(stateStore);
|
|
42
|
+
const tokenManager = new TokenManager(stateStore);
|
|
43
|
+
await Promise.all([pairingManager.hydrate(), tokenManager.hydrate()]);
|
|
41
44
|
|
|
42
45
|
const PING_INTERVAL = 20_000;
|
|
43
46
|
const MAX_BODY_SIZE = 4096;
|
package/src/pairings.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomInt, randomUUID } from "node:crypto";
|
|
2
|
+
import type { GatewayStateStore } from "./state-store.js";
|
|
2
3
|
|
|
3
4
|
export interface PairingRecord {
|
|
4
5
|
sessionId: string;
|
|
@@ -7,17 +8,34 @@ export interface PairingRecord {
|
|
|
7
8
|
claimed: boolean;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
|
-
const PAIRING_TTL =
|
|
11
|
+
const PAIRING_TTL = Number(process.env.PAIRING_TTL_MS ?? 10 * 60_000); // 10 minutes
|
|
11
12
|
const CLEANUP_INTERVAL = 60_000;
|
|
12
13
|
|
|
13
14
|
export class PairingManager {
|
|
14
15
|
private pairings = new Map<string, PairingRecord>();
|
|
15
16
|
private cleanupTimer: ReturnType<typeof setInterval>;
|
|
16
17
|
|
|
17
|
-
constructor() {
|
|
18
|
+
constructor(private readonly store?: GatewayStateStore) {
|
|
18
19
|
this.cleanupTimer = setInterval(() => this.cleanup(), CLEANUP_INTERVAL);
|
|
19
20
|
}
|
|
20
21
|
|
|
22
|
+
async hydrate(): Promise<void> {
|
|
23
|
+
if (!this.store) return;
|
|
24
|
+
try {
|
|
25
|
+
const records = await this.store.loadPairings();
|
|
26
|
+
const now = Date.now();
|
|
27
|
+
for (const record of records) {
|
|
28
|
+
if (record.expiresAt < now) {
|
|
29
|
+
void this.store.deletePairing(record.pairingCode).catch(() => {});
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
this.pairings.set(record.pairingCode, record);
|
|
33
|
+
}
|
|
34
|
+
} catch (err) {
|
|
35
|
+
process.stderr.write(`[gateway] pairing store hydrate failed, using memory only: ${err}\n`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
21
39
|
create(sessionId?: string): PairingRecord {
|
|
22
40
|
const id = sessionId ?? randomUUID();
|
|
23
41
|
const code = String(randomInt(100000, 999999));
|
|
@@ -28,6 +46,7 @@ export class PairingManager {
|
|
|
28
46
|
claimed: false,
|
|
29
47
|
};
|
|
30
48
|
this.pairings.set(code, record);
|
|
49
|
+
this.persist(record);
|
|
31
50
|
return record;
|
|
32
51
|
}
|
|
33
52
|
|
|
@@ -38,9 +57,14 @@ export class PairingManager {
|
|
|
38
57
|
}
|
|
39
58
|
if (record.expiresAt < Date.now()) {
|
|
40
59
|
this.pairings.delete(pairingCode);
|
|
60
|
+
void this.store?.deletePairing(pairingCode).catch(() => {});
|
|
41
61
|
return { error: "pairing_expired", status: 410 };
|
|
42
62
|
}
|
|
63
|
+
if (record.claimed) {
|
|
64
|
+
return { error: "pairing_already_claimed", status: 409 };
|
|
65
|
+
}
|
|
43
66
|
record.claimed = true;
|
|
67
|
+
this.persist(record);
|
|
44
68
|
return record;
|
|
45
69
|
}
|
|
46
70
|
|
|
@@ -51,6 +75,7 @@ export class PairingManager {
|
|
|
51
75
|
}
|
|
52
76
|
if (record.expiresAt < Date.now()) {
|
|
53
77
|
this.pairings.delete(pairingCode);
|
|
78
|
+
void this.store?.deletePairing(pairingCode).catch(() => {});
|
|
54
79
|
return { error: "pairing_expired", httpStatus: 410 };
|
|
55
80
|
}
|
|
56
81
|
return {
|
|
@@ -65,10 +90,17 @@ export class PairingManager {
|
|
|
65
90
|
for (const [code, record] of this.pairings) {
|
|
66
91
|
if (record.expiresAt < now) {
|
|
67
92
|
this.pairings.delete(code);
|
|
93
|
+
void this.store?.deletePairing(code).catch(() => {});
|
|
68
94
|
}
|
|
69
95
|
}
|
|
70
96
|
}
|
|
71
97
|
|
|
98
|
+
private persist(record: PairingRecord): void {
|
|
99
|
+
void this.store?.savePairing(record).catch((err) => {
|
|
100
|
+
process.stderr.write(`[gateway] pairing store save failed: ${err}\n`);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
72
104
|
destroy(): void {
|
|
73
105
|
clearInterval(this.cleanupTimer);
|
|
74
106
|
}
|
package/src/relay.ts
CHANGED
|
@@ -141,29 +141,31 @@ function handleClientMessage(
|
|
|
141
141
|
deviceId: string,
|
|
142
142
|
sessions: SessionManager,
|
|
143
143
|
): void {
|
|
144
|
+
const requireController = (): boolean => {
|
|
145
|
+
if (session.controllerId === deviceId) return true;
|
|
146
|
+
socket.send(
|
|
147
|
+
serializeEnvelope(
|
|
148
|
+
createEnvelope({
|
|
149
|
+
type: "session.error",
|
|
150
|
+
sessionId: session.id,
|
|
151
|
+
payload: {
|
|
152
|
+
code: "control_conflict",
|
|
153
|
+
message: "Not the controller",
|
|
154
|
+
},
|
|
155
|
+
}),
|
|
156
|
+
),
|
|
157
|
+
);
|
|
158
|
+
return false;
|
|
159
|
+
};
|
|
160
|
+
|
|
144
161
|
switch (envelope.type) {
|
|
145
162
|
case "terminal.input": {
|
|
146
|
-
|
|
147
|
-
if (session.controllerId !== deviceId) {
|
|
148
|
-
socket.send(
|
|
149
|
-
serializeEnvelope(
|
|
150
|
-
createEnvelope({
|
|
151
|
-
type: "session.error",
|
|
152
|
-
sessionId: session.id,
|
|
153
|
-
payload: {
|
|
154
|
-
code: "control_conflict",
|
|
155
|
-
message: "Not the controller",
|
|
156
|
-
},
|
|
157
|
-
}),
|
|
158
|
-
),
|
|
159
|
-
);
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
163
|
+
if (!requireController()) return;
|
|
162
164
|
sendToHost(session, envelope);
|
|
163
165
|
break;
|
|
164
166
|
}
|
|
165
167
|
case "terminal.resize": {
|
|
166
|
-
if (
|
|
168
|
+
if (!requireController()) return;
|
|
167
169
|
sendToHost(session, envelope);
|
|
168
170
|
break;
|
|
169
171
|
}
|
|
@@ -175,7 +177,11 @@ function handleClientMessage(
|
|
|
175
177
|
case "session.resume": {
|
|
176
178
|
const p = parseTypedPayload("session.resume", envelope.payload);
|
|
177
179
|
// Replay from gateway buffer first
|
|
178
|
-
const replay = sessions.getReplayFrom(
|
|
180
|
+
const replay = sessions.getReplayFrom(
|
|
181
|
+
session.id,
|
|
182
|
+
p.lastAckedSeqByTerminal,
|
|
183
|
+
p.lastAckedSeq,
|
|
184
|
+
);
|
|
179
185
|
for (const msg of replay) {
|
|
180
186
|
const payload = msg.payload as Record<string, unknown>;
|
|
181
187
|
socket.send(
|
|
@@ -183,6 +189,7 @@ function handleClientMessage(
|
|
|
183
189
|
createEnvelope({
|
|
184
190
|
type: "terminal.output",
|
|
185
191
|
sessionId: session.id,
|
|
192
|
+
terminalId: msg.terminalId,
|
|
186
193
|
seq: msg.seq,
|
|
187
194
|
payload: { ...payload, isReplay: true },
|
|
188
195
|
}),
|
|
@@ -234,6 +241,10 @@ function handleClientMessage(
|
|
|
234
241
|
case "terminal.list":
|
|
235
242
|
case "terminal.browse":
|
|
236
243
|
case "terminal.mkdir":
|
|
244
|
+
case "terminal.history.request":
|
|
245
|
+
case "file.upload":
|
|
246
|
+
case "permission.decision":
|
|
247
|
+
if (!requireController()) return;
|
|
237
248
|
sendToHost(session, envelope);
|
|
238
249
|
break;
|
|
239
250
|
default:
|
package/src/sessions.ts
CHANGED
|
@@ -84,6 +84,9 @@ export class SessionManager {
|
|
|
84
84
|
addClient(sessionId: string, device: ConnectedDevice): void {
|
|
85
85
|
const session = this.getOrCreate(sessionId);
|
|
86
86
|
session.clients.set(device.deviceId, device);
|
|
87
|
+
if (!session.controllerId) {
|
|
88
|
+
session.controllerId = device.deviceId;
|
|
89
|
+
}
|
|
87
90
|
session.lastActivity = Date.now();
|
|
88
91
|
}
|
|
89
92
|
|
|
@@ -154,16 +157,26 @@ export class SessionManager {
|
|
|
154
157
|
return [...session.lastStatusByTerminal.values()];
|
|
155
158
|
}
|
|
156
159
|
|
|
157
|
-
getReplayFrom(
|
|
160
|
+
getReplayFrom(
|
|
161
|
+
sessionId: string,
|
|
162
|
+
afterSeqByTerminal: Record<string, number>,
|
|
163
|
+
fallbackAfterSeq = -1,
|
|
164
|
+
): Envelope[] {
|
|
158
165
|
const session = this.sessions.get(sessionId);
|
|
159
166
|
if (!session) return [];
|
|
160
167
|
const result: Envelope[] = [];
|
|
161
|
-
for (const buf of session.outputBuffers
|
|
168
|
+
for (const [terminalId, buf] of session.outputBuffers) {
|
|
169
|
+
const afterSeq = afterSeqByTerminal[terminalId] ?? fallbackAfterSeq;
|
|
162
170
|
for (const e of buf) {
|
|
163
171
|
if (e.seq !== undefined && e.seq > afterSeq) result.push(e);
|
|
164
172
|
}
|
|
165
173
|
}
|
|
166
|
-
return result.sort((a, b) =>
|
|
174
|
+
return result.sort((a, b) => {
|
|
175
|
+
const at = Date.parse(a.timestamp);
|
|
176
|
+
const bt = Date.parse(b.timestamp);
|
|
177
|
+
if (!Number.isNaN(at) && !Number.isNaN(bt) && at !== bt) return at - bt;
|
|
178
|
+
return (a.seq ?? 0) - (b.seq ?? 0);
|
|
179
|
+
});
|
|
167
180
|
}
|
|
168
181
|
|
|
169
182
|
claimControl(sessionId: string, deviceId: string): boolean {
|