UNPKG

morphbox

Version:

Docker-based AI sandbox for development with Claude integration

87 lines (84 loc) 2.5 kB
import { j as json } from './index-3BbzJtgI.js'; class PersistentSessionManager { sessions = /* @__PURE__ */ new Map(); restoreSession(sessionId) { return false; } saveSession(sessionId, agentId, metadata) { this.sessions.set(sessionId, { id: sessionId, type: "terminal", status: "active", createdAt: (/* @__PURE__ */ new Date()).toISOString(), lastActivity: (/* @__PURE__ */ new Date()).toISOString(), metadata }); } listSessions() { return Array.from(this.sessions.values()); } deleteSession(sessionId) { this.sessions.delete(sessionId); } updateActivity(sessionId) { const session = this.sessions.get(sessionId); if (session) { session.lastActivity = (/* @__PURE__ */ new Date()).toISOString(); } } // Additional async methods for compatibility async createSession(id) { this.saveSession(id, id, {}); return { id, created: (/* @__PURE__ */ new Date()).toISOString() }; } async getSession(id) { return this.sessions.get(id) || null; } async destroySession(id) { this.deleteSession(id); return true; } } let instance = null; function getPersistentSessionManager() { if (!instance) { instance = new PersistentSessionManager(); } return instance; } const GET = async () => { try { const sessionManager = getPersistentSessionManager(); const sessions = sessionManager.listSessions(); return json({ sessions: sessions.map((session) => ({ id: session.id, type: session.type, status: session.status, createdAt: session.createdAt, lastActivity: session.lastActivity, metadata: session.metadata })), count: sessions.length }); } catch (error) { console.error("Error listing sessions:", error); return json({ error: "Failed to list sessions" }, { status: 500 }); } }; const DELETE = async ({ url }) => { try { const sessionId = url.searchParams.get("sessionId"); if (!sessionId) { return json({ error: "Session ID required" }, { status: 400 }); } const sessionManager = getPersistentSessionManager(); await sessionManager.killSession(sessionId); return json({ success: true, message: "Session terminated" }); } catch (error) { console.error("Error terminating session:", error); return json({ error: "Failed to terminate session" }, { status: 500 }); } }; export { DELETE, GET }; //# sourceMappingURL=_server.ts-feiPw9j7.js.map