pyyaml<7,>=6.0.2
python-dotenv<2,>=1.0.1
rich>=13.7.1
tenacity<9,>=8.3.0
typer<1,>=0.12.5
jsonschema<5,>=4.23.0
junit-xml<2,>=1.9.0
httpx<1,>=0.27.0
requests<3,>=2.31.0
tqdm<5,>=4.66.0
websocket-client<2,>=1.8.0
platformdirs<5,>=4.0
jinja2<4,>=3.1
fpdf2<3,>=2.7

[adversarial]
torch<3,>=2.1.0
transformers>=4.36.0
accelerate>=0.25.0
nanogcg>=0.1.0

[all]
ai-purple-ops[cloud,intelligence,reports]

[all-adapters]
ai-purple-ops[cloud,llamacpp,local]

[autodan-official]
fschat==0.2.20
transformers==4.28.0
sentencepiece>=0.1.99
nltk>=3.8.1

[cloud]
openai>=1.6.0
anthropic>=0.8.0
boto3>=1.34.0

[dev]
pytest<9,>=8.3
pytest-cov<6,>=5.0
hypothesis<7,>=6.100
ruff<1,>=0.6
black<25,>=24.8
mypy<2,>=1.11
bandit<2,>=1.7.9
pip-audit<3,>=2.7
pre-commit<4,>=3.8
types-PyYAML<7,>=6.0.12
types-requests<3,>=2.31

[intelligence]
duckdb<2,>=1.0.0
scipy<2,>=1.9.0
pygad<4,>=3.3.0
alembic<2,>=1.13

[llamacpp]
llama-cpp-python>=0.2.0

[local]
transformers>=4.36.0
accelerate>=0.25.0
bitsandbytes>=0.41.0

[pair-official]
fschat==0.2.23
anthropic>=0.8.0
google-generativeai>=0.3.0
wandb>=0.16.0
pandas>=2.0.0

[pro]
promptfoo>=0.90.0

[pyrit]
pyrit>=0.9.0

[reports]
weasyprint>=60.0
haralyzer>=2.0
pillow>=10.0
