Metadata-Version: 2.4
Name: habermas-machine
Version: 0.1.2.dev0
Summary: AI-mediated deliberation and social-choice tooling for Habermas Machine experiments.
License-Expression: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.15.2
Requires-Dist: typing-extensions>=4.12
Provides-Extra: google
Requires-Dist: google-generativeai>=0.3.2; extra == "google"
Requires-Dist: python-dotenv>=1.0.1; extra == "google"
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.25.0; extra == "anthropic"
Requires-Dist: httpx>=0.27; extra == "anthropic"
Requires-Dist: python-dotenv>=1.0.1; extra == "anthropic"
Provides-Extra: together
Requires-Dist: pandas>=2.2; extra == "together"
Requires-Dist: python-dotenv>=1.0.1; extra == "together"
Requires-Dist: together>=1.5.34; extra == "together"
Provides-Extra: modal
Requires-Dist: modal==1.4.1; extra == "modal"
Provides-Extra: all
Requires-Dist: anthropic>=0.25.0; extra == "all"
Requires-Dist: google-generativeai>=0.3.2; extra == "all"
Requires-Dist: httpx>=0.27; extra == "all"
Requires-Dist: modal==1.4.1; extra == "all"
Requires-Dist: pandas>=2.2; extra == "all"
Requires-Dist: python-dotenv>=1.0.1; extra == "all"
Requires-Dist: together>=1.5.34; extra == "all"
Dynamic: license-file

# habermas-machine

`habermas-machine` packages the core deliberation, ranking, and social-choice components used to run Habermas Machine experiments.

## Install

Install the core package:

```bash
uv add habermas-machine
```

Install with provider extras when you need live model clients:

```bash
uv add "habermas-machine[all]"
```

Available extras:

- `google`
- `anthropic`
- `together`
- `modal`
- `all`

## Development

Sync a local development environment with tests and release tooling:

```bash
uv sync --group dev --extra all
```

Run tests:

```bash
uv run pytest
```

Build distribution artifacts:

```bash
uv build
uv run twine check dist/*
```

## Releases

- GitHub Actions runs CI on pushes and pull requests.
  - Runs unit tests.
  - Builds the package.
  - Tests pacakge is installable.
  - Publishes a unique dev build to TestPyPI through trusted publishing.
- Creating a non-prerelease GitHub release publishes the tagged version to PyPI through trusted publishing.
