[build-system] requires = ["hatchling>=1.21.0"] build-backend = "hatchling.build" [project] name = "cleveragents" version = "1.0.0" description = "CleverAgents CLI and runtime toolkit" readme = "README.md" requires-python = ">=3.13" license = {text = "MIT"} authors = [ {name = "CleverThis Engineering", email = "engineering@cleverthis.com"}, ] keywords = ["cleveragents", "ai", "cli", "automation"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.13", ] dependencies = [ # CLI Framework (ADR-009) "typer>=0.9.0", "uvicorn>=0.30.1", "watchdog>=4.0.0", "faiss-cpu>=1.7.4", # Vector store backend "rx>=3.2.0", # Reactive streams for routing "dependency-injector>=4.41.0", # DI container "pydantic>=2.7.0", "pydantic-settings>=2.11.0", "structlog>=24.4.0", "langchain>=0.2.14", "langchain-community>=0.2.14", "langchain-openai>=0.2.0", "langchain-google-genai>=0.2.0", "jinja2>=3.1.0", "alembic>=1.13.1", "numpy>=2.1.0", "python-ulid>=2.7.0", # ULID generation for plan/action IDs ] [project.optional-dependencies] dev = [ # Code formatting and linting "ruff>=0.1.0", # Type checking "pyright>=1.1.350", "types-pyyaml>=6.0.0", "types-aiofiles>=23.0.0", # Testing "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "pytest-cov>=4.1.0", ] tests = [ "coverage>=7.11.0", "asv>=0.6.5", "robotframework>=7.3.2", "robotframework-pabot>=4.0.0", ] docs = [ "mkdocs>=1.6.1", "mkdocs-material>=9.6.0", "mkdocstrings[python]>=0.24.0", ] [project.urls] Homepage = "https://cleverthis.com/cleveragents" Documentation = "https://docs.cleverthis.com/cleveragents" Repository = "https://git.cleverthis.com/cleveragents/core" Issues = "https://git.cleverthis.com/cleveragents/core/issues" [project.scripts] cleveragents = "cleveragents.cli:main" agents = "cleveragents.cli:main" [tool.hatch.build.targets.wheel] packages = ["src/cleveragents"] include = ["src/cleveragents/py.typed"] [tool.ruff] line-length = 88 target-version = "py313" # Target Python 3.13 src = ["src", "tests", "benchmarks"] extend-exclude = ["docs/reference/contracts/stubs/*.py"] [tool.ruff.lint] select = ["E", "F", "W", "B", "UP", "I", "SIM", "RUF"] ignore = [] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] [tool.ruff.format] # Use double quotes for strings quote-style = "double" # Indent with 4 spaces indent-style = "space" # Unix line endings line-ending = "auto" [tool.pyright] include = ["src"] exclude = ["**/.nox", "**/__pycache__", "**/site-packages", "src/cleveragents/discovery"] pythonVersion = "3.13" # Target Python 3.13 typeCheckingMode = "strict" strictListInference = true strictDictionaryInference = true strictSetInference = true reportMissingImports = true reportMissingTypeStubs = false reportMissingTypeArgument = true reportIncompatibleMethodOverride = true reportIncompatibleVariableOverride = true reportUnusedImport = true reportUnusedClass = true reportUnusedFunction = true reportUnusedVariable = true reportDuplicateImport = true reportOptionalMemberAccess = true reportOptionalCall = true reportOptionalIterable = true reportOptionalContextManager = true reportOptionalOperand = true reportTypedDictNotRequiredAccess = true reportUnnecessaryIsInstance = true reportUnnecessaryCast = true reportUnnecessaryComparison = true reportImplicitStringConcatenation = false reportUnusedCallResult = false reportUnknownMemberType = false reportUnknownVariableType = false reportUnknownParameterType = false [tool.coverage] # Coverage configuration [tool.coverage.run] source = ["src", "scripts"] branch = true parallel = false omit = [ "*/tests/*", "*/test_*", "features/*", "*/features/*", "*/__pycache__/*", "*/site-packages/*", "*/dependency_injector/*", "*/venv/*", "*/.venv/*", "*/.nox/*", "src/cleveragents/discovery/*", ] data_file = "build/.coverage" [tool.coverage.html] directory = "build/htmlcov" [tool.coverage.xml] output = "build/coverage.xml" [tool.hatch] # Hatch build configuration