[project]
name = "qwed"
version = "2.4.0"
description = "The Deterministic Verification Protocol for AI - 8 verification engines for math, logic, code, SQL, facts, images, and more."
authors = [
    {name = "QWED Team", email = "rahul@qwedai.com"},
]
license = {text = "Apache-2.0"}
keywords = [
    "ai",
    "verification",
    "llm",
    "deterministic",
    "symbolic",
    "math",
    "logic",
    "code-security",
    "sql-validation",
    "fact-checking"
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Security",
    "Topic :: Software Development :: Quality Assurance",
]
dependencies = [
    "fastapi>=0.100.0",
    "uvicorn>=0.20.0",
    "pydantic[email]>=2.0.0",
    "openai>=1.0.0",
    "anthropic>=0.1.0",
    "python-dotenv>=1.0.0",
    "sympy>=1.12",
    "click>=8.1.0",  # CLI framework
    "z3-solver>=4.12.0",
    "networkx>=3.0",
    "sqlmodel>=0.0.14",
    "bcrypt>=4.0.1",
    "passlib[bcrypt]>=1.7.4",
    "pyjwt>=2.8.0",
    "python-multipart>=0.0.6",
    "pandas>=2.0.0",
    "numpy>=1.24.0",
    "scipy>=1.10.0",
    "sqlglot>=20.0.0",
    "requests>=2.31.0",
    "httpx>=0.24.0",
]
requires-python = ">=3.10"
readme = "README.md"

[project.urls]
Homepage = "https://qwedai.com"
Documentation = "https://docs.qwedai.com"
Repository = "https://github.com/QWED-AI/qwed-verification"
Changelog = "https://github.com/QWED-AI/qwed-verification/blob/main/CHANGELOG.md"

[project.optional-dependencies]
server = [
    "psycopg2-binary>=2.9.9",
    "redis>=5.0.0",
    "prometheus-client>=0.19.0",
    "opentelemetry-api>=1.20.0",
    "opentelemetry-sdk>=1.20.0",
    "opentelemetry-exporter-otlp>=1.20.0",
    "opentelemetry-instrumentation-fastapi>=0.41b0",
    "opentelemetry-instrumentation-requests>=0.41b0",
]
symbolic = [
    "crosshair-tool>=0.0.100",
]
langchain = ["langchain>=0.1.0", "langchain-core"]
crewai = ["crewai>=0.1.0"]
llamaindex = ["llama-index-core>=0.10.0"]
dev = [
    "pytest>=7.0.0",
    "pytest-cov>=4.1.0",
    "coverage[toml]>=7.3.0",
    "pytest-timeout>=2.3.1",
    "pytest-xdist>=3.3.0",
    "pytest-asyncio>=0.21.0",
    "freezegun>=1.4.0",
    "matplotlib>=3.7.0",
    "docker>=7.0.0",
    "pyyaml>=6.0.1",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/qwed_new", "qwed_sdk"]

[project.scripts]
qwed = "qwed_sdk.cli:cli"  # Fixed: cli not main!

