67 lines
2.2 KiB
JavaScript
67 lines
2.2 KiB
JavaScript
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 });
|
|
});
|
|
|
|
socket.on("project:select", async ({ projectPath }, callback) => {
|
|
try {
|
|
await sessionManager.setProjectPath(projectPath);
|
|
callback?.({ ok: true, projectPath: sessionManager.getState().currentProjectPath });
|
|
} catch (error) {
|
|
socket.emit("session:error", { message: error.message });
|
|
callback?.({ ok: false, error: error.message });
|
|
}
|
|
});
|
|
});
|
|
}
|