diff --git a/aider/utils.py b/aider/utils.py index 31767aec6..1e76b39bf 100644 --- a/aider/utils.py +++ b/aider/utils.py @@ -84,24 +84,32 @@ def safe_abs_path(res): return str(res) -def show_messages(messages, title=None, functions=None): +def format_messages(messages, title=None): + output = [] if title: - print(title.upper(), "*" * 50) + output.append(f"{title.upper()} {'*' * 50}") for msg in messages: - print() + output.append("") role = msg["role"].upper() content = msg.get("content") if isinstance(content, list): # Handle list content (e.g., image messages) for item in content: if isinstance(item, dict) and "image_url" in item: - print(role, "Image URL:", item["image_url"]["url"]) + output.append(f"{role} Image URL: {item['image_url']['url']}") elif isinstance(content, str): # Handle string content for line in content.splitlines(): - print(role, line) + output.append(f"{role} {line}") content = msg.get("function_call") if content: - print(role, content) + output.append(f"{role} {content}") + + return "\n".join(output) + + +def show_messages(messages, title=None, functions=None): + formatted_output = format_messages(messages, title) + print(formatted_output) if functions: dump(functions)