"""Log Tools API mutations to agent_events.""" from __future__ import annotations from starlette.middleware.base import BaseHTTPMiddleware from starlette.requests import Request from app.middleware import log_agent_event class AgentLoggingMiddleware(BaseHTTPMiddleware): async def dispatch(self, request: Request, call_next): response = await call_next(request) if request.method in ("POST", "PUT", "PATCH", "DELETE") and response.status_code < 400: path = request.url.path if path.startswith(("/research", "/recommendations", "/retail", "/events")): try: log_agent_event( agent_name="tools_api", event_type="api_call", title=f"{request.method} {path}", channel="api", metadata={"status": response.status_code}, ) except Exception: pass return response