""" Conversation Management System for Trixy This package provides comprehensive conversation management functionality for the Trixy voice assistant system, implementing multi-turn conversation workflows as specified in CLAUDE.md. Key Features: - Session management for multi-turn conversations - Conversation ID tracking across events - Context preservation and state management - Plugin integration for multi-turn workflows - Thread-safe operations for multi-satellite support - Conversation timeout handling and cleanup - Comprehensive logging and analytics Components: - ConversationManager: Main conversation management system - ConversationSession: Individual conversation session tracking - ConversationContext: Context management and preservation - ConversationState: State tracking and transitions Usage: from trixy_core.conversation import ConversationManager, ConversationState # Create conversation manager manager = ConversationManager(application) # Start a conversation session = manager.start_conversation( satellite_info=satellite_info, speaker_info=speaker_info, trigger_event="wakeword_received" ) # Process conversation turns manager.process_audio_input(session.conversation_id, audio_data) manager.process_text_input(session.conversation_id, "order pizza") manager.process_intent(session.conversation_id, intent_data) # Plugin asks follow-up question manager.ask_question(session.conversation_id, "What kind of pizza?") # Continue conversation manager.process_text_input(session.conversation_id, "spicy one") # Complete conversation manager.complete_conversation(session.conversation_id, "Order placed!") """ from .conversation_manager import ( ConversationManager, ConversationManagerError, ConversationNotFoundError, ConversationTimeoutError, ConversationStateError, ConversationStats, create_conversation_manager ) from .conversation_session import ( ConversationSession, ConversationSessionError, ConversationSessionState, ConversationTurn, ConversationRole, create_conversation_session ) from .conversation_context import ( ConversationContext, ConversationContextError, ContextScope, ContextEntry, ContextRetentionPolicy, create_conversation_context ) from .conversation_state import ( ConversationState, ConversationStateManager, ConversationStateError, StateTransition, StateTransitionRules, ConversationPhase, create_state_manager ) def pprint(message: str) -> None: """ Conversation system logging function. Adapts based on debug mode as specified in CLAUDE.md. """ print(f"[CONVERSATION] {message}") # Module exports __all__ = [ # Main conversation manager "ConversationManager", "ConversationManagerError", "ConversationNotFoundError", "ConversationTimeoutError", "ConversationStateError", "ConversationStats", "create_conversation_manager", # Conversation session "ConversationSession", "ConversationSessionError", "ConversationSessionState", "ConversationTurn", "ConversationRole", "create_conversation_session", # Conversation context "ConversationContext", "ConversationContextError", "ContextScope", "ContextEntry", "ContextRetentionPolicy", "create_conversation_context", # Conversation state "ConversationState", "ConversationStateManager", "ConversationStateError", "StateTransition", "StateTransitionRules", "ConversationPhase", "create_state_manager", # Utility "pprint" ]