"""Assistant chat thread management. The conversation itself is persisted by the AG-UI snapshot store (app/agent/snapshot_store.py) under a single ("default", "main") thread; this router only exposes the reset used by "Nueva conversación". """ from fastapi import APIRouter, Depends from pydantic import BaseModel from sqlmodel import Session, select from app.auth import get_current_user from app.db import get_session from app.models.models import ChatThreadSnapshot router = APIRouter(prefix="/chat", tags=["chat"]) CHAT_SCOPE = "default" CHAT_THREAD_ID = "main" class ClearThreadResponse(BaseModel): cleared: bool @router.delete("/thread", response_model=ClearThreadResponse) def clear_thread( session: Session = Depends(get_session), _user: str = Depends(get_current_user), ): row = session.exec( select(ChatThreadSnapshot).where( ChatThreadSnapshot.scope == CHAT_SCOPE, ChatThreadSnapshot.thread_id == CHAT_THREAD_ID, ) ).first() if row is None: return {"cleared": False} session.delete(row) session.commit() return {"cleared": True}