feat: move core functionality to lib workspace structure

This commit is contained in:
Greyson Lalonde
2025-09-27 17:22:46 -04:00
parent f0762473d0
commit 4d79c41a06
780 changed files with 421 additions and 1541 deletions

View File

@@ -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",
#]