from fastapi import FastAPI, WebSocket from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles from bridge import TerminalBridge app = FastAPI() bridge = TerminalBridge() app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/") async def index(): return FileResponse("static/index.html") @app.websocket("/ws") async def websocket(ws: WebSocket): await ws.accept() session = await bridge.connect(ws) try: while True: message = await ws.receive_text() await bridge.input(session, message) except Exception: pass finally: await bridge.disconnect(session)