diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fd0fc8ad5..4d62d9f68 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -45,7 +45,7 @@ jobs: enable-cache: false - name: Install the project - run: uv sync --all-packages --all-extras + run: uv sync --all-packages --all-extras --no-install-project - name: Restore test durations uses: actions/cache/restore@v4 @@ -75,7 +75,7 @@ jobs: # DURATIONS_ARG="--durations-path=${DURATION_FILE}" # fi - uv run pytest tests/ \ + cd lib/crewai && uv run pytest . \ --block-network \ --timeout=30 \ -vv \ diff --git a/.github/workflows/type-checker.yml b/.github/workflows/type-checker.yml index 03a5841a0..07f4e3292 100644 --- a/.github/workflows/type-checker.yml +++ b/.github/workflows/type-checker.yml @@ -40,7 +40,7 @@ jobs: enable-cache: false - name: Install dependencies - run: uv sync --all-groups --all-extras + run: uv sync --all-packages --all-extras - name: Get changed Python files id: changed-files diff --git a/lib/core/pyproject.toml b/lib/core/pyproject.toml deleted file mode 100644 index 2312cf83a..000000000 --- a/lib/core/pyproject.toml +++ /dev/null @@ -1,56 +0,0 @@ -[project] -name = "crewai-core" -dynamic = ["version"] -description = "" -readme = "README.md" -authors = [ - { name = "Greyson Lalonde", email = "greyson.r.lalonde@gmail.com" } -] -keywords = [ - "crewai", - "ai", - "agents", - "framework", - "orchestration", - "llm", - "core", - "typed", -] -classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Developers", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Topic :: Software Development :: Libraries :: Python Modules", - "Typing :: Typed", -] -requires-python = ">=3.10, <3.14" -dependencies = [ - "chromadb~=1.1.0", - "pydantic-settings>=2.10.1", - "uv>=0.4.25", -] - -[project.urls] -Homepage = "https://crewai.com" -Documentation = "https://docs.crewai.com" -Repository = "https://github.com/crewAIInc/crewAI" - - -[tool.pytest.ini_options] -testpaths = ["tests"] -asyncio_mode = "strict" -asyncio_default_fixture_loop_scope = "function" - - -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[tool.hatch.version] -path = "src/crewai/core/__init__.py" - -[tool.hatch.build.targets.wheel] -packages = ["src/crewai"] diff --git a/lib/core/src/crewai/core/__init__.py b/lib/core/src/crewai/core/__init__.py deleted file mode 100644 index ff8bfc5bb..000000000 --- a/lib/core/src/crewai/core/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "1.0.0a0" diff --git a/lib/core/src/crewai/core/py.typed b/lib/core/src/crewai/core/py.typed deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/core/src/crewai/core/utilities/__init__.py b/lib/core/src/crewai/core/utilities/__init__.py deleted file mode 100644 index cb5322456..000000000 --- a/lib/core/src/crewai/core/utilities/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Core utilities for CrewAI.""" \ No newline at end of file diff --git a/lib/core/.python-version b/lib/crewai/.python-version similarity index 100% rename from lib/core/.python-version rename to lib/crewai/.python-version diff --git a/lib/core/README.md b/lib/crewai/README.md similarity index 100% rename from lib/core/README.md rename to lib/crewai/README.md diff --git a/lib/crewai/pyproject.toml b/lib/crewai/pyproject.toml new file mode 100644 index 000000000..451837efc --- /dev/null +++ b/lib/crewai/pyproject.toml @@ -0,0 +1,124 @@ +[project] +name = "crewai" +dynamic = ["version"] +description = "" +readme = "README.md" +authors = [ + { name = "Greyson Lalonde", email = "greyson.r.lalonde@gmail.com" } +] +keywords = [ + "crewai", + "ai", + "agents", + "framework", + "orchestration", + "llm", + "core", + "typed", +] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", +] +requires-python = ">=3.10, <3.14" +dependencies = [ + # Core Dependencies + "crewai", + "pydantic>=2.11.9", + "openai>=1.13.3", + "litellm==1.74.9", + "instructor>=1.3.3", + # Text Processing + "pdfplumber>=0.11.4", + "regex>=2024.9.11", + # Telemetry and Monitoring + "opentelemetry-api>=1.30.0", + "opentelemetry-sdk>=1.30.0", + "opentelemetry-exporter-otlp-proto-http>=1.30.0", + "tokenizers>=0.20.3", + "openpyxl>=3.1.5", + "pyvis>=0.3.2", + # Authentication and Security + "python-dotenv>=1.1.1", + "pyjwt>=2.9.0", + # Configuration and Utils + "click>=8.1.7", + "appdirs>=1.4.4", + "jsonref>=1.1.0", + "json-repair==0.25.2", + "tomli-w>=1.1.0", + "tomli>=2.0.2", + "blinker>=1.9.0", + "json5>=0.10.0", + "portalocker==2.7.0", + "chromadb~=1.1.0", + "pydantic-settings>=2.10.1", + "uv>=0.4.25", +] + +[project.optional-dependencies] +tools = [ + "crewai-tools", +] +embeddings = [ + "tiktoken~=0.8.0" +] +pdfplumber = [ + "pdfplumber>=0.11.4", +] +pandas = [ + "pandas>=2.2.3", +] +openpyxl = [ + "openpyxl>=3.1.5", +] +mem0 = ["mem0ai>=0.1.94"] +docling = [ + "docling>=2.12.0", +] +aisuite = [ + "aisuite>=0.1.10", +] +qdrant = [ + "qdrant-client[fastembed]>=1.14.3", +] +aws = [ + "boto3>=1.40.38", +] +watson = [ + "ibm-watsonx-ai>=1.3.39", +] +voyageai = [ + "voyageai>=0.3.5", +] + +[project.scripts] +crewai = "crewai.cli.cli:crewai" + +[project.urls] +Homepage = "https://crewai.com" +Documentation = "https://docs.crewai.com" +Repository = "https://github.com/crewAIInc/crewAI" + + +[tool.pytest.ini_options] +testpaths = ["tests"] +asyncio_mode = "strict" +asyncio_default_fixture_loop_scope = "function" + + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.version] +path = "src/crewai/__init__.py" + +[tool.hatch.build.targets.wheel] +packages = ["src/crewai"] diff --git a/src/crewai/__init__.py b/lib/crewai/src/crewai/__init__.py similarity index 100% rename from src/crewai/__init__.py rename to lib/crewai/src/crewai/__init__.py diff --git a/src/crewai/agent.py b/lib/crewai/src/crewai/agent.py similarity index 100% rename from src/crewai/agent.py rename to lib/crewai/src/crewai/agent.py diff --git a/src/crewai/agents/__init__.py b/lib/crewai/src/crewai/agents/__init__.py similarity index 100% rename from src/crewai/agents/__init__.py rename to lib/crewai/src/crewai/agents/__init__.py diff --git a/lib/core/src/crewai/core/rag/chromadb/__init__.py b/lib/crewai/src/crewai/agents/agent_adapters/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/__init__.py rename to lib/crewai/src/crewai/agents/agent_adapters/__init__.py diff --git a/src/crewai/agents/agent_adapters/base_agent_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/base_agent_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/base_agent_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/base_agent_adapter.py diff --git a/src/crewai/agents/agent_adapters/base_converter_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/base_converter_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/base_converter_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/base_converter_adapter.py diff --git a/src/crewai/agents/agent_adapters/base_tool_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/base_tool_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/base_tool_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/base_tool_adapter.py diff --git a/src/crewai/agents/agent_adapters/langgraph/__init__.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/__init__.py similarity index 100% rename from src/crewai/agents/agent_adapters/langgraph/__init__.py rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/__init__.py diff --git a/src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py diff --git a/src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py diff --git a/src/crewai/agents/agent_adapters/langgraph/protocols.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/protocols.py similarity index 100% rename from src/crewai/agents/agent_adapters/langgraph/protocols.py rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/protocols.py diff --git a/src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py similarity index 100% rename from src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py diff --git a/src/crewai/agents/agent_adapters/openai_agents/__init__.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/__init__.py similarity index 100% rename from src/crewai/agents/agent_adapters/openai_agents/__init__.py rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/__init__.py diff --git a/src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py diff --git a/src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py similarity index 100% rename from src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py diff --git a/src/crewai/agents/agent_adapters/openai_agents/protocols.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/protocols.py similarity index 100% rename from src/crewai/agents/agent_adapters/openai_agents/protocols.py rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/protocols.py diff --git a/src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py similarity index 100% rename from src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py diff --git a/lib/core/tests/__init__.py b/lib/crewai/src/crewai/agents/agent_builder/__init__.py similarity index 100% rename from lib/core/tests/__init__.py rename to lib/crewai/src/crewai/agents/agent_builder/__init__.py diff --git a/src/crewai/agents/agent_builder/base_agent.py b/lib/crewai/src/crewai/agents/agent_builder/base_agent.py similarity index 100% rename from src/crewai/agents/agent_builder/base_agent.py rename to lib/crewai/src/crewai/agents/agent_builder/base_agent.py diff --git a/src/crewai/agents/agent_builder/base_agent_executor_mixin.py b/lib/crewai/src/crewai/agents/agent_builder/base_agent_executor_mixin.py similarity index 100% rename from src/crewai/agents/agent_builder/base_agent_executor_mixin.py rename to lib/crewai/src/crewai/agents/agent_builder/base_agent_executor_mixin.py diff --git a/src/crewai/agents/agent_adapters/__init__.py b/lib/crewai/src/crewai/agents/agent_builder/utilities/__init__.py similarity index 100% rename from src/crewai/agents/agent_adapters/__init__.py rename to lib/crewai/src/crewai/agents/agent_builder/utilities/__init__.py diff --git a/src/crewai/agents/agent_builder/utilities/base_output_converter.py b/lib/crewai/src/crewai/agents/agent_builder/utilities/base_output_converter.py similarity index 100% rename from src/crewai/agents/agent_builder/utilities/base_output_converter.py rename to lib/crewai/src/crewai/agents/agent_builder/utilities/base_output_converter.py diff --git a/src/crewai/agents/agent_builder/utilities/base_token_process.py b/lib/crewai/src/crewai/agents/agent_builder/utilities/base_token_process.py similarity index 100% rename from src/crewai/agents/agent_builder/utilities/base_token_process.py rename to lib/crewai/src/crewai/agents/agent_builder/utilities/base_token_process.py diff --git a/src/crewai/agents/cache/__init__.py b/lib/crewai/src/crewai/agents/cache/__init__.py similarity index 100% rename from src/crewai/agents/cache/__init__.py rename to lib/crewai/src/crewai/agents/cache/__init__.py diff --git a/src/crewai/agents/cache/cache_handler.py b/lib/crewai/src/crewai/agents/cache/cache_handler.py similarity index 100% rename from src/crewai/agents/cache/cache_handler.py rename to lib/crewai/src/crewai/agents/cache/cache_handler.py diff --git a/src/crewai/agents/constants.py b/lib/crewai/src/crewai/agents/constants.py similarity index 100% rename from src/crewai/agents/constants.py rename to lib/crewai/src/crewai/agents/constants.py diff --git a/src/crewai/agents/crew_agent_executor.py b/lib/crewai/src/crewai/agents/crew_agent_executor.py similarity index 100% rename from src/crewai/agents/crew_agent_executor.py rename to lib/crewai/src/crewai/agents/crew_agent_executor.py diff --git a/src/crewai/agents/parser.py b/lib/crewai/src/crewai/agents/parser.py similarity index 100% rename from src/crewai/agents/parser.py rename to lib/crewai/src/crewai/agents/parser.py diff --git a/src/crewai/agents/tools_handler.py b/lib/crewai/src/crewai/agents/tools_handler.py similarity index 100% rename from src/crewai/agents/tools_handler.py rename to lib/crewai/src/crewai/agents/tools_handler.py diff --git a/src/crewai/agents/agent_builder/__init__.py b/lib/crewai/src/crewai/cli/__init__.py similarity index 100% rename from src/crewai/agents/agent_builder/__init__.py rename to lib/crewai/src/crewai/cli/__init__.py diff --git a/src/crewai/cli/add_crew_to_flow.py b/lib/crewai/src/crewai/cli/add_crew_to_flow.py similarity index 100% rename from src/crewai/cli/add_crew_to_flow.py rename to lib/crewai/src/crewai/cli/add_crew_to_flow.py diff --git a/src/crewai/cli/authentication/__init__.py b/lib/crewai/src/crewai/cli/authentication/__init__.py similarity index 100% rename from src/crewai/cli/authentication/__init__.py rename to lib/crewai/src/crewai/cli/authentication/__init__.py diff --git a/src/crewai/cli/authentication/constants.py b/lib/crewai/src/crewai/cli/authentication/constants.py similarity index 100% rename from src/crewai/cli/authentication/constants.py rename to lib/crewai/src/crewai/cli/authentication/constants.py diff --git a/src/crewai/agents/agent_builder/utilities/__init__.py b/lib/crewai/src/crewai/cli/authentication/providers/__init__.py similarity index 100% rename from src/crewai/agents/agent_builder/utilities/__init__.py rename to lib/crewai/src/crewai/cli/authentication/providers/__init__.py diff --git a/src/crewai/cli/authentication/providers/auth0.py b/lib/crewai/src/crewai/cli/authentication/providers/auth0.py similarity index 100% rename from src/crewai/cli/authentication/providers/auth0.py rename to lib/crewai/src/crewai/cli/authentication/providers/auth0.py diff --git a/src/crewai/cli/authentication/providers/base_provider.py b/lib/crewai/src/crewai/cli/authentication/providers/base_provider.py similarity index 100% rename from src/crewai/cli/authentication/providers/base_provider.py rename to lib/crewai/src/crewai/cli/authentication/providers/base_provider.py diff --git a/src/crewai/cli/authentication/providers/okta.py b/lib/crewai/src/crewai/cli/authentication/providers/okta.py similarity index 100% rename from src/crewai/cli/authentication/providers/okta.py rename to lib/crewai/src/crewai/cli/authentication/providers/okta.py diff --git a/src/crewai/cli/authentication/providers/workos.py b/lib/crewai/src/crewai/cli/authentication/providers/workos.py similarity index 100% rename from src/crewai/cli/authentication/providers/workos.py rename to lib/crewai/src/crewai/cli/authentication/providers/workos.py diff --git a/src/crewai/cli/authentication/token.py b/lib/crewai/src/crewai/cli/authentication/token.py similarity index 100% rename from src/crewai/cli/authentication/token.py rename to lib/crewai/src/crewai/cli/authentication/token.py diff --git a/src/crewai/cli/authentication/utils.py b/lib/crewai/src/crewai/cli/authentication/utils.py similarity index 100% rename from src/crewai/cli/authentication/utils.py rename to lib/crewai/src/crewai/cli/authentication/utils.py diff --git a/src/crewai/cli/cli.py b/lib/crewai/src/crewai/cli/cli.py similarity index 100% rename from src/crewai/cli/cli.py rename to lib/crewai/src/crewai/cli/cli.py diff --git a/src/crewai/cli/command.py b/lib/crewai/src/crewai/cli/command.py similarity index 100% rename from src/crewai/cli/command.py rename to lib/crewai/src/crewai/cli/command.py diff --git a/src/crewai/cli/config.py b/lib/crewai/src/crewai/cli/config.py similarity index 100% rename from src/crewai/cli/config.py rename to lib/crewai/src/crewai/cli/config.py diff --git a/src/crewai/cli/constants.py b/lib/crewai/src/crewai/cli/constants.py similarity index 100% rename from src/crewai/cli/constants.py rename to lib/crewai/src/crewai/cli/constants.py diff --git a/src/crewai/cli/create_crew.py b/lib/crewai/src/crewai/cli/create_crew.py similarity index 100% rename from src/crewai/cli/create_crew.py rename to lib/crewai/src/crewai/cli/create_crew.py diff --git a/src/crewai/cli/create_flow.py b/lib/crewai/src/crewai/cli/create_flow.py similarity index 100% rename from src/crewai/cli/create_flow.py rename to lib/crewai/src/crewai/cli/create_flow.py diff --git a/src/crewai/cli/crew_chat.py b/lib/crewai/src/crewai/cli/crew_chat.py similarity index 100% rename from src/crewai/cli/crew_chat.py rename to lib/crewai/src/crewai/cli/crew_chat.py diff --git a/src/crewai/cli/__init__.py b/lib/crewai/src/crewai/cli/deploy/__init__.py similarity index 100% rename from src/crewai/cli/__init__.py rename to lib/crewai/src/crewai/cli/deploy/__init__.py diff --git a/src/crewai/cli/authentication/providers/__init__.py b/lib/crewai/src/crewai/cli/enterprise/__init__.py similarity index 100% rename from src/crewai/cli/authentication/providers/__init__.py rename to lib/crewai/src/crewai/cli/enterprise/__init__.py diff --git a/src/crewai/cli/evaluate_crew.py b/lib/crewai/src/crewai/cli/evaluate_crew.py similarity index 100% rename from src/crewai/cli/evaluate_crew.py rename to lib/crewai/src/crewai/cli/evaluate_crew.py diff --git a/src/crewai/cli/git.py b/lib/crewai/src/crewai/cli/git.py similarity index 100% rename from src/crewai/cli/git.py rename to lib/crewai/src/crewai/cli/git.py diff --git a/src/crewai/cli/install_crew.py b/lib/crewai/src/crewai/cli/install_crew.py similarity index 100% rename from src/crewai/cli/install_crew.py rename to lib/crewai/src/crewai/cli/install_crew.py diff --git a/src/crewai/cli/kickoff_flow.py b/lib/crewai/src/crewai/cli/kickoff_flow.py similarity index 100% rename from src/crewai/cli/kickoff_flow.py rename to lib/crewai/src/crewai/cli/kickoff_flow.py diff --git a/src/crewai/cli/organization/__init__.py b/lib/crewai/src/crewai/cli/organization/__init__.py similarity index 100% rename from src/crewai/cli/organization/__init__.py rename to lib/crewai/src/crewai/cli/organization/__init__.py diff --git a/src/crewai/cli/plot_flow.py b/lib/crewai/src/crewai/cli/plot_flow.py similarity index 100% rename from src/crewai/cli/plot_flow.py rename to lib/crewai/src/crewai/cli/plot_flow.py diff --git a/src/crewai/cli/plus_api.py b/lib/crewai/src/crewai/cli/plus_api.py similarity index 100% rename from src/crewai/cli/plus_api.py rename to lib/crewai/src/crewai/cli/plus_api.py diff --git a/src/crewai/cli/provider.py b/lib/crewai/src/crewai/cli/provider.py similarity index 100% rename from src/crewai/cli/provider.py rename to lib/crewai/src/crewai/cli/provider.py diff --git a/src/crewai/cli/replay_from_task.py b/lib/crewai/src/crewai/cli/replay_from_task.py similarity index 100% rename from src/crewai/cli/replay_from_task.py rename to lib/crewai/src/crewai/cli/replay_from_task.py diff --git a/src/crewai/cli/reset_memories_command.py b/lib/crewai/src/crewai/cli/reset_memories_command.py similarity index 100% rename from src/crewai/cli/reset_memories_command.py rename to lib/crewai/src/crewai/cli/reset_memories_command.py diff --git a/src/crewai/cli/run_crew.py b/lib/crewai/src/crewai/cli/run_crew.py similarity index 100% rename from src/crewai/cli/run_crew.py rename to lib/crewai/src/crewai/cli/run_crew.py diff --git a/src/crewai/cli/deploy/__init__.py b/lib/crewai/src/crewai/cli/settings/__init__.py similarity index 100% rename from src/crewai/cli/deploy/__init__.py rename to lib/crewai/src/crewai/cli/settings/__init__.py diff --git a/src/crewai/cli/enterprise/__init__.py b/lib/crewai/src/crewai/cli/shared/__init__.py similarity index 100% rename from src/crewai/cli/enterprise/__init__.py rename to lib/crewai/src/crewai/cli/shared/__init__.py diff --git a/src/crewai/cli/shared/token_manager.py b/lib/crewai/src/crewai/cli/shared/token_manager.py similarity index 100% rename from src/crewai/cli/shared/token_manager.py rename to lib/crewai/src/crewai/cli/shared/token_manager.py diff --git a/src/crewai/cli/settings/__init__.py b/lib/crewai/src/crewai/cli/templates/__init__.py similarity index 100% rename from src/crewai/cli/settings/__init__.py rename to lib/crewai/src/crewai/cli/templates/__init__.py diff --git a/src/crewai/cli/templates/crew/.gitignore b/lib/crewai/src/crewai/cli/templates/crew/.gitignore similarity index 100% rename from src/crewai/cli/templates/crew/.gitignore rename to lib/crewai/src/crewai/cli/templates/crew/.gitignore diff --git a/src/crewai/cli/templates/crew/README.md b/lib/crewai/src/crewai/cli/templates/crew/README.md similarity index 100% rename from src/crewai/cli/templates/crew/README.md rename to lib/crewai/src/crewai/cli/templates/crew/README.md diff --git a/src/crewai/cli/shared/__init__.py b/lib/crewai/src/crewai/cli/templates/crew/__init__.py similarity index 100% rename from src/crewai/cli/shared/__init__.py rename to lib/crewai/src/crewai/cli/templates/crew/__init__.py diff --git a/src/crewai/cli/templates/crew/config/agents.yaml b/lib/crewai/src/crewai/cli/templates/crew/config/agents.yaml similarity index 100% rename from src/crewai/cli/templates/crew/config/agents.yaml rename to lib/crewai/src/crewai/cli/templates/crew/config/agents.yaml diff --git a/src/crewai/cli/templates/crew/config/tasks.yaml b/lib/crewai/src/crewai/cli/templates/crew/config/tasks.yaml similarity index 100% rename from src/crewai/cli/templates/crew/config/tasks.yaml rename to lib/crewai/src/crewai/cli/templates/crew/config/tasks.yaml diff --git a/src/crewai/cli/templates/crew/crew.py b/lib/crewai/src/crewai/cli/templates/crew/crew.py similarity index 100% rename from src/crewai/cli/templates/crew/crew.py rename to lib/crewai/src/crewai/cli/templates/crew/crew.py diff --git a/src/crewai/cli/templates/crew/knowledge/user_preference.txt b/lib/crewai/src/crewai/cli/templates/crew/knowledge/user_preference.txt similarity index 100% rename from src/crewai/cli/templates/crew/knowledge/user_preference.txt rename to lib/crewai/src/crewai/cli/templates/crew/knowledge/user_preference.txt diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml similarity index 100% rename from src/crewai/cli/templates/crew/pyproject.toml rename to lib/crewai/src/crewai/cli/templates/crew/pyproject.toml diff --git a/src/crewai/cli/templates/__init__.py b/lib/crewai/src/crewai/cli/templates/crew/tools/__init__.py similarity index 100% rename from src/crewai/cli/templates/__init__.py rename to lib/crewai/src/crewai/cli/templates/crew/tools/__init__.py diff --git a/src/crewai/cli/templates/crew/tools/custom_tool.py b/lib/crewai/src/crewai/cli/templates/crew/tools/custom_tool.py similarity index 100% rename from src/crewai/cli/templates/crew/tools/custom_tool.py rename to lib/crewai/src/crewai/cli/templates/crew/tools/custom_tool.py diff --git a/src/crewai/cli/templates/flow/.gitignore b/lib/crewai/src/crewai/cli/templates/flow/.gitignore similarity index 100% rename from src/crewai/cli/templates/flow/.gitignore rename to lib/crewai/src/crewai/cli/templates/flow/.gitignore diff --git a/src/crewai/cli/templates/flow/README.md b/lib/crewai/src/crewai/cli/templates/flow/README.md similarity index 100% rename from src/crewai/cli/templates/flow/README.md rename to lib/crewai/src/crewai/cli/templates/flow/README.md diff --git a/src/crewai/cli/templates/crew/__init__.py b/lib/crewai/src/crewai/cli/templates/flow/__init__.py similarity index 100% rename from src/crewai/cli/templates/crew/__init__.py rename to lib/crewai/src/crewai/cli/templates/flow/__init__.py diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/__init__.py b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/__init__.py similarity index 100% rename from src/crewai/cli/templates/flow/crews/poem_crew/__init__.py rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/__init__.py diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml similarity index 100% rename from src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml similarity index 100% rename from src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py similarity index 100% rename from src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml similarity index 100% rename from src/crewai/cli/templates/flow/pyproject.toml rename to lib/crewai/src/crewai/cli/templates/flow/pyproject.toml diff --git a/src/crewai/cli/templates/crew/tools/__init__.py b/lib/crewai/src/crewai/cli/templates/flow/tools/__init__.py similarity index 100% rename from src/crewai/cli/templates/crew/tools/__init__.py rename to lib/crewai/src/crewai/cli/templates/flow/tools/__init__.py diff --git a/src/crewai/cli/templates/flow/tools/custom_tool.py b/lib/crewai/src/crewai/cli/templates/flow/tools/custom_tool.py similarity index 100% rename from src/crewai/cli/templates/flow/tools/custom_tool.py rename to lib/crewai/src/crewai/cli/templates/flow/tools/custom_tool.py diff --git a/src/crewai/cli/templates/tool/.gitignore b/lib/crewai/src/crewai/cli/templates/tool/.gitignore similarity index 100% rename from src/crewai/cli/templates/tool/.gitignore rename to lib/crewai/src/crewai/cli/templates/tool/.gitignore diff --git a/src/crewai/cli/templates/tool/README.md b/lib/crewai/src/crewai/cli/templates/tool/README.md similarity index 100% rename from src/crewai/cli/templates/tool/README.md rename to lib/crewai/src/crewai/cli/templates/tool/README.md diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/lib/crewai/src/crewai/cli/templates/tool/pyproject.toml similarity index 100% rename from src/crewai/cli/templates/tool/pyproject.toml rename to lib/crewai/src/crewai/cli/templates/tool/pyproject.toml diff --git a/src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py b/lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py similarity index 100% rename from src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py rename to lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py diff --git a/src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py b/lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py similarity index 100% rename from src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py rename to lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py diff --git a/src/crewai/cli/templates/flow/__init__.py b/lib/crewai/src/crewai/cli/tools/__init__.py similarity index 100% rename from src/crewai/cli/templates/flow/__init__.py rename to lib/crewai/src/crewai/cli/tools/__init__.py diff --git a/src/crewai/cli/train_crew.py b/lib/crewai/src/crewai/cli/train_crew.py similarity index 100% rename from src/crewai/cli/train_crew.py rename to lib/crewai/src/crewai/cli/train_crew.py diff --git a/src/crewai/cli/update_crew.py b/lib/crewai/src/crewai/cli/update_crew.py similarity index 100% rename from src/crewai/cli/update_crew.py rename to lib/crewai/src/crewai/cli/update_crew.py diff --git a/src/crewai/cli/utils.py b/lib/crewai/src/crewai/cli/utils.py similarity index 100% rename from src/crewai/cli/utils.py rename to lib/crewai/src/crewai/cli/utils.py diff --git a/src/crewai/cli/version.py b/lib/crewai/src/crewai/cli/version.py similarity index 100% rename from src/crewai/cli/version.py rename to lib/crewai/src/crewai/cli/version.py diff --git a/src/crewai/context.py b/lib/crewai/src/crewai/context.py similarity index 100% rename from src/crewai/context.py rename to lib/crewai/src/crewai/context.py diff --git a/src/crewai/crew.py b/lib/crewai/src/crewai/crew.py similarity index 100% rename from src/crewai/crew.py rename to lib/crewai/src/crewai/crew.py diff --git a/src/crewai/crews/__init__.py b/lib/crewai/src/crewai/crews/__init__.py similarity index 100% rename from src/crewai/crews/__init__.py rename to lib/crewai/src/crewai/crews/__init__.py diff --git a/src/crewai/crews/crew_output.py b/lib/crewai/src/crewai/crews/crew_output.py similarity index 100% rename from src/crewai/crews/crew_output.py rename to lib/crewai/src/crewai/crews/crew_output.py diff --git a/src/crewai/events/__init__.py b/lib/crewai/src/crewai/events/__init__.py similarity index 100% rename from src/crewai/events/__init__.py rename to lib/crewai/src/crewai/events/__init__.py diff --git a/src/crewai/events/base_event_listener.py b/lib/crewai/src/crewai/events/base_event_listener.py similarity index 100% rename from src/crewai/events/base_event_listener.py rename to lib/crewai/src/crewai/events/base_event_listener.py diff --git a/src/crewai/events/base_events.py b/lib/crewai/src/crewai/events/base_events.py similarity index 100% rename from src/crewai/events/base_events.py rename to lib/crewai/src/crewai/events/base_events.py diff --git a/src/crewai/events/event_bus.py b/lib/crewai/src/crewai/events/event_bus.py similarity index 100% rename from src/crewai/events/event_bus.py rename to lib/crewai/src/crewai/events/event_bus.py diff --git a/src/crewai/events/event_listener.py b/lib/crewai/src/crewai/events/event_listener.py similarity index 100% rename from src/crewai/events/event_listener.py rename to lib/crewai/src/crewai/events/event_listener.py diff --git a/src/crewai/events/event_types.py b/lib/crewai/src/crewai/events/event_types.py similarity index 100% rename from src/crewai/events/event_types.py rename to lib/crewai/src/crewai/events/event_types.py diff --git a/src/crewai/events/listeners/__init__.py b/lib/crewai/src/crewai/events/listeners/__init__.py similarity index 100% rename from src/crewai/events/listeners/__init__.py rename to lib/crewai/src/crewai/events/listeners/__init__.py diff --git a/src/crewai/events/listeners/memory_listener.py b/lib/crewai/src/crewai/events/listeners/memory_listener.py similarity index 100% rename from src/crewai/events/listeners/memory_listener.py rename to lib/crewai/src/crewai/events/listeners/memory_listener.py diff --git a/src/crewai/cli/templates/flow/tools/__init__.py b/lib/crewai/src/crewai/events/listeners/tracing/__init__.py similarity index 100% rename from src/crewai/cli/templates/flow/tools/__init__.py rename to lib/crewai/src/crewai/events/listeners/tracing/__init__.py diff --git a/src/crewai/events/listeners/tracing/first_time_trace_handler.py b/lib/crewai/src/crewai/events/listeners/tracing/first_time_trace_handler.py similarity index 100% rename from src/crewai/events/listeners/tracing/first_time_trace_handler.py rename to lib/crewai/src/crewai/events/listeners/tracing/first_time_trace_handler.py diff --git a/src/crewai/events/listeners/tracing/trace_batch_manager.py b/lib/crewai/src/crewai/events/listeners/tracing/trace_batch_manager.py similarity index 100% rename from src/crewai/events/listeners/tracing/trace_batch_manager.py rename to lib/crewai/src/crewai/events/listeners/tracing/trace_batch_manager.py diff --git a/src/crewai/events/listeners/tracing/trace_listener.py b/lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py similarity index 100% rename from src/crewai/events/listeners/tracing/trace_listener.py rename to lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py diff --git a/src/crewai/events/listeners/tracing/types.py b/lib/crewai/src/crewai/events/listeners/tracing/types.py similarity index 100% rename from src/crewai/events/listeners/tracing/types.py rename to lib/crewai/src/crewai/events/listeners/tracing/types.py diff --git a/src/crewai/events/listeners/tracing/utils.py b/lib/crewai/src/crewai/events/listeners/tracing/utils.py similarity index 100% rename from src/crewai/events/listeners/tracing/utils.py rename to lib/crewai/src/crewai/events/listeners/tracing/utils.py diff --git a/src/crewai/events/types/__init__.py b/lib/crewai/src/crewai/events/types/__init__.py similarity index 100% rename from src/crewai/events/types/__init__.py rename to lib/crewai/src/crewai/events/types/__init__.py diff --git a/src/crewai/events/types/agent_events.py b/lib/crewai/src/crewai/events/types/agent_events.py similarity index 100% rename from src/crewai/events/types/agent_events.py rename to lib/crewai/src/crewai/events/types/agent_events.py diff --git a/src/crewai/events/types/crew_events.py b/lib/crewai/src/crewai/events/types/crew_events.py similarity index 100% rename from src/crewai/events/types/crew_events.py rename to lib/crewai/src/crewai/events/types/crew_events.py diff --git a/src/crewai/events/types/flow_events.py b/lib/crewai/src/crewai/events/types/flow_events.py similarity index 100% rename from src/crewai/events/types/flow_events.py rename to lib/crewai/src/crewai/events/types/flow_events.py diff --git a/src/crewai/events/types/knowledge_events.py b/lib/crewai/src/crewai/events/types/knowledge_events.py similarity index 100% rename from src/crewai/events/types/knowledge_events.py rename to lib/crewai/src/crewai/events/types/knowledge_events.py diff --git a/src/crewai/events/types/llm_events.py b/lib/crewai/src/crewai/events/types/llm_events.py similarity index 100% rename from src/crewai/events/types/llm_events.py rename to lib/crewai/src/crewai/events/types/llm_events.py diff --git a/src/crewai/events/types/llm_guardrail_events.py b/lib/crewai/src/crewai/events/types/llm_guardrail_events.py similarity index 100% rename from src/crewai/events/types/llm_guardrail_events.py rename to lib/crewai/src/crewai/events/types/llm_guardrail_events.py diff --git a/src/crewai/events/types/logging_events.py b/lib/crewai/src/crewai/events/types/logging_events.py similarity index 100% rename from src/crewai/events/types/logging_events.py rename to lib/crewai/src/crewai/events/types/logging_events.py diff --git a/src/crewai/events/types/memory_events.py b/lib/crewai/src/crewai/events/types/memory_events.py similarity index 100% rename from src/crewai/events/types/memory_events.py rename to lib/crewai/src/crewai/events/types/memory_events.py diff --git a/src/crewai/events/types/reasoning_events.py b/lib/crewai/src/crewai/events/types/reasoning_events.py similarity index 100% rename from src/crewai/events/types/reasoning_events.py rename to lib/crewai/src/crewai/events/types/reasoning_events.py diff --git a/src/crewai/events/types/task_events.py b/lib/crewai/src/crewai/events/types/task_events.py similarity index 100% rename from src/crewai/events/types/task_events.py rename to lib/crewai/src/crewai/events/types/task_events.py diff --git a/src/crewai/events/types/tool_usage_events.py b/lib/crewai/src/crewai/events/types/tool_usage_events.py similarity index 100% rename from src/crewai/events/types/tool_usage_events.py rename to lib/crewai/src/crewai/events/types/tool_usage_events.py diff --git a/src/crewai/events/utils/__init__.py b/lib/crewai/src/crewai/events/utils/__init__.py similarity index 100% rename from src/crewai/events/utils/__init__.py rename to lib/crewai/src/crewai/events/utils/__init__.py diff --git a/src/crewai/events/utils/console_formatter.py b/lib/crewai/src/crewai/events/utils/console_formatter.py similarity index 100% rename from src/crewai/events/utils/console_formatter.py rename to lib/crewai/src/crewai/events/utils/console_formatter.py diff --git a/src/crewai/experimental/__init__.py b/lib/crewai/src/crewai/experimental/__init__.py similarity index 100% rename from src/crewai/experimental/__init__.py rename to lib/crewai/src/crewai/experimental/__init__.py diff --git a/src/crewai/experimental/evaluation/__init__.py b/lib/crewai/src/crewai/experimental/evaluation/__init__.py similarity index 100% rename from src/crewai/experimental/evaluation/__init__.py rename to lib/crewai/src/crewai/experimental/evaluation/__init__.py diff --git a/src/crewai/experimental/evaluation/agent_evaluator.py b/lib/crewai/src/crewai/experimental/evaluation/agent_evaluator.py similarity index 100% rename from src/crewai/experimental/evaluation/agent_evaluator.py rename to lib/crewai/src/crewai/experimental/evaluation/agent_evaluator.py diff --git a/src/crewai/experimental/evaluation/base_evaluator.py b/lib/crewai/src/crewai/experimental/evaluation/base_evaluator.py similarity index 100% rename from src/crewai/experimental/evaluation/base_evaluator.py rename to lib/crewai/src/crewai/experimental/evaluation/base_evaluator.py diff --git a/src/crewai/experimental/evaluation/evaluation_display.py b/lib/crewai/src/crewai/experimental/evaluation/evaluation_display.py similarity index 100% rename from src/crewai/experimental/evaluation/evaluation_display.py rename to lib/crewai/src/crewai/experimental/evaluation/evaluation_display.py diff --git a/src/crewai/experimental/evaluation/evaluation_listener.py b/lib/crewai/src/crewai/experimental/evaluation/evaluation_listener.py similarity index 100% rename from src/crewai/experimental/evaluation/evaluation_listener.py rename to lib/crewai/src/crewai/experimental/evaluation/evaluation_listener.py diff --git a/src/crewai/experimental/evaluation/experiment/__init__.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/__init__.py similarity index 100% rename from src/crewai/experimental/evaluation/experiment/__init__.py rename to lib/crewai/src/crewai/experimental/evaluation/experiment/__init__.py diff --git a/src/crewai/experimental/evaluation/experiment/result.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/result.py similarity index 100% rename from src/crewai/experimental/evaluation/experiment/result.py rename to lib/crewai/src/crewai/experimental/evaluation/experiment/result.py diff --git a/src/crewai/experimental/evaluation/experiment/result_display.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/result_display.py similarity index 100% rename from src/crewai/experimental/evaluation/experiment/result_display.py rename to lib/crewai/src/crewai/experimental/evaluation/experiment/result_display.py diff --git a/src/crewai/experimental/evaluation/experiment/runner.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/runner.py similarity index 100% rename from src/crewai/experimental/evaluation/experiment/runner.py rename to lib/crewai/src/crewai/experimental/evaluation/experiment/runner.py diff --git a/src/crewai/experimental/evaluation/json_parser.py b/lib/crewai/src/crewai/experimental/evaluation/json_parser.py similarity index 100% rename from src/crewai/experimental/evaluation/json_parser.py rename to lib/crewai/src/crewai/experimental/evaluation/json_parser.py diff --git a/src/crewai/experimental/evaluation/metrics/__init__.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/__init__.py similarity index 100% rename from src/crewai/experimental/evaluation/metrics/__init__.py rename to lib/crewai/src/crewai/experimental/evaluation/metrics/__init__.py diff --git a/src/crewai/experimental/evaluation/metrics/goal_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/goal_metrics.py similarity index 100% rename from src/crewai/experimental/evaluation/metrics/goal_metrics.py rename to lib/crewai/src/crewai/experimental/evaluation/metrics/goal_metrics.py diff --git a/src/crewai/experimental/evaluation/metrics/reasoning_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/reasoning_metrics.py similarity index 100% rename from src/crewai/experimental/evaluation/metrics/reasoning_metrics.py rename to lib/crewai/src/crewai/experimental/evaluation/metrics/reasoning_metrics.py diff --git a/src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py similarity index 100% rename from src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py rename to lib/crewai/src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py diff --git a/src/crewai/experimental/evaluation/metrics/tools_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/tools_metrics.py similarity index 100% rename from src/crewai/experimental/evaluation/metrics/tools_metrics.py rename to lib/crewai/src/crewai/experimental/evaluation/metrics/tools_metrics.py diff --git a/src/crewai/experimental/evaluation/testing.py b/lib/crewai/src/crewai/experimental/evaluation/testing.py similarity index 100% rename from src/crewai/experimental/evaluation/testing.py rename to lib/crewai/src/crewai/experimental/evaluation/testing.py diff --git a/src/crewai/flow/__init__.py b/lib/crewai/src/crewai/flow/__init__.py similarity index 100% rename from src/crewai/flow/__init__.py rename to lib/crewai/src/crewai/flow/__init__.py diff --git a/src/crewai/flow/assets/crewai_flow_visual_template.html b/lib/crewai/src/crewai/flow/assets/crewai_flow_visual_template.html similarity index 100% rename from src/crewai/flow/assets/crewai_flow_visual_template.html rename to lib/crewai/src/crewai/flow/assets/crewai_flow_visual_template.html diff --git a/src/crewai/flow/assets/crewai_logo.svg b/lib/crewai/src/crewai/flow/assets/crewai_logo.svg similarity index 100% rename from src/crewai/flow/assets/crewai_logo.svg rename to lib/crewai/src/crewai/flow/assets/crewai_logo.svg diff --git a/src/crewai/flow/config.py b/lib/crewai/src/crewai/flow/config.py similarity index 100% rename from src/crewai/flow/config.py rename to lib/crewai/src/crewai/flow/config.py diff --git a/src/crewai/flow/flow.py b/lib/crewai/src/crewai/flow/flow.py similarity index 100% rename from src/crewai/flow/flow.py rename to lib/crewai/src/crewai/flow/flow.py diff --git a/src/crewai/flow/flow_trackable.py b/lib/crewai/src/crewai/flow/flow_trackable.py similarity index 100% rename from src/crewai/flow/flow_trackable.py rename to lib/crewai/src/crewai/flow/flow_trackable.py diff --git a/src/crewai/flow/flow_visualizer.py b/lib/crewai/src/crewai/flow/flow_visualizer.py similarity index 100% rename from src/crewai/flow/flow_visualizer.py rename to lib/crewai/src/crewai/flow/flow_visualizer.py diff --git a/src/crewai/flow/html_template_handler.py b/lib/crewai/src/crewai/flow/html_template_handler.py similarity index 100% rename from src/crewai/flow/html_template_handler.py rename to lib/crewai/src/crewai/flow/html_template_handler.py diff --git a/src/crewai/flow/legend_generator.py b/lib/crewai/src/crewai/flow/legend_generator.py similarity index 100% rename from src/crewai/flow/legend_generator.py rename to lib/crewai/src/crewai/flow/legend_generator.py diff --git a/src/crewai/flow/path_utils.py b/lib/crewai/src/crewai/flow/path_utils.py similarity index 100% rename from src/crewai/flow/path_utils.py rename to lib/crewai/src/crewai/flow/path_utils.py diff --git a/src/crewai/flow/persistence/__init__.py b/lib/crewai/src/crewai/flow/persistence/__init__.py similarity index 100% rename from src/crewai/flow/persistence/__init__.py rename to lib/crewai/src/crewai/flow/persistence/__init__.py diff --git a/src/crewai/flow/persistence/base.py b/lib/crewai/src/crewai/flow/persistence/base.py similarity index 100% rename from src/crewai/flow/persistence/base.py rename to lib/crewai/src/crewai/flow/persistence/base.py diff --git a/src/crewai/flow/persistence/decorators.py b/lib/crewai/src/crewai/flow/persistence/decorators.py similarity index 100% rename from src/crewai/flow/persistence/decorators.py rename to lib/crewai/src/crewai/flow/persistence/decorators.py diff --git a/src/crewai/flow/persistence/sqlite.py b/lib/crewai/src/crewai/flow/persistence/sqlite.py similarity index 100% rename from src/crewai/flow/persistence/sqlite.py rename to lib/crewai/src/crewai/flow/persistence/sqlite.py diff --git a/src/crewai/flow/types.py b/lib/crewai/src/crewai/flow/types.py similarity index 100% rename from src/crewai/flow/types.py rename to lib/crewai/src/crewai/flow/types.py diff --git a/src/crewai/flow/utils.py b/lib/crewai/src/crewai/flow/utils.py similarity index 100% rename from src/crewai/flow/utils.py rename to lib/crewai/src/crewai/flow/utils.py diff --git a/src/crewai/flow/visualization_utils.py b/lib/crewai/src/crewai/flow/visualization_utils.py similarity index 100% rename from src/crewai/flow/visualization_utils.py rename to lib/crewai/src/crewai/flow/visualization_utils.py diff --git a/src/crewai/cli/tools/__init__.py b/lib/crewai/src/crewai/knowledge/__init__.py similarity index 100% rename from src/crewai/cli/tools/__init__.py rename to lib/crewai/src/crewai/knowledge/__init__.py diff --git a/src/crewai/knowledge/knowledge.py b/lib/crewai/src/crewai/knowledge/knowledge.py similarity index 100% rename from src/crewai/knowledge/knowledge.py rename to lib/crewai/src/crewai/knowledge/knowledge.py diff --git a/src/crewai/knowledge/knowledge_config.py b/lib/crewai/src/crewai/knowledge/knowledge_config.py similarity index 100% rename from src/crewai/knowledge/knowledge_config.py rename to lib/crewai/src/crewai/knowledge/knowledge_config.py diff --git a/src/crewai/events/listeners/tracing/__init__.py b/lib/crewai/src/crewai/knowledge/source/__init__.py similarity index 100% rename from src/crewai/events/listeners/tracing/__init__.py rename to lib/crewai/src/crewai/knowledge/source/__init__.py diff --git a/src/crewai/knowledge/source/base_file_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/base_file_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/base_file_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/base_file_knowledge_source.py diff --git a/src/crewai/knowledge/source/base_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/base_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/base_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/base_knowledge_source.py diff --git a/src/crewai/knowledge/source/crew_docling_source.py b/lib/crewai/src/crewai/knowledge/source/crew_docling_source.py similarity index 100% rename from src/crewai/knowledge/source/crew_docling_source.py rename to lib/crewai/src/crewai/knowledge/source/crew_docling_source.py diff --git a/src/crewai/knowledge/source/csv_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/csv_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/csv_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/csv_knowledge_source.py diff --git a/src/crewai/knowledge/source/excel_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/excel_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/excel_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/excel_knowledge_source.py diff --git a/src/crewai/knowledge/source/json_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/json_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/json_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/json_knowledge_source.py diff --git a/src/crewai/knowledge/source/pdf_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/pdf_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/pdf_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/pdf_knowledge_source.py diff --git a/src/crewai/knowledge/source/string_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/string_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/string_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/string_knowledge_source.py diff --git a/src/crewai/knowledge/source/text_file_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/text_file_knowledge_source.py similarity index 100% rename from src/crewai/knowledge/source/text_file_knowledge_source.py rename to lib/crewai/src/crewai/knowledge/source/text_file_knowledge_source.py diff --git a/src/crewai/knowledge/__init__.py b/lib/crewai/src/crewai/knowledge/storage/__init__.py similarity index 100% rename from src/crewai/knowledge/__init__.py rename to lib/crewai/src/crewai/knowledge/storage/__init__.py diff --git a/src/crewai/knowledge/storage/base_knowledge_storage.py b/lib/crewai/src/crewai/knowledge/storage/base_knowledge_storage.py similarity index 100% rename from src/crewai/knowledge/storage/base_knowledge_storage.py rename to lib/crewai/src/crewai/knowledge/storage/base_knowledge_storage.py diff --git a/src/crewai/knowledge/storage/knowledge_storage.py b/lib/crewai/src/crewai/knowledge/storage/knowledge_storage.py similarity index 100% rename from src/crewai/knowledge/storage/knowledge_storage.py rename to lib/crewai/src/crewai/knowledge/storage/knowledge_storage.py diff --git a/src/crewai/knowledge/utils/__init__.py b/lib/crewai/src/crewai/knowledge/utils/__init__.py similarity index 100% rename from src/crewai/knowledge/utils/__init__.py rename to lib/crewai/src/crewai/knowledge/utils/__init__.py diff --git a/src/crewai/knowledge/utils/knowledge_utils.py b/lib/crewai/src/crewai/knowledge/utils/knowledge_utils.py similarity index 100% rename from src/crewai/knowledge/utils/knowledge_utils.py rename to lib/crewai/src/crewai/knowledge/utils/knowledge_utils.py diff --git a/src/crewai/lite_agent.py b/lib/crewai/src/crewai/lite_agent.py similarity index 100% rename from src/crewai/lite_agent.py rename to lib/crewai/src/crewai/lite_agent.py diff --git a/src/crewai/llm.py b/lib/crewai/src/crewai/llm.py similarity index 100% rename from src/crewai/llm.py rename to lib/crewai/src/crewai/llm.py diff --git a/src/crewai/llms/__init__.py b/lib/crewai/src/crewai/llms/__init__.py similarity index 100% rename from src/crewai/llms/__init__.py rename to lib/crewai/src/crewai/llms/__init__.py diff --git a/src/crewai/llms/base_llm.py b/lib/crewai/src/crewai/llms/base_llm.py similarity index 100% rename from src/crewai/llms/base_llm.py rename to lib/crewai/src/crewai/llms/base_llm.py diff --git a/src/crewai/llms/third_party/__init__.py b/lib/crewai/src/crewai/llms/third_party/__init__.py similarity index 100% rename from src/crewai/llms/third_party/__init__.py rename to lib/crewai/src/crewai/llms/third_party/__init__.py diff --git a/src/crewai/llms/third_party/ai_suite.py b/lib/crewai/src/crewai/llms/third_party/ai_suite.py similarity index 100% rename from src/crewai/llms/third_party/ai_suite.py rename to lib/crewai/src/crewai/llms/third_party/ai_suite.py diff --git a/src/crewai/memory/__init__.py b/lib/crewai/src/crewai/memory/__init__.py similarity index 100% rename from src/crewai/memory/__init__.py rename to lib/crewai/src/crewai/memory/__init__.py diff --git a/src/crewai/knowledge/source/__init__.py b/lib/crewai/src/crewai/memory/contextual/__init__.py similarity index 100% rename from src/crewai/knowledge/source/__init__.py rename to lib/crewai/src/crewai/memory/contextual/__init__.py diff --git a/src/crewai/memory/contextual/contextual_memory.py b/lib/crewai/src/crewai/memory/contextual/contextual_memory.py similarity index 100% rename from src/crewai/memory/contextual/contextual_memory.py rename to lib/crewai/src/crewai/memory/contextual/contextual_memory.py diff --git a/src/crewai/knowledge/storage/__init__.py b/lib/crewai/src/crewai/memory/entity/__init__.py similarity index 100% rename from src/crewai/knowledge/storage/__init__.py rename to lib/crewai/src/crewai/memory/entity/__init__.py diff --git a/src/crewai/memory/entity/entity_memory.py b/lib/crewai/src/crewai/memory/entity/entity_memory.py similarity index 100% rename from src/crewai/memory/entity/entity_memory.py rename to lib/crewai/src/crewai/memory/entity/entity_memory.py diff --git a/src/crewai/memory/entity/entity_memory_item.py b/lib/crewai/src/crewai/memory/entity/entity_memory_item.py similarity index 100% rename from src/crewai/memory/entity/entity_memory_item.py rename to lib/crewai/src/crewai/memory/entity/entity_memory_item.py diff --git a/src/crewai/memory/contextual/__init__.py b/lib/crewai/src/crewai/memory/external/__init__.py similarity index 100% rename from src/crewai/memory/contextual/__init__.py rename to lib/crewai/src/crewai/memory/external/__init__.py diff --git a/src/crewai/memory/external/external_memory.py b/lib/crewai/src/crewai/memory/external/external_memory.py similarity index 100% rename from src/crewai/memory/external/external_memory.py rename to lib/crewai/src/crewai/memory/external/external_memory.py diff --git a/src/crewai/memory/external/external_memory_item.py b/lib/crewai/src/crewai/memory/external/external_memory_item.py similarity index 100% rename from src/crewai/memory/external/external_memory_item.py rename to lib/crewai/src/crewai/memory/external/external_memory_item.py diff --git a/src/crewai/memory/entity/__init__.py b/lib/crewai/src/crewai/memory/long_term/__init__.py similarity index 100% rename from src/crewai/memory/entity/__init__.py rename to lib/crewai/src/crewai/memory/long_term/__init__.py diff --git a/src/crewai/memory/long_term/long_term_memory.py b/lib/crewai/src/crewai/memory/long_term/long_term_memory.py similarity index 100% rename from src/crewai/memory/long_term/long_term_memory.py rename to lib/crewai/src/crewai/memory/long_term/long_term_memory.py diff --git a/src/crewai/memory/long_term/long_term_memory_item.py b/lib/crewai/src/crewai/memory/long_term/long_term_memory_item.py similarity index 100% rename from src/crewai/memory/long_term/long_term_memory_item.py rename to lib/crewai/src/crewai/memory/long_term/long_term_memory_item.py diff --git a/src/crewai/memory/memory.py b/lib/crewai/src/crewai/memory/memory.py similarity index 100% rename from src/crewai/memory/memory.py rename to lib/crewai/src/crewai/memory/memory.py diff --git a/src/crewai/memory/external/__init__.py b/lib/crewai/src/crewai/memory/short_term/__init__.py similarity index 100% rename from src/crewai/memory/external/__init__.py rename to lib/crewai/src/crewai/memory/short_term/__init__.py diff --git a/src/crewai/memory/short_term/short_term_memory.py b/lib/crewai/src/crewai/memory/short_term/short_term_memory.py similarity index 100% rename from src/crewai/memory/short_term/short_term_memory.py rename to lib/crewai/src/crewai/memory/short_term/short_term_memory.py diff --git a/src/crewai/memory/short_term/short_term_memory_item.py b/lib/crewai/src/crewai/memory/short_term/short_term_memory_item.py similarity index 100% rename from src/crewai/memory/short_term/short_term_memory_item.py rename to lib/crewai/src/crewai/memory/short_term/short_term_memory_item.py diff --git a/src/crewai/memory/storage/__init__.py b/lib/crewai/src/crewai/memory/storage/__init__.py similarity index 100% rename from src/crewai/memory/storage/__init__.py rename to lib/crewai/src/crewai/memory/storage/__init__.py diff --git a/src/crewai/memory/storage/interface.py b/lib/crewai/src/crewai/memory/storage/interface.py similarity index 100% rename from src/crewai/memory/storage/interface.py rename to lib/crewai/src/crewai/memory/storage/interface.py diff --git a/src/crewai/memory/storage/kickoff_task_outputs_storage.py b/lib/crewai/src/crewai/memory/storage/kickoff_task_outputs_storage.py similarity index 100% rename from src/crewai/memory/storage/kickoff_task_outputs_storage.py rename to lib/crewai/src/crewai/memory/storage/kickoff_task_outputs_storage.py diff --git a/src/crewai/memory/storage/ltm_sqlite_storage.py b/lib/crewai/src/crewai/memory/storage/ltm_sqlite_storage.py similarity index 100% rename from src/crewai/memory/storage/ltm_sqlite_storage.py rename to lib/crewai/src/crewai/memory/storage/ltm_sqlite_storage.py diff --git a/src/crewai/memory/storage/mem0_storage.py b/lib/crewai/src/crewai/memory/storage/mem0_storage.py similarity index 100% rename from src/crewai/memory/storage/mem0_storage.py rename to lib/crewai/src/crewai/memory/storage/mem0_storage.py diff --git a/src/crewai/memory/storage/rag_storage.py b/lib/crewai/src/crewai/memory/storage/rag_storage.py similarity index 100% rename from src/crewai/memory/storage/rag_storage.py rename to lib/crewai/src/crewai/memory/storage/rag_storage.py diff --git a/src/crewai/process.py b/lib/crewai/src/crewai/process.py similarity index 100% rename from src/crewai/process.py rename to lib/crewai/src/crewai/process.py diff --git a/src/crewai/project/__init__.py b/lib/crewai/src/crewai/project/__init__.py similarity index 100% rename from src/crewai/project/__init__.py rename to lib/crewai/src/crewai/project/__init__.py diff --git a/src/crewai/project/annotations.py b/lib/crewai/src/crewai/project/annotations.py similarity index 100% rename from src/crewai/project/annotations.py rename to lib/crewai/src/crewai/project/annotations.py diff --git a/src/crewai/project/crew_base.py b/lib/crewai/src/crewai/project/crew_base.py similarity index 100% rename from src/crewai/project/crew_base.py rename to lib/crewai/src/crewai/project/crew_base.py diff --git a/src/crewai/project/utils.py b/lib/crewai/src/crewai/project/utils.py similarity index 100% rename from src/crewai/project/utils.py rename to lib/crewai/src/crewai/project/utils.py diff --git a/lib/core/src/crewai/core/rag/__init__.py b/lib/crewai/src/crewai/rag/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/__init__.py rename to lib/crewai/src/crewai/rag/__init__.py diff --git a/src/crewai/memory/long_term/__init__.py b/lib/crewai/src/crewai/rag/chromadb/__init__.py similarity index 100% rename from src/crewai/memory/long_term/__init__.py rename to lib/crewai/src/crewai/rag/chromadb/__init__.py diff --git a/lib/core/src/crewai/core/rag/chromadb/client.py b/lib/crewai/src/crewai/rag/chromadb/client.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/client.py rename to lib/crewai/src/crewai/rag/chromadb/client.py diff --git a/lib/core/src/crewai/core/rag/chromadb/config.py b/lib/crewai/src/crewai/rag/chromadb/config.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/config.py rename to lib/crewai/src/crewai/rag/chromadb/config.py diff --git a/lib/core/src/crewai/core/rag/chromadb/constants.py b/lib/crewai/src/crewai/rag/chromadb/constants.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/constants.py rename to lib/crewai/src/crewai/rag/chromadb/constants.py diff --git a/lib/core/src/crewai/core/rag/chromadb/factory.py b/lib/crewai/src/crewai/rag/chromadb/factory.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/factory.py rename to lib/crewai/src/crewai/rag/chromadb/factory.py diff --git a/lib/core/src/crewai/core/rag/chromadb/types.py b/lib/crewai/src/crewai/rag/chromadb/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/types.py rename to lib/crewai/src/crewai/rag/chromadb/types.py diff --git a/lib/core/src/crewai/core/rag/chromadb/utils.py b/lib/crewai/src/crewai/rag/chromadb/utils.py similarity index 100% rename from lib/core/src/crewai/core/rag/chromadb/utils.py rename to lib/crewai/src/crewai/rag/chromadb/utils.py diff --git a/lib/core/src/crewai/core/rag/config/__init__.py b/lib/crewai/src/crewai/rag/config/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/__init__.py rename to lib/crewai/src/crewai/rag/config/__init__.py diff --git a/lib/core/src/crewai/core/rag/config/base.py b/lib/crewai/src/crewai/rag/config/base.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/base.py rename to lib/crewai/src/crewai/rag/config/base.py diff --git a/lib/core/src/crewai/core/rag/config/constants.py b/lib/crewai/src/crewai/rag/config/constants.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/constants.py rename to lib/crewai/src/crewai/rag/config/constants.py diff --git a/lib/core/src/crewai/core/rag/config/optional_imports/__init__.py b/lib/crewai/src/crewai/rag/config/optional_imports/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/optional_imports/__init__.py rename to lib/crewai/src/crewai/rag/config/optional_imports/__init__.py diff --git a/lib/core/src/crewai/core/rag/config/optional_imports/base.py b/lib/crewai/src/crewai/rag/config/optional_imports/base.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/optional_imports/base.py rename to lib/crewai/src/crewai/rag/config/optional_imports/base.py diff --git a/lib/core/src/crewai/core/rag/config/optional_imports/protocols.py b/lib/crewai/src/crewai/rag/config/optional_imports/protocols.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/optional_imports/protocols.py rename to lib/crewai/src/crewai/rag/config/optional_imports/protocols.py diff --git a/lib/core/src/crewai/core/rag/config/optional_imports/providers.py b/lib/crewai/src/crewai/rag/config/optional_imports/providers.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/optional_imports/providers.py rename to lib/crewai/src/crewai/rag/config/optional_imports/providers.py diff --git a/lib/core/src/crewai/core/rag/config/optional_imports/types.py b/lib/crewai/src/crewai/rag/config/optional_imports/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/optional_imports/types.py rename to lib/crewai/src/crewai/rag/config/optional_imports/types.py diff --git a/lib/core/src/crewai/core/rag/config/types.py b/lib/crewai/src/crewai/rag/config/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/types.py rename to lib/crewai/src/crewai/rag/config/types.py diff --git a/lib/core/src/crewai/core/rag/config/utils.py b/lib/crewai/src/crewai/rag/config/utils.py similarity index 100% rename from lib/core/src/crewai/core/rag/config/utils.py rename to lib/crewai/src/crewai/rag/config/utils.py diff --git a/lib/core/src/crewai/core/rag/core/__init__.py b/lib/crewai/src/crewai/rag/core/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/core/__init__.py rename to lib/crewai/src/crewai/rag/core/__init__.py diff --git a/lib/core/src/crewai/core/rag/core/base_client.py b/lib/crewai/src/crewai/rag/core/base_client.py similarity index 100% rename from lib/core/src/crewai/core/rag/core/base_client.py rename to lib/crewai/src/crewai/rag/core/base_client.py diff --git a/lib/core/src/crewai/core/rag/core/base_embeddings_callable.py b/lib/crewai/src/crewai/rag/core/base_embeddings_callable.py similarity index 100% rename from lib/core/src/crewai/core/rag/core/base_embeddings_callable.py rename to lib/crewai/src/crewai/rag/core/base_embeddings_callable.py diff --git a/lib/core/src/crewai/core/rag/core/base_embeddings_provider.py b/lib/crewai/src/crewai/rag/core/base_embeddings_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/core/base_embeddings_provider.py rename to lib/crewai/src/crewai/rag/core/base_embeddings_provider.py diff --git a/lib/core/src/crewai/core/rag/core/exceptions.py b/lib/crewai/src/crewai/rag/core/exceptions.py similarity index 100% rename from lib/core/src/crewai/core/rag/core/exceptions.py rename to lib/crewai/src/crewai/rag/core/exceptions.py diff --git a/lib/core/src/crewai/core/rag/core/types.py b/lib/crewai/src/crewai/rag/core/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/core/types.py rename to lib/crewai/src/crewai/rag/core/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/__init__.py b/lib/crewai/src/crewai/rag/embeddings/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/factory.py b/lib/crewai/src/crewai/rag/embeddings/factory.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/factory.py rename to lib/crewai/src/crewai/rag/embeddings/factory.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/aws/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/aws/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/aws/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/aws/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/aws/bedrock.py b/lib/crewai/src/crewai/rag/embeddings/providers/aws/bedrock.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/aws/bedrock.py rename to lib/crewai/src/crewai/rag/embeddings/providers/aws/bedrock.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/aws/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/aws/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/aws/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/aws/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/cohere/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/cohere/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/cohere/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/cohere/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/cohere/cohere_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/cohere/cohere_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/cohere/cohere_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/cohere/cohere_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/cohere/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/cohere/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/cohere/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/cohere/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/custom/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/custom/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/custom/custom_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/custom_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/custom/custom_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/custom_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/custom/embedding_callable.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/embedding_callable.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/custom/embedding_callable.py rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/embedding_callable.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/custom/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/custom/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/google/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/google/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/google/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/google/generative_ai.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/generative_ai.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/google/generative_ai.py rename to lib/crewai/src/crewai/rag/embeddings/providers/google/generative_ai.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/google/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/google/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/google/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/google/vertex.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/vertex.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/google/vertex.py rename to lib/crewai/src/crewai/rag/embeddings/providers/google/vertex.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/huggingface/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/huggingface/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/huggingface/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/huggingface/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/huggingface/huggingface_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/huggingface/huggingface_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/huggingface/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/huggingface/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/huggingface/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/huggingface/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ibm/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ibm/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ibm/embedding_callable.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/embedding_callable.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ibm/embedding_callable.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/embedding_callable.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ibm/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ibm/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ibm/watsonx.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/watsonx.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ibm/watsonx.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/watsonx.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/instructor/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/instructor/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/instructor/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/instructor/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/instructor/instructor_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/instructor/instructor_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/instructor/instructor_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/instructor/instructor_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/instructor/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/instructor/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/instructor/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/instructor/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/jina/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/jina/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/jina/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/jina/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/jina/jina_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/jina/jina_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/jina/jina_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/jina/jina_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/jina/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/jina/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/jina/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/jina/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/microsoft/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/microsoft/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/microsoft/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/microsoft/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/microsoft/azure.py b/lib/crewai/src/crewai/rag/embeddings/providers/microsoft/azure.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/microsoft/azure.py rename to lib/crewai/src/crewai/rag/embeddings/providers/microsoft/azure.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/microsoft/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/microsoft/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/microsoft/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/microsoft/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ollama/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/ollama/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ollama/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ollama/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ollama/ollama_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/ollama/ollama_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ollama/ollama_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ollama/ollama_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/ollama/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/ollama/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/ollama/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/ollama/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/onnx/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/onnx/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/onnx/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/onnx/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/onnx/onnx_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/onnx/onnx_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/onnx/onnx_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/onnx/onnx_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/onnx/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/onnx/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/onnx/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/onnx/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/openai/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/openai/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/openai/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/openai/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/openai/openai_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/openai/openai_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/openai/openai_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/openai/openai_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/openai/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/openai/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/openai/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/openai/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/openclip/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/openclip/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/openclip/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/openclip/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/openclip/openclip_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/openclip/openclip_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/openclip/openclip_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/openclip/openclip_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/openclip/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/openclip/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/openclip/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/openclip/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/roboflow/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/roboflow/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/roboflow/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/roboflow/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/roboflow/roboflow_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/roboflow/roboflow_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/roboflow/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/roboflow/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/roboflow/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/roboflow/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/sentence_transformer/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/sentence_transformer/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/sentence_transformer/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/sentence_transformer/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/text2vec/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/text2vec/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/text2vec/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/text2vec/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/text2vec/text2vec_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/text2vec/text2vec_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/text2vec/text2vec_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/text2vec/text2vec_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/text2vec/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/text2vec/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/text2vec/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/text2vec/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/voyageai/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/voyageai/__init__.py rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/__init__.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/voyageai/embedding_callable.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/embedding_callable.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/voyageai/embedding_callable.py rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/embedding_callable.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/voyageai/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/voyageai/types.py rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/types.py diff --git a/lib/core/src/crewai/core/rag/embeddings/providers/voyageai/voyageai_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/voyageai_provider.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/providers/voyageai/voyageai_provider.py rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/voyageai_provider.py diff --git a/lib/core/src/crewai/core/rag/embeddings/types.py b/lib/crewai/src/crewai/rag/embeddings/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/embeddings/types.py rename to lib/crewai/src/crewai/rag/embeddings/types.py diff --git a/lib/core/src/crewai/core/rag/factory.py b/lib/crewai/src/crewai/rag/factory.py similarity index 100% rename from lib/core/src/crewai/core/rag/factory.py rename to lib/crewai/src/crewai/rag/factory.py diff --git a/lib/core/src/crewai/core/rag/qdrant/__init__.py b/lib/crewai/src/crewai/rag/qdrant/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/__init__.py rename to lib/crewai/src/crewai/rag/qdrant/__init__.py diff --git a/lib/core/src/crewai/core/rag/qdrant/client.py b/lib/crewai/src/crewai/rag/qdrant/client.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/client.py rename to lib/crewai/src/crewai/rag/qdrant/client.py diff --git a/lib/core/src/crewai/core/rag/qdrant/config.py b/lib/crewai/src/crewai/rag/qdrant/config.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/config.py rename to lib/crewai/src/crewai/rag/qdrant/config.py diff --git a/lib/core/src/crewai/core/rag/qdrant/constants.py b/lib/crewai/src/crewai/rag/qdrant/constants.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/constants.py rename to lib/crewai/src/crewai/rag/qdrant/constants.py diff --git a/lib/core/src/crewai/core/rag/qdrant/factory.py b/lib/crewai/src/crewai/rag/qdrant/factory.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/factory.py rename to lib/crewai/src/crewai/rag/qdrant/factory.py diff --git a/lib/core/src/crewai/core/rag/qdrant/types.py b/lib/crewai/src/crewai/rag/qdrant/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/types.py rename to lib/crewai/src/crewai/rag/qdrant/types.py diff --git a/lib/core/src/crewai/core/rag/qdrant/utils.py b/lib/crewai/src/crewai/rag/qdrant/utils.py similarity index 100% rename from lib/core/src/crewai/core/rag/qdrant/utils.py rename to lib/crewai/src/crewai/rag/qdrant/utils.py diff --git a/lib/core/src/crewai/core/rag/storage/__init__.py b/lib/crewai/src/crewai/rag/storage/__init__.py similarity index 100% rename from lib/core/src/crewai/core/rag/storage/__init__.py rename to lib/crewai/src/crewai/rag/storage/__init__.py diff --git a/lib/core/src/crewai/core/rag/storage/base_rag_storage.py b/lib/crewai/src/crewai/rag/storage/base_rag_storage.py similarity index 100% rename from lib/core/src/crewai/core/rag/storage/base_rag_storage.py rename to lib/crewai/src/crewai/rag/storage/base_rag_storage.py diff --git a/lib/core/src/crewai/core/rag/types.py b/lib/crewai/src/crewai/rag/types.py similarity index 100% rename from lib/core/src/crewai/core/rag/types.py rename to lib/crewai/src/crewai/rag/types.py diff --git a/src/crewai/security/__init__.py b/lib/crewai/src/crewai/security/__init__.py similarity index 100% rename from src/crewai/security/__init__.py rename to lib/crewai/src/crewai/security/__init__.py diff --git a/src/crewai/security/constants.py b/lib/crewai/src/crewai/security/constants.py similarity index 100% rename from src/crewai/security/constants.py rename to lib/crewai/src/crewai/security/constants.py diff --git a/src/crewai/security/fingerprint.py b/lib/crewai/src/crewai/security/fingerprint.py similarity index 100% rename from src/crewai/security/fingerprint.py rename to lib/crewai/src/crewai/security/fingerprint.py diff --git a/src/crewai/security/security_config.py b/lib/crewai/src/crewai/security/security_config.py similarity index 100% rename from src/crewai/security/security_config.py rename to lib/crewai/src/crewai/security/security_config.py diff --git a/src/crewai/task.py b/lib/crewai/src/crewai/task.py similarity index 100% rename from src/crewai/task.py rename to lib/crewai/src/crewai/task.py diff --git a/src/crewai/tasks/__init__.py b/lib/crewai/src/crewai/tasks/__init__.py similarity index 100% rename from src/crewai/tasks/__init__.py rename to lib/crewai/src/crewai/tasks/__init__.py diff --git a/src/crewai/tasks/conditional_task.py b/lib/crewai/src/crewai/tasks/conditional_task.py similarity index 100% rename from src/crewai/tasks/conditional_task.py rename to lib/crewai/src/crewai/tasks/conditional_task.py diff --git a/src/crewai/tasks/hallucination_guardrail.py b/lib/crewai/src/crewai/tasks/hallucination_guardrail.py similarity index 100% rename from src/crewai/tasks/hallucination_guardrail.py rename to lib/crewai/src/crewai/tasks/hallucination_guardrail.py diff --git a/src/crewai/tasks/llm_guardrail.py b/lib/crewai/src/crewai/tasks/llm_guardrail.py similarity index 100% rename from src/crewai/tasks/llm_guardrail.py rename to lib/crewai/src/crewai/tasks/llm_guardrail.py diff --git a/src/crewai/tasks/output_format.py b/lib/crewai/src/crewai/tasks/output_format.py similarity index 100% rename from src/crewai/tasks/output_format.py rename to lib/crewai/src/crewai/tasks/output_format.py diff --git a/src/crewai/tasks/task_output.py b/lib/crewai/src/crewai/tasks/task_output.py similarity index 100% rename from src/crewai/tasks/task_output.py rename to lib/crewai/src/crewai/tasks/task_output.py diff --git a/src/crewai/telemetry/__init__.py b/lib/crewai/src/crewai/telemetry/__init__.py similarity index 100% rename from src/crewai/telemetry/__init__.py rename to lib/crewai/src/crewai/telemetry/__init__.py diff --git a/src/crewai/telemetry/constants.py b/lib/crewai/src/crewai/telemetry/constants.py similarity index 100% rename from src/crewai/telemetry/constants.py rename to lib/crewai/src/crewai/telemetry/constants.py diff --git a/src/crewai/telemetry/telemetry.py b/lib/crewai/src/crewai/telemetry/telemetry.py similarity index 100% rename from src/crewai/telemetry/telemetry.py rename to lib/crewai/src/crewai/telemetry/telemetry.py diff --git a/src/crewai/telemetry/utils.py b/lib/crewai/src/crewai/telemetry/utils.py similarity index 100% rename from src/crewai/telemetry/utils.py rename to lib/crewai/src/crewai/telemetry/utils.py diff --git a/src/crewai/tools/__init__.py b/lib/crewai/src/crewai/tools/__init__.py similarity index 100% rename from src/crewai/tools/__init__.py rename to lib/crewai/src/crewai/tools/__init__.py diff --git a/src/crewai/tools/agent_tools/__init__.py b/lib/crewai/src/crewai/tools/agent_tools/__init__.py similarity index 100% rename from src/crewai/tools/agent_tools/__init__.py rename to lib/crewai/src/crewai/tools/agent_tools/__init__.py diff --git a/src/crewai/tools/agent_tools/add_image_tool.py b/lib/crewai/src/crewai/tools/agent_tools/add_image_tool.py similarity index 100% rename from src/crewai/tools/agent_tools/add_image_tool.py rename to lib/crewai/src/crewai/tools/agent_tools/add_image_tool.py diff --git a/src/crewai/tools/agent_tools/agent_tools.py b/lib/crewai/src/crewai/tools/agent_tools/agent_tools.py similarity index 100% rename from src/crewai/tools/agent_tools/agent_tools.py rename to lib/crewai/src/crewai/tools/agent_tools/agent_tools.py diff --git a/src/crewai/tools/agent_tools/ask_question_tool.py b/lib/crewai/src/crewai/tools/agent_tools/ask_question_tool.py similarity index 100% rename from src/crewai/tools/agent_tools/ask_question_tool.py rename to lib/crewai/src/crewai/tools/agent_tools/ask_question_tool.py diff --git a/src/crewai/tools/agent_tools/base_agent_tools.py b/lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py similarity index 100% rename from src/crewai/tools/agent_tools/base_agent_tools.py rename to lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py diff --git a/src/crewai/tools/agent_tools/delegate_work_tool.py b/lib/crewai/src/crewai/tools/agent_tools/delegate_work_tool.py similarity index 100% rename from src/crewai/tools/agent_tools/delegate_work_tool.py rename to lib/crewai/src/crewai/tools/agent_tools/delegate_work_tool.py diff --git a/src/crewai/tools/base_tool.py b/lib/crewai/src/crewai/tools/base_tool.py similarity index 100% rename from src/crewai/tools/base_tool.py rename to lib/crewai/src/crewai/tools/base_tool.py diff --git a/src/crewai/memory/short_term/__init__.py b/lib/crewai/src/crewai/tools/cache_tools/__init__.py similarity index 100% rename from src/crewai/memory/short_term/__init__.py rename to lib/crewai/src/crewai/tools/cache_tools/__init__.py diff --git a/src/crewai/tools/cache_tools/cache_tools.py b/lib/crewai/src/crewai/tools/cache_tools/cache_tools.py similarity index 100% rename from src/crewai/tools/cache_tools/cache_tools.py rename to lib/crewai/src/crewai/tools/cache_tools/cache_tools.py diff --git a/src/crewai/tools/structured_tool.py b/lib/crewai/src/crewai/tools/structured_tool.py similarity index 100% rename from src/crewai/tools/structured_tool.py rename to lib/crewai/src/crewai/tools/structured_tool.py diff --git a/src/crewai/tools/tool_calling.py b/lib/crewai/src/crewai/tools/tool_calling.py similarity index 100% rename from src/crewai/tools/tool_calling.py rename to lib/crewai/src/crewai/tools/tool_calling.py diff --git a/src/crewai/tools/tool_types.py b/lib/crewai/src/crewai/tools/tool_types.py similarity index 100% rename from src/crewai/tools/tool_types.py rename to lib/crewai/src/crewai/tools/tool_types.py diff --git a/src/crewai/tools/tool_usage.py b/lib/crewai/src/crewai/tools/tool_usage.py similarity index 100% rename from src/crewai/tools/tool_usage.py rename to lib/crewai/src/crewai/tools/tool_usage.py diff --git a/src/crewai/tools/cache_tools/__init__.py b/lib/crewai/src/crewai/translations/__init__.py similarity index 100% rename from src/crewai/tools/cache_tools/__init__.py rename to lib/crewai/src/crewai/translations/__init__.py diff --git a/src/crewai/translations/en.json b/lib/crewai/src/crewai/translations/en.json similarity index 100% rename from src/crewai/translations/en.json rename to lib/crewai/src/crewai/translations/en.json diff --git a/src/crewai/translations/__init__.py b/lib/crewai/src/crewai/types/__init__.py similarity index 100% rename from src/crewai/translations/__init__.py rename to lib/crewai/src/crewai/types/__init__.py diff --git a/src/crewai/types/crew_chat.py b/lib/crewai/src/crewai/types/crew_chat.py similarity index 100% rename from src/crewai/types/crew_chat.py rename to lib/crewai/src/crewai/types/crew_chat.py diff --git a/src/crewai/types/hitl.py b/lib/crewai/src/crewai/types/hitl.py similarity index 100% rename from src/crewai/types/hitl.py rename to lib/crewai/src/crewai/types/hitl.py diff --git a/src/crewai/types/usage_metrics.py b/lib/crewai/src/crewai/types/usage_metrics.py similarity index 100% rename from src/crewai/types/usage_metrics.py rename to lib/crewai/src/crewai/types/usage_metrics.py diff --git a/src/crewai/utilities/__init__.py b/lib/crewai/src/crewai/utilities/__init__.py similarity index 100% rename from src/crewai/utilities/__init__.py rename to lib/crewai/src/crewai/utilities/__init__.py diff --git a/src/crewai/utilities/agent_utils.py b/lib/crewai/src/crewai/utilities/agent_utils.py similarity index 100% rename from src/crewai/utilities/agent_utils.py rename to lib/crewai/src/crewai/utilities/agent_utils.py diff --git a/src/crewai/utilities/config.py b/lib/crewai/src/crewai/utilities/config.py similarity index 100% rename from src/crewai/utilities/config.py rename to lib/crewai/src/crewai/utilities/config.py diff --git a/src/crewai/utilities/constants.py b/lib/crewai/src/crewai/utilities/constants.py similarity index 100% rename from src/crewai/utilities/constants.py rename to lib/crewai/src/crewai/utilities/constants.py diff --git a/src/crewai/utilities/converter.py b/lib/crewai/src/crewai/utilities/converter.py similarity index 100% rename from src/crewai/utilities/converter.py rename to lib/crewai/src/crewai/utilities/converter.py diff --git a/src/crewai/utilities/crew/__init__.py b/lib/crewai/src/crewai/utilities/crew/__init__.py similarity index 100% rename from src/crewai/utilities/crew/__init__.py rename to lib/crewai/src/crewai/utilities/crew/__init__.py diff --git a/src/crewai/utilities/crew/crew_context.py b/lib/crewai/src/crewai/utilities/crew/crew_context.py similarity index 100% rename from src/crewai/utilities/crew/crew_context.py rename to lib/crewai/src/crewai/utilities/crew/crew_context.py diff --git a/src/crewai/utilities/crew/models.py b/lib/crewai/src/crewai/utilities/crew/models.py similarity index 100% rename from src/crewai/utilities/crew/models.py rename to lib/crewai/src/crewai/utilities/crew/models.py diff --git a/src/crewai/utilities/crew_json_encoder.py b/lib/crewai/src/crewai/utilities/crew_json_encoder.py similarity index 100% rename from src/crewai/utilities/crew_json_encoder.py rename to lib/crewai/src/crewai/utilities/crew_json_encoder.py diff --git a/src/crewai/utilities/errors.py b/lib/crewai/src/crewai/utilities/errors.py similarity index 100% rename from src/crewai/utilities/errors.py rename to lib/crewai/src/crewai/utilities/errors.py diff --git a/src/crewai/utilities/evaluators/__init__.py b/lib/crewai/src/crewai/utilities/evaluators/__init__.py similarity index 100% rename from src/crewai/utilities/evaluators/__init__.py rename to lib/crewai/src/crewai/utilities/evaluators/__init__.py diff --git a/src/crewai/utilities/evaluators/crew_evaluator_handler.py b/lib/crewai/src/crewai/utilities/evaluators/crew_evaluator_handler.py similarity index 100% rename from src/crewai/utilities/evaluators/crew_evaluator_handler.py rename to lib/crewai/src/crewai/utilities/evaluators/crew_evaluator_handler.py diff --git a/src/crewai/utilities/evaluators/task_evaluator.py b/lib/crewai/src/crewai/utilities/evaluators/task_evaluator.py similarity index 100% rename from src/crewai/utilities/evaluators/task_evaluator.py rename to lib/crewai/src/crewai/utilities/evaluators/task_evaluator.py diff --git a/src/crewai/utilities/events/__init__.py b/lib/crewai/src/crewai/utilities/events/__init__.py similarity index 100% rename from src/crewai/utilities/events/__init__.py rename to lib/crewai/src/crewai/utilities/events/__init__.py diff --git a/src/crewai/utilities/events/base_event_listener.py b/lib/crewai/src/crewai/utilities/events/base_event_listener.py similarity index 100% rename from src/crewai/utilities/events/base_event_listener.py rename to lib/crewai/src/crewai/utilities/events/base_event_listener.py diff --git a/src/crewai/utilities/events/crewai_event_bus.py b/lib/crewai/src/crewai/utilities/events/crewai_event_bus.py similarity index 100% rename from src/crewai/utilities/events/crewai_event_bus.py rename to lib/crewai/src/crewai/utilities/events/crewai_event_bus.py diff --git a/src/crewai/utilities/exceptions/__init__.py b/lib/crewai/src/crewai/utilities/exceptions/__init__.py similarity index 100% rename from src/crewai/utilities/exceptions/__init__.py rename to lib/crewai/src/crewai/utilities/exceptions/__init__.py diff --git a/src/crewai/utilities/exceptions/context_window_exceeding_exception.py b/lib/crewai/src/crewai/utilities/exceptions/context_window_exceeding_exception.py similarity index 100% rename from src/crewai/utilities/exceptions/context_window_exceeding_exception.py rename to lib/crewai/src/crewai/utilities/exceptions/context_window_exceeding_exception.py diff --git a/src/crewai/utilities/file_handler.py b/lib/crewai/src/crewai/utilities/file_handler.py similarity index 100% rename from src/crewai/utilities/file_handler.py rename to lib/crewai/src/crewai/utilities/file_handler.py diff --git a/src/crewai/utilities/formatter.py b/lib/crewai/src/crewai/utilities/formatter.py similarity index 100% rename from src/crewai/utilities/formatter.py rename to lib/crewai/src/crewai/utilities/formatter.py diff --git a/src/crewai/utilities/guardrail.py b/lib/crewai/src/crewai/utilities/guardrail.py similarity index 100% rename from src/crewai/utilities/guardrail.py rename to lib/crewai/src/crewai/utilities/guardrail.py diff --git a/src/crewai/utilities/i18n.py b/lib/crewai/src/crewai/utilities/i18n.py similarity index 100% rename from src/crewai/utilities/i18n.py rename to lib/crewai/src/crewai/utilities/i18n.py diff --git a/lib/core/src/crewai/core/utilities/import_utils.py b/lib/crewai/src/crewai/utilities/import_utils.py similarity index 100% rename from lib/core/src/crewai/core/utilities/import_utils.py rename to lib/crewai/src/crewai/utilities/import_utils.py diff --git a/src/crewai/utilities/internal_instructor.py b/lib/crewai/src/crewai/utilities/internal_instructor.py similarity index 100% rename from src/crewai/utilities/internal_instructor.py rename to lib/crewai/src/crewai/utilities/internal_instructor.py diff --git a/src/crewai/utilities/llm_utils.py b/lib/crewai/src/crewai/utilities/llm_utils.py similarity index 100% rename from src/crewai/utilities/llm_utils.py rename to lib/crewai/src/crewai/utilities/llm_utils.py diff --git a/src/crewai/utilities/logger.py b/lib/crewai/src/crewai/utilities/logger.py similarity index 100% rename from src/crewai/utilities/logger.py rename to lib/crewai/src/crewai/utilities/logger.py diff --git a/lib/core/src/crewai/core/utilities/logger_utils.py b/lib/crewai/src/crewai/utilities/logger_utils.py similarity index 100% rename from lib/core/src/crewai/core/utilities/logger_utils.py rename to lib/crewai/src/crewai/utilities/logger_utils.py diff --git a/lib/core/src/crewai/core/utilities/paths.py b/lib/crewai/src/crewai/utilities/paths.py similarity index 100% rename from lib/core/src/crewai/core/utilities/paths.py rename to lib/crewai/src/crewai/utilities/paths.py diff --git a/src/crewai/utilities/planning_handler.py b/lib/crewai/src/crewai/utilities/planning_handler.py similarity index 100% rename from src/crewai/utilities/planning_handler.py rename to lib/crewai/src/crewai/utilities/planning_handler.py diff --git a/src/crewai/utilities/printer.py b/lib/crewai/src/crewai/utilities/printer.py similarity index 100% rename from src/crewai/utilities/printer.py rename to lib/crewai/src/crewai/utilities/printer.py diff --git a/src/crewai/utilities/prompts.py b/lib/crewai/src/crewai/utilities/prompts.py similarity index 100% rename from src/crewai/utilities/prompts.py rename to lib/crewai/src/crewai/utilities/prompts.py diff --git a/src/crewai/utilities/pydantic_schema_parser.py b/lib/crewai/src/crewai/utilities/pydantic_schema_parser.py similarity index 100% rename from src/crewai/utilities/pydantic_schema_parser.py rename to lib/crewai/src/crewai/utilities/pydantic_schema_parser.py diff --git a/src/crewai/utilities/reasoning_handler.py b/lib/crewai/src/crewai/utilities/reasoning_handler.py similarity index 100% rename from src/crewai/utilities/reasoning_handler.py rename to lib/crewai/src/crewai/utilities/reasoning_handler.py diff --git a/src/crewai/utilities/rpm_controller.py b/lib/crewai/src/crewai/utilities/rpm_controller.py similarity index 100% rename from src/crewai/utilities/rpm_controller.py rename to lib/crewai/src/crewai/utilities/rpm_controller.py diff --git a/src/crewai/utilities/serialization.py b/lib/crewai/src/crewai/utilities/serialization.py similarity index 100% rename from src/crewai/utilities/serialization.py rename to lib/crewai/src/crewai/utilities/serialization.py diff --git a/src/crewai/utilities/string_utils.py b/lib/crewai/src/crewai/utilities/string_utils.py similarity index 100% rename from src/crewai/utilities/string_utils.py rename to lib/crewai/src/crewai/utilities/string_utils.py diff --git a/src/crewai/utilities/task_output_storage_handler.py b/lib/crewai/src/crewai/utilities/task_output_storage_handler.py similarity index 100% rename from src/crewai/utilities/task_output_storage_handler.py rename to lib/crewai/src/crewai/utilities/task_output_storage_handler.py diff --git a/src/crewai/utilities/token_counter_callback.py b/lib/crewai/src/crewai/utilities/token_counter_callback.py similarity index 100% rename from src/crewai/utilities/token_counter_callback.py rename to lib/crewai/src/crewai/utilities/token_counter_callback.py diff --git a/src/crewai/utilities/tool_utils.py b/lib/crewai/src/crewai/utilities/tool_utils.py similarity index 100% rename from src/crewai/utilities/tool_utils.py rename to lib/crewai/src/crewai/utilities/tool_utils.py diff --git a/src/crewai/utilities/training_converter.py b/lib/crewai/src/crewai/utilities/training_converter.py similarity index 100% rename from src/crewai/utilities/training_converter.py rename to lib/crewai/src/crewai/utilities/training_converter.py diff --git a/src/crewai/utilities/training_handler.py b/lib/crewai/src/crewai/utilities/training_handler.py similarity index 100% rename from src/crewai/utilities/training_handler.py rename to lib/crewai/src/crewai/utilities/training_handler.py diff --git a/src/crewai/utilities/types.py b/lib/crewai/src/crewai/utilities/types.py similarity index 100% rename from src/crewai/utilities/types.py rename to lib/crewai/src/crewai/utilities/types.py diff --git a/src/crewai/types/__init__.py b/lib/crewai/tests/__init__.py similarity index 100% rename from src/crewai/types/__init__.py rename to lib/crewai/tests/__init__.py diff --git a/tests/__init__.py b/lib/crewai/tests/agents/__init__.py similarity index 100% rename from tests/__init__.py rename to lib/crewai/tests/agents/__init__.py diff --git a/tests/agents/agent_adapters/__init__.py b/lib/crewai/tests/agents/agent_adapters/__init__.py similarity index 100% rename from tests/agents/agent_adapters/__init__.py rename to lib/crewai/tests/agents/agent_adapters/__init__.py diff --git a/tests/agents/agent_adapters/test_base_agent_adapter.py b/lib/crewai/tests/agents/agent_adapters/test_base_agent_adapter.py similarity index 100% rename from tests/agents/agent_adapters/test_base_agent_adapter.py rename to lib/crewai/tests/agents/agent_adapters/test_base_agent_adapter.py diff --git a/tests/agents/agent_adapters/test_base_tool_adapter.py b/lib/crewai/tests/agents/agent_adapters/test_base_tool_adapter.py similarity index 100% rename from tests/agents/agent_adapters/test_base_tool_adapter.py rename to lib/crewai/tests/agents/agent_adapters/test_base_tool_adapter.py diff --git a/tests/agents/agent_builder/__init__.py b/lib/crewai/tests/agents/agent_builder/__init__.py similarity index 100% rename from tests/agents/agent_builder/__init__.py rename to lib/crewai/tests/agents/agent_builder/__init__.py diff --git a/tests/agents/agent_builder/test_base_agent.py b/lib/crewai/tests/agents/agent_builder/test_base_agent.py similarity index 100% rename from tests/agents/agent_builder/test_base_agent.py rename to lib/crewai/tests/agents/agent_builder/test_base_agent.py diff --git a/tests/agents/test_agent.py b/lib/crewai/tests/agents/test_agent.py similarity index 100% rename from tests/agents/test_agent.py rename to lib/crewai/tests/agents/test_agent.py diff --git a/tests/agents/test_agent_inject_date.py b/lib/crewai/tests/agents/test_agent_inject_date.py similarity index 100% rename from tests/agents/test_agent_inject_date.py rename to lib/crewai/tests/agents/test_agent_inject_date.py diff --git a/tests/agents/test_agent_reasoning.py b/lib/crewai/tests/agents/test_agent_reasoning.py similarity index 100% rename from tests/agents/test_agent_reasoning.py rename to lib/crewai/tests/agents/test_agent_reasoning.py diff --git a/tests/agents/test_crew_agent_parser.py b/lib/crewai/tests/agents/test_crew_agent_parser.py similarity index 100% rename from tests/agents/test_crew_agent_parser.py rename to lib/crewai/tests/agents/test_crew_agent_parser.py diff --git a/tests/agents/test_lite_agent.py b/lib/crewai/tests/agents/test_lite_agent.py similarity index 100% rename from tests/agents/test_lite_agent.py rename to lib/crewai/tests/agents/test_lite_agent.py diff --git a/tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml similarity index 100% rename from tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml diff --git a/tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml similarity index 100% rename from tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml diff --git a/tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml similarity index 100% rename from tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml diff --git a/tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml similarity index 100% rename from tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml similarity index 100% rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml diff --git a/tests/agents/__init__.py b/lib/crewai/tests/cassettes/__init__.py similarity index 100% rename from tests/agents/__init__.py rename to lib/crewai/tests/cassettes/__init__.py diff --git a/tests/cassettes/test_after_crew_modification.yaml b/lib/crewai/tests/cassettes/test_after_crew_modification.yaml similarity index 100% rename from tests/cassettes/test_after_crew_modification.yaml rename to lib/crewai/tests/cassettes/test_after_crew_modification.yaml diff --git a/tests/cassettes/test_after_kickoff_modification.yaml b/lib/crewai/tests/cassettes/test_after_kickoff_modification.yaml similarity index 100% rename from tests/cassettes/test_after_kickoff_modification.yaml rename to lib/crewai/tests/cassettes/test_after_kickoff_modification.yaml diff --git a/tests/cassettes/test_agent_custom_max_iterations.yaml b/lib/crewai/tests/cassettes/test_agent_custom_max_iterations.yaml similarity index 100% rename from tests/cassettes/test_agent_custom_max_iterations.yaml rename to lib/crewai/tests/cassettes/test_agent_custom_max_iterations.yaml diff --git a/tests/cassettes/test_agent_error_on_parsing_tool.yaml b/lib/crewai/tests/cassettes/test_agent_error_on_parsing_tool.yaml similarity index 100% rename from tests/cassettes/test_agent_error_on_parsing_tool.yaml rename to lib/crewai/tests/cassettes/test_agent_error_on_parsing_tool.yaml diff --git a/tests/cassettes/test_agent_execute_task_basic.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_basic.yaml similarity index 100% rename from tests/cassettes/test_agent_execute_task_basic.yaml rename to lib/crewai/tests/cassettes/test_agent_execute_task_basic.yaml diff --git a/tests/cassettes/test_agent_execute_task_with_context.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_context.yaml similarity index 100% rename from tests/cassettes/test_agent_execute_task_with_context.yaml rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_context.yaml diff --git a/tests/cassettes/test_agent_execute_task_with_custom_llm.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_custom_llm.yaml similarity index 100% rename from tests/cassettes/test_agent_execute_task_with_custom_llm.yaml rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_custom_llm.yaml diff --git a/tests/cassettes/test_agent_execute_task_with_ollama.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_ollama.yaml similarity index 100% rename from tests/cassettes/test_agent_execute_task_with_ollama.yaml rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_ollama.yaml diff --git a/tests/cassettes/test_agent_execute_task_with_tool.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_tool.yaml similarity index 100% rename from tests/cassettes/test_agent_execute_task_with_tool.yaml rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_tool.yaml diff --git a/tests/cassettes/test_agent_execution.yaml b/lib/crewai/tests/cassettes/test_agent_execution.yaml similarity index 100% rename from tests/cassettes/test_agent_execution.yaml rename to lib/crewai/tests/cassettes/test_agent_execution.yaml diff --git a/tests/cassettes/test_agent_execution_with_specific_tools.yaml b/lib/crewai/tests/cassettes/test_agent_execution_with_specific_tools.yaml similarity index 100% rename from tests/cassettes/test_agent_execution_with_specific_tools.yaml rename to lib/crewai/tests/cassettes/test_agent_execution_with_specific_tools.yaml diff --git a/tests/cassettes/test_agent_execution_with_tools.yaml b/lib/crewai/tests/cassettes/test_agent_execution_with_tools.yaml similarity index 100% rename from tests/cassettes/test_agent_execution_with_tools.yaml rename to lib/crewai/tests/cassettes/test_agent_execution_with_tools.yaml diff --git a/tests/cassettes/test_agent_function_calling_llm.yaml b/lib/crewai/tests/cassettes/test_agent_function_calling_llm.yaml similarity index 100% rename from tests/cassettes/test_agent_function_calling_llm.yaml rename to lib/crewai/tests/cassettes/test_agent_function_calling_llm.yaml diff --git a/tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml b/lib/crewai/tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml similarity index 100% rename from tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml rename to lib/crewai/tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml diff --git a/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml b/lib/crewai/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml similarity index 100% rename from tests/cassettes/test_agent_moved_on_after_max_iterations.yaml rename to lib/crewai/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml diff --git a/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml b/lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml similarity index 100% rename from tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml rename to lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml diff --git a/tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml b/lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml similarity index 100% rename from tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml rename to lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml diff --git a/tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml b/lib/crewai/tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml similarity index 100% rename from tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml rename to lib/crewai/tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml diff --git a/tests/cassettes/test_agent_repeated_tool_usage.yaml b/lib/crewai/tests/cassettes/test_agent_repeated_tool_usage.yaml similarity index 100% rename from tests/cassettes/test_agent_repeated_tool_usage.yaml rename to lib/crewai/tests/cassettes/test_agent_repeated_tool_usage.yaml diff --git a/tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml b/lib/crewai/tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml similarity index 100% rename from tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml rename to lib/crewai/tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml diff --git a/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml b/lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml similarity index 100% rename from tests/cassettes/test_agent_respect_the_max_rpm_set.yaml rename to lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml diff --git a/tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml b/lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml similarity index 100% rename from tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml rename to lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml diff --git a/tests/cassettes/test_agent_step_callback.yaml b/lib/crewai/tests/cassettes/test_agent_step_callback.yaml similarity index 100% rename from tests/cassettes/test_agent_step_callback.yaml rename to lib/crewai/tests/cassettes/test_agent_step_callback.yaml diff --git a/tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml b/lib/crewai/tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml similarity index 100% rename from tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml rename to lib/crewai/tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml diff --git a/tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml b/lib/crewai/tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml similarity index 100% rename from tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml rename to lib/crewai/tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_sources.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_sources.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml diff --git a/tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml similarity index 100% rename from tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml diff --git a/tests/cassettes/test_agent_with_ollama_llama3.yaml b/lib/crewai/tests/cassettes/test_agent_with_ollama_llama3.yaml similarity index 100% rename from tests/cassettes/test_agent_with_ollama_llama3.yaml rename to lib/crewai/tests/cassettes/test_agent_with_ollama_llama3.yaml diff --git a/tests/cassettes/test_agent_with_only_crewai_knowledge.yaml b/lib/crewai/tests/cassettes/test_agent_with_only_crewai_knowledge.yaml similarity index 100% rename from tests/cassettes/test_agent_with_only_crewai_knowledge.yaml rename to lib/crewai/tests/cassettes/test_agent_with_only_crewai_knowledge.yaml diff --git a/tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml b/lib/crewai/tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml similarity index 100% rename from tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml rename to lib/crewai/tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml diff --git a/tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml b/lib/crewai/tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml similarity index 100% rename from tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml rename to lib/crewai/tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml diff --git a/tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml b/lib/crewai/tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml similarity index 100% rename from tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml rename to lib/crewai/tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml diff --git a/tests/cassettes/test_api_calls_throttling.yaml b/lib/crewai/tests/cassettes/test_api_calls_throttling.yaml similarity index 100% rename from tests/cassettes/test_api_calls_throttling.yaml rename to lib/crewai/tests/cassettes/test_api_calls_throttling.yaml diff --git a/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml b/lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml similarity index 100% rename from tests/cassettes/test_async_tool_using_decorator_within_flow.yaml rename to lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml diff --git a/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml b/lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml similarity index 100% rename from tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml rename to lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml diff --git a/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml b/lib/crewai/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml similarity index 100% rename from tests/cassettes/test_async_tool_using_within_isolated_crew.yaml rename to lib/crewai/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml diff --git a/tests/cassettes/test_async_tool_within_flow.yaml b/lib/crewai/tests/cassettes/test_async_tool_within_flow.yaml similarity index 100% rename from tests/cassettes/test_async_tool_within_flow.yaml rename to lib/crewai/tests/cassettes/test_async_tool_within_flow.yaml diff --git a/tests/cassettes/test_before_crew_modification.yaml b/lib/crewai/tests/cassettes/test_before_crew_modification.yaml similarity index 100% rename from tests/cassettes/test_before_crew_modification.yaml rename to lib/crewai/tests/cassettes/test_before_crew_modification.yaml diff --git a/tests/cassettes/test_before_crew_with_none_input.yaml b/lib/crewai/tests/cassettes/test_before_crew_with_none_input.yaml similarity index 100% rename from tests/cassettes/test_before_crew_with_none_input.yaml rename to lib/crewai/tests/cassettes/test_before_crew_with_none_input.yaml diff --git a/tests/cassettes/test_before_kickoff_callback.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_callback.yaml similarity index 100% rename from tests/cassettes/test_before_kickoff_callback.yaml rename to lib/crewai/tests/cassettes/test_before_kickoff_callback.yaml diff --git a/tests/cassettes/test_before_kickoff_modification.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_modification.yaml similarity index 100% rename from tests/cassettes/test_before_kickoff_modification.yaml rename to lib/crewai/tests/cassettes/test_before_kickoff_modification.yaml diff --git a/tests/cassettes/test_before_kickoff_with_none_input.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_with_none_input.yaml similarity index 100% rename from tests/cassettes/test_before_kickoff_with_none_input.yaml rename to lib/crewai/tests/cassettes/test_before_kickoff_with_none_input.yaml diff --git a/tests/cassettes/test_before_kickoff_without_inputs.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_without_inputs.yaml similarity index 100% rename from tests/cassettes/test_before_kickoff_without_inputs.yaml rename to lib/crewai/tests/cassettes/test_before_kickoff_without_inputs.yaml diff --git a/tests/cassettes/test_cache_hitting.yaml b/lib/crewai/tests/cassettes/test_cache_hitting.yaml similarity index 100% rename from tests/cassettes/test_cache_hitting.yaml rename to lib/crewai/tests/cassettes/test_cache_hitting.yaml diff --git a/tests/cassettes/test_cache_hitting_between_agents.yaml b/lib/crewai/tests/cassettes/test_cache_hitting_between_agents.yaml similarity index 100% rename from tests/cassettes/test_cache_hitting_between_agents.yaml rename to lib/crewai/tests/cassettes/test_cache_hitting_between_agents.yaml diff --git a/tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml b/lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml similarity index 100% rename from tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml rename to lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml diff --git a/tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml b/lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml similarity index 100% rename from tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml rename to lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml diff --git a/tests/cassettes/test_crew_creation.yaml b/lib/crewai/tests/cassettes/test_crew_creation.yaml similarity index 100% rename from tests/cassettes/test_crew_creation.yaml rename to lib/crewai/tests/cassettes/test_crew_creation.yaml diff --git a/tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml b/lib/crewai/tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml similarity index 100% rename from tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml rename to lib/crewai/tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml diff --git a/tests/cassettes/test_crew_external_memory_save.yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save.yaml similarity index 100% rename from tests/cassettes/test_crew_external_memory_save.yaml rename to lib/crewai/tests/cassettes/test_crew_external_memory_save.yaml diff --git a/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml similarity index 100% rename from tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml diff --git a/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml similarity index 100% rename from tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml diff --git a/tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml similarity index 100% rename from tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml diff --git a/tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml similarity index 100% rename from tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml diff --git a/tests/cassettes/test_crew_external_memory_search.yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_search.yaml similarity index 100% rename from tests/cassettes/test_crew_external_memory_search.yaml rename to lib/crewai/tests/cassettes/test_crew_external_memory_search.yaml diff --git a/tests/cassettes/test_crew_function_calling_llm.yaml b/lib/crewai/tests/cassettes/test_crew_function_calling_llm.yaml similarity index 100% rename from tests/cassettes/test_crew_function_calling_llm.yaml rename to lib/crewai/tests/cassettes/test_crew_function_calling_llm.yaml diff --git a/tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml b/lib/crewai/tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml similarity index 100% rename from tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml rename to lib/crewai/tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml diff --git a/tests/cassettes/test_crew_kickoff_usage_metrics.yaml b/lib/crewai/tests/cassettes/test_crew_kickoff_usage_metrics.yaml similarity index 100% rename from tests/cassettes/test_crew_kickoff_usage_metrics.yaml rename to lib/crewai/tests/cassettes/test_crew_kickoff_usage_metrics.yaml diff --git a/tests/cassettes/test_crew_log_file_output.yaml b/lib/crewai/tests/cassettes/test_crew_log_file_output.yaml similarity index 100% rename from tests/cassettes/test_crew_log_file_output.yaml rename to lib/crewai/tests/cassettes/test_crew_log_file_output.yaml diff --git a/tests/cassettes/test_crew_output_file_end_to_end.yaml b/lib/crewai/tests/cassettes/test_crew_output_file_end_to_end.yaml similarity index 100% rename from tests/cassettes/test_crew_output_file_end_to_end.yaml rename to lib/crewai/tests/cassettes/test_crew_output_file_end_to_end.yaml diff --git a/tests/cassettes/test_crew_verbose_output.yaml b/lib/crewai/tests/cassettes/test_crew_verbose_output.yaml similarity index 100% rename from tests/cassettes/test_crew_verbose_output.yaml rename to lib/crewai/tests/cassettes/test_crew_verbose_output.yaml diff --git a/tests/cassettes/test_crew_with_delegating_agents.yaml b/lib/crewai/tests/cassettes/test_crew_with_delegating_agents.yaml similarity index 100% rename from tests/cassettes/test_crew_with_delegating_agents.yaml rename to lib/crewai/tests/cassettes/test_crew_with_delegating_agents.yaml diff --git a/tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml b/lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml similarity index 100% rename from tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml rename to lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml diff --git a/tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml b/lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml similarity index 100% rename from tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml rename to lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml diff --git a/tests/cassettes/test_crew_with_failing_task_guardrails.yaml b/lib/crewai/tests/cassettes/test_crew_with_failing_task_guardrails.yaml similarity index 100% rename from tests/cassettes/test_crew_with_failing_task_guardrails.yaml rename to lib/crewai/tests/cassettes/test_crew_with_failing_task_guardrails.yaml diff --git a/tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml b/lib/crewai/tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml similarity index 100% rename from tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml rename to lib/crewai/tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml diff --git a/tests/cassettes/test_custom_converter_cls.yaml b/lib/crewai/tests/cassettes/test_custom_converter_cls.yaml similarity index 100% rename from tests/cassettes/test_custom_converter_cls.yaml rename to lib/crewai/tests/cassettes/test_custom_converter_cls.yaml diff --git a/tests/cassettes/test_custom_llm_implementation.yaml b/lib/crewai/tests/cassettes/test_custom_llm_implementation.yaml similarity index 100% rename from tests/cassettes/test_custom_llm_implementation.yaml rename to lib/crewai/tests/cassettes/test_custom_llm_implementation.yaml diff --git a/tests/cassettes/test_custom_llm_within_crew.yaml b/lib/crewai/tests/cassettes/test_custom_llm_within_crew.yaml similarity index 100% rename from tests/cassettes/test_custom_llm_within_crew.yaml rename to lib/crewai/tests/cassettes/test_custom_llm_within_crew.yaml diff --git a/tests/cassettes/test_deepseek_r1_with_open_router.yaml b/lib/crewai/tests/cassettes/test_deepseek_r1_with_open_router.yaml similarity index 100% rename from tests/cassettes/test_deepseek_r1_with_open_router.yaml rename to lib/crewai/tests/cassettes/test_deepseek_r1_with_open_router.yaml diff --git a/tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml b/lib/crewai/tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml similarity index 100% rename from tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml rename to lib/crewai/tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml diff --git a/tests/cassettes/test_disabled_memory_using_contextual_memory.yaml b/lib/crewai/tests/cassettes/test_disabled_memory_using_contextual_memory.yaml similarity index 100% rename from tests/cassettes/test_disabled_memory_using_contextual_memory.yaml rename to lib/crewai/tests/cassettes/test_disabled_memory_using_contextual_memory.yaml diff --git a/tests/cassettes/test_disabling_cache_for_agent.yaml b/lib/crewai/tests/cassettes/test_disabling_cache_for_agent.yaml similarity index 100% rename from tests/cassettes/test_disabling_cache_for_agent.yaml rename to lib/crewai/tests/cassettes/test_disabling_cache_for_agent.yaml diff --git a/tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml b/lib/crewai/tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml similarity index 100% rename from tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml rename to lib/crewai/tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml diff --git a/tests/cassettes/test_docling_source.yaml b/lib/crewai/tests/cassettes/test_docling_source.yaml similarity index 100% rename from tests/cassettes/test_docling_source.yaml rename to lib/crewai/tests/cassettes/test_docling_source.yaml diff --git a/tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml b/lib/crewai/tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml similarity index 100% rename from tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml rename to lib/crewai/tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml diff --git a/tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml b/lib/crewai/tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml similarity index 100% rename from tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml rename to lib/crewai/tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml diff --git a/tests/cassettes/test_first_task_auto_inject_trigger.yaml b/lib/crewai/tests/cassettes/test_first_task_auto_inject_trigger.yaml similarity index 100% rename from tests/cassettes/test_first_task_auto_inject_trigger.yaml rename to lib/crewai/tests/cassettes/test_first_task_auto_inject_trigger.yaml diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml similarity index 100% rename from tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml similarity index 100% rename from tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml similarity index 100% rename from tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml similarity index 100% rename from tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml similarity index 100% rename from tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml diff --git a/tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml b/lib/crewai/tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml similarity index 100% rename from tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml rename to lib/crewai/tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml diff --git a/tests/cassettes/test_get_knowledge_search_query.yaml b/lib/crewai/tests/cassettes/test_get_knowledge_search_query.yaml similarity index 100% rename from tests/cassettes/test_get_knowledge_search_query.yaml rename to lib/crewai/tests/cassettes/test_get_knowledge_search_query.yaml diff --git a/tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml b/lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml similarity index 100% rename from tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml rename to lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml diff --git a/tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml b/lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml similarity index 100% rename from tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml rename to lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml diff --git a/tests/cassettes/test_gpt_4_1[gpt-4.1].yaml b/lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1].yaml similarity index 100% rename from tests/cassettes/test_gpt_4_1[gpt-4.1].yaml rename to lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1].yaml diff --git a/tests/cassettes/test_guardrail_is_called_using_callable.yaml b/lib/crewai/tests/cassettes/test_guardrail_is_called_using_callable.yaml similarity index 100% rename from tests/cassettes/test_guardrail_is_called_using_callable.yaml rename to lib/crewai/tests/cassettes/test_guardrail_is_called_using_callable.yaml diff --git a/tests/cassettes/test_guardrail_is_called_using_string.yaml b/lib/crewai/tests/cassettes/test_guardrail_is_called_using_string.yaml similarity index 100% rename from tests/cassettes/test_guardrail_is_called_using_string.yaml rename to lib/crewai/tests/cassettes/test_guardrail_is_called_using_string.yaml diff --git a/tests/cassettes/test_guardrail_reached_attempt_limit.yaml b/lib/crewai/tests/cassettes/test_guardrail_reached_attempt_limit.yaml similarity index 100% rename from tests/cassettes/test_guardrail_reached_attempt_limit.yaml rename to lib/crewai/tests/cassettes/test_guardrail_reached_attempt_limit.yaml diff --git a/tests/cassettes/test_handle_context_length_exceeds_limit.yaml b/lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit.yaml similarity index 100% rename from tests/cassettes/test_handle_context_length_exceeds_limit.yaml rename to lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit.yaml diff --git a/tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml b/lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml similarity index 100% rename from tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml rename to lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml diff --git a/tests/cassettes/test_handle_streaming_tool_calls.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls.yaml similarity index 100% rename from tests/cassettes/test_handle_streaming_tool_calls.yaml rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls.yaml diff --git a/tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml similarity index 100% rename from tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml diff --git a/tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml similarity index 100% rename from tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml diff --git a/tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml similarity index 100% rename from tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml diff --git a/tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml b/lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml similarity index 100% rename from tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml rename to lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml diff --git a/tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml b/lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml similarity index 100% rename from tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml rename to lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml diff --git a/tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml b/lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml similarity index 100% rename from tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml rename to lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml diff --git a/tests/cassettes/test_hierarchical_process.yaml b/lib/crewai/tests/cassettes/test_hierarchical_process.yaml similarity index 100% rename from tests/cassettes/test_hierarchical_process.yaml rename to lib/crewai/tests/cassettes/test_hierarchical_process.yaml diff --git a/tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml b/lib/crewai/tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml similarity index 100% rename from tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml rename to lib/crewai/tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml diff --git a/tests/cassettes/test_hierarchical_verbose_manager_agent.yaml b/lib/crewai/tests/cassettes/test_hierarchical_verbose_manager_agent.yaml similarity index 100% rename from tests/cassettes/test_hierarchical_verbose_manager_agent.yaml rename to lib/crewai/tests/cassettes/test_hierarchical_verbose_manager_agent.yaml diff --git a/tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml b/lib/crewai/tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml similarity index 100% rename from tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml rename to lib/crewai/tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml diff --git a/tests/cassettes/test_increment_delegations_for_sequential_process.yaml b/lib/crewai/tests/cassettes/test_increment_delegations_for_sequential_process.yaml similarity index 100% rename from tests/cassettes/test_increment_delegations_for_sequential_process.yaml rename to lib/crewai/tests/cassettes/test_increment_delegations_for_sequential_process.yaml diff --git a/tests/cassettes/test_increment_tool_errors.yaml b/lib/crewai/tests/cassettes/test_increment_tool_errors.yaml similarity index 100% rename from tests/cassettes/test_increment_tool_errors.yaml rename to lib/crewai/tests/cassettes/test_increment_tool_errors.yaml diff --git a/tests/cassettes/test_inject_date.yaml b/lib/crewai/tests/cassettes/test_inject_date.yaml similarity index 100% rename from tests/cassettes/test_inject_date.yaml rename to lib/crewai/tests/cassettes/test_inject_date.yaml diff --git a/tests/cassettes/test_inject_date_custom_format.yaml b/lib/crewai/tests/cassettes/test_inject_date_custom_format.yaml similarity index 100% rename from tests/cassettes/test_inject_date_custom_format.yaml rename to lib/crewai/tests/cassettes/test_inject_date_custom_format.yaml diff --git a/tests/cassettes/test_json_property_without_output_json.yaml b/lib/crewai/tests/cassettes/test_json_property_without_output_json.yaml similarity index 100% rename from tests/cassettes/test_json_property_without_output_json.yaml rename to lib/crewai/tests/cassettes/test_json_property_without_output_json.yaml diff --git a/tests/cassettes/test_kickoff_for_each_error_handling.yaml b/lib/crewai/tests/cassettes/test_kickoff_for_each_error_handling.yaml similarity index 100% rename from tests/cassettes/test_kickoff_for_each_error_handling.yaml rename to lib/crewai/tests/cassettes/test_kickoff_for_each_error_handling.yaml diff --git a/tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml b/lib/crewai/tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml similarity index 100% rename from tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml rename to lib/crewai/tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml diff --git a/tests/cassettes/test_kickoff_for_each_single_input.yaml b/lib/crewai/tests/cassettes/test_kickoff_for_each_single_input.yaml similarity index 100% rename from tests/cassettes/test_kickoff_for_each_single_input.yaml rename to lib/crewai/tests/cassettes/test_kickoff_for_each_single_input.yaml diff --git a/tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml b/lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml similarity index 100% rename from tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml rename to lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml diff --git a/tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml b/lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml similarity index 100% rename from tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml rename to lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml diff --git a/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml b/lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml similarity index 100% rename from tests/cassettes/test_lite_agent_returns_usage_metrics.yaml rename to lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml diff --git a/tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml b/lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml similarity index 100% rename from tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml rename to lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml diff --git a/tests/cassettes/test_lite_agent_structured_output.yaml b/lib/crewai/tests/cassettes/test_lite_agent_structured_output.yaml similarity index 100% rename from tests/cassettes/test_lite_agent_structured_output.yaml rename to lib/crewai/tests/cassettes/test_lite_agent_structured_output.yaml diff --git a/tests/cassettes/test_lite_agent_with_tools.yaml b/lib/crewai/tests/cassettes/test_lite_agent_with_tools.yaml similarity index 100% rename from tests/cassettes/test_lite_agent_with_tools.yaml rename to lib/crewai/tests/cassettes/test_lite_agent_with_tools.yaml diff --git a/tests/cassettes/test_llm_call.yaml b/lib/crewai/tests/cassettes/test_llm_call.yaml similarity index 100% rename from tests/cassettes/test_llm_call.yaml rename to lib/crewai/tests/cassettes/test_llm_call.yaml diff --git a/tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml b/lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml similarity index 100% rename from tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml rename to lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml diff --git a/tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml b/lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml similarity index 100% rename from tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml rename to lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml diff --git a/tests/cassettes/test_llm_call_with_all_attributes.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_all_attributes.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_all_attributes.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_all_attributes.yaml diff --git a/tests/cassettes/test_llm_call_with_message_list.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_message_list.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_message_list.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_message_list.yaml diff --git a/tests/cassettes/test_llm_call_with_ollama_llama3.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_ollama_llama3.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_ollama_llama3.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_ollama_llama3.yaml diff --git a/tests/cassettes/test_llm_call_with_string_input.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_string_input.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_string_input.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_string_input.yaml diff --git a/tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml diff --git a/tests/cassettes/test_llm_call_with_tool_and_message_list.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_tool_and_message_list.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_tool_and_message_list.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_tool_and_message_list.yaml diff --git a/tests/cassettes/test_llm_call_with_tool_and_string_input.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_tool_and_string_input.yaml similarity index 100% rename from tests/cassettes/test_llm_call_with_tool_and_string_input.yaml rename to lib/crewai/tests/cassettes/test_llm_call_with_tool_and_string_input.yaml diff --git a/tests/cassettes/test_llm_callback_replacement.yaml b/lib/crewai/tests/cassettes/test_llm_callback_replacement.yaml similarity index 100% rename from tests/cassettes/test_llm_callback_replacement.yaml rename to lib/crewai/tests/cassettes/test_llm_callback_replacement.yaml diff --git a/tests/cassettes/test_logging_tool_usage.yaml b/lib/crewai/tests/cassettes/test_logging_tool_usage.yaml similarity index 100% rename from tests/cassettes/test_logging_tool_usage.yaml rename to lib/crewai/tests/cassettes/test_logging_tool_usage.yaml diff --git a/tests/cassettes/test_long_term_memory_with_memory_flag.yaml b/lib/crewai/tests/cassettes/test_long_term_memory_with_memory_flag.yaml similarity index 100% rename from tests/cassettes/test_long_term_memory_with_memory_flag.yaml rename to lib/crewai/tests/cassettes/test_long_term_memory_with_memory_flag.yaml diff --git a/tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml b/lib/crewai/tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml similarity index 100% rename from tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml rename to lib/crewai/tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml diff --git a/tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml b/lib/crewai/tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml similarity index 100% rename from tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml rename to lib/crewai/tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml diff --git a/tests/cassettes/test_max_usage_count_is_respected.yaml b/lib/crewai/tests/cassettes/test_max_usage_count_is_respected.yaml similarity index 100% rename from tests/cassettes/test_max_usage_count_is_respected.yaml rename to lib/crewai/tests/cassettes/test_max_usage_count_is_respected.yaml diff --git a/tests/cassettes/test_memory_events_are_emitted.yaml b/lib/crewai/tests/cassettes/test_memory_events_are_emitted.yaml similarity index 100% rename from tests/cassettes/test_memory_events_are_emitted.yaml rename to lib/crewai/tests/cassettes/test_memory_events_are_emitted.yaml diff --git a/tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml b/lib/crewai/tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml similarity index 100% rename from tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml rename to lib/crewai/tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml diff --git a/tests/cassettes/test_multimodal_agent_live_image_analysis.yaml b/lib/crewai/tests/cassettes/test_multimodal_agent_live_image_analysis.yaml similarity index 100% rename from tests/cassettes/test_multimodal_agent_live_image_analysis.yaml rename to lib/crewai/tests/cassettes/test_multimodal_agent_live_image_analysis.yaml diff --git a/tests/cassettes/test_multiple_before_after_crew.yaml b/lib/crewai/tests/cassettes/test_multiple_before_after_crew.yaml similarity index 100% rename from tests/cassettes/test_multiple_before_after_crew.yaml rename to lib/crewai/tests/cassettes/test_multiple_before_after_crew.yaml diff --git a/tests/cassettes/test_multiple_before_after_kickoff.yaml b/lib/crewai/tests/cassettes/test_multiple_before_after_kickoff.yaml similarity index 100% rename from tests/cassettes/test_multiple_before_after_kickoff.yaml rename to lib/crewai/tests/cassettes/test_multiple_before_after_kickoff.yaml diff --git a/tests/cassettes/test_multiple_docling_sources.yaml b/lib/crewai/tests/cassettes/test_multiple_docling_sources.yaml similarity index 100% rename from tests/cassettes/test_multiple_docling_sources.yaml rename to lib/crewai/tests/cassettes/test_multiple_docling_sources.yaml diff --git a/tests/cassettes/test_no_inject_date.yaml b/lib/crewai/tests/cassettes/test_no_inject_date.yaml similarity index 100% rename from tests/cassettes/test_no_inject_date.yaml rename to lib/crewai/tests/cassettes/test_no_inject_date.yaml diff --git a/tests/cassettes/test_o3_mini_reasoning_effort_high.yaml b/lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_high.yaml similarity index 100% rename from tests/cassettes/test_o3_mini_reasoning_effort_high.yaml rename to lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_high.yaml diff --git a/tests/cassettes/test_o3_mini_reasoning_effort_low.yaml b/lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_low.yaml similarity index 100% rename from tests/cassettes/test_o3_mini_reasoning_effort_low.yaml rename to lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_low.yaml diff --git a/tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml b/lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml similarity index 100% rename from tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml rename to lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml diff --git a/tests/cassettes/test_output_json_dict_hierarchical.yaml b/lib/crewai/tests/cassettes/test_output_json_dict_hierarchical.yaml similarity index 100% rename from tests/cassettes/test_output_json_dict_hierarchical.yaml rename to lib/crewai/tests/cassettes/test_output_json_dict_hierarchical.yaml diff --git a/tests/cassettes/test_output_json_dict_sequential.yaml b/lib/crewai/tests/cassettes/test_output_json_dict_sequential.yaml similarity index 100% rename from tests/cassettes/test_output_json_dict_sequential.yaml rename to lib/crewai/tests/cassettes/test_output_json_dict_sequential.yaml diff --git a/tests/cassettes/test_output_json_hierarchical.yaml b/lib/crewai/tests/cassettes/test_output_json_hierarchical.yaml similarity index 100% rename from tests/cassettes/test_output_json_hierarchical.yaml rename to lib/crewai/tests/cassettes/test_output_json_hierarchical.yaml diff --git a/tests/cassettes/test_output_json_sequential.yaml b/lib/crewai/tests/cassettes/test_output_json_sequential.yaml similarity index 100% rename from tests/cassettes/test_output_json_sequential.yaml rename to lib/crewai/tests/cassettes/test_output_json_sequential.yaml diff --git a/tests/cassettes/test_output_json_to_another_task.yaml b/lib/crewai/tests/cassettes/test_output_json_to_another_task.yaml similarity index 100% rename from tests/cassettes/test_output_json_to_another_task.yaml rename to lib/crewai/tests/cassettes/test_output_json_to_another_task.yaml diff --git a/tests/cassettes/test_output_pydantic_hierarchical.yaml b/lib/crewai/tests/cassettes/test_output_pydantic_hierarchical.yaml similarity index 100% rename from tests/cassettes/test_output_pydantic_hierarchical.yaml rename to lib/crewai/tests/cassettes/test_output_pydantic_hierarchical.yaml diff --git a/tests/cassettes/test_output_pydantic_sequential.yaml b/lib/crewai/tests/cassettes/test_output_pydantic_sequential.yaml similarity index 100% rename from tests/cassettes/test_output_pydantic_sequential.yaml rename to lib/crewai/tests/cassettes/test_output_pydantic_sequential.yaml diff --git a/tests/cassettes/test_output_pydantic_to_another_task.yaml b/lib/crewai/tests/cassettes/test_output_pydantic_to_another_task.yaml similarity index 100% rename from tests/cassettes/test_output_pydantic_to_another_task.yaml rename to lib/crewai/tests/cassettes/test_output_pydantic_to_another_task.yaml diff --git a/tests/cassettes/test_replay_interpolates_inputs_properly.yaml b/lib/crewai/tests/cassettes/test_replay_interpolates_inputs_properly.yaml similarity index 100% rename from tests/cassettes/test_replay_interpolates_inputs_properly.yaml rename to lib/crewai/tests/cassettes/test_replay_interpolates_inputs_properly.yaml diff --git a/tests/cassettes/test_replay_setup_context.yaml b/lib/crewai/tests/cassettes/test_replay_setup_context.yaml similarity index 100% rename from tests/cassettes/test_replay_setup_context.yaml rename to lib/crewai/tests/cassettes/test_replay_setup_context.yaml diff --git a/tests/cassettes/test_replay_with_context.yaml b/lib/crewai/tests/cassettes/test_replay_with_context.yaml similarity index 100% rename from tests/cassettes/test_replay_with_context.yaml rename to lib/crewai/tests/cassettes/test_replay_with_context.yaml diff --git a/tests/cassettes/test_save_task_json_output.yaml b/lib/crewai/tests/cassettes/test_save_task_json_output.yaml similarity index 100% rename from tests/cassettes/test_save_task_json_output.yaml rename to lib/crewai/tests/cassettes/test_save_task_json_output.yaml diff --git a/tests/cassettes/test_save_task_output.yaml b/lib/crewai/tests/cassettes/test_save_task_output.yaml similarity index 100% rename from tests/cassettes/test_save_task_output.yaml rename to lib/crewai/tests/cassettes/test_save_task_output.yaml diff --git a/tests/cassettes/test_save_task_pydantic_output.yaml b/lib/crewai/tests/cassettes/test_save_task_pydantic_output.yaml similarity index 100% rename from tests/cassettes/test_save_task_pydantic_output.yaml rename to lib/crewai/tests/cassettes/test_save_task_pydantic_output.yaml diff --git a/tests/cassettes/test_sequential_async_task_execution_completion.yaml b/lib/crewai/tests/cassettes/test_sequential_async_task_execution_completion.yaml similarity index 100% rename from tests/cassettes/test_sequential_async_task_execution_completion.yaml rename to lib/crewai/tests/cassettes/test_sequential_async_task_execution_completion.yaml diff --git a/tests/cassettes/test_single_task_with_async_execution.yaml b/lib/crewai/tests/cassettes/test_single_task_with_async_execution.yaml similarity index 100% rename from tests/cassettes/test_single_task_with_async_execution.yaml rename to lib/crewai/tests/cassettes/test_single_task_with_async_execution.yaml diff --git a/tests/cassettes/test_task_allow_crewai_trigger_context.yaml b/lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context.yaml similarity index 100% rename from tests/cassettes/test_task_allow_crewai_trigger_context.yaml rename to lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context.yaml diff --git a/tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml b/lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml similarity index 100% rename from tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml rename to lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml diff --git a/tests/cassettes/test_task_execution_times.yaml b/lib/crewai/tests/cassettes/test_task_execution_times.yaml similarity index 100% rename from tests/cassettes/test_task_execution_times.yaml rename to lib/crewai/tests/cassettes/test_task_execution_times.yaml diff --git a/tests/cassettes/test_task_guardrail_process_output.yaml b/lib/crewai/tests/cassettes/test_task_guardrail_process_output.yaml similarity index 100% rename from tests/cassettes/test_task_guardrail_process_output.yaml rename to lib/crewai/tests/cassettes/test_task_guardrail_process_output.yaml diff --git a/tests/cassettes/test_task_interpolation_with_hyphens.yaml b/lib/crewai/tests/cassettes/test_task_interpolation_with_hyphens.yaml similarity index 100% rename from tests/cassettes/test_task_interpolation_with_hyphens.yaml rename to lib/crewai/tests/cassettes/test_task_interpolation_with_hyphens.yaml diff --git a/tests/cassettes/test_task_tools_override_agent_tools.yaml b/lib/crewai/tests/cassettes/test_task_tools_override_agent_tools.yaml similarity index 100% rename from tests/cassettes/test_task_tools_override_agent_tools.yaml rename to lib/crewai/tests/cassettes/test_task_tools_override_agent_tools.yaml diff --git a/tests/cassettes/test_task_with_max_execution_time.yaml b/lib/crewai/tests/cassettes/test_task_with_max_execution_time.yaml similarity index 100% rename from tests/cassettes/test_task_with_max_execution_time.yaml rename to lib/crewai/tests/cassettes/test_task_with_max_execution_time.yaml diff --git a/tests/cassettes/test_task_with_max_execution_time_exceeded.yaml b/lib/crewai/tests/cassettes/test_task_with_max_execution_time_exceeded.yaml similarity index 100% rename from tests/cassettes/test_task_with_max_execution_time_exceeded.yaml rename to lib/crewai/tests/cassettes/test_task_with_max_execution_time_exceeded.yaml diff --git a/tests/cassettes/test_task_with_no_arguments.yaml b/lib/crewai/tests/cassettes/test_task_with_no_arguments.yaml similarity index 100% rename from tests/cassettes/test_task_with_no_arguments.yaml rename to lib/crewai/tests/cassettes/test_task_with_no_arguments.yaml diff --git a/tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml b/lib/crewai/tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml similarity index 100% rename from tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml rename to lib/crewai/tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml diff --git a/tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml b/lib/crewai/tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml similarity index 100% rename from tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml rename to lib/crewai/tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml diff --git a/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml b/lib/crewai/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml similarity index 100% rename from tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml rename to lib/crewai/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml diff --git a/tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml b/lib/crewai/tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml similarity index 100% rename from tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml rename to lib/crewai/tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml diff --git a/tests/cassettes/test_tools_with_custom_caching.yaml b/lib/crewai/tests/cassettes/test_tools_with_custom_caching.yaml similarity index 100% rename from tests/cassettes/test_tools_with_custom_caching.yaml rename to lib/crewai/tests/cassettes/test_tools_with_custom_caching.yaml diff --git a/tests/cassettes/test_using_contextual_memory.yaml b/lib/crewai/tests/cassettes/test_using_contextual_memory.yaml similarity index 100% rename from tests/cassettes/test_using_contextual_memory.yaml rename to lib/crewai/tests/cassettes/test_using_contextual_memory.yaml diff --git a/tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml b/lib/crewai/tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml similarity index 100% rename from tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml rename to lib/crewai/tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml diff --git a/tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml b/lib/crewai/tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml similarity index 100% rename from tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml rename to lib/crewai/tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml diff --git a/tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml b/lib/crewai/tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml similarity index 100% rename from tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml rename to lib/crewai/tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml diff --git a/tests/cassettes/__init__.py b/lib/crewai/tests/cli/__init__.py similarity index 100% rename from tests/cassettes/__init__.py rename to lib/crewai/tests/cli/__init__.py diff --git a/tests/cli/__init__.py b/lib/crewai/tests/cli/authentication/__init__.py similarity index 100% rename from tests/cli/__init__.py rename to lib/crewai/tests/cli/authentication/__init__.py diff --git a/tests/cli/authentication/__init__.py b/lib/crewai/tests/cli/authentication/providers/__init__.py similarity index 100% rename from tests/cli/authentication/__init__.py rename to lib/crewai/tests/cli/authentication/providers/__init__.py diff --git a/tests/cli/authentication/providers/test_auth0.py b/lib/crewai/tests/cli/authentication/providers/test_auth0.py similarity index 100% rename from tests/cli/authentication/providers/test_auth0.py rename to lib/crewai/tests/cli/authentication/providers/test_auth0.py diff --git a/tests/cli/authentication/providers/test_okta.py b/lib/crewai/tests/cli/authentication/providers/test_okta.py similarity index 100% rename from tests/cli/authentication/providers/test_okta.py rename to lib/crewai/tests/cli/authentication/providers/test_okta.py diff --git a/tests/cli/authentication/providers/test_workos.py b/lib/crewai/tests/cli/authentication/providers/test_workos.py similarity index 100% rename from tests/cli/authentication/providers/test_workos.py rename to lib/crewai/tests/cli/authentication/providers/test_workos.py diff --git a/tests/cli/authentication/test_auth_main.py b/lib/crewai/tests/cli/authentication/test_auth_main.py similarity index 100% rename from tests/cli/authentication/test_auth_main.py rename to lib/crewai/tests/cli/authentication/test_auth_main.py diff --git a/tests/cli/authentication/test_utils.py b/lib/crewai/tests/cli/authentication/test_utils.py similarity index 100% rename from tests/cli/authentication/test_utils.py rename to lib/crewai/tests/cli/authentication/test_utils.py diff --git a/tests/cli/deploy/__init__.py b/lib/crewai/tests/cli/deploy/__init__.py similarity index 100% rename from tests/cli/deploy/__init__.py rename to lib/crewai/tests/cli/deploy/__init__.py diff --git a/tests/cli/deploy/test_deploy_main.py b/lib/crewai/tests/cli/deploy/test_deploy_main.py similarity index 100% rename from tests/cli/deploy/test_deploy_main.py rename to lib/crewai/tests/cli/deploy/test_deploy_main.py diff --git a/tests/cli/authentication/providers/__init__.py b/lib/crewai/tests/cli/enterprise/__init__.py similarity index 100% rename from tests/cli/authentication/providers/__init__.py rename to lib/crewai/tests/cli/enterprise/__init__.py diff --git a/tests/cli/enterprise/test_main.py b/lib/crewai/tests/cli/enterprise/test_main.py similarity index 100% rename from tests/cli/enterprise/test_main.py rename to lib/crewai/tests/cli/enterprise/test_main.py diff --git a/tests/cli/organization/__init__.py b/lib/crewai/tests/cli/organization/__init__.py similarity index 100% rename from tests/cli/organization/__init__.py rename to lib/crewai/tests/cli/organization/__init__.py diff --git a/tests/cli/organization/test_main.py b/lib/crewai/tests/cli/organization/test_main.py similarity index 100% rename from tests/cli/organization/test_main.py rename to lib/crewai/tests/cli/organization/test_main.py diff --git a/tests/cli/test_cli.py b/lib/crewai/tests/cli/test_cli.py similarity index 100% rename from tests/cli/test_cli.py rename to lib/crewai/tests/cli/test_cli.py diff --git a/tests/cli/test_config.py b/lib/crewai/tests/cli/test_config.py similarity index 100% rename from tests/cli/test_config.py rename to lib/crewai/tests/cli/test_config.py diff --git a/tests/cli/test_constants.py b/lib/crewai/tests/cli/test_constants.py similarity index 100% rename from tests/cli/test_constants.py rename to lib/crewai/tests/cli/test_constants.py diff --git a/tests/cli/test_create_crew.py b/lib/crewai/tests/cli/test_create_crew.py similarity index 100% rename from tests/cli/test_create_crew.py rename to lib/crewai/tests/cli/test_create_crew.py diff --git a/tests/cli/test_crew_test.py b/lib/crewai/tests/cli/test_crew_test.py similarity index 100% rename from tests/cli/test_crew_test.py rename to lib/crewai/tests/cli/test_crew_test.py diff --git a/tests/cli/test_git.py b/lib/crewai/tests/cli/test_git.py similarity index 100% rename from tests/cli/test_git.py rename to lib/crewai/tests/cli/test_git.py diff --git a/tests/cli/test_plus_api.py b/lib/crewai/tests/cli/test_plus_api.py similarity index 100% rename from tests/cli/test_plus_api.py rename to lib/crewai/tests/cli/test_plus_api.py diff --git a/tests/cli/test_settings_command.py b/lib/crewai/tests/cli/test_settings_command.py similarity index 100% rename from tests/cli/test_settings_command.py rename to lib/crewai/tests/cli/test_settings_command.py diff --git a/tests/cli/test_token_manager.py b/lib/crewai/tests/cli/test_token_manager.py similarity index 100% rename from tests/cli/test_token_manager.py rename to lib/crewai/tests/cli/test_token_manager.py diff --git a/tests/cli/test_train_crew.py b/lib/crewai/tests/cli/test_train_crew.py similarity index 100% rename from tests/cli/test_train_crew.py rename to lib/crewai/tests/cli/test_train_crew.py diff --git a/tests/cli/test_utils.py b/lib/crewai/tests/cli/test_utils.py similarity index 100% rename from tests/cli/test_utils.py rename to lib/crewai/tests/cli/test_utils.py diff --git a/tests/cli/test_version.py b/lib/crewai/tests/cli/test_version.py similarity index 100% rename from tests/cli/test_version.py rename to lib/crewai/tests/cli/test_version.py diff --git a/tests/cli/enterprise/__init__.py b/lib/crewai/tests/cli/tools/__init__.py similarity index 100% rename from tests/cli/enterprise/__init__.py rename to lib/crewai/tests/cli/tools/__init__.py diff --git a/tests/cli/tools/test_main.py b/lib/crewai/tests/cli/tools/test_main.py similarity index 100% rename from tests/cli/tools/test_main.py rename to lib/crewai/tests/cli/tools/test_main.py diff --git a/tests/cli/tools/__init__.py b/lib/crewai/tests/config/__init__.py similarity index 100% rename from tests/cli/tools/__init__.py rename to lib/crewai/tests/config/__init__.py diff --git a/tests/config/agents.yaml b/lib/crewai/tests/config/agents.yaml similarity index 100% rename from tests/config/agents.yaml rename to lib/crewai/tests/config/agents.yaml diff --git a/tests/config/tasks.yaml b/lib/crewai/tests/config/tasks.yaml similarity index 100% rename from tests/config/tasks.yaml rename to lib/crewai/tests/config/tasks.yaml diff --git a/tests/conftest.py b/lib/crewai/tests/conftest.py similarity index 100% rename from tests/conftest.py rename to lib/crewai/tests/conftest.py diff --git a/tests/config/__init__.py b/lib/crewai/tests/events/__init__.py similarity index 100% rename from tests/config/__init__.py rename to lib/crewai/tests/events/__init__.py diff --git a/tests/events/test_tracing_utils_machine_id.py b/lib/crewai/tests/events/test_tracing_utils_machine_id.py similarity index 100% rename from tests/events/test_tracing_utils_machine_id.py rename to lib/crewai/tests/events/test_tracing_utils_machine_id.py diff --git a/tests/events/__init__.py b/lib/crewai/tests/experimental/__init__.py similarity index 100% rename from tests/events/__init__.py rename to lib/crewai/tests/experimental/__init__.py diff --git a/tests/experimental/__init__.py b/lib/crewai/tests/experimental/evaluation/__init__.py similarity index 100% rename from tests/experimental/__init__.py rename to lib/crewai/tests/experimental/evaluation/__init__.py diff --git a/tests/experimental/evaluation/__init__.py b/lib/crewai/tests/experimental/evaluation/metrics/__init__.py similarity index 100% rename from tests/experimental/evaluation/__init__.py rename to lib/crewai/tests/experimental/evaluation/metrics/__init__.py diff --git a/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py similarity index 100% rename from tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py rename to lib/crewai/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py diff --git a/tests/experimental/evaluation/metrics/test_goal_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_goal_metrics.py similarity index 100% rename from tests/experimental/evaluation/metrics/test_goal_metrics.py rename to lib/crewai/tests/experimental/evaluation/metrics/test_goal_metrics.py diff --git a/tests/experimental/evaluation/metrics/test_reasoning_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_reasoning_metrics.py similarity index 100% rename from tests/experimental/evaluation/metrics/test_reasoning_metrics.py rename to lib/crewai/tests/experimental/evaluation/metrics/test_reasoning_metrics.py diff --git a/tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py similarity index 100% rename from tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py rename to lib/crewai/tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py diff --git a/tests/experimental/evaluation/metrics/test_tools_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_tools_metrics.py similarity index 100% rename from tests/experimental/evaluation/metrics/test_tools_metrics.py rename to lib/crewai/tests/experimental/evaluation/metrics/test_tools_metrics.py diff --git a/tests/experimental/evaluation/test_agent_evaluator.py b/lib/crewai/tests/experimental/evaluation/test_agent_evaluator.py similarity index 100% rename from tests/experimental/evaluation/test_agent_evaluator.py rename to lib/crewai/tests/experimental/evaluation/test_agent_evaluator.py diff --git a/tests/experimental/evaluation/test_experiment_result.py b/lib/crewai/tests/experimental/evaluation/test_experiment_result.py similarity index 100% rename from tests/experimental/evaluation/test_experiment_result.py rename to lib/crewai/tests/experimental/evaluation/test_experiment_result.py diff --git a/tests/experimental/evaluation/test_experiment_runner.py b/lib/crewai/tests/experimental/evaluation/test_experiment_runner.py similarity index 100% rename from tests/experimental/evaluation/test_experiment_runner.py rename to lib/crewai/tests/experimental/evaluation/test_experiment_runner.py diff --git a/tests/experimental/evaluation/metrics/__init__.py b/lib/crewai/tests/knowledge/__init__.py similarity index 100% rename from tests/experimental/evaluation/metrics/__init__.py rename to lib/crewai/tests/knowledge/__init__.py diff --git a/tests/knowledge/crewai_quickstart.pdf b/lib/crewai/tests/knowledge/crewai_quickstart.pdf similarity index 100% rename from tests/knowledge/crewai_quickstart.pdf rename to lib/crewai/tests/knowledge/crewai_quickstart.pdf diff --git a/tests/knowledge/test_knowledge.py b/lib/crewai/tests/knowledge/test_knowledge.py similarity index 100% rename from tests/knowledge/test_knowledge.py rename to lib/crewai/tests/knowledge/test_knowledge.py diff --git a/tests/knowledge/test_knowledge_searchresult.py b/lib/crewai/tests/knowledge/test_knowledge_searchresult.py similarity index 100% rename from tests/knowledge/test_knowledge_searchresult.py rename to lib/crewai/tests/knowledge/test_knowledge_searchresult.py diff --git a/tests/knowledge/test_knowledge_storage_integration.py b/lib/crewai/tests/knowledge/test_knowledge_storage_integration.py similarity index 100% rename from tests/knowledge/test_knowledge_storage_integration.py rename to lib/crewai/tests/knowledge/test_knowledge_storage_integration.py diff --git a/tests/memory/__init__.py b/lib/crewai/tests/memory/__init__.py similarity index 100% rename from tests/memory/__init__.py rename to lib/crewai/tests/memory/__init__.py diff --git a/tests/memory/test_external_memory.py b/lib/crewai/tests/memory/test_external_memory.py similarity index 100% rename from tests/memory/test_external_memory.py rename to lib/crewai/tests/memory/test_external_memory.py diff --git a/tests/memory/test_long_term_memory.py b/lib/crewai/tests/memory/test_long_term_memory.py similarity index 100% rename from tests/memory/test_long_term_memory.py rename to lib/crewai/tests/memory/test_long_term_memory.py diff --git a/tests/memory/test_short_term_memory.py b/lib/crewai/tests/memory/test_short_term_memory.py similarity index 100% rename from tests/memory/test_short_term_memory.py rename to lib/crewai/tests/memory/test_short_term_memory.py diff --git a/tests/knowledge/__init__.py b/lib/crewai/tests/pipeline/__init__.py similarity index 100% rename from tests/knowledge/__init__.py rename to lib/crewai/tests/pipeline/__init__.py diff --git a/tests/pipeline/__init__.py b/lib/crewai/tests/pipeline/cassettes/__init__.py similarity index 100% rename from tests/pipeline/__init__.py rename to lib/crewai/tests/pipeline/cassettes/__init__.py diff --git a/tests/pipeline/cassettes/test_router_with_empty_input.yaml b/lib/crewai/tests/pipeline/cassettes/test_router_with_empty_input.yaml similarity index 100% rename from tests/pipeline/cassettes/test_router_with_empty_input.yaml rename to lib/crewai/tests/pipeline/cassettes/test_router_with_empty_input.yaml diff --git a/tests/pipeline/cassettes/__init__.py b/lib/crewai/tests/rag/__init__.py similarity index 100% rename from tests/pipeline/cassettes/__init__.py rename to lib/crewai/tests/rag/__init__.py diff --git a/tests/rag/__init__.py b/lib/crewai/tests/rag/chromadb/__init__.py similarity index 100% rename from tests/rag/__init__.py rename to lib/crewai/tests/rag/chromadb/__init__.py diff --git a/tests/rag/chromadb/test_client.py b/lib/crewai/tests/rag/chromadb/test_client.py similarity index 100% rename from tests/rag/chromadb/test_client.py rename to lib/crewai/tests/rag/chromadb/test_client.py diff --git a/tests/rag/chromadb/test_utils.py b/lib/crewai/tests/rag/chromadb/test_utils.py similarity index 100% rename from tests/rag/chromadb/test_utils.py rename to lib/crewai/tests/rag/chromadb/test_utils.py diff --git a/tests/rag/chromadb/__init__.py b/lib/crewai/tests/rag/config/__init__.py similarity index 100% rename from tests/rag/chromadb/__init__.py rename to lib/crewai/tests/rag/config/__init__.py diff --git a/tests/rag/config/test_factory.py b/lib/crewai/tests/rag/config/test_factory.py similarity index 100% rename from tests/rag/config/test_factory.py rename to lib/crewai/tests/rag/config/test_factory.py diff --git a/tests/rag/config/test_optional_imports.py b/lib/crewai/tests/rag/config/test_optional_imports.py similarity index 100% rename from tests/rag/config/test_optional_imports.py rename to lib/crewai/tests/rag/config/test_optional_imports.py diff --git a/tests/rag/config/__init__.py b/lib/crewai/tests/rag/embeddings/__init__.py similarity index 100% rename from tests/rag/config/__init__.py rename to lib/crewai/tests/rag/embeddings/__init__.py diff --git a/tests/rag/embeddings/test_embedding_factory.py b/lib/crewai/tests/rag/embeddings/test_embedding_factory.py similarity index 100% rename from tests/rag/embeddings/test_embedding_factory.py rename to lib/crewai/tests/rag/embeddings/test_embedding_factory.py diff --git a/tests/rag/embeddings/test_factory_azure.py b/lib/crewai/tests/rag/embeddings/test_factory_azure.py similarity index 100% rename from tests/rag/embeddings/test_factory_azure.py rename to lib/crewai/tests/rag/embeddings/test_factory_azure.py diff --git a/tests/rag/embeddings/__init__.py b/lib/crewai/tests/rag/qdrant/__init__.py similarity index 100% rename from tests/rag/embeddings/__init__.py rename to lib/crewai/tests/rag/qdrant/__init__.py diff --git a/tests/rag/qdrant/test_client.py b/lib/crewai/tests/rag/qdrant/test_client.py similarity index 100% rename from tests/rag/qdrant/test_client.py rename to lib/crewai/tests/rag/qdrant/test_client.py diff --git a/tests/rag/test_error_handling.py b/lib/crewai/tests/rag/test_error_handling.py similarity index 100% rename from tests/rag/test_error_handling.py rename to lib/crewai/tests/rag/test_error_handling.py diff --git a/tests/rag/qdrant/__init__.py b/lib/crewai/tests/security/__init__.py similarity index 100% rename from tests/rag/qdrant/__init__.py rename to lib/crewai/tests/security/__init__.py diff --git a/tests/security/test_deterministic_fingerprints.py b/lib/crewai/tests/security/test_deterministic_fingerprints.py similarity index 100% rename from tests/security/test_deterministic_fingerprints.py rename to lib/crewai/tests/security/test_deterministic_fingerprints.py diff --git a/tests/security/test_examples.py b/lib/crewai/tests/security/test_examples.py similarity index 100% rename from tests/security/test_examples.py rename to lib/crewai/tests/security/test_examples.py diff --git a/tests/security/test_fingerprint.py b/lib/crewai/tests/security/test_fingerprint.py similarity index 100% rename from tests/security/test_fingerprint.py rename to lib/crewai/tests/security/test_fingerprint.py diff --git a/tests/security/test_integration.py b/lib/crewai/tests/security/test_integration.py similarity index 100% rename from tests/security/test_integration.py rename to lib/crewai/tests/security/test_integration.py diff --git a/tests/security/test_security_config.py b/lib/crewai/tests/security/test_security_config.py similarity index 100% rename from tests/security/test_security_config.py rename to lib/crewai/tests/security/test_security_config.py diff --git a/tests/storage/__init__.py b/lib/crewai/tests/storage/__init__.py similarity index 100% rename from tests/storage/__init__.py rename to lib/crewai/tests/storage/__init__.py diff --git a/tests/storage/test_mem0_storage.py b/lib/crewai/tests/storage/test_mem0_storage.py similarity index 100% rename from tests/storage/test_mem0_storage.py rename to lib/crewai/tests/storage/test_mem0_storage.py diff --git a/tests/security/__init__.py b/lib/crewai/tests/telemetry/__init__.py similarity index 100% rename from tests/security/__init__.py rename to lib/crewai/tests/telemetry/__init__.py diff --git a/tests/telemetry/test_telemetry.py b/lib/crewai/tests/telemetry/test_telemetry.py similarity index 100% rename from tests/telemetry/test_telemetry.py rename to lib/crewai/tests/telemetry/test_telemetry.py diff --git a/tests/telemetry/test_telemetry_disable.py b/lib/crewai/tests/telemetry/test_telemetry_disable.py similarity index 100% rename from tests/telemetry/test_telemetry_disable.py rename to lib/crewai/tests/telemetry/test_telemetry_disable.py diff --git a/tests/test_context.py b/lib/crewai/tests/test_context.py similarity index 100% rename from tests/test_context.py rename to lib/crewai/tests/test_context.py diff --git a/tests/test_crew.py b/lib/crewai/tests/test_crew.py similarity index 100% rename from tests/test_crew.py rename to lib/crewai/tests/test_crew.py diff --git a/tests/test_crew_thread_safety.py b/lib/crewai/tests/test_crew_thread_safety.py similarity index 100% rename from tests/test_crew_thread_safety.py rename to lib/crewai/tests/test_crew_thread_safety.py diff --git a/tests/test_custom_llm.py b/lib/crewai/tests/test_custom_llm.py similarity index 100% rename from tests/test_custom_llm.py rename to lib/crewai/tests/test_custom_llm.py diff --git a/tests/test_flow.py b/lib/crewai/tests/test_flow.py similarity index 100% rename from tests/test_flow.py rename to lib/crewai/tests/test_flow.py diff --git a/tests/test_flow_default_override.py b/lib/crewai/tests/test_flow_default_override.py similarity index 100% rename from tests/test_flow_default_override.py rename to lib/crewai/tests/test_flow_default_override.py diff --git a/tests/test_flow_human_input_integration.py b/lib/crewai/tests/test_flow_human_input_integration.py similarity index 100% rename from tests/test_flow_human_input_integration.py rename to lib/crewai/tests/test_flow_human_input_integration.py diff --git a/tests/test_flow_persistence.py b/lib/crewai/tests/test_flow_persistence.py similarity index 100% rename from tests/test_flow_persistence.py rename to lib/crewai/tests/test_flow_persistence.py diff --git a/tests/test_flow_resumability_regression.py b/lib/crewai/tests/test_flow_resumability_regression.py similarity index 100% rename from tests/test_flow_resumability_regression.py rename to lib/crewai/tests/test_flow_resumability_regression.py diff --git a/tests/test_hallucination_guardrail.py b/lib/crewai/tests/test_hallucination_guardrail.py similarity index 100% rename from tests/test_hallucination_guardrail.py rename to lib/crewai/tests/test_hallucination_guardrail.py diff --git a/tests/test_imports.py b/lib/crewai/tests/test_imports.py similarity index 100% rename from tests/test_imports.py rename to lib/crewai/tests/test_imports.py diff --git a/tests/test_llm.py b/lib/crewai/tests/test_llm.py similarity index 100% rename from tests/test_llm.py rename to lib/crewai/tests/test_llm.py diff --git a/tests/test_markdown_task.py b/lib/crewai/tests/test_markdown_task.py similarity index 100% rename from tests/test_markdown_task.py rename to lib/crewai/tests/test_markdown_task.py diff --git a/tests/test_multimodal_validation.py b/lib/crewai/tests/test_multimodal_validation.py similarity index 100% rename from tests/test_multimodal_validation.py rename to lib/crewai/tests/test_multimodal_validation.py diff --git a/tests/test_project.py b/lib/crewai/tests/test_project.py similarity index 100% rename from tests/test_project.py rename to lib/crewai/tests/test_project.py diff --git a/tests/test_task.py b/lib/crewai/tests/test_task.py similarity index 100% rename from tests/test_task.py rename to lib/crewai/tests/test_task.py diff --git a/tests/test_task_guardrails.py b/lib/crewai/tests/test_task_guardrails.py similarity index 100% rename from tests/test_task_guardrails.py rename to lib/crewai/tests/test_task_guardrails.py diff --git a/tests/tools/__init__.py b/lib/crewai/tests/tools/__init__.py similarity index 100% rename from tests/tools/__init__.py rename to lib/crewai/tests/tools/__init__.py diff --git a/tests/telemetry/__init__.py b/lib/crewai/tests/tools/agent_tools/__init__.py similarity index 100% rename from tests/telemetry/__init__.py rename to lib/crewai/tests/tools/agent_tools/__init__.py diff --git a/tests/tools/agent_tools/__init__.py b/lib/crewai/tests/tools/agent_tools/cassettes/__init__.py similarity index 100% rename from tests/tools/agent_tools/__init__.py rename to lib/crewai/tests/tools/agent_tools/cassettes/__init__.py diff --git a/tests/tools/agent_tools/cassettes/test_ask_question.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question.yaml similarity index 100% rename from tests/tools/agent_tools/cassettes/test_ask_question.yaml rename to lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question.yaml diff --git a/tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml similarity index 100% rename from tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml rename to lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml diff --git a/tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml similarity index 100% rename from tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml rename to lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml diff --git a/tests/tools/agent_tools/cassettes/test_delegate_work.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work.yaml similarity index 100% rename from tests/tools/agent_tools/cassettes/test_delegate_work.yaml rename to lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work.yaml diff --git a/tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml similarity index 100% rename from tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml rename to lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml diff --git a/tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml similarity index 100% rename from tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml rename to lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml diff --git a/tests/tools/agent_tools/test_agent_tools.py b/lib/crewai/tests/tools/agent_tools/test_agent_tools.py similarity index 100% rename from tests/tools/agent_tools/test_agent_tools.py rename to lib/crewai/tests/tools/agent_tools/test_agent_tools.py diff --git a/tests/tools/test_base_tool.py b/lib/crewai/tests/tools/test_base_tool.py similarity index 100% rename from tests/tools/test_base_tool.py rename to lib/crewai/tests/tools/test_base_tool.py diff --git a/tests/tools/test_structured_tool.py b/lib/crewai/tests/tools/test_structured_tool.py similarity index 100% rename from tests/tools/test_structured_tool.py rename to lib/crewai/tests/tools/test_structured_tool.py diff --git a/tests/tools/test_tool_usage.py b/lib/crewai/tests/tools/test_tool_usage.py similarity index 100% rename from tests/tools/test_tool_usage.py rename to lib/crewai/tests/tools/test_tool_usage.py diff --git a/tests/tools/test_tool_usage_limit.py b/lib/crewai/tests/tools/test_tool_usage_limit.py similarity index 100% rename from tests/tools/test_tool_usage_limit.py rename to lib/crewai/tests/tools/test_tool_usage_limit.py diff --git a/tests/tools/agent_tools/cassettes/__init__.py b/lib/crewai/tests/tracing/__init__.py similarity index 100% rename from tests/tools/agent_tools/cassettes/__init__.py rename to lib/crewai/tests/tracing/__init__.py diff --git a/tests/tracing/test_tracing.py b/lib/crewai/tests/tracing/test_tracing.py similarity index 100% rename from tests/tracing/test_tracing.py rename to lib/crewai/tests/tracing/test_tracing.py diff --git a/tests/utilities/__init__.py b/lib/crewai/tests/utilities/__init__.py similarity index 100% rename from tests/utilities/__init__.py rename to lib/crewai/tests/utilities/__init__.py diff --git a/tests/tracing/__init__.py b/lib/crewai/tests/utilities/cassettes/__init__.py similarity index 100% rename from tests/tracing/__init__.py rename to lib/crewai/tests/utilities/cassettes/__init__.py diff --git a/tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml b/lib/crewai/tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml similarity index 100% rename from tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml rename to lib/crewai/tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml diff --git a/tests/utilities/cassettes/test_convert_with_instructions.yaml b/lib/crewai/tests/utilities/cassettes/test_convert_with_instructions.yaml similarity index 100% rename from tests/utilities/cassettes/test_convert_with_instructions.yaml rename to lib/crewai/tests/utilities/cassettes/test_convert_with_instructions.yaml diff --git a/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml b/lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml similarity index 100% rename from tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml rename to lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml diff --git a/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml b/lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml similarity index 100% rename from tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml rename to lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml diff --git a/tests/utilities/cassettes/test_converter_with_nested_model.yaml b/lib/crewai/tests/utilities/cassettes/test_converter_with_nested_model.yaml similarity index 100% rename from tests/utilities/cassettes/test_converter_with_nested_model.yaml rename to lib/crewai/tests/utilities/cassettes/test_converter_with_nested_model.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_end_task_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_end_task_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_end_task_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_end_task_event.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_start_task_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_start_task_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_start_task_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_start_task_event.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml diff --git a/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml diff --git a/tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml diff --git a/tests/utilities/cassettes/test_llm_emits_call_started_event.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_call_started_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_llm_emits_call_started_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_call_started_event.yaml diff --git a/tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml similarity index 100% rename from tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml diff --git a/tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml similarity index 100% rename from tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml diff --git a/tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml similarity index 100% rename from tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml diff --git a/tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml similarity index 100% rename from tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml rename to lib/crewai/tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml diff --git a/tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml b/lib/crewai/tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml similarity index 100% rename from tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml rename to lib/crewai/tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml diff --git a/tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml b/lib/crewai/tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml similarity index 100% rename from tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml rename to lib/crewai/tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml diff --git a/tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml b/lib/crewai/tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml similarity index 100% rename from tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml rename to lib/crewai/tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml diff --git a/tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml b/lib/crewai/tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml similarity index 100% rename from tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml rename to lib/crewai/tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml diff --git a/tests/utilities/cassettes/test_tools_emits_error_events.yaml b/lib/crewai/tests/utilities/cassettes/test_tools_emits_error_events.yaml similarity index 100% rename from tests/utilities/cassettes/test_tools_emits_error_events.yaml rename to lib/crewai/tests/utilities/cassettes/test_tools_emits_error_events.yaml diff --git a/tests/utilities/cassettes/test_tools_emits_finished_events.yaml b/lib/crewai/tests/utilities/cassettes/test_tools_emits_finished_events.yaml similarity index 100% rename from tests/utilities/cassettes/test_tools_emits_finished_events.yaml rename to lib/crewai/tests/utilities/cassettes/test_tools_emits_finished_events.yaml diff --git a/tests/utilities/cassettes/__init__.py b/lib/crewai/tests/utilities/crew/__init__.py similarity index 100% rename from tests/utilities/cassettes/__init__.py rename to lib/crewai/tests/utilities/crew/__init__.py diff --git a/tests/utilities/crew/test_crew_context.py b/lib/crewai/tests/utilities/crew/test_crew_context.py similarity index 100% rename from tests/utilities/crew/test_crew_context.py rename to lib/crewai/tests/utilities/crew/test_crew_context.py diff --git a/tests/utilities/evaluators/__init__.py b/lib/crewai/tests/utilities/evaluators/__init__.py similarity index 100% rename from tests/utilities/evaluators/__init__.py rename to lib/crewai/tests/utilities/evaluators/__init__.py diff --git a/tests/utilities/evaluators/test_crew_evaluator_handler.py b/lib/crewai/tests/utilities/evaluators/test_crew_evaluator_handler.py similarity index 100% rename from tests/utilities/evaluators/test_crew_evaluator_handler.py rename to lib/crewai/tests/utilities/evaluators/test_crew_evaluator_handler.py diff --git a/tests/utilities/evaluators/test_task_evaluator.py b/lib/crewai/tests/utilities/evaluators/test_task_evaluator.py similarity index 100% rename from tests/utilities/evaluators/test_task_evaluator.py rename to lib/crewai/tests/utilities/evaluators/test_task_evaluator.py diff --git a/tests/utilities/events/__init__.py b/lib/crewai/tests/utilities/events/__init__.py similarity index 100% rename from tests/utilities/events/__init__.py rename to lib/crewai/tests/utilities/events/__init__.py diff --git a/tests/utilities/events/test_crewai_event_bus.py b/lib/crewai/tests/utilities/events/test_crewai_event_bus.py similarity index 100% rename from tests/utilities/events/test_crewai_event_bus.py rename to lib/crewai/tests/utilities/events/test_crewai_event_bus.py diff --git a/tests/utilities/prompts.json b/lib/crewai/tests/utilities/prompts.json similarity index 100% rename from tests/utilities/prompts.json rename to lib/crewai/tests/utilities/prompts.json diff --git a/tests/utilities/test_console_formatter_pause_resume.py b/lib/crewai/tests/utilities/test_console_formatter_pause_resume.py similarity index 100% rename from tests/utilities/test_console_formatter_pause_resume.py rename to lib/crewai/tests/utilities/test_console_formatter_pause_resume.py diff --git a/tests/utilities/test_converter.py b/lib/crewai/tests/utilities/test_converter.py similarity index 100% rename from tests/utilities/test_converter.py rename to lib/crewai/tests/utilities/test_converter.py diff --git a/tests/utilities/test_events.py b/lib/crewai/tests/utilities/test_events.py similarity index 100% rename from tests/utilities/test_events.py rename to lib/crewai/tests/utilities/test_events.py diff --git a/tests/utilities/test_file_handler.py b/lib/crewai/tests/utilities/test_file_handler.py similarity index 100% rename from tests/utilities/test_file_handler.py rename to lib/crewai/tests/utilities/test_file_handler.py diff --git a/tests/utilities/test_i18n.py b/lib/crewai/tests/utilities/test_i18n.py similarity index 100% rename from tests/utilities/test_i18n.py rename to lib/crewai/tests/utilities/test_i18n.py diff --git a/tests/utilities/test_import_utils.py b/lib/crewai/tests/utilities/test_import_utils.py similarity index 100% rename from tests/utilities/test_import_utils.py rename to lib/crewai/tests/utilities/test_import_utils.py diff --git a/tests/utilities/test_knowledge_planning.py b/lib/crewai/tests/utilities/test_knowledge_planning.py similarity index 100% rename from tests/utilities/test_knowledge_planning.py rename to lib/crewai/tests/utilities/test_knowledge_planning.py diff --git a/tests/utilities/test_llm_utils.py b/lib/crewai/tests/utilities/test_llm_utils.py similarity index 100% rename from tests/utilities/test_llm_utils.py rename to lib/crewai/tests/utilities/test_llm_utils.py diff --git a/tests/utilities/test_planning_handler.py b/lib/crewai/tests/utilities/test_planning_handler.py similarity index 100% rename from tests/utilities/test_planning_handler.py rename to lib/crewai/tests/utilities/test_planning_handler.py diff --git a/tests/utilities/test_pydantic_schema_parser.py b/lib/crewai/tests/utilities/test_pydantic_schema_parser.py similarity index 100% rename from tests/utilities/test_pydantic_schema_parser.py rename to lib/crewai/tests/utilities/test_pydantic_schema_parser.py diff --git a/tests/utilities/test_serialization.py b/lib/crewai/tests/utilities/test_serialization.py similarity index 100% rename from tests/utilities/test_serialization.py rename to lib/crewai/tests/utilities/test_serialization.py diff --git a/tests/utilities/test_string_utils.py b/lib/crewai/tests/utilities/test_string_utils.py similarity index 100% rename from tests/utilities/test_string_utils.py rename to lib/crewai/tests/utilities/test_string_utils.py diff --git a/tests/utilities/test_training_converter.py b/lib/crewai/tests/utilities/test_training_converter.py similarity index 100% rename from tests/utilities/test_training_converter.py rename to lib/crewai/tests/utilities/test_training_converter.py diff --git a/tests/utilities/test_training_handler.py b/lib/crewai/tests/utilities/test_training_handler.py similarity index 100% rename from tests/utilities/test_training_handler.py rename to lib/crewai/tests/utilities/test_training_handler.py diff --git a/lib/tools/pyproject.toml b/lib/tools/pyproject.toml index 6b035023c..fbdc37e00 100644 --- a/lib/tools/pyproject.toml +++ b/lib/tools/pyproject.toml @@ -8,7 +8,7 @@ authors = [ ] requires-python = ">=3.10, <3.14" dependencies = [ - "crewai-core", + "crewai", "lancedb>=0.5.4", "pytube>=15.0.0", "requests>=2.31.0", @@ -142,6 +142,8 @@ contextual = [ "nest-asyncio>=1.6.0", ] + + [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "strict" diff --git a/pyproject.toml b/pyproject.toml index 40106e40a..678867aa3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "crewai" +name = "crewai-workspace" dynamic = ["version"] description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks." readme = "README.md" @@ -8,85 +8,15 @@ authors = [ ] requires-python = ">=3.10,<3.14" -dependencies = [ - # Core Dependencies - "crewai-core", - "pydantic>=2.11.9", - "openai>=1.13.3", - "litellm==1.74.9", - "instructor>=1.3.3", - # Text Processing - "pdfplumber>=0.11.4", - "regex>=2024.9.11", - # Telemetry and Monitoring - "opentelemetry-api>=1.30.0", - "opentelemetry-sdk>=1.30.0", - "opentelemetry-exporter-otlp-proto-http>=1.30.0", - "tokenizers>=0.20.3", - "openpyxl>=3.1.5", - "pyvis>=0.3.2", - # Authentication and Security - "python-dotenv>=1.1.1", - "pyjwt>=2.9.0", - # Configuration and Utils - "click>=8.1.7", - "appdirs>=1.4.4", - "jsonref>=1.1.0", - "json-repair==0.25.2", - "tomli-w>=1.1.0", - "tomli>=2.0.2", - "blinker>=1.9.0", - "json5>=0.10.0", - "portalocker==2.7.0", -] - [project.urls] Homepage = "https://crewai.com" Documentation = "https://docs.crewai.com" Repository = "https://github.com/crewAIInc/crewAI" -[project.optional-dependencies] -tools = [ - "crewai-tools", -] -embeddings = [ - "tiktoken~=0.8.0" -] -pdfplumber = [ - "pdfplumber>=0.11.4", -] -pandas = [ - "pandas>=2.2.3", -] -openpyxl = [ - "openpyxl>=3.1.5", -] -mem0 = ["mem0ai>=0.1.94"] -docling = [ - "docling>=2.12.0", -] -aisuite = [ - "aisuite>=0.1.10", -] -qdrant = [ - "qdrant-client[fastembed]>=1.14.3", -] -aws = [ - "boto3>=1.40.38", -] -watson = [ - "ibm-watsonx-ai>=1.3.39", -] -voyageai = [ - "voyageai>=0.3.5", -] - -[project.scripts] -crewai = "crewai.cli.cli:crewai" [dependency-groups] all = [ - "crewai-core", + "crewai", "crewai-tools", ] dev = [ @@ -114,7 +44,7 @@ default-groups = "all" [tool.ruff] exclude = [ - "src/crewai/cli/templates", + "lib/crewai/src/crewai/cli/templates", ] fix = true @@ -151,11 +81,11 @@ ignore = ["E501"] # ignore line too long globally "tests/**/*.py" = ["S101", "RET504"] # Allow assert statements and unnecessary assignments before return in tests [tool.mypy] -exclude = ["src/crewai/cli/templates", "tests/"] +exclude = ["lib/crewai/src/crewai/cli/templates", "lib/crewai/src/tests/"] plugins = ["pydantic.mypy"] [tool.bandit] -exclude_dirs = ["src/crewai/cli/templates"] +exclude_dirs = ["lib/crewai/src/crewai/cli/templates"] [tool.pytest.ini_options] markers = [ @@ -183,31 +113,30 @@ torchvision = [ { index = "pytorch", marker = "python_version < '3.13'" }, ] -crewai-core = { workspace = true } +crewai = { workspace = true } crewai-tools = { workspace = true } [tool.uv.workspace] members = [ "lib/tools", - "lib/core", + "lib/crewai", ] +# +#[build-system] +#requires = ["hatchling"] +#build-backend = "hatchling.build" -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[tool.hatch.build.targets.sdist] -exclude = [ - "docs/**", - "docs/", -] - -[tool.hatch.version] -path = "src/crewai/__init__.py" - -[tool.hatch.build.targets.wheel] -only-include = [ - "src/crewai", - "lib/core/src", - "lib/tools/src", -] +#[tool.hatch.build.targets.sdist] +#exclude = [ +# "docs/**", +# "docs/", +#] +# +#[tool.hatch.version] +#path = "src/crewai/__init__.py" +# +#[tool.hatch.build.targets.wheel] +#only-include = [ +# "lib/crewai/src", +# "lib/tools/src", +#] diff --git a/src/crewai/cli/authentication/main.py b/src/crewai/cli/authentication/main.py deleted file mode 100644 index 09bc1fa1d..000000000 --- a/src/crewai/cli/authentication/main.py +++ /dev/null @@ -1,189 +0,0 @@ -import time -import webbrowser -from typing import Any, Dict, Optional - -import requests -from rich.console import Console -from pydantic import BaseModel, Field - - -from .utils import validate_jwt_token -from crewai.cli.shared.token_manager import TokenManager -from crewai.cli.config import Settings - -console = Console() - - -class Oauth2Settings(BaseModel): - provider: str = Field( - description="OAuth2 provider used for authentication (e.g., workos, okta, auth0)." - ) - client_id: str = Field( - description="OAuth2 client ID issued by the provider, used during authentication requests." - ) - domain: str = Field( - description="OAuth2 provider's domain (e.g., your-org.auth0.com) used for issuing tokens." - ) - audience: Optional[str] = Field( - description="OAuth2 audience value, typically used to identify the target API or resource.", - default=None, - ) - - @classmethod - def from_settings(cls): - settings = Settings() - - return cls( - provider=settings.oauth2_provider, - domain=settings.oauth2_domain, - client_id=settings.oauth2_client_id, - audience=settings.oauth2_audience, - ) - - -class ProviderFactory: - @classmethod - def from_settings(cls, settings: Optional[Oauth2Settings] = None): - settings = settings or Oauth2Settings.from_settings() - - import importlib - - module = importlib.import_module( - f"crewai.cli.authentication.providers.{settings.provider.lower()}" - ) - provider = getattr(module, f"{settings.provider.capitalize()}Provider") - - return provider(settings) - - -class AuthenticationCommand: - def __init__(self): - self.token_manager = TokenManager() - self.oauth2_provider = ProviderFactory.from_settings() - - def login(self) -> None: - """Sign up to CrewAI+""" - console.print("Signing in to CrewAI Enterprise...\n", style="bold blue") - - device_code_data = self._get_device_code() - self._display_auth_instructions(device_code_data) - - return self._poll_for_token(device_code_data) - - def _get_device_code(self) -> Dict[str, Any]: - """Get the device code to authenticate the user.""" - - device_code_payload = { - "client_id": self.oauth2_provider.get_client_id(), - "scope": "openid", - "audience": self.oauth2_provider.get_audience(), - } - response = requests.post( - url=self.oauth2_provider.get_authorize_url(), - data=device_code_payload, - timeout=20, - ) - response.raise_for_status() - return response.json() - - def _display_auth_instructions(self, device_code_data: Dict[str, str]) -> None: - """Display the authentication instructions to the user.""" - console.print("1. Navigate to: ", device_code_data["verification_uri_complete"]) - console.print("2. Enter the following code: ", device_code_data["user_code"]) - webbrowser.open(device_code_data["verification_uri_complete"]) - - def _poll_for_token(self, device_code_data: Dict[str, Any]) -> None: - """Polls the server for the token until it is received, or max attempts are reached.""" - - token_payload = { - "grant_type": "urn:ietf:params:oauth:grant-type:device_code", - "device_code": device_code_data["device_code"], - "client_id": self.oauth2_provider.get_client_id(), - } - - console.print("\nWaiting for authentication... ", style="bold blue", end="") - - attempts = 0 - while True and attempts < 10: - response = requests.post( - self.oauth2_provider.get_token_url(), data=token_payload, timeout=30 - ) - token_data = response.json() - - if response.status_code == 200: - self._validate_and_save_token(token_data) - - console.print( - "Success!", - style="bold green", - ) - - self._login_to_tool_repository() - - console.print( - "\n[bold green]Welcome to CrewAI Enterprise![/bold green]\n" - ) - return - - if token_data["error"] not in ("authorization_pending", "slow_down"): - raise requests.HTTPError(token_data["error_description"]) - - time.sleep(device_code_data["interval"]) - attempts += 1 - - console.print( - "Timeout: Failed to get the token. Please try again.", style="bold red" - ) - - def _validate_and_save_token(self, token_data: Dict[str, Any]) -> None: - """Validates the JWT token and saves the token to the token manager.""" - - jwt_token = token_data["access_token"] - issuer = self.oauth2_provider.get_issuer() - jwt_token_data = { - "jwt_token": jwt_token, - "jwks_url": self.oauth2_provider.get_jwks_url(), - "issuer": issuer, - "audience": self.oauth2_provider.get_audience(), - } - - decoded_token = validate_jwt_token(**jwt_token_data) - - expires_at = decoded_token.get("exp", 0) - self.token_manager.save_tokens(jwt_token, expires_at) - - def _login_to_tool_repository(self) -> None: - """Login to the tool repository.""" - - from crewai.cli.tools.main import ToolCommand - - try: - console.print( - "Now logging you in to the Tool Repository... ", - style="bold blue", - end="", - ) - - ToolCommand().login() - - console.print( - "Success!\n", - style="bold green", - ) - - settings = Settings() - console.print( - f"You are authenticated to the tool repository as [bold cyan]'{settings.org_name}'[/bold cyan] ({settings.org_uuid})", - style="green", - ) - except Exception: - console.print( - "\n[bold yellow]Warning:[/bold yellow] Authentication with the Tool Repository failed.", - style="yellow", - ) - console.print( - "Other features will work normally, but you may experience limitations " - "with downloading and publishing tools." - "\nRun [bold]crewai login[/bold] to try logging in again.\n", - style="yellow", - ) diff --git a/src/crewai/cli/deploy/main.py b/src/crewai/cli/deploy/main.py deleted file mode 100644 index 486959201..000000000 --- a/src/crewai/cli/deploy/main.py +++ /dev/null @@ -1,277 +0,0 @@ -from typing import Any, Dict, List, Optional - -from rich.console import Console - -from crewai.cli import git -from crewai.cli.command import BaseCommand, PlusAPIMixin -from crewai.cli.utils import fetch_and_json_env_file, get_project_name - -console = Console() - - -class DeployCommand(BaseCommand, PlusAPIMixin): - """ - A class to handle deployment-related operations for CrewAI projects. - """ - - def __init__(self): - """ - Initialize the DeployCommand with project name and API client. - """ - - BaseCommand.__init__(self) - PlusAPIMixin.__init__(self, telemetry=self._telemetry) - self.project_name = get_project_name(require=True) - - def _standard_no_param_error_message(self) -> None: - """ - Display a standard error message when no UUID or project name is available. - """ - console.print( - "No UUID provided, project pyproject.toml not found or with error.", - style="bold red", - ) - - def _display_deployment_info(self, json_response: Dict[str, Any]) -> None: - """ - Display deployment information. - - Args: - json_response (Dict[str, Any]): The deployment information to display. - """ - console.print("Deploying the crew...\n", style="bold blue") - for key, value in json_response.items(): - console.print(f"{key.title()}: [green]{value}[/green]") - console.print("\nTo check the status of the deployment, run:") - console.print("crewai deploy status") - console.print(" or") - console.print(f"crewai deploy status --uuid \"{json_response['uuid']}\"") - - def _display_logs(self, log_messages: List[Dict[str, Any]]) -> None: - """ - Display log messages. - - Args: - log_messages (List[Dict[str, Any]]): The log messages to display. - """ - for log_message in log_messages: - console.print( - f"{log_message['timestamp']} - {log_message['level']}: {log_message['message']}" - ) - - def deploy(self, uuid: Optional[str] = None) -> None: - """ - Deploy a crew using either UUID or project name. - - Args: - uuid (Optional[str]): The UUID of the crew to deploy. - """ - self._start_deployment_span = self._telemetry.start_deployment_span(uuid) - console.print("Starting deployment...", style="bold blue") - if uuid: - response = self.plus_api_client.deploy_by_uuid(uuid) - elif self.project_name: - response = self.plus_api_client.deploy_by_name(self.project_name) - else: - self._standard_no_param_error_message() - return - - self._validate_response(response) - self._display_deployment_info(response.json()) - - def create_crew(self, confirm: bool = False) -> None: - """ - Create a new crew deployment. - """ - self._create_crew_deployment_span = ( - self._telemetry.create_crew_deployment_span() - ) - console.print("Creating deployment...", style="bold blue") - env_vars = fetch_and_json_env_file() - - try: - remote_repo_url = git.Repository().origin_url() - except ValueError: - remote_repo_url = None - - if remote_repo_url is None: - console.print("No remote repository URL found.", style="bold red") - console.print( - "Please ensure your project has a valid remote repository.", - style="yellow", - ) - return - - self._confirm_input(env_vars, remote_repo_url, confirm) - payload = self._create_payload(env_vars, remote_repo_url) - response = self.plus_api_client.create_crew(payload) - - self._validate_response(response) - self._display_creation_success(response.json()) - - def _confirm_input( - self, env_vars: Dict[str, str], remote_repo_url: str, confirm: bool - ) -> None: - """ - Confirm input parameters with the user. - - Args: - env_vars (Dict[str, str]): Environment variables. - remote_repo_url (str): Remote repository URL. - confirm (bool): Whether to confirm input. - """ - if not confirm: - input(f"Press Enter to continue with the following Env vars: {env_vars}") - input( - f"Press Enter to continue with the following remote repository: {remote_repo_url}\n" - ) - - def _create_payload( - self, - env_vars: Dict[str, str], - remote_repo_url: str, - ) -> Dict[str, Any]: - """ - Create the payload for crew creation. - - Args: - remote_repo_url (str): Remote repository URL. - env_vars (Dict[str, str]): Environment variables. - - Returns: - Dict[str, Any]: The payload for crew creation. - """ - return { - "deploy": { - "name": self.project_name, - "repo_clone_url": remote_repo_url, - "env": env_vars, - } - } - - def _display_creation_success(self, json_response: Dict[str, Any]) -> None: - """ - Display success message after crew creation. - - Args: - json_response (Dict[str, Any]): The response containing crew information. - """ - console.print("Deployment created successfully!\n", style="bold green") - console.print( - f"Name: {self.project_name} ({json_response['uuid']})", style="bold green" - ) - console.print(f"Status: {json_response['status']}", style="bold green") - console.print("\nTo (re)deploy the crew, run:") - console.print("crewai deploy push") - console.print(" or") - console.print(f"crewai deploy push --uuid {json_response['uuid']}") - - def list_crews(self) -> None: - """ - List all available crews. - """ - console.print("Listing all Crews\n", style="bold blue") - - response = self.plus_api_client.list_crews() - json_response = response.json() - if response.status_code == 200: - self._display_crews(json_response) - else: - self._display_no_crews_message() - - def _display_crews(self, crews_data: List[Dict[str, Any]]) -> None: - """ - Display the list of crews. - - Args: - crews_data (List[Dict[str, Any]]): List of crew data to display. - """ - for crew_data in crews_data: - console.print( - f"- {crew_data['name']} ({crew_data['uuid']}) [blue]{crew_data['status']}[/blue]" - ) - - def _display_no_crews_message(self) -> None: - """ - Display a message when no crews are available. - """ - console.print("You don't have any Crews yet. Let's create one!", style="yellow") - console.print(" crewai create crew ", style="green") - - def get_crew_status(self, uuid: Optional[str] = None) -> None: - """ - Get the status of a crew. - - Args: - uuid (Optional[str]): The UUID of the crew to check. - """ - console.print("Fetching deployment status...", style="bold blue") - if uuid: - response = self.plus_api_client.crew_status_by_uuid(uuid) - elif self.project_name: - response = self.plus_api_client.crew_status_by_name(self.project_name) - else: - self._standard_no_param_error_message() - return - - self._validate_response(response) - self._display_crew_status(response.json()) - - def _display_crew_status(self, status_data: Dict[str, str]) -> None: - """ - Display the status of a crew. - - Args: - status_data (Dict[str, str]): The status data to display. - """ - console.print(f"Name:\t {status_data['name']}") - console.print(f"Status:\t {status_data['status']}") - - def get_crew_logs(self, uuid: Optional[str], log_type: str = "deployment") -> None: - """ - Get logs for a crew. - - Args: - uuid (Optional[str]): The UUID of the crew to get logs for. - log_type (str): The type of logs to retrieve (default: "deployment"). - """ - self._get_crew_logs_span = self._telemetry.get_crew_logs_span(uuid, log_type) - console.print(f"Fetching {log_type} logs...", style="bold blue") - - if uuid: - response = self.plus_api_client.crew_by_uuid(uuid, log_type) - elif self.project_name: - response = self.plus_api_client.crew_by_name(self.project_name, log_type) - else: - self._standard_no_param_error_message() - return - - self._validate_response(response) - self._display_logs(response.json()) - - def remove_crew(self, uuid: Optional[str]) -> None: - """ - Remove a crew deployment. - - Args: - uuid (Optional[str]): The UUID of the crew to remove. - """ - self._remove_crew_span = self._telemetry.remove_crew_span(uuid) - console.print("Removing deployment...", style="bold blue") - - if uuid: - response = self.plus_api_client.delete_crew_by_uuid(uuid) - elif self.project_name: - response = self.plus_api_client.delete_crew_by_name(self.project_name) - else: - self._standard_no_param_error_message() - return - - if response.status_code == 204: - console.print( - f"Crew '{self.project_name}' removed successfully.", style="green" - ) - else: - console.print( - f"Failed to remove crew '{self.project_name}'", style="bold red" - ) diff --git a/src/crewai/cli/enterprise/main.py b/src/crewai/cli/enterprise/main.py deleted file mode 100644 index d0770ef01..000000000 --- a/src/crewai/cli/enterprise/main.py +++ /dev/null @@ -1,84 +0,0 @@ -import requests -from typing import Dict, Any -from rich.console import Console -from requests.exceptions import RequestException, JSONDecodeError - -from crewai.cli.command import BaseCommand -from crewai.cli.settings.main import SettingsCommand -from crewai.cli.version import get_crewai_version - -console = Console() - - -class EnterpriseConfigureCommand(BaseCommand): - def __init__(self): - super().__init__() - self.settings_command = SettingsCommand() - - def configure(self, enterprise_url: str) -> None: - try: - enterprise_url = enterprise_url.rstrip('/') - - oauth_config = self._fetch_oauth_config(enterprise_url) - - self._update_oauth_settings(enterprise_url, oauth_config) - - console.print( - f"✅ Successfully configured CrewAI Enterprise with OAuth2 settings from {enterprise_url}", - style="bold green" - ) - - except Exception as e: - console.print(f"❌ Failed to configure Enterprise settings: {str(e)}", style="bold red") - raise SystemExit(1) - - def _fetch_oauth_config(self, enterprise_url: str) -> Dict[str, Any]: - oauth_endpoint = f"{enterprise_url}/auth/parameters" - - try: - console.print(f"🔄 Fetching OAuth2 configuration from {oauth_endpoint}...") - headers = { - "Content-Type": "application/json", - "User-Agent": f"CrewAI-CLI/{get_crewai_version()}", - "X-Crewai-Version": get_crewai_version(), - } - response = requests.get(oauth_endpoint, timeout=30, headers=headers) - response.raise_for_status() - - try: - oauth_config = response.json() - except JSONDecodeError: - raise ValueError(f"Invalid JSON response from {oauth_endpoint}") - - required_fields = ['audience', 'domain', 'device_authorization_client_id', 'provider'] - missing_fields = [field for field in required_fields if field not in oauth_config] - - if missing_fields: - raise ValueError(f"Missing required fields in OAuth2 configuration: {', '.join(missing_fields)}") - - console.print("✅ Successfully retrieved OAuth2 configuration", style="green") - return oauth_config - - except RequestException as e: - raise ValueError(f"Failed to connect to enterprise URL: {str(e)}") - except Exception as e: - raise ValueError(f"Error fetching OAuth2 configuration: {str(e)}") - - def _update_oauth_settings(self, enterprise_url: str, oauth_config: Dict[str, Any]) -> None: - try: - config_mapping = { - 'enterprise_base_url': enterprise_url, - 'oauth2_provider': oauth_config['provider'], - 'oauth2_audience': oauth_config['audience'], - 'oauth2_client_id': oauth_config['device_authorization_client_id'], - 'oauth2_domain': oauth_config['domain'] - } - - console.print("🔄 Updating local OAuth2 configuration...") - - for key, value in config_mapping.items(): - self.settings_command.set(key, value) - console.print(f" ✓ Set {key}: {value}", style="dim") - - except Exception as e: - raise ValueError(f"Failed to update OAuth2 settings: {str(e)}") diff --git a/src/crewai/cli/organization/main.py b/src/crewai/cli/organization/main.py deleted file mode 100644 index 8bf23d531..000000000 --- a/src/crewai/cli/organization/main.py +++ /dev/null @@ -1,76 +0,0 @@ -from rich.console import Console -from rich.table import Table - -from requests import HTTPError -from crewai.cli.command import BaseCommand, PlusAPIMixin -from crewai.cli.config import Settings - -console = Console() - -class OrganizationCommand(BaseCommand, PlusAPIMixin): - def __init__(self): - BaseCommand.__init__(self) - PlusAPIMixin.__init__(self, telemetry=self._telemetry) - - def list(self): - try: - response = self.plus_api_client.get_organizations() - response.raise_for_status() - orgs = response.json() - - if not orgs: - console.print("You don't belong to any organizations yet.", style="yellow") - return - - table = Table(title="Your Organizations") - table.add_column("Name", style="cyan") - table.add_column("ID", style="green") - for org in orgs: - table.add_row(org["name"], org["uuid"]) - - console.print(table) - except HTTPError as e: - if e.response.status_code == 401: - console.print("You are not logged in to any organization. Use 'crewai login' to login.", style="bold red") - return - console.print(f"Failed to retrieve organization list: {str(e)}", style="bold red") - raise SystemExit(1) - except Exception as e: - console.print(f"Failed to retrieve organization list: {str(e)}", style="bold red") - raise SystemExit(1) - - def switch(self, org_id): - try: - response = self.plus_api_client.get_organizations() - response.raise_for_status() - orgs = response.json() - - org = next((o for o in orgs if o["uuid"] == org_id), None) - if not org: - console.print(f"Organization with id '{org_id}' not found.", style="bold red") - return - - settings = Settings() - settings.org_name = org["name"] - settings.org_uuid = org["uuid"] - settings.dump() - - console.print(f"Successfully switched to {org['name']} ({org['uuid']})", style="bold green") - except HTTPError as e: - if e.response.status_code == 401: - console.print("You are not logged in to any organization. Use 'crewai login' to login.", style="bold red") - return - console.print(f"Failed to retrieve organization list: {str(e)}", style="bold red") - raise SystemExit(1) - except Exception as e: - console.print(f"Failed to switch organization: {str(e)}", style="bold red") - raise SystemExit(1) - - def current(self): - settings = Settings() - if settings.org_uuid: - console.print(f"Currently logged in to organization {settings.org_name} ({settings.org_uuid})", style="bold green") - else: - console.print("You're not currently logged in to any organization.", style="yellow") - console.print("Use 'crewai org list' to see available organizations.", style="yellow") - console.print("Use 'crewai org switch ' to switch to an organization.", style="yellow") diff --git a/src/crewai/cli/settings/main.py b/src/crewai/cli/settings/main.py deleted file mode 100644 index b54aa3b0c..000000000 --- a/src/crewai/cli/settings/main.py +++ /dev/null @@ -1,68 +0,0 @@ -from rich.console import Console -from rich.table import Table -from crewai.cli.command import BaseCommand -from crewai.cli.config import Settings, READONLY_SETTINGS_KEYS, HIDDEN_SETTINGS_KEYS -from typing import Any - -console = Console() - - -class SettingsCommand(BaseCommand): - """A class to handle CLI configuration commands.""" - - def __init__(self, settings_kwargs: dict[str, Any] | None = None): - super().__init__() - settings_kwargs = settings_kwargs or {} - self.settings = Settings(**settings_kwargs) - - def list(self) -> None: - """List all CLI configuration parameters.""" - table = Table(title="CrewAI CLI Configuration") - table.add_column("Setting", style="cyan", no_wrap=True) - table.add_column("Value", style="green") - table.add_column("Description", style="yellow") - - # Add all settings to the table - for field_name, field_info in Settings.model_fields.items(): - if field_name in HIDDEN_SETTINGS_KEYS: - # Do not display hidden settings - continue - - current_value = getattr(self.settings, field_name) - description = field_info.description or "No description available" - display_value = ( - str(current_value) if current_value is not None else "Not set" - ) - - table.add_row(field_name, display_value, description) - - console.print(table) - - def set(self, key: str, value: str) -> None: - """Set a CLI configuration parameter.""" - - readonly_settings = READONLY_SETTINGS_KEYS + HIDDEN_SETTINGS_KEYS - - if not hasattr(self.settings, key) or key in readonly_settings: - console.print( - f"Error: Unknown or readonly configuration key '{key}'", - style="bold red", - ) - console.print("Available keys:", style="yellow") - for field_name in Settings.model_fields.keys(): - if field_name not in readonly_settings: - console.print(f" - {field_name}", style="yellow") - raise SystemExit(1) - - setattr(self.settings, key, value) - self.settings.dump() - - console.print(f"Successfully set '{key}' to '{value}'", style="bold green") - - def reset_all_settings(self) -> None: - """Reset all CLI configuration parameters to default values.""" - self.settings.reset() - console.print( - "Successfully reset all configuration parameters to default values. It is recommended to run [bold yellow]'crewai login'[/bold yellow] to re-authenticate.", - style="bold green", - ) diff --git a/src/crewai/cli/templates/crew/main.py b/src/crewai/cli/templates/crew/main.py deleted file mode 100644 index b604d8ceb..000000000 --- a/src/crewai/cli/templates/crew/main.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python -import sys -import warnings - -from datetime import datetime - -from {{folder_name}}.crew import {{crew_name}} - -warnings.filterwarnings("ignore", category=SyntaxWarning, module="pysbd") - -# This main file is intended to be a way for you to run your -# crew locally, so refrain from adding unnecessary logic into this file. -# Replace with inputs you want to test with, it will automatically -# interpolate any tasks and agents information - -def run(): - """ - Run the crew. - """ - inputs = { - 'topic': 'AI LLMs', - 'current_year': str(datetime.now().year) - } - - try: - {{crew_name}}().crew().kickoff(inputs=inputs) - except Exception as e: - raise Exception(f"An error occurred while running the crew: {e}") - - -def train(): - """ - Train the crew for a given number of iterations. - """ - inputs = { - "topic": "AI LLMs", - 'current_year': str(datetime.now().year) - } - try: - {{crew_name}}().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) - - except Exception as e: - raise Exception(f"An error occurred while training the crew: {e}") - -def replay(): - """ - Replay the crew execution from a specific task. - """ - try: - {{crew_name}}().crew().replay(task_id=sys.argv[1]) - - except Exception as e: - raise Exception(f"An error occurred while replaying the crew: {e}") - -def test(): - """ - Test the crew execution and returns the results. - """ - inputs = { - "topic": "AI LLMs", - "current_year": str(datetime.now().year) - } - - try: - {{crew_name}}().crew().test(n_iterations=int(sys.argv[1]), eval_llm=sys.argv[2], inputs=inputs) - - except Exception as e: - raise Exception(f"An error occurred while testing the crew: {e}") diff --git a/src/crewai/cli/templates/flow/main.py b/src/crewai/cli/templates/flow/main.py deleted file mode 100644 index 920b56c04..000000000 --- a/src/crewai/cli/templates/flow/main.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python -from random import randint - -from pydantic import BaseModel - -from crewai.flow import Flow, listen, start - -from {{folder_name}}.crews.poem_crew.poem_crew import PoemCrew - - -class PoemState(BaseModel): - sentence_count: int = 1 - poem: str = "" - - -class PoemFlow(Flow[PoemState]): - - @start() - def generate_sentence_count(self): - print("Generating sentence count") - self.state.sentence_count = randint(1, 5) - - @listen(generate_sentence_count) - def generate_poem(self): - print("Generating poem") - result = ( - PoemCrew() - .crew() - .kickoff(inputs={"sentence_count": self.state.sentence_count}) - ) - - print("Poem generated", result.raw) - self.state.poem = result.raw - - @listen(generate_poem) - def save_poem(self): - print("Saving poem") - with open("poem.txt", "w") as f: - f.write(self.state.poem) - - -def kickoff(): - poem_flow = PoemFlow() - poem_flow.kickoff() - - -def plot(): - poem_flow = PoemFlow() - poem_flow.plot() - - -if __name__ == "__main__": - kickoff() diff --git a/src/crewai/cli/tools/main.py b/src/crewai/cli/tools/main.py deleted file mode 100644 index a7fc718c7..000000000 --- a/src/crewai/cli/tools/main.py +++ /dev/null @@ -1,235 +0,0 @@ -import base64 -import os -import subprocess -import tempfile -from pathlib import Path -from typing import Any - -import click -from rich.console import Console - -from crewai.cli import git -from crewai.cli.command import BaseCommand, PlusAPIMixin -from crewai.cli.config import Settings -from crewai.cli.utils import ( - build_env_with_tool_repository_credentials, - extract_available_exports, - get_project_description, - get_project_name, - get_project_version, - tree_copy, - tree_find_and_replace, -) - -console = Console() - - -class ToolCommand(BaseCommand, PlusAPIMixin): - """ - A class to handle tool repository related operations for CrewAI projects. - """ - - def __init__(self): - BaseCommand.__init__(self) - PlusAPIMixin.__init__(self, telemetry=self._telemetry) - - def create(self, handle: str): - self._ensure_not_in_project() - - folder_name = handle.replace(" ", "_").replace("-", "_").lower() - class_name = handle.replace("_", " ").replace("-", " ").title().replace(" ", "") - - project_root = Path(folder_name) - if project_root.exists(): - click.secho(f"Folder {folder_name} already exists.", fg="red") - raise SystemExit - os.makedirs(project_root) - - click.secho(f"Creating custom tool {folder_name}...", fg="green", bold=True) - - template_dir = Path(__file__).parent.parent / "templates" / "tool" - tree_copy(template_dir, project_root) - tree_find_and_replace(project_root, "{{folder_name}}", folder_name) - tree_find_and_replace(project_root, "{{class_name}}", class_name) - - old_directory = os.getcwd() - os.chdir(project_root) - try: - self.login() - subprocess.run(["git", "init"], check=True) # noqa: S607 - console.print( - f"[green]Created custom tool [bold]{folder_name}[/bold]. Run [bold]cd {project_root}[/bold] to start working.[/green]" - ) - finally: - os.chdir(old_directory) - - def publish(self, is_public: bool, force: bool = False): - if not git.Repository().is_synced() and not force: - console.print( - "[bold red]Failed to publish tool.[/bold red]\n" - "Local changes need to be resolved before publishing. Please do the following:\n" - "* [bold]Commit[/bold] your changes.\n" - "* [bold]Push[/bold] to sync with the remote.\n" - "* [bold]Pull[/bold] the latest changes from the remote.\n" - "\nOnce your repository is up-to-date, retry publishing the tool." - ) - raise SystemExit() - - project_name = get_project_name(require=True) - assert isinstance(project_name, str) # noqa: S101 - - project_version = get_project_version(require=True) - assert isinstance(project_version, str) # noqa: S101 - - project_description = get_project_description(require=False) - encoded_tarball = None - - console.print("[bold blue]Discovering tools from your project...[/bold blue]") - available_exports = extract_available_exports() - - if available_exports: - console.print( - f"[green]Found these tools to publish: {', '.join([e['name'] for e in available_exports])}[/green]" - ) - self._print_current_organization() - - with tempfile.TemporaryDirectory() as temp_build_dir: - subprocess.run( # noqa: S603 - ["uv", "build", "--sdist", "--out-dir", temp_build_dir], # noqa: S607 - check=True, - capture_output=False, - ) - - tarball_filename = next( - (f for f in os.listdir(temp_build_dir) if f.endswith(".tar.gz")), None - ) - if not tarball_filename: - console.print( - "Project build failed. Please ensure that the command `uv build --sdist` completes successfully.", - style="bold red", - ) - raise SystemExit - - tarball_path = os.path.join(temp_build_dir, tarball_filename) - with open(tarball_path, "rb") as file: - tarball_contents = file.read() - - encoded_tarball = base64.b64encode(tarball_contents).decode("utf-8") - - console.print("[bold blue]Publishing tool to repository...[/bold blue]") - publish_response = self.plus_api_client.publish_tool( - handle=project_name, - is_public=is_public, - version=project_version, - description=project_description, - encoded_file=f"data:application/x-gzip;base64,{encoded_tarball}", - available_exports=available_exports, - ) - - self._validate_response(publish_response) - - published_handle = publish_response.json()["handle"] - console.print( - f"Successfully published `{published_handle}` ({project_version}).\n\n" - + "⚠️ Security checks are running in the background. Your tool will be available once these are complete.\n" - + f"You can monitor the status or access your tool here:\nhttps://app.crewai.com/crewai_plus/tools/{published_handle}", - style="bold green", - ) - - def install(self, handle: str): - self._print_current_organization() - get_response = self.plus_api_client.get_tool(handle) - - if get_response.status_code == 404: - console.print( - "No tool found with this name. Please ensure the tool was published and you have access to it.", - style="bold red", - ) - raise SystemExit - if get_response.status_code != 200: - console.print( - "Failed to get tool details. Please try again later.", style="bold red" - ) - raise SystemExit - - self._add_package(get_response.json()) - - console.print(f"Successfully installed {handle}", style="bold green") - - def login(self) -> None: - login_response = self.plus_api_client.login_to_tool_repository() - - if login_response.status_code != 200: - console.print( - "Authentication failed. Verify access to the tool repository, or try `crewai login`. ", - style="bold red", - ) - raise SystemExit - - login_response_json = login_response.json() - - settings = Settings() - settings.tool_repository_username = login_response_json["credential"][ - "username" - ] - settings.tool_repository_password = login_response_json["credential"][ - "password" - ] - settings.org_uuid = login_response_json["current_organization"]["uuid"] - settings.org_name = login_response_json["current_organization"]["name"] - settings.dump() - - def _add_package(self, tool_details: dict[str, Any]): - is_from_pypi = tool_details.get("source", None) == "pypi" - tool_handle = tool_details["handle"] - repository_handle = tool_details["repository"]["handle"] - repository_url = tool_details["repository"]["url"] - index = f"{repository_handle}={repository_url}" - - add_package_command = [ - "uv", - "add", - ] - - if is_from_pypi: - add_package_command.append(tool_handle) - else: - add_package_command.extend(["--index", index, tool_handle]) - - add_package_result = subprocess.run( # noqa: S603 - add_package_command, - capture_output=False, - env=build_env_with_tool_repository_credentials(repository_handle), - text=True, - check=True, - ) - - if add_package_result.stderr: - click.echo(add_package_result.stderr, err=True) - raise SystemExit - - def _ensure_not_in_project(self): - if os.path.isfile("./pyproject.toml"): - console.print( - "[bold red]Oops! It looks like you're inside a project.[/bold red]" - ) - console.print( - "You can't create a new tool while inside an existing project." - ) - console.print( - "[bold yellow]Tip:[/bold yellow] Navigate to a different directory and try again." - ) - raise SystemExit - - def _print_current_organization(self) -> None: - settings = Settings() - if settings.org_uuid: - console.print( - f"Current organization: {settings.org_name} ({settings.org_uuid})", - style="bold blue", - ) - else: - console.print( - "No organization currently set. We recommend setting one before using: `crewai org switch ` command.", - style="yellow", - ) diff --git a/src/crewai/py.typed b/src/crewai/py.typed deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/crewai/utilities/import_utils.py b/src/crewai/utilities/import_utils.py deleted file mode 100644 index e26698068..000000000 --- a/src/crewai/utilities/import_utils.py +++ /dev/null @@ -1,95 +0,0 @@ -"""Import utilities for optional dependencies.""" - -import importlib -from types import ModuleType -from typing import Annotated, Any, TypeAlias - -from pydantic import AfterValidator, TypeAdapter -from typing_extensions import deprecated - - -@deprecated( - "Not needed when using `crewai.utilities.import_utils.import_and_validate_definition`" -) -class OptionalDependencyError(ImportError): - """Exception raised when an optional dependency is not installed.""" - - -@deprecated( - "Use `crewai.utilities.import_utils.import_and_validate_definition` instead." -) -def require(name: str, *, purpose: str, attr: str | None = None) -> ModuleType | Any: - """Import a module, optionally returning a specific attribute. - - Args: - name: The module name to import. - purpose: Description of what requires this dependency. - attr: Optional attribute name to get from the module. - - Returns: - The imported module or the specified attribute. - - Raises: - OptionalDependencyError: If the module is not installed. - AttributeError: If the specified attribute doesn't exist. - """ - try: - module = importlib.import_module(name) - if attr is not None: - return getattr(module, attr) - return module - except ImportError as exc: - package_name = name.split(".")[0] - raise OptionalDependencyError( - f"{purpose} requires the optional dependency '{name}'.\n" - f"Install it with: uv add {package_name}" - ) from exc - except AttributeError as exc: - raise AttributeError(f"Module '{name}' has no attribute '{attr}'") from exc - - -def validate_import_path(v: str) -> Any: - """Import and return the class/function from the import path. - - Args: - v: Import path string in the format 'module.path.ClassName'. - - Returns: - The imported class or function. - - Raises: - ValueError: If the import path is malformed or the module cannot be imported. - """ - module_path, _, attr = v.rpartition(".") - if not module_path or not attr: - raise ValueError(f"import_path '{v}' must be of the form 'module.ClassName'") - - try: - mod = importlib.import_module(module_path) - except ImportError as exc: - parts = module_path.split(".") - if not parts: - raise ValueError(f"Malformed import path: '{v}'") from exc - package = parts[0] - raise ValueError( - f"Package '{package}' could not be imported. Install it with: uv add {package}" - ) from exc - - if not hasattr(mod, attr): - raise ValueError(f"Attribute '{attr}' not found in module '{module_path}'") - return getattr(mod, attr) - - -ImportedDefinition: TypeAlias = Annotated[Any, AfterValidator(validate_import_path)] -adapter = TypeAdapter(ImportedDefinition) - - -def import_and_validate_definition(v: str) -> Any: - """Pydantic-compatible function to import a class/function from a string path. - - Args: - v: Import path string in the format 'module.path.ClassName'. - Returns: - The imported class or function - """ - return adapter.validate_python(v) diff --git a/src/crewai/utilities/logger_utils.py b/src/crewai/utilities/logger_utils.py deleted file mode 100644 index f0ad21f18..000000000 --- a/src/crewai/utilities/logger_utils.py +++ /dev/null @@ -1,58 +0,0 @@ -"""Logging and warning utility functions for CrewAI.""" - -import contextlib -import io -import logging -import warnings -from collections.abc import Generator - - -@contextlib.contextmanager -def suppress_logging( - logger_name: str, - level: int | str, -) -> Generator[None, None, None]: - """Suppress verbose logging output from specified logger. - - Commonly used to suppress ChromaDB's verbose HNSW index logging. - - Args: - logger_name: The logger to suppress - level: The minimum level to allow (e.g., logging.ERROR or "ERROR") - - Yields: - None - - Example: - with suppress_logging("chromadb.segment.impl.vector.local_persistent_hnsw", logging.ERROR): - collection.query(query_texts=["test"]) - """ - logger = logging.getLogger(logger_name) - original_level = logger.getEffectiveLevel() - logger.setLevel(level) - with ( - contextlib.redirect_stdout(io.StringIO()), - contextlib.redirect_stderr(io.StringIO()), - contextlib.suppress(UserWarning), - ): - yield - logger.setLevel(original_level) - - -@contextlib.contextmanager -def suppress_warnings() -> Generator[None, None, None]: - """Context manager to suppress all warnings. - - Yields: - None during the context execution. - - Note: - This implementation consolidates warning suppression used throughout - the codebase, including specific deprecation warnings from dependencies. - """ - with warnings.catch_warnings(): - warnings.filterwarnings("ignore") - warnings.filterwarnings( - "ignore", message="open_text is deprecated*", category=DeprecationWarning - ) - yield diff --git a/src/crewai/utilities/paths.py b/src/crewai/utilities/paths.py deleted file mode 100644 index 3612af9c7..000000000 --- a/src/crewai/utilities/paths.py +++ /dev/null @@ -1,25 +0,0 @@ -"""Path management utilities for CrewAI storage and configuration.""" - -import os -from pathlib import Path - -import appdirs - - -def db_storage_path() -> str: - """Returns the path for SQLite database storage. - - Returns: - str: Full path to the SQLite database file - """ - app_name = get_project_directory_name() - app_author = "CrewAI" - - data_dir = Path(appdirs.user_data_dir(app_name, app_author)) - data_dir.mkdir(parents=True, exist_ok=True) - return str(data_dir) - - -def get_project_directory_name() -> str: - """Returns the current project directory name.""" - return os.environ.get("CREWAI_STORAGE_DIR", Path.cwd().name) diff --git a/tests/utilities/crew/__init__.py b/tests/utilities/crew/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/uv.lock b/uv.lock index ee2406cbb..ba86319ac 100644 --- a/uv.lock +++ b/uv.lock @@ -8,22 +8,31 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] [manifest] members = [ "crewai", - "crewai-core", "crewai-tools", + "crewai-workspace", ] [[package]] @@ -768,9 +777,12 @@ name = "contourpy" version = "1.3.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, @@ -846,12 +858,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, @@ -943,12 +961,12 @@ wheels = [ [[package]] name = "crewai" -source = { editable = "." } +source = { editable = "lib/crewai" } dependencies = [ { name = "appdirs" }, { name = "blinker" }, + { name = "chromadb" }, { name = "click" }, - { name = "crewai-core" }, { name = "instructor" }, { name = "json-repair" }, { name = "json5" }, @@ -962,6 +980,7 @@ dependencies = [ { name = "pdfplumber" }, { name = "portalocker" }, { name = "pydantic" }, + { name = "pydantic-settings" }, { name = "pyjwt" }, { name = "python-dotenv" }, { name = "pyvis" }, @@ -969,6 +988,7 @@ dependencies = [ { name = "tokenizers" }, { name = "tomli" }, { name = "tomli-w" }, + { name = "uv" }, ] [package.optional-dependencies] @@ -1009,39 +1029,15 @@ watson = [ { name = "ibm-watsonx-ai" }, ] -[package.dev-dependencies] -all = [ - { name = "crewai-core" }, - { name = "crewai-tools" }, -] -dev = [ - { name = "bandit" }, - { name = "git-filter-repo" }, - { name = "mypy" }, - { name = "pre-commit" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-randomly" }, - { name = "pytest-recording" }, - { name = "pytest-split" }, - { name = "pytest-subprocess" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "ruff" }, - { name = "types-appdirs" }, - { name = "types-pyyaml" }, - { name = "types-regex" }, - { name = "types-requests" }, -] - [package.metadata] requires-dist = [ { name = "aisuite", marker = "extra == 'aisuite'", specifier = ">=0.1.10" }, { name = "appdirs", specifier = ">=1.4.4" }, { name = "blinker", specifier = ">=1.9.0" }, { name = "boto3", marker = "extra == 'aws'", specifier = ">=1.40.38" }, + { name = "chromadb", specifier = "~=1.1.0" }, { name = "click", specifier = ">=8.1.7" }, - { name = "crewai-core", editable = "lib/core" }, + { name = "crewai", editable = "lib/crewai" }, { name = "crewai-tools", marker = "extra == 'tools'", editable = "lib/tools" }, { name = "docling", marker = "extra == 'docling'", specifier = ">=2.12.0" }, { name = "ibm-watsonx-ai", marker = "extra == 'watson'", specifier = ">=1.3.39" }, @@ -1062,6 +1058,7 @@ requires-dist = [ { name = "pdfplumber", marker = "extra == 'pdfplumber'", specifier = ">=0.11.4" }, { name = "portalocker", specifier = "==2.7.0" }, { name = "pydantic", specifier = ">=2.11.9" }, + { name = "pydantic-settings", specifier = ">=2.10.1" }, { name = "pyjwt", specifier = ">=2.9.0" }, { name = "python-dotenv", specifier = ">=1.1.1" }, { name = "pyvis", specifier = ">=0.3.2" }, @@ -1071,57 +1068,17 @@ requires-dist = [ { name = "tokenizers", specifier = ">=0.20.3" }, { name = "tomli", specifier = ">=2.0.2" }, { name = "tomli-w", specifier = ">=1.1.0" }, + { name = "uv", specifier = ">=0.4.25" }, { name = "voyageai", marker = "extra == 'voyageai'", specifier = ">=0.3.5" }, ] provides-extras = ["aisuite", "aws", "docling", "embeddings", "mem0", "openpyxl", "pandas", "pdfplumber", "qdrant", "tools", "voyageai", "watson"] -[package.metadata.requires-dev] -all = [ - { name = "crewai-core", editable = "lib/core" }, - { name = "crewai-tools", editable = "lib/tools" }, -] -dev = [ - { name = "bandit", specifier = ">=1.8.6" }, - { name = "git-filter-repo", specifier = ">=2.47.0" }, - { name = "mypy", specifier = ">=1.18.2" }, - { name = "pre-commit", specifier = ">=4.3.0" }, - { name = "pytest", specifier = ">=8.4.2" }, - { name = "pytest-asyncio", specifier = ">=1.2.0" }, - { name = "pytest-randomly", specifier = ">=4.0.1" }, - { name = "pytest-recording", specifier = ">=0.13.4" }, - { name = "pytest-split", specifier = ">=0.10.0" }, - { name = "pytest-subprocess", specifier = ">=1.5.3" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, - { name = "pytest-xdist", specifier = ">=3.8.0" }, - { name = "ruff", specifier = ">=0.13.1" }, - { name = "types-appdirs", specifier = "==1.4.*" }, - { name = "types-pyyaml", specifier = "==6.0.*" }, - { name = "types-regex", specifier = "==2024.11.6.*" }, - { name = "types-requests", specifier = "==2.32.*" }, -] - -[[package]] -name = "crewai-core" -source = { editable = "lib/core" } -dependencies = [ - { name = "chromadb" }, - { name = "pydantic-settings" }, - { name = "uv" }, -] - -[package.metadata] -requires-dist = [ - { name = "chromadb", specifier = "~=1.1.0" }, - { name = "pydantic-settings", specifier = ">=2.10.1" }, - { name = "uv", specifier = ">=0.4.25" }, -] - [[package]] name = "crewai-tools" source = { editable = "lib/tools" } dependencies = [ { name = "beautifulsoup4" }, - { name = "crewai-core" }, + { name = "crewai" }, { name = "docker" }, { name = "lancedb" }, { name = "pypdf" }, @@ -1258,7 +1215,7 @@ requires-dist = [ { name = "composio-core", marker = "extra == 'composio-core'", specifier = ">=0.6.11.post1" }, { name = "contextual-client", marker = "extra == 'contextual'", specifier = ">=0.1.0" }, { name = "couchbase", marker = "extra == 'couchbase'", specifier = ">=4.3.5" }, - { name = "crewai-core", editable = "lib/core" }, + { name = "crewai", editable = "lib/crewai" }, { name = "cryptography", marker = "extra == 'snowflake'", specifier = ">=43.0.3" }, { name = "databricks-sdk", marker = "extra == 'databricks-sdk'", specifier = ">=0.46.0" }, { name = "docker", specifier = ">=7.1.0" }, @@ -1308,6 +1265,62 @@ requires-dist = [ ] provides-extras = ["apify", "beautifulsoup4", "bedrock", "browserbase", "composio-core", "contextual", "couchbase", "databricks-sdk", "exa-py", "firecrawl-py", "github", "hyperbrowser", "linkup-sdk", "mcp", "mongodb", "multion", "mysql", "oxylabs", "patronus", "postgresql", "qdrant-client", "rag", "scrapegraph-py", "scrapfly-sdk", "selenium", "serpapi", "singlestore", "snowflake", "spider-client", "sqlalchemy", "stagehand", "tavily-python", "weaviate-client", "xml"] +[[package]] +name = "crewai-workspace" +source = { virtual = "." } + +[package.dev-dependencies] +all = [ + { name = "crewai" }, + { name = "crewai-tools" }, +] +dev = [ + { name = "bandit" }, + { name = "git-filter-repo" }, + { name = "mypy" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-randomly" }, + { name = "pytest-recording" }, + { name = "pytest-split" }, + { name = "pytest-subprocess" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "ruff" }, + { name = "types-appdirs" }, + { name = "types-pyyaml" }, + { name = "types-regex" }, + { name = "types-requests" }, +] + +[package.metadata] + +[package.metadata.requires-dev] +all = [ + { name = "crewai", editable = "lib/crewai" }, + { name = "crewai-tools", editable = "lib/tools" }, +] +dev = [ + { name = "bandit", specifier = ">=1.8.6" }, + { name = "git-filter-repo", specifier = ">=2.47.0" }, + { name = "mypy", specifier = ">=1.18.2" }, + { name = "pre-commit", specifier = ">=4.3.0" }, + { name = "pytest", specifier = ">=8.4.2" }, + { name = "pytest-asyncio", specifier = ">=1.2.0" }, + { name = "pytest-randomly", specifier = ">=4.0.1" }, + { name = "pytest-recording", specifier = ">=0.13.4" }, + { name = "pytest-split", specifier = ">=0.10.0" }, + { name = "pytest-subprocess", specifier = ">=1.5.3" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0" }, + { name = "ruff", specifier = ">=0.13.1" }, + { name = "types-appdirs", specifier = "==1.4.*" }, + { name = "types-pyyaml", specifier = "==6.0.*" }, + { name = "types-regex", specifier = "==2024.11.6.*" }, + { name = "types-requests", specifier = "==2.32.*" }, +] + [[package]] name = "cryptography" version = "46.0.0" @@ -2625,9 +2638,12 @@ name = "ipython" version = "8.37.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, @@ -2658,12 +2674,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, @@ -3890,9 +3912,12 @@ name = "networkx" version = "3.4.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } wheels = [ @@ -3910,12 +3935,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] sdist = { url = "https://files.pythonhosted.org/packages/6c/4f/ccdb8ad3a38e583f214547fd2f7ff1fc160c43a75af88e6aec213404b96a/networkx-3.5.tar.gz", hash = "sha256:d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037", size = 2471065, upload-time = "2025-05-29T11:35:07.804Z" } wheels = [ @@ -3977,9 +4008,12 @@ name = "numpy" version = "2.2.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } wheels = [ @@ -4050,12 +4084,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648, upload-time = "2025-09-09T16:54:12.543Z" } wheels = [ @@ -4149,7 +4189,7 @@ name = "nvidia-cudnn-cu12" version = "9.10.2.21" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-cublas-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload-time = "2025-06-06T21:54:08.597Z" }, @@ -4160,7 +4200,7 @@ name = "nvidia-cufft-cu12" version = "11.3.3.83" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload-time = "2025-03-07T01:45:27.821Z" }, @@ -4187,9 +4227,9 @@ name = "nvidia-cusolver-cu12" version = "11.7.3.90" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, - { name = "nvidia-cusparse-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, - { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cusparse-cu12" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload-time = "2025-03-07T01:47:16.273Z" }, @@ -4200,7 +4240,7 @@ name = "nvidia-cusparse-cu12" version = "12.5.8.93" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload-time = "2025-03-07T01:48:13.779Z" }, @@ -6060,7 +6100,8 @@ version = "0.13.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, - { name = "vcrpy" }, + { name = "vcrpy", version = "5.1.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation == 'PyPy'" }, + { name = "vcrpy", version = "7.0.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/32/9c/f4027c5f1693847b06d11caf4b4f6bb09f22c1581ada4663877ec166b8c6/pytest_recording-0.13.4.tar.gz", hash = "sha256:568d64b2a85992eec4ae0a419c855d5fd96782c5fb016784d86f18053792768c", size = 26576, upload-time = "2025-05-08T10:41:11.231Z" } wheels = [ @@ -6880,9 +6921,12 @@ name = "scipy" version = "1.15.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, @@ -6947,12 +6991,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, @@ -7173,9 +7223,12 @@ name = "singlestoredb" version = "1.12.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "build", marker = "python_full_version < '3.11'" }, @@ -7208,12 +7261,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "build", marker = "python_full_version >= '3.11'" }, @@ -7528,9 +7587,12 @@ name = "tifffile" version = "2025.5.10" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, @@ -7551,12 +7613,18 @@ resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux')", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", ] dependencies = [ { name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, @@ -7866,7 +7934,7 @@ name = "triton" version = "3.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "setuptools", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, + { name = "setuptools" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/62/ee/0ee5f64a87eeda19bbad9bc54ae5ca5b98186ed00055281fd40fb4beb10e/triton-3.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ff2785de9bc02f500e085420273bb5cc9c9bb767584a4aa28d6e360cec70128", size = 155430069, upload-time = "2025-07-30T19:58:21.715Z" }, @@ -8224,16 +8292,59 @@ wheels = [ name = "vcrpy" version = "5.1.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", +] dependencies = [ - { name = "pyyaml" }, - { name = "wrapt" }, - { name = "yarl" }, + { name = "pyyaml", marker = "platform_python_implementation == 'PyPy'" }, + { name = "wrapt", marker = "platform_python_implementation == 'PyPy'" }, + { name = "yarl", marker = "platform_python_implementation == 'PyPy'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a5/ea/a166a3cce4ac5958ba9bbd9768acdb1ba38ae17ff7986da09fa5b9dbc633/vcrpy-5.1.0.tar.gz", hash = "sha256:bbf1532f2618a04f11bce2a99af3a9647a32c880957293ff91e0a5f187b6b3d2", size = 84576, upload-time = "2023-07-31T03:19:32.231Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/2a/5b/3f70bcb279ad30026cc4f1df0a0491a0205a24dddd88301f396c485de9e7/vcrpy-5.1.0-py2.py3-none-any.whl", hash = "sha256:605e7b7a63dcd940db1df3ab2697ca7faf0e835c0852882142bafb19649d599e", size = 41969, upload-time = "2023-07-31T03:19:30.128Z" }, ] +[[package]] +name = "vcrpy" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.12.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version == '3.11.*' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", + "python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation != 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation != 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')", +] +dependencies = [ + { name = "pyyaml", marker = "platform_python_implementation != 'PyPy'" }, + { name = "urllib3", marker = "platform_python_implementation != 'PyPy'" }, + { name = "wrapt", marker = "platform_python_implementation != 'PyPy'" }, + { name = "yarl", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/25/d3/856e06184d4572aada1dd559ddec3bedc46df1f2edc5ab2c91121a2cccdb/vcrpy-7.0.0.tar.gz", hash = "sha256:176391ad0425edde1680c5b20738ea3dc7fb942520a48d2993448050986b3a50", size = 85502, upload-time = "2024-12-31T00:07:57.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/5d/1f15b252890c968d42b348d1e9b0aa12d5bf3e776704178ec37cceccdb63/vcrpy-7.0.0-py2.py3-none-any.whl", hash = "sha256:55791e26c18daa363435054d8b35bd41a4ac441b6676167635d1b37a71dbe124", size = 42321, upload-time = "2024-12-31T00:07:55.277Z" }, +] + [[package]] name = "virtualenv" version = "20.34.0"