MCPcopy Create free account
hub / github.com/Kilo-Org/cloud / createSessionReadyHandler

Function createSessionReadyHandler

services/cloud-agent-next/wrapper/src/server.ts:969–1004  ·  view source on GitHub ↗
(deps: ServerDependencies)

Source from the content-addressed store, hash-verified

967
968 return { code: 1011, reason: event.reason || 'PTY upstream closed' };
969}
970
971type BunUpgradeServer = {
972 upgrade: (req: Request, options: { data: WrapperWebSocketData }) => boolean;
973};
974
975function createWebSocketHandlers(config: ServerConfig, deps: ServerDependencies) {
976 const ptyUpstreams = new WeakMap<object, WebSocket>();
977
978 return {
979 open(ws: Bun.ServerWebSocket<WrapperWebSocketData>) {
980 const ptyId = ws.data.ptyId;
981 if (!ptyId) {
982 ws.close(1011, 'Missing PTY');
983 return;
984 }
985
986 const upstream = new WebSocket(buildPtyUpstreamUrl(config, deps, ptyId));
987 upstream.binaryType = 'arraybuffer';
988 ptyUpstreams.set(ws, upstream);
989
990 upstream.onmessage = event => {
991 try {
992 ws.send(event.data instanceof ArrayBuffer ? event.data : String(event.data));
993 } catch {
994 // Client disconnected.
995 }
996 };
997 upstream.onclose = event => {
998 const close = resolvePtyClientClose({ code: event.code, reason: event.reason });
999 try {
1000 ws.close(close.code, close.reason);
1001 } catch {
1002 // Already closed.
1003 }
1004 };
1005 upstream.onerror = () => {
1006 try {
1007 ws.close(1011, 'PTY upstream error');

Callers 3

server.test.tsFile · 0.90
server.test.tsFile · 0.85
createFetchHandlerFunction · 0.85

Calls 4

errorResponseFunction · 0.70
jsonResponseFunction · 0.70
jsonMethod · 0.65

Tested by

no test coverage detected