From 5976727359920451e726144b6f98d6bcac5fad18 Mon Sep 17 00:00:00 2001 From: AI Christianson Date: Fri, 27 Dec 2024 19:55:15 -0500 Subject: [PATCH 1/3] Make read_file always output status panel. --- CHANGELOG.md | 1 + ra_aid/tools/read_file.py | 20 +++++--------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 458265b..7e7db7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fix web research prompt. - Simplify planning stage by executing tasks directly. - Make research notes available to more agents/tools. +- Make read_file always output status panel. ## [0.10.2] - 2024-12-26 diff --git a/ra_aid/tools/read_file.py b/ra_aid/tools/read_file.py index e515cee..420e87e 100644 --- a/ra_aid/tools/read_file.py +++ b/ra_aid/tools/read_file.py @@ -15,22 +15,13 @@ CHUNK_SIZE = 8192 @tool def read_file_tool( filepath: str, - verbose: bool = True, encoding: str = 'utf-8' ) -> Dict[str, str]: """Read and return the contents of a text file. Args: filepath: Path to the file to read - verbose: Whether to display a Rich panel with read statistics (default: True) encoding: File encoding to use (default: utf-8) - - Returns: - Dict containing: - - content: The file contents as a string (truncated if needed) - - Raises: - RuntimeError: If file cannot be read or does not exist """ start_time = time.time() try: @@ -60,12 +51,11 @@ def read_file_tool( logging.debug(f"File read complete: {total_bytes} bytes in {elapsed:.2f}s") logging.debug(f"Pre-truncation stats: {total_bytes} bytes, {line_count} lines") - if verbose: - console.print(Panel( - f"Read {line_count} lines ({total_bytes} bytes) from {filepath} in {elapsed:.2f}s", - title="📄 File Read", - border_style="bright_blue" - )) + console.print(Panel( + f"Read {line_count} lines ({total_bytes} bytes) from {filepath} in {elapsed:.2f}s", + title="📄 File Read", + border_style="bright_blue" + )) # Truncate if needed truncated = truncate_output(full_content) if full_content else "" From bd2fd07b1bb092da743f8e6d3d441fad8d079afa Mon Sep 17 00:00:00 2001 From: AI Christianson Date: Fri, 27 Dec 2024 19:55:57 -0500 Subject: [PATCH 2/3] Version bump --- CHANGELOG.md | 2 +- ra_aid/__version__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e7db7b..36af79e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.10.3] - 1024-12-27 - Fix logging on interrupt. - Fix web research prompt. diff --git a/ra_aid/__version__.py b/ra_aid/__version__.py index d299689..58c6b5f 100644 --- a/ra_aid/__version__.py +++ b/ra_aid/__version__.py @@ -1,3 +1,3 @@ """Version information.""" -__version__ = "0.10.1" +__version__ = "0.10.3" From 9944ec9ea47626337d15eed1447c3f792b10759d Mon Sep 17 00:00:00 2001 From: AI Christianson Date: Fri, 27 Dec 2024 19:59:05 -0500 Subject: [PATCH 3/3] Fix tests. --- tests/ra_aid/test_tool_configs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/ra_aid/test_tool_configs.py b/tests/ra_aid/test_tool_configs.py index 40a1625..f935811 100644 --- a/tests/ra_aid/test_tool_configs.py +++ b/tests/ra_aid/test_tool_configs.py @@ -54,19 +54,19 @@ def test_get_implementation_tools(): def test_get_web_research_tools(): # Test with expert enabled tools = get_web_research_tools(expert_enabled=True) - assert len(tools) == 4 + assert len(tools) == 5 assert all(callable(tool) for tool in tools) # Get tool names and verify exact matches tool_names = [tool.name for tool in tools] - expected_names = ['emit_expert_context', 'ask_expert', 'web_search_tavily', 'emit_research_notes'] + expected_names = ['emit_expert_context', 'ask_expert', 'web_search_tavily', 'emit_research_notes', 'task_completed'] assert sorted(tool_names) == sorted(expected_names) # Test without expert enabled tools_no_expert = get_web_research_tools(expert_enabled=False) - assert len(tools_no_expert) == 2 + assert len(tools_no_expert) == 3 assert all(callable(tool) for tool in tools_no_expert) # Verify exact tool names when expert is disabled tool_names_no_expert = [tool.name for tool in tools_no_expert] - assert sorted(tool_names_no_expert) == sorted(['web_search_tavily', 'emit_research_notes']) + assert sorted(tool_names_no_expert) == sorted(['web_search_tavily', 'emit_research_notes', 'task_completed'])