From bc9d11e6e21567b3b73b2612b54fc34d65f82ee6 Mon Sep 17 00:00:00 2001 From: AI Christianson Date: Mon, 3 Mar 2025 07:54:37 -0500 Subject: [PATCH] remove refs to global memory key snippets (dead code/obsolete) --- ra_aid/__main__.py | 4 +++- ra_aid/agent_utils.py | 9 ++++++--- ra_aid/tools/agent.py | 15 +++++++++------ ra_aid/tools/expert.py | 6 +++++- ra_aid/tools/memory.py | 21 +++++---------------- tests/ra_aid/tools/test_agent.py | 4 ++-- 6 files changed, 30 insertions(+), 29 deletions(-) diff --git a/ra_aid/__main__.py b/ra_aid/__main__.py index 9d716b5..3239c0a 100644 --- a/ra_aid/__main__.py +++ b/ra_aid/__main__.py @@ -43,7 +43,9 @@ from ra_aid.config import ( VALID_PROVIDERS, ) from ra_aid.database.repositories.key_fact_repository import KeyFactRepository +from ra_aid.database.repositories.key_snippet_repository import KeySnippetRepository from ra_aid.model_formatters import format_key_facts_dict +from ra_aid.model_formatters.key_snippets_formatter import format_key_snippets_dict from ra_aid.console.output import cpm from ra_aid.database import ( DatabaseManager, @@ -526,7 +528,7 @@ def main(): working_directory=working_directory, current_date=current_date, key_facts=format_key_facts_dict(KeyFactRepository().get_facts_dict()), - key_snippets=get_memory_value("key_snippets"), + key_snippets=format_key_snippets_dict(KeySnippetRepository().get_snippets_dict()), project_info=formatted_project_info, ), config, diff --git a/ra_aid/agent_utils.py b/ra_aid/agent_utils.py index 691672e..59b3eed 100644 --- a/ra_aid/agent_utils.py +++ b/ra_aid/agent_utils.py @@ -85,8 +85,10 @@ from ra_aid.tool_configs import ( ) from ra_aid.tools.handle_user_defined_test_cmd_execution import execute_test_command from ra_aid.database.repositories.key_fact_repository import KeyFactRepository +from ra_aid.database.repositories.key_snippet_repository import KeySnippetRepository from ra_aid.database.repositories.human_input_repository import HumanInputRepository from ra_aid.model_formatters import format_key_facts_dict +from ra_aid.model_formatters.key_snippets_formatter import format_key_snippets_dict from ra_aid.tools.memory import ( _global_memory, get_memory_value, @@ -98,8 +100,9 @@ console = Console() logger = get_logger(__name__) -# Initialize key fact repository +# Initialize repositories key_fact_repository = KeyFactRepository() +key_snippet_repository = KeySnippetRepository() human_input_repository = HumanInputRepository() @@ -655,7 +658,7 @@ def run_planning_agent( research_notes=get_memory_value("research_notes"), related_files="\n".join(get_related_files()), key_facts=format_key_facts_dict(key_fact_repository.get_facts_dict()), - key_snippets=get_memory_value("key_snippets"), + key_snippets=format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), work_log=get_memory_value("work_log"), research_only_note=( "" @@ -757,7 +760,7 @@ def run_task_implementation_agent( plan=plan, related_files=related_files, key_facts=format_key_facts_dict(key_fact_repository.get_facts_dict()), - key_snippets=get_memory_value("key_snippets"), + key_snippets=format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), research_notes=get_memory_value("research_notes"), work_log=get_memory_value("work_log"), expert_section=EXPERT_PROMPT_SECTION_IMPLEMENTATION if expert_enabled else "", diff --git a/ra_aid/tools/agent.py b/ra_aid/tools/agent.py index 05fe1dc..d70b91e 100644 --- a/ra_aid/tools/agent.py +++ b/ra_aid/tools/agent.py @@ -13,8 +13,10 @@ from ra_aid.agent_context import ( ) from ra_aid.console.formatting import print_error from ra_aid.database.repositories.key_fact_repository import KeyFactRepository +from ra_aid.database.repositories.key_snippet_repository import KeySnippetRepository from ra_aid.exceptions import AgentInterrupt from ra_aid.model_formatters import format_key_facts_dict +from ra_aid.model_formatters.key_snippets_formatter import format_key_snippets_dict from ra_aid.tools.memory import _global_memory from ..console import print_task_header @@ -30,6 +32,7 @@ RESEARCH_AGENT_RECURSION_LIMIT = 3 console = Console() key_fact_repository = KeyFactRepository() +key_snippet_repository = KeySnippetRepository() @tool("request_research") @@ -59,7 +62,7 @@ def request_research(query: str) -> ResearchResult: "key_facts": format_key_facts_dict(key_fact_repository.get_facts_dict()), "related_files": get_related_files(), "research_notes": get_memory_value("research_notes"), - "key_snippets": get_memory_value("key_snippets"), + "key_snippets": format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), "success": False, "reason": "max_depth_exceeded", } @@ -107,7 +110,7 @@ def request_research(query: str) -> ResearchResult: "key_facts": format_key_facts_dict(key_fact_repository.get_facts_dict()), "related_files": get_related_files(), "research_notes": get_memory_value("research_notes"), - "key_snippets": get_memory_value("key_snippets"), + "key_snippets": format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), "success": success, "reason": reason, } @@ -170,7 +173,7 @@ def request_web_research(query: str) -> ResearchResult: response_data = { "completion_message": completion_message, - "key_snippets": get_memory_value("key_snippets"), + "key_snippets": format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), "research_notes": get_memory_value("research_notes"), "success": success, "reason": reason, @@ -241,7 +244,7 @@ def request_research_and_implementation(query: str) -> Dict[str, Any]: "key_facts": format_key_facts_dict(key_fact_repository.get_facts_dict()), "related_files": get_related_files(), "research_notes": get_memory_value("research_notes"), - "key_snippets": get_memory_value("key_snippets"), + "key_snippets": format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), "success": success, "reason": reason, } @@ -324,7 +327,7 @@ def request_task_implementation(task_spec: str) -> str: response_data = { "key_facts": format_key_facts_dict(key_fact_repository.get_facts_dict()), "related_files": get_related_files(), - "key_snippets": get_memory_value("key_snippets"), + "key_snippets": format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), "completion_message": completion_message, "success": success and not agent_crashed, "reason": reason, @@ -445,7 +448,7 @@ def request_implementation(task_spec: str) -> str: "completion_message": completion_message, "key_facts": format_key_facts_dict(key_fact_repository.get_facts_dict()), "related_files": get_related_files(), - "key_snippets": get_memory_value("key_snippets"), + "key_snippets": format_key_snippets_dict(key_snippet_repository.get_snippets_dict()), "success": success and not agent_crashed, "reason": reason, "agent_crashed": agent_crashed, diff --git a/ra_aid/tools/expert.py b/ra_aid/tools/expert.py index 1c2ed8e..ad96d16 100644 --- a/ra_aid/tools/expert.py +++ b/ra_aid/tools/expert.py @@ -7,13 +7,16 @@ from rich.markdown import Markdown from rich.panel import Panel from ..database.repositories.key_fact_repository import KeyFactRepository +from ..database.repositories.key_snippet_repository import KeySnippetRepository from ..llm import initialize_expert_llm from ..model_formatters import format_key_facts_dict +from ..model_formatters.key_snippets_formatter import format_key_snippets_dict from .memory import _global_memory, get_memory_value console = Console() _model = None key_fact_repository = KeyFactRepository() +key_snippet_repository = KeySnippetRepository() def get_model(): @@ -150,7 +153,8 @@ def ask_expert(question: str) -> str: # Get all content first file_paths = list(_global_memory["related_files"].values()) related_contents = read_related_files(file_paths) - key_snippets = get_memory_value("key_snippets") + # Get key snippets directly from repository and format using the formatter + key_snippets = format_key_snippets_dict(key_snippet_repository.get_snippets_dict()) # Get key facts directly from repository and format using the formatter facts_dict = key_fact_repository.get_facts_dict() key_facts = format_key_facts_dict(facts_dict) diff --git a/ra_aid/tools/memory.py b/ra_aid/tools/memory.py index 3e52bad..960dec8 100644 --- a/ra_aid/tools/memory.py +++ b/ra_aid/tools/memory.py @@ -599,30 +599,19 @@ def get_memory_value(key: str) -> str: """ Get a value from global memory. - Note: Key facts and key snippets are handled by their respective repositories - and formatter modules. + Note: Key facts and key snippets are handled by their respective repository and formatter modules, + and should be accessed directly using those instead of through this function. Different memory types return different formats: - - key_snippets: Returns formatted snippets with file path, line number and content - - All other types: Returns newline-separated list of values + - For work_log: Returns formatted markdown with timestamps and events + - For other types: Returns newline-separated list of values Args: key: The key to get from memory Returns: - String representation of the memory values: - - For key_snippets: Formatted snippet blocks - - For other types: One value per line + String representation of the memory values """ - if key == "key_snippets": - try: - # Get snippets from repository - snippets_dict = key_snippet_repository.get_snippets_dict() - return key_snippets_formatter.format_key_snippets_dict(snippets_dict) - except Exception as e: - logger.error(f"Error retrieving key snippets: {str(e)}") - return "" - if key == "work_log": values = _global_memory.get(key, []) if not values: diff --git a/tests/ra_aid/tools/test_agent.py b/tests/ra_aid/tools/test_agent.py index 935236f..8087867 100644 --- a/tests/ra_aid/tools/test_agent.py +++ b/tests/ra_aid/tools/test_agent.py @@ -42,8 +42,8 @@ def mock_functions(): """Mock functions used in agent.py""" with patch('ra_aid.tools.agent.key_fact_repository') as mock_fact_repo, \ patch('ra_aid.tools.agent.format_key_facts_dict') as mock_fact_formatter, \ - patch('ra_aid.tools.memory.key_snippet_repository') as mock_snippet_repo, \ - patch('ra_aid.tools.memory.key_snippets_formatter.format_key_snippets_dict') as mock_snippet_formatter, \ + patch('ra_aid.tools.agent.key_snippet_repository') as mock_snippet_repo, \ + patch('ra_aid.tools.agent.format_key_snippets_dict') as mock_snippet_formatter, \ patch('ra_aid.tools.agent.initialize_llm') as mock_llm, \ patch('ra_aid.tools.agent.get_related_files') as mock_get_files, \ patch('ra_aid.tools.agent.get_memory_value') as mock_get_memory, \