def on_thread_message()

in 3-ai-native-e2e-sample/backend/agents/literature.py [0:0]


    def on_thread_message(self, message: ThreadMessage) -> Generator[Dict[str, Any], None, None]:
        """Handle complete thread messages."""
        if message.content and len(message.content) > 0:
            logger.info(f"Received thread message: {message.id}")
            try:
                # Handle MessageTextDetails object properly
                if hasattr(message.content, 'value'):
                    content = message.content.value
                else:
                    content = str(message.content)

                if content.strip():  # Only send if there's actual content
                    return json.dumps({
                        "type": "message",
                        "content": content
                    })
            except Exception as e:
                logger.error(f"Error processing message content: {str(e)}")
                return json.dumps({"error": str(e)})
        return None