From 7a7736cfc6c54e971d7991f543c67fbbf9c260ac Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 23 Apr 2025 21:57:36 +0000 Subject: [PATCH] Fix reset-memories --knowledge command failing with 'No crew found' error Co-Authored-By: Joe Moura --- src/crewai/cli/reset_memories_command.py | 2 ++ src/crewai/cli/utils.py | 14 +++++++++----- tests/cli/cli_test.py | 7 +++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/crewai/cli/reset_memories_command.py b/src/crewai/cli/reset_memories_command.py index 4870d6424..6e81ca296 100644 --- a/src/crewai/cli/reset_memories_command.py +++ b/src/crewai/cli/reset_memories_command.py @@ -62,3 +62,5 @@ def reset_memories_command( except Exception as e: click.echo(f"An unexpected error occurred: {e}", err=True) + if "No crew found" in str(e): + click.echo("This error might occur when running the command in a non-CrewAI project directory.", err=True) diff --git a/src/crewai/cli/utils.py b/src/crewai/cli/utils.py index 078afec60..f1c1336d3 100644 --- a/src/crewai/cli/utils.py +++ b/src/crewai/cli/utils.py @@ -82,11 +82,15 @@ def _get_project_attribute( with open(pyproject_path, "r") as f: pyproject_content = parse_toml(f.read()) - dependencies = ( - _get_nested_value(pyproject_content, ["project", "dependencies"]) or [] - ) - if not any(True for dep in dependencies if "crewai" in dep): - raise Exception("crewai is not in the dependencies.") + import inspect + calling_frame = inspect.currentframe().f_back + calling_function = calling_frame.f_code.co_name + if calling_function != "reset_memories": + dependencies = ( + _get_nested_value(pyproject_content, ["project", "dependencies"]) or [] + ) + if not any(True for dep in dependencies if "crewai" in dep): + raise Exception("crewai is not in the dependencies.") attribute = _get_nested_value(pyproject_content, keys) except FileNotFoundError: diff --git a/tests/cli/cli_test.py b/tests/cli/cli_test.py index dc0c502b7..9ea3cb955 100644 --- a/tests/cli/cli_test.py +++ b/tests/cli/cli_test.py @@ -132,6 +132,13 @@ def test_reset_knowledge(mock_get_crew, runner): assert result.output == "Knowledge has been reset.\n" +@mock.patch("crewai.knowledge.storage.knowledge_storage.KnowledgeStorage") +def test_reset_knowledge_memories(MockKnowledgeStorage, runner): + result = runner.invoke(reset_memories, ["-kn"]) + MockKnowledgeStorage().reset.assert_called_once() + assert result.output == "Knowledge has been reset.\n" + + def test_reset_no_memory_flags(runner): result = runner.invoke( reset_memories,