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