linkshell-cli 0.2.13 → 0.2.15
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/cli/src/runtime/bridge-session.d.ts +3 -0
- package/dist/cli/src/runtime/bridge-session.js +144 -3
- package/dist/cli/src/runtime/bridge-session.js.map +1 -1
- package/dist/cli/tsconfig.tsbuildinfo +1 -1
- package/dist/shared-protocol/src/index.d.ts +78 -26
- package/dist/shared-protocol/src/index.js +13 -0
- package/dist/shared-protocol/src/index.js.map +1 -1
- package/package.json +1 -1
- package/src/runtime/bridge-session.ts +159 -3
|
@@ -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
|
-
sessionId: string;
|
|
22
21
|
id: string;
|
|
23
22
|
type: string;
|
|
23
|
+
sessionId: 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
|
-
sessionId: string;
|
|
33
32
|
id: string;
|
|
34
33
|
type: string;
|
|
34
|
+
sessionId: 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?: "custom" | "claude" | "codex" | 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?: "custom" | "claude" | "codex" | undefined;
|
|
102
102
|
protocolVersion?: number | undefined;
|
|
103
103
|
hostname?: string | undefined;
|
|
104
104
|
platform?: string | undefined;
|
|
@@ -248,8 +248,8 @@ export declare const screenStatusPayloadSchema: z.ZodObject<{
|
|
|
248
248
|
error?: string | undefined;
|
|
249
249
|
}, {
|
|
250
250
|
active: boolean;
|
|
251
|
-
error?: string | undefined;
|
|
252
251
|
mode?: "webrtc" | "fallback" | "off" | undefined;
|
|
252
|
+
error?: string | undefined;
|
|
253
253
|
}>;
|
|
254
254
|
export declare const screenOfferPayloadSchema: z.ZodObject<{
|
|
255
255
|
sdp: z.ZodString;
|
|
@@ -283,10 +283,10 @@ export declare const terminalSpawnPayloadSchema: z.ZodObject<{
|
|
|
283
283
|
provider: z.ZodOptional<z.ZodEnum<["claude", "codex", "custom"]>>;
|
|
284
284
|
}, "strip", z.ZodTypeAny, {
|
|
285
285
|
cwd: string;
|
|
286
|
-
provider?: "
|
|
286
|
+
provider?: "custom" | "claude" | "codex" | undefined;
|
|
287
287
|
}, {
|
|
288
288
|
cwd: string;
|
|
289
|
-
provider?: "
|
|
289
|
+
provider?: "custom" | "claude" | "codex" | undefined;
|
|
290
290
|
}>;
|
|
291
291
|
export declare const terminalInfoSchema: z.ZodObject<{
|
|
292
292
|
terminalId: z.ZodString;
|
|
@@ -295,14 +295,14 @@ export declare const terminalInfoSchema: z.ZodObject<{
|
|
|
295
295
|
provider: z.ZodString;
|
|
296
296
|
status: z.ZodEnum<["running", "exited"]>;
|
|
297
297
|
}, "strip", z.ZodTypeAny, {
|
|
298
|
-
status: "running" | "exited";
|
|
299
298
|
terminalId: string;
|
|
299
|
+
status: "running" | "exited";
|
|
300
300
|
provider: string;
|
|
301
301
|
cwd: string;
|
|
302
302
|
projectName: string;
|
|
303
303
|
}, {
|
|
304
|
-
status: "running" | "exited";
|
|
305
304
|
terminalId: string;
|
|
305
|
+
status: "running" | "exited";
|
|
306
306
|
provider: string;
|
|
307
307
|
cwd: string;
|
|
308
308
|
projectName: string;
|
|
@@ -315,30 +315,30 @@ export declare const terminalListPayloadSchema: z.ZodObject<{
|
|
|
315
315
|
provider: z.ZodString;
|
|
316
316
|
status: z.ZodEnum<["running", "exited"]>;
|
|
317
317
|
}, "strip", z.ZodTypeAny, {
|
|
318
|
-
status: "running" | "exited";
|
|
319
318
|
terminalId: string;
|
|
319
|
+
status: "running" | "exited";
|
|
320
320
|
provider: string;
|
|
321
321
|
cwd: string;
|
|
322
322
|
projectName: string;
|
|
323
323
|
}, {
|
|
324
|
-
status: "running" | "exited";
|
|
325
324
|
terminalId: string;
|
|
325
|
+
status: "running" | "exited";
|
|
326
326
|
provider: string;
|
|
327
327
|
cwd: string;
|
|
328
328
|
projectName: string;
|
|
329
329
|
}>, "many">;
|
|
330
330
|
}, "strip", z.ZodTypeAny, {
|
|
331
331
|
terminals: {
|
|
332
|
-
status: "running" | "exited";
|
|
333
332
|
terminalId: string;
|
|
333
|
+
status: "running" | "exited";
|
|
334
334
|
provider: string;
|
|
335
335
|
cwd: string;
|
|
336
336
|
projectName: string;
|
|
337
337
|
}[];
|
|
338
338
|
}, {
|
|
339
339
|
terminals: {
|
|
340
|
-
status: "running" | "exited";
|
|
341
340
|
terminalId: string;
|
|
341
|
+
status: "running" | "exited";
|
|
342
342
|
provider: string;
|
|
343
343
|
cwd: string;
|
|
344
344
|
projectName: string;
|
|
@@ -357,6 +357,13 @@ export declare const terminalSpawnedPayloadSchema: z.ZodObject<{
|
|
|
357
357
|
cwd: string;
|
|
358
358
|
projectName: string;
|
|
359
359
|
}>;
|
|
360
|
+
export declare const terminalKillPayloadSchema: z.ZodObject<{
|
|
361
|
+
terminalId: z.ZodString;
|
|
362
|
+
}, "strip", z.ZodTypeAny, {
|
|
363
|
+
terminalId: string;
|
|
364
|
+
}, {
|
|
365
|
+
terminalId: string;
|
|
366
|
+
}>;
|
|
360
367
|
export declare const terminalBrowsePayloadSchema: z.ZodObject<{
|
|
361
368
|
path: z.ZodString;
|
|
362
369
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -410,6 +417,25 @@ export declare const terminalBrowseResultPayloadSchema: z.ZodObject<{
|
|
|
410
417
|
}[];
|
|
411
418
|
error?: string | undefined;
|
|
412
419
|
}>;
|
|
420
|
+
export declare const terminalStatusPayloadSchema: z.ZodObject<{
|
|
421
|
+
phase: z.ZodEnum<["thinking", "tool_use", "outputting", "waiting", "idle", "error"]>;
|
|
422
|
+
toolName: z.ZodOptional<z.ZodString>;
|
|
423
|
+
toolInput: z.ZodOptional<z.ZodString>;
|
|
424
|
+
permissionRequest: z.ZodOptional<z.ZodString>;
|
|
425
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
426
|
+
}, "strip", z.ZodTypeAny, {
|
|
427
|
+
phase: "idle" | "error" | "thinking" | "tool_use" | "outputting" | "waiting";
|
|
428
|
+
toolName?: string | undefined;
|
|
429
|
+
toolInput?: string | undefined;
|
|
430
|
+
permissionRequest?: string | undefined;
|
|
431
|
+
summary?: string | undefined;
|
|
432
|
+
}, {
|
|
433
|
+
phase: "idle" | "error" | "thinking" | "tool_use" | "outputting" | "waiting";
|
|
434
|
+
toolName?: string | undefined;
|
|
435
|
+
toolInput?: string | undefined;
|
|
436
|
+
permissionRequest?: string | undefined;
|
|
437
|
+
summary?: string | undefined;
|
|
438
|
+
}>;
|
|
413
439
|
export declare const fileUploadPayloadSchema: z.ZodObject<{
|
|
414
440
|
data: z.ZodString;
|
|
415
441
|
filename: z.ZodString;
|
|
@@ -424,11 +450,11 @@ export declare const errorPayloadSchema: z.ZodObject<{
|
|
|
424
450
|
code: z.ZodString;
|
|
425
451
|
message: z.ZodString;
|
|
426
452
|
}, "strip", z.ZodTypeAny, {
|
|
427
|
-
message: string;
|
|
428
453
|
code: string;
|
|
429
|
-
}, {
|
|
430
454
|
message: string;
|
|
455
|
+
}, {
|
|
431
456
|
code: string;
|
|
457
|
+
message: string;
|
|
432
458
|
}>;
|
|
433
459
|
export declare const protocolMessageSchemas: {
|
|
434
460
|
readonly "session.connect": z.ZodObject<{
|
|
@@ -443,7 +469,7 @@ export declare const protocolMessageSchemas: {
|
|
|
443
469
|
}, "strip", z.ZodTypeAny, {
|
|
444
470
|
role: "host" | "client";
|
|
445
471
|
clientName: string;
|
|
446
|
-
provider?: "
|
|
472
|
+
provider?: "custom" | "claude" | "codex" | undefined;
|
|
447
473
|
protocolVersion?: number | undefined;
|
|
448
474
|
hostname?: string | undefined;
|
|
449
475
|
platform?: string | undefined;
|
|
@@ -452,7 +478,7 @@ export declare const protocolMessageSchemas: {
|
|
|
452
478
|
}, {
|
|
453
479
|
role: "host" | "client";
|
|
454
480
|
clientName: string;
|
|
455
|
-
provider?: "
|
|
481
|
+
provider?: "custom" | "claude" | "codex" | undefined;
|
|
456
482
|
protocolVersion?: number | undefined;
|
|
457
483
|
hostname?: string | undefined;
|
|
458
484
|
platform?: string | undefined;
|
|
@@ -484,11 +510,11 @@ export declare const protocolMessageSchemas: {
|
|
|
484
510
|
code: z.ZodString;
|
|
485
511
|
message: z.ZodString;
|
|
486
512
|
}, "strip", z.ZodTypeAny, {
|
|
487
|
-
message: string;
|
|
488
513
|
code: string;
|
|
489
|
-
}, {
|
|
490
514
|
message: string;
|
|
515
|
+
}, {
|
|
491
516
|
code: string;
|
|
517
|
+
message: string;
|
|
492
518
|
}>;
|
|
493
519
|
readonly "terminal.output": z.ZodObject<{
|
|
494
520
|
stream: z.ZodEnum<["stdout", "stderr"]>;
|
|
@@ -648,8 +674,8 @@ export declare const protocolMessageSchemas: {
|
|
|
648
674
|
error?: string | undefined;
|
|
649
675
|
}, {
|
|
650
676
|
active: boolean;
|
|
651
|
-
error?: string | undefined;
|
|
652
677
|
mode?: "webrtc" | "fallback" | "off" | undefined;
|
|
678
|
+
error?: string | undefined;
|
|
653
679
|
}>;
|
|
654
680
|
readonly "screen.offer": z.ZodObject<{
|
|
655
681
|
sdp: z.ZodString;
|
|
@@ -693,10 +719,10 @@ export declare const protocolMessageSchemas: {
|
|
|
693
719
|
provider: z.ZodOptional<z.ZodEnum<["claude", "codex", "custom"]>>;
|
|
694
720
|
}, "strip", z.ZodTypeAny, {
|
|
695
721
|
cwd: string;
|
|
696
|
-
provider?: "
|
|
722
|
+
provider?: "custom" | "claude" | "codex" | undefined;
|
|
697
723
|
}, {
|
|
698
724
|
cwd: string;
|
|
699
|
-
provider?: "
|
|
725
|
+
provider?: "custom" | "claude" | "codex" | undefined;
|
|
700
726
|
}>;
|
|
701
727
|
readonly "terminal.spawned": z.ZodObject<{
|
|
702
728
|
terminalId: z.ZodString;
|
|
@@ -719,30 +745,30 @@ export declare const protocolMessageSchemas: {
|
|
|
719
745
|
provider: z.ZodString;
|
|
720
746
|
status: z.ZodEnum<["running", "exited"]>;
|
|
721
747
|
}, "strip", z.ZodTypeAny, {
|
|
722
|
-
status: "running" | "exited";
|
|
723
748
|
terminalId: string;
|
|
749
|
+
status: "running" | "exited";
|
|
724
750
|
provider: string;
|
|
725
751
|
cwd: string;
|
|
726
752
|
projectName: string;
|
|
727
753
|
}, {
|
|
728
|
-
status: "running" | "exited";
|
|
729
754
|
terminalId: string;
|
|
755
|
+
status: "running" | "exited";
|
|
730
756
|
provider: string;
|
|
731
757
|
cwd: string;
|
|
732
758
|
projectName: string;
|
|
733
759
|
}>, "many">;
|
|
734
760
|
}, "strip", z.ZodTypeAny, {
|
|
735
761
|
terminals: {
|
|
736
|
-
status: "running" | "exited";
|
|
737
762
|
terminalId: string;
|
|
763
|
+
status: "running" | "exited";
|
|
738
764
|
provider: string;
|
|
739
765
|
cwd: string;
|
|
740
766
|
projectName: string;
|
|
741
767
|
}[];
|
|
742
768
|
}, {
|
|
743
769
|
terminals: {
|
|
744
|
-
status: "running" | "exited";
|
|
745
770
|
terminalId: string;
|
|
771
|
+
status: "running" | "exited";
|
|
746
772
|
provider: string;
|
|
747
773
|
cwd: string;
|
|
748
774
|
projectName: string;
|
|
@@ -788,6 +814,32 @@ export declare const protocolMessageSchemas: {
|
|
|
788
814
|
}[];
|
|
789
815
|
error?: string | undefined;
|
|
790
816
|
}>;
|
|
817
|
+
readonly "terminal.kill": z.ZodObject<{
|
|
818
|
+
terminalId: z.ZodString;
|
|
819
|
+
}, "strip", z.ZodTypeAny, {
|
|
820
|
+
terminalId: string;
|
|
821
|
+
}, {
|
|
822
|
+
terminalId: string;
|
|
823
|
+
}>;
|
|
824
|
+
readonly "terminal.status": z.ZodObject<{
|
|
825
|
+
phase: z.ZodEnum<["thinking", "tool_use", "outputting", "waiting", "idle", "error"]>;
|
|
826
|
+
toolName: z.ZodOptional<z.ZodString>;
|
|
827
|
+
toolInput: z.ZodOptional<z.ZodString>;
|
|
828
|
+
permissionRequest: z.ZodOptional<z.ZodString>;
|
|
829
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
830
|
+
}, "strip", z.ZodTypeAny, {
|
|
831
|
+
phase: "idle" | "error" | "thinking" | "tool_use" | "outputting" | "waiting";
|
|
832
|
+
toolName?: string | undefined;
|
|
833
|
+
toolInput?: string | undefined;
|
|
834
|
+
permissionRequest?: string | undefined;
|
|
835
|
+
summary?: string | undefined;
|
|
836
|
+
}, {
|
|
837
|
+
phase: "idle" | "error" | "thinking" | "tool_use" | "outputting" | "waiting";
|
|
838
|
+
toolName?: string | undefined;
|
|
839
|
+
toolInput?: string | undefined;
|
|
840
|
+
permissionRequest?: string | undefined;
|
|
841
|
+
summary?: string | undefined;
|
|
842
|
+
}>;
|
|
791
843
|
};
|
|
792
844
|
export type ProtocolMessageType = keyof typeof protocolMessageSchemas;
|
|
793
845
|
export declare function createEnvelope<T>(input: {
|
|
@@ -151,6 +151,9 @@ export const terminalSpawnedPayloadSchema = z.object({
|
|
|
151
151
|
cwd: z.string(),
|
|
152
152
|
projectName: z.string(),
|
|
153
153
|
});
|
|
154
|
+
export const terminalKillPayloadSchema = z.object({
|
|
155
|
+
terminalId: z.string().min(1),
|
|
156
|
+
});
|
|
154
157
|
// ── Terminal browse payloads ──────────────────────────────────────
|
|
155
158
|
export const terminalBrowsePayloadSchema = z.object({
|
|
156
159
|
path: z.string().min(1),
|
|
@@ -165,6 +168,14 @@ export const terminalBrowseResultPayloadSchema = z.object({
|
|
|
165
168
|
entries: z.array(terminalBrowseEntrySchema),
|
|
166
169
|
error: z.string().optional(),
|
|
167
170
|
});
|
|
171
|
+
// ── Terminal status payloads (from Claude Code hooks) ────────────────
|
|
172
|
+
export const terminalStatusPayloadSchema = z.object({
|
|
173
|
+
phase: z.enum(["thinking", "tool_use", "outputting", "waiting", "idle", "error"]),
|
|
174
|
+
toolName: z.string().optional(),
|
|
175
|
+
toolInput: z.string().optional(),
|
|
176
|
+
permissionRequest: z.string().optional(),
|
|
177
|
+
summary: z.string().optional(),
|
|
178
|
+
});
|
|
168
179
|
// ── File upload payloads ────────────────────────────────────────────
|
|
169
180
|
export const fileUploadPayloadSchema = z.object({
|
|
170
181
|
data: z.string(), // base64 encoded
|
|
@@ -207,6 +218,8 @@ export const protocolMessageSchemas = {
|
|
|
207
218
|
"terminal.list": terminalListPayloadSchema,
|
|
208
219
|
"terminal.browse": terminalBrowsePayloadSchema,
|
|
209
220
|
"terminal.browse.result": terminalBrowseResultPayloadSchema,
|
|
221
|
+
"terminal.kill": terminalKillPayloadSchema,
|
|
222
|
+
"terminal.status": terminalStatusPayloadSchema,
|
|
210
223
|
};
|
|
211
224
|
// ── UUID helper (works in Node, Web, and Expo) ─────────────────────
|
|
212
225
|
function generateId() {
|
|
@@ -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,7 +1,8 @@
|
|
|
1
1
|
import * as pty from "node-pty";
|
|
2
|
+
import * as http from "node:http";
|
|
2
3
|
import WebSocket from "ws";
|
|
3
4
|
import { hostname, platform, homedir } from "node:os";
|
|
4
|
-
import { writeFileSync, readdirSync, statSync } from "node:fs";
|
|
5
|
+
import { writeFileSync, readdirSync, statSync, unlinkSync } from "node:fs";
|
|
5
6
|
import { tmpdir } from "node:os";
|
|
6
7
|
import { join, basename, resolve } from "node:path";
|
|
7
8
|
import {
|
|
@@ -47,6 +48,9 @@ interface TerminalInstance {
|
|
|
47
48
|
scrollback: ScrollbackBuffer;
|
|
48
49
|
outputSeq: number;
|
|
49
50
|
status: "running" | "exited";
|
|
51
|
+
hookServer?: http.Server;
|
|
52
|
+
hookPort?: number;
|
|
53
|
+
hookConfigPath?: string;
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
function getPairingGatewayParam(gatewayHttpUrl: string): string | undefined {
|
|
@@ -303,6 +307,14 @@ export class BridgeSession {
|
|
|
303
307
|
this.sendTerminalList();
|
|
304
308
|
break;
|
|
305
309
|
}
|
|
310
|
+
case "terminal.kill": {
|
|
311
|
+
const p = parseTypedPayload("terminal.kill", envelope.payload);
|
|
312
|
+
const term = this.terminals.get(p.terminalId);
|
|
313
|
+
if (term && term.status === "running") {
|
|
314
|
+
term.pty.kill();
|
|
315
|
+
}
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
306
318
|
case "terminal.browse": {
|
|
307
319
|
const p = parseTypedPayload("terminal.browse", envelope.payload);
|
|
308
320
|
// Expand ~ to home directory
|
|
@@ -434,11 +446,26 @@ export class BridgeSession {
|
|
|
434
446
|
if (v !== undefined) cleanEnv[k] = v;
|
|
435
447
|
}
|
|
436
448
|
|
|
449
|
+
const provider = providerOverride ?? this.options.providerConfig.provider;
|
|
450
|
+
const args = [...this.options.providerConfig.args];
|
|
451
|
+
|
|
452
|
+
// For Claude provider: set up hook server for structured status
|
|
453
|
+
let hookServer: http.Server | undefined;
|
|
454
|
+
let hookPort: number | undefined;
|
|
455
|
+
let hookConfigPath: string | undefined;
|
|
456
|
+
|
|
457
|
+
if (provider === "claude") {
|
|
458
|
+
const { server, port, configPath } = this.setupHookServer(terminalId, args);
|
|
459
|
+
hookServer = server;
|
|
460
|
+
hookPort = port;
|
|
461
|
+
hookConfigPath = configPath;
|
|
462
|
+
}
|
|
463
|
+
|
|
437
464
|
const term: TerminalInstance = {
|
|
438
465
|
id: terminalId,
|
|
439
466
|
pty: pty.spawn(
|
|
440
467
|
this.options.providerConfig.command,
|
|
441
|
-
|
|
468
|
+
args,
|
|
442
469
|
{
|
|
443
470
|
name: "xterm-256color",
|
|
444
471
|
cols: this.options.cols,
|
|
@@ -449,10 +476,13 @@ export class BridgeSession {
|
|
|
449
476
|
),
|
|
450
477
|
cwd,
|
|
451
478
|
projectName: basename(cwd),
|
|
452
|
-
provider
|
|
479
|
+
provider,
|
|
453
480
|
scrollback: new ScrollbackBuffer(1000),
|
|
454
481
|
outputSeq: 0,
|
|
455
482
|
status: "running",
|
|
483
|
+
hookServer,
|
|
484
|
+
hookPort,
|
|
485
|
+
hookConfigPath,
|
|
456
486
|
};
|
|
457
487
|
|
|
458
488
|
term.pty.onData((data) => {
|
|
@@ -476,6 +506,7 @@ export class BridgeSession {
|
|
|
476
506
|
|
|
477
507
|
term.pty.onExit(({ exitCode, signal }) => {
|
|
478
508
|
term.status = "exited";
|
|
509
|
+
this.cleanupHookServer(term);
|
|
479
510
|
this.send(createEnvelope({
|
|
480
511
|
type: "terminal.exit",
|
|
481
512
|
sessionId: this.sessionId,
|
|
@@ -500,6 +531,130 @@ export class BridgeSession {
|
|
|
500
531
|
this.log(`spawned terminal ${terminalId} in ${cwd}`);
|
|
501
532
|
}
|
|
502
533
|
|
|
534
|
+
private setupHookServer(terminalId: string, args: string[]): {
|
|
535
|
+
server: http.Server;
|
|
536
|
+
port: number;
|
|
537
|
+
configPath: string;
|
|
538
|
+
} {
|
|
539
|
+
const server = http.createServer((req, res) => {
|
|
540
|
+
if (req.method !== "POST" || req.url !== "/hook") {
|
|
541
|
+
res.writeHead(404);
|
|
542
|
+
res.end();
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
let body = "";
|
|
546
|
+
req.on("data", (chunk: Buffer) => { body += chunk.toString(); });
|
|
547
|
+
req.on("end", () => {
|
|
548
|
+
res.writeHead(200);
|
|
549
|
+
res.end("ok");
|
|
550
|
+
try {
|
|
551
|
+
const event = JSON.parse(body);
|
|
552
|
+
this.handleHookEvent(terminalId, event);
|
|
553
|
+
} catch (e) {
|
|
554
|
+
this.log(`hook parse error: ${e}`);
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
// Listen on random port
|
|
560
|
+
server.listen(0, "127.0.0.1");
|
|
561
|
+
const addr = server.address() as { port: number };
|
|
562
|
+
const port = addr.port;
|
|
563
|
+
this.log(`hook server for ${terminalId} listening on port ${port}`);
|
|
564
|
+
|
|
565
|
+
// Write temporary hook config
|
|
566
|
+
const configPath = join(tmpdir(), `linkshell-hooks-${terminalId}.json`);
|
|
567
|
+
const curlCmd = `curl -s -X POST http://127.0.0.1:${port}/hook -H 'Content-Type: application/json' -d "$(cat)"`;
|
|
568
|
+
const hookEntry = { hooks: [{ type: "command", command: curlCmd }] };
|
|
569
|
+
const config = {
|
|
570
|
+
hooks: {
|
|
571
|
+
PreToolUse: [hookEntry],
|
|
572
|
+
PostToolUse: [hookEntry],
|
|
573
|
+
PostToolUseFailure: [hookEntry],
|
|
574
|
+
Stop: [hookEntry],
|
|
575
|
+
PermissionRequest: [hookEntry],
|
|
576
|
+
},
|
|
577
|
+
};
|
|
578
|
+
writeFileSync(configPath, JSON.stringify(config));
|
|
579
|
+
this.log(`hook config written to ${configPath}`);
|
|
580
|
+
|
|
581
|
+
// Inject --settings into Claude CLI args
|
|
582
|
+
args.push("--settings", configPath);
|
|
583
|
+
|
|
584
|
+
return { server, port, configPath };
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
private handleHookEvent(terminalId: string, event: Record<string, unknown>): void {
|
|
588
|
+
const hookName = event.hook_event_name as string | undefined;
|
|
589
|
+
if (!hookName) return;
|
|
590
|
+
|
|
591
|
+
let phase: string;
|
|
592
|
+
let toolName: string | undefined;
|
|
593
|
+
let toolInput: string | undefined;
|
|
594
|
+
let permissionRequest: string | undefined;
|
|
595
|
+
let summary: string | undefined;
|
|
596
|
+
|
|
597
|
+
switch (hookName) {
|
|
598
|
+
case "PreToolUse":
|
|
599
|
+
phase = "tool_use";
|
|
600
|
+
toolName = event.tool_name as string | undefined;
|
|
601
|
+
if (event.tool_input && typeof event.tool_input === "object") {
|
|
602
|
+
const input = event.tool_input as Record<string, unknown>;
|
|
603
|
+
toolInput = JSON.stringify(input).slice(0, 200);
|
|
604
|
+
}
|
|
605
|
+
break;
|
|
606
|
+
case "PostToolUse":
|
|
607
|
+
phase = "thinking";
|
|
608
|
+
toolName = event.tool_name as string | undefined;
|
|
609
|
+
break;
|
|
610
|
+
case "PostToolUseFailure":
|
|
611
|
+
phase = "error";
|
|
612
|
+
toolName = event.tool_name as string | undefined;
|
|
613
|
+
break;
|
|
614
|
+
case "Stop":
|
|
615
|
+
phase = "idle";
|
|
616
|
+
if (event.stop_reason) summary = String(event.stop_reason);
|
|
617
|
+
break;
|
|
618
|
+
case "PermissionRequest":
|
|
619
|
+
phase = "waiting";
|
|
620
|
+
toolName = event.tool_name as string | undefined;
|
|
621
|
+
if (event.tool_input && typeof event.tool_input === "object") {
|
|
622
|
+
const input = event.tool_input as Record<string, unknown>;
|
|
623
|
+
permissionRequest = JSON.stringify(input).slice(0, 300);
|
|
624
|
+
}
|
|
625
|
+
break;
|
|
626
|
+
default:
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
this.log(`hook event: ${hookName} → phase=${phase} tool=${toolName ?? "none"}`);
|
|
631
|
+
|
|
632
|
+
this.send(createEnvelope({
|
|
633
|
+
type: "terminal.status",
|
|
634
|
+
sessionId: this.sessionId,
|
|
635
|
+
terminalId,
|
|
636
|
+
payload: {
|
|
637
|
+
phase,
|
|
638
|
+
...(toolName && { toolName }),
|
|
639
|
+
...(toolInput && { toolInput }),
|
|
640
|
+
...(permissionRequest && { permissionRequest }),
|
|
641
|
+
...(summary && { summary }),
|
|
642
|
+
},
|
|
643
|
+
}));
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
private cleanupHookServer(term: TerminalInstance): void {
|
|
647
|
+
if (term.hookServer) {
|
|
648
|
+
term.hookServer.close();
|
|
649
|
+
term.hookServer = undefined;
|
|
650
|
+
this.log(`hook server closed for ${term.id}`);
|
|
651
|
+
}
|
|
652
|
+
if (term.hookConfigPath) {
|
|
653
|
+
try { unlinkSync(term.hookConfigPath); } catch { /* ignore */ }
|
|
654
|
+
term.hookConfigPath = undefined;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
|
|
503
658
|
private send(message: Envelope): void {
|
|
504
659
|
if (!this.socket || this.socket.readyState !== WebSocket.OPEN) {
|
|
505
660
|
return;
|
|
@@ -632,6 +787,7 @@ export class BridgeSession {
|
|
|
632
787
|
this.socket?.close();
|
|
633
788
|
this.socket = undefined;
|
|
634
789
|
for (const term of this.terminals.values()) {
|
|
790
|
+
this.cleanupHookServer(term);
|
|
635
791
|
if (term.status === "running") term.pty.kill();
|
|
636
792
|
}
|
|
637
793
|
this.terminals.clear();
|