import logging from typing import Any from fastapi import WebSocket from models.session_state import SessionConfig from models.conversation_profile import ConversationProfile class RuntimeContext: def __init__( self, session_id: str, websocket: WebSocket, event_bus: Any, queue_registry: Any, task_supervisor: Any, cleanup_manager: Any, session_config: SessionConfig, conversation_profile: ConversationProfile, logger: logging.Logger, tts_model: Any = None, nv_client: Any = None, groq_client: Any = None, get_voice_state: Any = None, run_transcription: Any = None, clean_and_check_text: Any = None, available_voices: Any = None, persona_system_prompts: Any = None, audio_buffer: Any = None, ): self.session_id = session_id self.websocket = websocket self.event_bus = event_bus self.queue_registry = queue_registry self.task_supervisor = task_supervisor self.cleanup_manager = cleanup_manager self.session_config = session_config self.conversation_profile = conversation_profile self.logger = logger # Singletons & Callbacks self.tts_model = tts_model self.nv_client = nv_client self.groq_client = groq_client self.get_voice_state = get_voice_state self.run_transcription = run_transcription self.clean_and_check_text = clean_and_check_text self.available_voices = available_voices or {} self.persona_system_prompts = persona_system_prompts or {} self.audio_buffer = audio_buffer self.turn_id = "" # Managers & Services self.turn_manager: Any = None self.transcript_stabilizer: Any = None self.vad_service: Any = None self.asr_service: Any = None self.llm_service: Any = None self.tts_service: Any = None self.sentence_accumulator: Any = None self.error_handler: Any = None self.memory_service: Any = None