MCPcopy Create free account
hub / github.com/agent-tower/core / register

Method register

packages/server/src/socket/socket-gateway.ts:40–98  ·  view source on GitHub ↗
(socket: AuthenticatedSocket)

Source from the content-addressed store, hash-verified

38 cleanup();
39 }
40 this.cleanups = [];
41 }
42
43 register(socket: AuthenticatedSocket): void {
44 // --- Subscribe / Unsubscribe ---
45 socket.on(ClientEvents.SUBSCRIBE, (payload: SubscribePayload, ack?: (res: AckResponse) => void) => {
46 if (!this.ensureSocketAuthIsCurrent(socket, ack)) return;
47 this.handleSubscribe(socket, payload, ack);
48 });
49
50 socket.on(ClientEvents.UNSUBSCRIBE, (payload: UnsubscribePayload, ack?: (res: AckResponse) => void) => {
51 if (!this.ensureSocketAuthIsCurrent(socket, ack)) return;
52 this.handleUnsubscribe(socket, payload, ack);
53 });
54
55 // --- Agent session I/O ---
56 socket.on(ClientEvents.INPUT, (payload: SessionInputPayload) => {
57 if (!this.ensureSocketAuthIsCurrent(socket)) return;
58 if (!payload?.sessionId || typeof payload.data !== 'string') return;
59 try {
60 this.sessionManager.writeInput(payload.sessionId, payload.data);
61 } catch (err) {
62 console.error(`[SocketGateway] INPUT error for session ${payload.sessionId}:`, err);
63 }
64 });
65
66 socket.on(ClientEvents.RESIZE, (payload: SessionResizePayload) => {
67 if (!this.ensureSocketAuthIsCurrent(socket)) return;
68 if (!payload?.sessionId || typeof payload.cols !== 'number' || typeof payload.rows !== 'number') return;
69 try {
70 this.sessionManager.resize(payload.sessionId, payload.cols, payload.rows);
71 } catch (err) {
72 console.error(`[SocketGateway] RESIZE error for session ${payload.sessionId}:`, err);
73 }
74 });
75
76 // --- Standalone terminal I/O ---
77 socket.on(ClientEvents.TERMINAL_INPUT, (payload: TerminalInputPayload) => {
78 if (!this.ensureSocketAuthIsCurrent(socket)) return;
79 if (!payload?.terminalId || typeof payload.data !== 'string') return;
80 try {
81 this.terminalManager.write(payload.terminalId, payload.data);
82 } catch (err) {
83 console.error(`[SocketGateway] TERMINAL_INPUT error for terminal ${payload.terminalId}:`, err);
84 }
85 });
86
87 socket.on(ClientEvents.TERMINAL_RESIZE, (payload: TerminalResizePayload) => {
88 if (!this.ensureSocketAuthIsCurrent(socket)) return;
89 if (!payload?.terminalId || typeof payload.cols !== 'number' || typeof payload.rows !== 'number') return;
90 try {
91 this.terminalManager.resize(payload.terminalId, payload.cols, payload.rows);
92 } catch (err) {
93 console.error(`[SocketGateway] TERMINAL_RESIZE error for terminal ${payload.terminalId}:`, err);
94 }
95 });
96
97 // --- Socket disconnect: clean up owned terminals ---

Callers 15

buildAppFunction · 0.80
buildTestAppFunction · 0.80
registerRoutesFunction · 0.80
buildTestAppFunction · 0.80
buildAppFunction · 0.80
buildTestAppFunction · 0.80
createPreviewFixtureAppFunction · 0.80
buildTestAppFunction · 0.80
buildTestAppFunction · 0.80
buildTestAppFunction · 0.80
buildTestAppFunction · 0.80

Calls 8

handleSubscribeMethod · 0.95
handleUnsubscribeMethod · 0.95
writeInputMethod · 0.80
cleanupBySocketMethod · 0.80
onMethod · 0.45
resizeMethod · 0.45
writeMethod · 0.45

Tested by 11

buildTestAppFunction · 0.64
buildTestAppFunction · 0.64
buildAppFunction · 0.64
buildTestAppFunction · 0.64
createPreviewFixtureAppFunction · 0.64
buildTestAppFunction · 0.64
buildTestAppFunction · 0.64
buildTestAppFunction · 0.64
buildTestAppFunction · 0.64
buildTestAppFunction · 0.64
buildTestAppFunction · 0.64