myrmidon / python /pyproject.toml
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
4.52 kB
[project]
name = "archon"
version = "0.2.2"
description = "Archon - the command center for AI coding assistants."
readme = "README.md"
requires-python = ">=3.12"
# Base dependencies - empty since we're using dependency groups
dependencies = [
"browser-use>=0.3.2",
"langchain-google-genai>=2.1.5",
"mcp>=1.12.2",
"pydantic-ai==1.44.0",
"tenacity>=9.1.4",
]
[dependency-groups]
# Development dependencies for linting and testing
dev = [
"mypy>=1.17.0",
"pytest>=8.0.0",
"pytest-asyncio>=0.21.0",
"pytest-mock>=3.12.0",
"pytest-timeout>=2.3.0",
"pytest-cov>=6.2.1",
"ruff>=0.12.5",
"requests>=2.31.0",
"factory-boy>=3.3.0",
"types-aiofiles>=25.1.0.20260409",
"respx>=0.21.0",
]
# Server container dependencies
server = [
# Web framework
"fastapi>=0.104.0",
"uvicorn>=0.24.0",
"python-multipart>=0.0.20",
"watchfiles>=0.18",
# Web crawling
"crawl4ai==0.7.4",
# Database and storage
"supabase==2.15.1",
"asyncpg>=0.29.0",
"psycopg2-binary>=2.9.9",
# AI/ML libraries
"openai==2.37.0",
"google-genai>=0.3.0",
# Document processing
"pypdf2>=3.0.1",
"pdfplumber>=0.11.6",
"python-docx>=1.1.2",
"markdown>=3.8",
# Security and utilities
"python-jose[cryptography]>=3.3.0",
"cryptography>=41.0.0",
"slowapi>=0.1.9",
# Core utilities
"httpx>=0.24.0",
"pydantic>=2.0.0",
"python-dotenv>=1.0.0",
"docker>=6.1.0",
# Logging
"logfire>=0.30.0",
# Testing (needed for UI-triggered tests)
"pytest>=8.0.0",
"pytest-asyncio>=0.21.0",
"pytest-mock>=3.12.0",
"beautifulsoup4>=4.13.4",
"lxml>=5.4.0",
"APScheduler>=3.10.0",
"pydantic-ai==1.44.0",
# ML Reranking (Phase 5.7.4: Restored to server as lightweight ONNX)
"numpy==1.26.4",
"onnxruntime>=1.17.0,<1.20.0",
"huggingface-hub>=0.23.0",
"transformers==4.44.2",
]
# Optional reranking dependencies for server (Deprecated in Phase 5.7.4 as ONNX is now in server)
server-reranking = []
# MCP container dependencies (Hardened for Phase 4.6.28 - Fully grounded)
mcp = [
"mcp>=1.18.0",
"httpx>=0.24.0",
"pydantic>=2.0.0",
"python-dotenv>=1.0.0",
"logfire>=0.30.0",
"fastapi>=0.104.0",
"psutil>=5.9.0",
"aiofiles==25.1.0",
"supabase==2.15.1",
"openai==2.37.0",
"cryptography>=41.0.0",
"python-jose[cryptography]==3.3.0",
"beautifulsoup4==4.13.4",
"lxml==5.4.0",
"crawl4ai==0.7.4",
"tenacity>=9.1.4",
]
# Agents container dependencies
agents = [
"pydantic-ai==1.44.0",
"pydantic>=2.0.0",
"fastapi>=0.104.0",
"uvicorn>=0.24.0",
"httpx>=0.24.0",
"python-dotenv>=1.0.0",
"structlog>=23.1.0",
"python-jose[cryptography]>=3.3.0",
"supabase==2.15.1",
"psutil>=5.9.0",
# ML Reranking dependencies (Physically transferred for Phase 4.6.28)
"numpy==1.26.4",
"onnxruntime>=1.17.0,<1.20.0",
"huggingface-hub>=0.23.0",
"transformers==4.44.2",
"crawl4ai==0.7.4",
]
# All dependencies for running unit tests locally
all = [
"fastapi>=0.104.0",
"uvicorn>=0.24.0",
"python-multipart>=0.0.20",
"watchfiles>=0.18",
"crawl4ai==0.7.4",
"supabase==2.15.1",
"asyncpg>=0.29.0",
"openai==2.37.0",
"pypdf2>=3.0.1",
"pdfplumber>=0.11.6",
"python-docx>=1.1.2",
"markdown>=3.8",
"python-jose[cryptography]>=3.3.0",
"cryptography>=41.0.0",
"slowapi>=0.1.9",
"docker>=6.1.0",
"logfire>=0.30.0",
"APScheduler>=3.10.0",
"mcp>=1.18.0",
"pydantic-ai==1.44.0",
"structlog>=23.1.0",
"httpx>=0.24.0",
"pydantic>=2.0.0",
"python-dotenv>=1.0.0",
"pytest>=8.0.0",
"pytest-asyncio>=0.21.0",
"pytest-mock>=3.12.0",
"pytest-timeout>=2.3.0",
"requests>=2.31.0",
"factory-boy>=3.3.0",
"beautifulsoup4>=4.13.4",
"lxml>=5.4.0",
"aiofiles==25.1.0",
]
[tool.ruff]
line-length = 120
target-version = "py312"
[tool.ruff.lint]
select = ["E", "W", "F", "I", "B", "C4", "UP"]
ignore = ["E501", "B008", "C901", "W191"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.mypy]
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
disallow_any_unimported = false
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
check_untyped_defs = true
ignore_missing_imports = true