"""The conversations API: the chat itself. Two halves. `crud` manages conversations as objects a user owns; `turns` is the one place that speaks SSE, turning a mode's events into frames and persisting what was streamed. The ownership gate sits in `access`, the wire shapes in `schemas`, and the row-to-shape mapping in `view`. """ from fastapi import APIRouter from app.api.conversations import crud, turns from app.api.conversations.turns import stream_turn router = APIRouter() router.include_router(crud.router) router.include_router(turns.router) # Exported for the tests that drive a turn without going through HTTP. __all__ = ["router", "stream_turn"]