# This is a controlled Python script (.dspy file) that will be executed by the web framework # It provides the API endpoint for /hermes-web-cli/sessions/messages?session_id={session_id} import json import os from hermes_web_cli.init import get_session_messages, send_message_to_service from urllib.parse import parse_qs def main(): """Main function to handle the session messages API request with query parameter.""" try: # Get session ID from query string query_string = os.environ.get('QUERY_STRING', '') if query_string: query_params = parse_qs(query_string) session_id = query_params.get('session_id', [None])[0] else: session_id = None if not session_id: return { "status": "error", "message": "Session ID is required (use ?session_id= parameter)", "data": None } request_method = os.environ.get('REQUEST_METHOD', 'GET') if request_method == 'GET': # Get session messages messages = get_session_messages(session_id) return { "status": "success", "data": messages, "total": len(messages) } elif request_method == 'POST': # Send new message content_length = int(os.environ.get('CONTENT_LENGTH', 0)) if content_length > 0: post_data = json.loads(os.read(0, content_length).decode('utf-8')) message = post_data.get('message') if not message: return { "status": "error", "message": "Message content is required", "data": None } # Here you would get the service_id from the session and send the message # For now, just return success (in real implementation, call send_message_to_service) return { "status": "success", "message": "Message sent successfully" } else: return { "status": "error", "message": "No message data provided" } else: return { "status": "error", "message": "Method not allowed" } except Exception as e: return { "status": "error", "message": str(e), "data": None } # Execute and return JSON response result = main() print(json.dumps(result, ensure_ascii=False))