Metadata-Version: 2.5
Name: ideapress
Version: 1.3.3
Summary: Turns an idea into finished content through configurable, Python-controlled workflows in which models perform bounded, validated tasks.
Project-URL: Homepage, https://github.com/JPKell/IdeaPress
Project-URL: Documentation, https://github.com/JPKell/IdeaPress/tree/main/docs
Project-URL: Changelog, https://github.com/JPKell/IdeaPress/blob/main/CHANGELOG.md
Author: Local AI Suite contributors
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: alembic<2,>=1.13
Requires-Dist: baseaicore<0.5,>=0.4.2
Requires-Dist: commissioner[sql]<0.2,>=0.1.1
Requires-Dist: cutctx<0.2,>=0.1
Requires-Dist: fastapi<1,>=0.115
Requires-Dist: httpx<1,>=0.27
Requires-Dist: jinja2<4,>=3.1
Requires-Dist: loadledger[sql]<0.4,>=0.3
Requires-Dist: mirrorwall<0.3,>=0.2.2
Requires-Dist: modelrack<0.8,>=0.7
Requires-Dist: pydantic<3,>=2.9
Requires-Dist: python-multipart<1,>=0.0.9
Requires-Dist: setspec<0.7,>=0.5
Requires-Dist: sqlalchemy<3,>=2.0.30
Requires-Dist: typer<1,>=0.12
Requires-Dist: uvicorn[standard]<1,>=0.30
Requires-Dist: weightsdb<0.3,>=0.2
Provides-Extra: dev
Requires-Dist: import-linter<3,>=2.0; extra == 'dev'
Requires-Dist: mypy<2,>=1.11; extra == 'dev'
Requires-Dist: pytest-cov<6,>=5; extra == 'dev'
Requires-Dist: pytest-randomly<4,>=3; extra == 'dev'
Requires-Dist: pytest<10,>=9.0.3; extra == 'dev'
Requires-Dist: pyyaml<7,>=6; extra == 'dev'
Requires-Dist: respx<1,>=0.21; extra == 'dev'
Requires-Dist: ruff<1,>=0.6; extra == 'dev'
Requires-Dist: types-pyyaml<7,>=6; extra == 'dev'
Provides-Extra: loadcoach-contract
Requires-Dist: loadcoach; extra == 'loadcoach-contract'
Provides-Extra: postgres
Requires-Dist: psycopg[binary]<4,>=3.2; extra == 'postgres'
Provides-Extra: telemetry
Requires-Dist: sweatmeter<0.5,>=0.4; extra == 'telemetry'
Description-Content-Type: text/markdown

# IdeaPress

Turns an idea into finished content through configurable, Python-controlled workflows in which models perform bounded, validated tasks.

**Status:** `1.3.3` in the repository — `v1.3.2` tagged locally (not yet pushed); **PyPI still
serves `1.3.1`**. 10 phases built through M8's 1.0 and the LA2/M13 rows beyond it:
requirements, plan, draft/validate/repair/commit, audit and bounded revision, exports, an optional
LoadCoach backend, per-stage adapter pins, and now per-unit/per-project cost (LoadLedger), a
recorded egress decision (Commissioner) and CutCtx-driven stage context compaction — see
[development plan](docs/apps/ideapress/development-plan.md) for what each phase adds.

Part of the **Local AI Suite**.

## Install

```bash
pip install ideapress
ideapress serve
```

Starts on `127.0.0.1:8767` with zero configuration. See [docs/apps/ideapress/spec.md](docs/apps/ideapress/spec.md) §12 for the full configuration surface and `IDEAPRESS_*` environment variables.

## Quickstart

```bash
pip install ideapress
ideapress serve            # starts the web UI + API on 127.0.0.1:8767
ideapress health --json     # same health data the API reports, from the CLI
ideapress --help
```

## Compatibility

Declared version ranges from `pyproject.toml` — kept from drifting by
`tests/unit/test_readme_compatibility.py`, which parses the file and fails if this table disagrees:

| Package | Range |
|---|---|
| `baseaicore` | `>=0.4.2,<0.5` |
| `setspec` | `>=0.5,<0.7` |
| `modelrack` | `>=0.7,<0.8` |
| `weightsdb` | `>=0.2,<0.3` |
| `mirrorwall` | `>=0.2.2,<0.3` |
| `loadledger` | `>=0.3,<0.4` |
| `commissioner` | `>=0.1.1,<0.2` |
| `cutctx` | `>=0.1,<0.2` |
| `sweatmeter` | `>=0.4,<0.5` |

`loadledger` and `commissioner` are installed with their `[sql]` extra (not optional in practice:
both mount unconditionally in `infrastructure/db/models.py`). `sweatmeter` is the optional
`[telemetry]` extra, for status display only — never a hard dependency.

## Documentation

Project documentation lives under [`docs/`](docs/README.md). Start with [`docs/README.md`](docs/README.md).

| Read this | For |
|---|---|
| [docs/apps/ideapress/spec.md](docs/apps/ideapress/spec.md) | Purpose, scope, non-goals, public contracts, configuration, acceptance criteria |
| [docs/apps/ideapress/development-plan.md](docs/apps/ideapress/development-plan.md) | The phased build plan: goals, work, tests, acceptance criteria per phase |

## Development

```bash
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install
pytest -m "not live and not performance"
```

See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the full workflow and [`SECURITY.md`](SECURITY.md) for
how to report a vulnerability.

## License

Apache-2.0 — see [`LICENSE`](LICENSE).
