/workspaces refactor
This commit is contained in:
+17
-3
@@ -7,12 +7,19 @@ import { verify } from './servers/jwt';
|
||||
import { officerdb, TokenBlacklist } from 'officerdb';
|
||||
import { claudeWebsocket } from './servers/api/claude/websocket';
|
||||
import { opencodeWebsocket } from './servers/api/opencode/websocket';
|
||||
import { terminalWebsocket } from './servers/api/terminal/websocket';
|
||||
import { terminalWebsocket, initTerminalSidecars } from './servers/api/terminal/websocket';
|
||||
import officerWeb from './apps/officer-web/index.html';
|
||||
|
||||
const { PORT = '5000' } = process.env;
|
||||
|
||||
type WSData = { userId: number; email: string; provider: 'claude' | 'opencode' | 'terminal' };
|
||||
type WSData = {
|
||||
userId: number;
|
||||
email: string;
|
||||
role: string;
|
||||
provider: 'claude' | 'opencode' | 'terminal';
|
||||
sandboxed: boolean;
|
||||
sessionId?: string;
|
||||
};
|
||||
|
||||
const handlers: Record<string, typeof claudeWebsocket> = {
|
||||
claude: claudeWebsocket,
|
||||
@@ -35,7 +42,12 @@ async function upgradeWs(req: Request, server: any, provider: 'claude' | 'openco
|
||||
if (blacklisted) return new Response('Unauthorized', { status: 401 });
|
||||
}
|
||||
|
||||
const ok = server.upgrade(req, { data: { userId: user.id, email: user.email, provider } });
|
||||
const url = new URL(req.url);
|
||||
const sessionId = url.searchParams.get('sessionId') ?? undefined;
|
||||
const sandboxed = url.searchParams.get('sandboxed') !== 'false';
|
||||
const ok = server.upgrade(req, {
|
||||
data: { userId: user.id, email: user.email, role: user.role, provider, sandboxed, sessionId },
|
||||
});
|
||||
if (!ok) return new Response('Upgrade failed', { status: 500 });
|
||||
} catch {
|
||||
return new Response('Unauthorized', { status: 401 });
|
||||
@@ -84,3 +96,5 @@ const server = serve({
|
||||
});
|
||||
|
||||
console.log(`🚀 Server running at ${server.url}`);
|
||||
|
||||
void initTerminalSidecars();
|
||||
|
||||
Reference in New Issue
Block a user