/** * Franklin agent server (local WebSocket — drives the desktop app & browser UI). * * Serves the local React WebUI (franklin-webui / the desktop app) over a single * WebSocket using the envelope wire protocol the UI already speaks: * * client → { id, kind, payload } (agent.send / session.* / wallet.info / …) * server → { id, kind, payload } (agent.text / agent.step / agent.done / …) * * Unlike `franklin panel` (a read-only dashboard), this actually runs agent * turns: it drives the real `interactiveSession` loop from src/agent/loop.ts — * same tools, wallet, routing and signing as the CLI. The browser/desktop is * just a different head on the same agent. * * Single-window assumption: one long-lived agent session per server process, * fed by a getUserInput queue. Good enough for the desktop app; multi-session * fan-out can come later. */ interface ServerOptions { port: number; workDir: string; debug?: boolean; } export declare function startServer(opts: ServerOptions): Promise; export {};