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

[project]
name = "aegisrt"
version = "0.1.0"
description = "Python-native LLM security testing and defense-audit framework -- prompt injection testing, OWASP LLM Top 10 compliance, and static code audit for AI applications"
requires-python = ">=3.10"
license = "MIT"
readme = "README.md"
keywords = [
    "llm",
    "security",
    "testing",
    "prompt-injection",
    "red-team",
    "ai-security",
    "owasp",
    "vulnerability-scanner",
    "chatbot-security",
    "llm-audit",
    "ai-safety",
    "defense-audit",
    "static-analysis",
    "sarif",
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: Information Technology",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Topic :: Security",
    "Topic :: Software Development :: Testing",
    "Topic :: Software Development :: Quality Assurance",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Typing :: Typed",
]
dependencies = [
    "pydantic>=2.0",
    "pyyaml>=6.0",
    "click>=8.0",
    "rich>=13.0",
    "httpx>=0.25",
    "jinja2>=3.1",
    "python-dotenv>=1.0",
]

[project.optional-dependencies]
dev = [
    "pytest",
    "pytest-asyncio",
    "pytest-cov",
    "ruff",
    "fastapi>=0.100",
    "uvicorn>=0.20",
    "python-multipart>=0.0.5",
]
llm = [
    "openai",
    "anthropic",
]
web = [
    "fastapi>=0.100",
    "uvicorn>=0.20",
    "python-multipart>=0.0.5",
]

[project.scripts]
aegisrt = "aegisrt.cli:main"

[project.entry-points."aegisrt.probes"]

[project.entry-points."aegisrt.detectors"]

[project.entry-points."aegisrt.generators"]

[tool.ruff]
line-length = 100
target-version = "py310"
