Metadata-Version: 2.5
Name: ctfy
Version: 0.6.8
Requires-Python: >=3.11
Requires-Dist: fastapi-pagination>=0.15
Requires-Dist: fastapi>=0.136
Requires-Dist: fastmcp>=3.3
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.13
Requires-Dist: pydantic[email]>=2.13
Requires-Dist: python-dotenv>=1.2
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=15.0
Requires-Dist: structlog>=25.5
Requires-Dist: typer>=0.25
Provides-Extra: author
Requires-Dist: httpx>=0.28.1; extra == 'author'
Requires-Dist: jinja2>=3.1; extra == 'author'
Requires-Dist: pydantic[email]>=2.13; extra == 'author'
Requires-Dist: questionary>=2.0; extra == 'author'
Requires-Dist: requests>=2.34; extra == 'author'
Provides-Extra: bastion
Requires-Dist: asyncssh>=2.24.0; extra == 'bastion'
Requires-Dist: cryptography>=44; extra == 'bastion'
Requires-Dist: httpx>=0.28.1; extra == 'bastion'
Requires-Dist: websockets>=12.0; extra == 'bastion'
Provides-Extra: client
Provides-Extra: dev
Requires-Dist: alembic>=1.18; extra == 'dev'
Requires-Dist: anthropic>=0.40; extra == 'dev'
Requires-Dist: argon2-cffi>=25.1; extra == 'dev'
Requires-Dist: asyncssh>=2.24.0; extra == 'dev'
Requires-Dist: boto3>=1.35; extra == 'dev'
Requires-Dist: cryptography>=44; extra == 'dev'
Requires-Dist: docker>=7.1; extra == 'dev'
Requires-Dist: fastapi-pagination>=0.15; extra == 'dev'
Requires-Dist: fastapi>=0.136; extra == 'dev'
Requires-Dist: fastmcp>=3.3; extra == 'dev'
Requires-Dist: httpx>=0.28.1; extra == 'dev'
Requires-Dist: jinja2>=3.1; extra == 'dev'
Requires-Dist: openai>=1.50; extra == 'dev'
Requires-Dist: prometheus-fastapi-instrumentator>=8.1.0; extra == 'dev'
Requires-Dist: psutil>=7.2; extra == 'dev'
Requires-Dist: pydantic[email]>=2.13; extra == 'dev'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
Requires-Dist: pytest>=9.0.2; extra == 'dev'
Requires-Dist: questionary>=2.0; extra == 'dev'
Requires-Dist: requests>=2.34; extra == 'dev'
Requires-Dist: requests[socks]>=2.34; extra == 'dev'
Requires-Dist: secure>=2.0.1; extra == 'dev'
Requires-Dist: slowapi>=0.1.9; extra == 'dev'
Requires-Dist: sqlalchemy>=2.0; extra == 'dev'
Requires-Dist: uvicorn[standard]>=0.47; extra == 'dev'
Requires-Dist: websockets>=12.0; extra == 'dev'
Provides-Extra: eval
Requires-Dist: anthropic>=0.40; extra == 'eval'
Requires-Dist: openai>=1.50; extra == 'eval'
Requires-Dist: requests[socks]>=2.34; extra == 'eval'
Provides-Extra: exploit
Requires-Dist: requests[socks]>=2.34; extra == 'exploit'
Provides-Extra: node
Requires-Dist: docker>=7.1; extra == 'node'
Requires-Dist: fastapi>=0.136; extra == 'node'
Requires-Dist: httpx>=0.28.1; extra == 'node'
Requires-Dist: psutil>=7.2; extra == 'node'
Requires-Dist: uvicorn[standard]>=0.47; extra == 'node'
Provides-Extra: screenshots
Requires-Dist: playwright>=1.60; extra == 'screenshots'
Provides-Extra: server
Requires-Dist: alembic>=1.18; extra == 'server'
Requires-Dist: argon2-cffi>=25.1; extra == 'server'
Requires-Dist: asyncssh>=2.24.0; extra == 'server'
Requires-Dist: cryptography>=44; extra == 'server'
Requires-Dist: fastapi-pagination>=0.15; extra == 'server'
Requires-Dist: fastapi>=0.136; extra == 'server'
Requires-Dist: fastmcp>=3.3; extra == 'server'
Requires-Dist: httpx>=0.28.1; extra == 'server'
Requires-Dist: jinja2>=3.1; extra == 'server'
Requires-Dist: prometheus-fastapi-instrumentator>=8.1.0; extra == 'server'
Requires-Dist: psutil>=7.2; extra == 'server'
Requires-Dist: pydantic[email]>=2.13; extra == 'server'
Requires-Dist: secure>=2.0.1; extra == 'server'
Requires-Dist: slowapi>=0.1.9; extra == 'server'
Requires-Dist: sqlalchemy>=2.0; extra == 'server'
Requires-Dist: uvicorn[standard]>=0.47; extra == 'server'
Requires-Dist: websockets>=12.0; extra == 'server'
Provides-Extra: storage
Requires-Dist: alembic>=1.18; extra == 'storage'
Requires-Dist: argon2-cffi>=25.1; extra == 'storage'
Requires-Dist: asyncssh>=2.24.0; extra == 'storage'
Requires-Dist: boto3>=1.35; extra == 'storage'
Requires-Dist: cryptography>=44; extra == 'storage'
Requires-Dist: fastapi-pagination>=0.15; extra == 'storage'
Requires-Dist: fastapi>=0.136; extra == 'storage'
Requires-Dist: fastmcp>=3.3; extra == 'storage'
Requires-Dist: httpx>=0.28.1; extra == 'storage'
Requires-Dist: jinja2>=3.1; extra == 'storage'
Requires-Dist: prometheus-fastapi-instrumentator>=8.1.0; extra == 'storage'
Requires-Dist: psutil>=7.2; extra == 'storage'
Requires-Dist: pydantic[email]>=2.13; extra == 'storage'
Requires-Dist: secure>=2.0.1; extra == 'storage'
Requires-Dist: slowapi>=0.1.9; extra == 'storage'
Requires-Dist: sqlalchemy>=2.0; extra == 'storage'
Requires-Dist: uvicorn[standard]>=0.47; extra == 'storage'
Requires-Dist: websockets>=12.0; extra == 'storage'
