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

[project]
name = "razi"
version = "1.0.0"
description = "Deterministic governance harness for AI workflows"
readme = "README.md"
license = { text = "Apache-2.0" }
requires-python = ">=3.9"
keywords = ["ai", "governance", "llm", "deterministic", "policy"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: Apache Software License",
    "Programming Language :: Python :: 3.9",
    "Topic :: Software Development :: Libraries :: Application Frameworks",
]

dependencies = [
    "openai>=1.0.0",
    "jsonschema>=4.0.0",
    "pyyaml>=6.0",
    "click>=8.0.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0",
    "pytest-cov>=4.0",
    "pytest-mock>=3.0",
    "ruff>=0.1.0",
    "mypy>=1.5.0",
    "types-PyYAML",
    "types-jsonschema",
]

[project.scripts]
razi = "razi.cli:cli"

[project.urls]
Homepage = "https://github.com/razi-sh/razi"
Documentation = "https://github.com/razi-sh/razi/tree/main/docs"
Issues = "https://github.com/razi-sh/razi/issues"

[tool.hatch.build.targets.wheel]
packages = ["razi"]

[tool.hatch.build.targets.sdist]
exclude = [
  "/.github",
  "/.venv",
  "/runs",
]
[tool.mypy]
python_version = "3.9"
strict = false
explicit_package_bases = true
exclude = [
    # Public shim modules — mypy sees these as duplicates of razi.runtime.*
    # They are intentional re-exports; exclude to avoid false duplicate-module errors.
    "razi/evidence.py",
    "razi/policy.py",
    "razi/runner.py",
    "razi/builder.py",
    "razi/replay.py",
    "razi/schema_validator.py",
    "razi/models/openai.py",
]
