export function registerSocketHandlers(io, sessionManager) { io.on("connection", (socket) => { socket.emit("session:state", sessionManager.getState()); socket.emit("log:snapshot", sessionManager.getLogSnapshot()); socket.emit("chat:snapshot", { content: sessionManager.getChatSnapshot() }); socket.on("session:start", async (payload, callback) => { try { await sessionManager.start(); callback?.({ ok: true }); } catch (error) { socket.emit("session:error", { message: error.message }); callback?.({ ok: false, error: error.message }); } }); socket.on("session:stop", async (payload, callback) => { try { await sessionManager.stop(); callback?.({ ok: true }); } catch (error) { socket.emit("session:error", { message: error.message }); callback?.({ ok: false, error: error.message }); } }); socket.on("team:activate", async (payload, callback) => { try { await sessionManager.activateTeam(); callback?.({ ok: true }); } catch (error) { socket.emit("session:error", { message: error.message }); callback?.({ ok: false, error: error.message }); } }); socket.on("prompt:send", async ({ prompt }, callback) => { try { await sessionManager.sendPrompt(prompt); callback?.({ ok: true }); } catch (error) { socket.emit("session:error", { message: error.message }); callback?.({ ok: false, error: error.message }); } }); socket.on("terminal:resize", ({ cols, rows }) => { sessionManager.resize({ cols, rows }); }); socket.on("logs:clear", (payload, callback) => { sessionManager.clearLogs(); callback?.({ ok: true }); }); }); }