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,