server/index.js) is a plain HTTP server. The presence, the classic shell, surfaces, and the v2 host all talk to it over these endpoints. Every filesystem path is validated server-side.
Chat
Config & providers
Surfaces
(
widget-* are the legacy names of the surface-* bridge endpoints.) See The bridge.
Files (BOR Home)
MCP
See MCP.
Scheduling & notifications
System & browser
Conversations
Notes
- All responses are JSON unless noted (
/api/chatis SSE;/api/files/rawand/api/imagesserve bytes). - The v2 host generally proxies these through the Electron main process (so file:// renderers don’t hit CORS).
- Adding a route? Keep the
validateSurfaceId/ JSON-pointer guards — see The runtime.