"""WebSocketContext -- bundles all dependencies needed by dispatch_message.""" from __future__ import annotations from dataclasses import dataclass from typing import TYPE_CHECKING, Any if TYPE_CHECKING: from app.analytics.event_recorder import AnalyticsRecorder from app.callbacks import TokenUsageCallbackHandler from app.conversation_tracker import ConversationTrackerProtocol from app.graph_context import GraphContext from app.interrupt_manager import InterruptManager from app.session_manager import SessionManager @dataclass(frozen=True) class WebSocketContext: """All dependencies required for WebSocket message processing. Replaces the previous 9-parameter function signature in dispatch_message. """ graph_ctx: GraphContext session_manager: SessionManager callback_handler: TokenUsageCallbackHandler interrupt_manager: InterruptManager | None = None analytics_recorder: AnalyticsRecorder | None = None conversation_tracker: ConversationTrackerProtocol | None = None pool: Any = None