PORTNAME= crewai PORTVERSION= 1.15.2 CATEGORIES= misc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Framework for orchestrating role-playing, autonomous AI agents WWW= https://crewai.com \ https://docs.crewai.com \ https://github.com/crewAIInc/crewAI LICENSE= MIT BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiofiles>=23.2.1:devel/py-aiofiles@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}aiosqlite>=0.21.0:databases/py-aiosqlite@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}appdirs>=1.4.4:devel/py-appdirs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cel-python>=0.5.0,<0.6:devel/py-cel-python@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}chromadb>=1.1.0:databases/py-chromadb@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}click>=8.1.7,<9:devel/py-click@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}crewai-cli>=1.15.2:misc/py-crewai-cli@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}crewai-core>=1.15.2:misc/py-crewai-core@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}httpx>=0.28.1:www/py-httpx@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}instructor>=1.3.3:misc/py-instructor@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}json-repair>=0.25.2:textproc/py-json-repair@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}json5>=0.10.0:devel/py-json5@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}jsonref>=1.1.0:devel/py-jsonref@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mcp>=1.26.0:misc/py-mcp@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}openai>=2.30.0,<3:misc/py-openai@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}openpyxl>=3.1.5:textproc/py-openpyxl@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}opentelemetry-api>=1.42.0:devel/py-opentelemetry-api@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}opentelemetry-exporter-otlp-proto-http>=1.42.0:devel/py-opentelemetry-exporter-otlp-proto-http@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}opentelemetry-sdk>=1.42.0:devel/py-opentelemetry-sdk@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pdfplumber>=0.11.4:graphics/py-pdfplumber@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}portalocker>=2.7.0:devel/py-portalocker@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pydantic-settings>=2.10.1,<3:devel/py-pydantic-settings@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.11.9:devel/py-pydantic2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyjwt>=2.13.0,<3:www/py-pyjwt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-dotenv>=1.2.2,<2:www/py-python-dotenv@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0:devel/py-pyyaml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}regex>=2026.1.15:textproc/py-regex@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tokenizers>=0.21,<1:textproc/py-tokenizers@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tomli-w>=1.1.0:textproc/py-tomli-w@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tomli>=2.0.2:textproc/py-tomli@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-recording>=0:devel/py-pytest-recording@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}vcrpy>=0:devel/py-vcrpy@${PY_FLAVOR} USES= python USE_PYTHON= autoplist concurrent pep517 pytest NO_ARCH= yes # CLI templates ship Jinja-like placeholders in .py files and cannot be # byte-compiled during staging. PEP517_INSTALL_CMD= ${PYTHON_CMD} -m installer --no-compile-bytecode \ --destdir ${STAGEDIR} --prefix ${PREFIX} \ ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} CREWAI_TESTING=true TEST_WRKSRC= ${WRKSRC}/tests .include