Metadata-Version: 2.5
Name: epicormic
Version: 0.0.1
Summary: Provider drift detection and containment for pollard-governed AI systems.
Project-URL: Homepage, https://github.com/jemsbhai/epicormic
Project-URL: Issues, https://github.com/jemsbhai/epicormic/issues
Author: Muntaser Syed
Maintainer-email: Muntaser Syed <jemsbhai@gmail.com>
License: MIT
License-File: LICENSE
Keywords: audit,canary,drift,llm,monitoring,pollard,sequential-testing
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: pollard<2,>=1.6.0
Provides-Extra: cost
Requires-Dist: pollard[tokenmaster]<2,>=1.6.0; extra == 'cost'
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: hatchling>=1.25; extra == 'dev'
Requires-Dist: hypothesis>=6.100; extra == 'dev'
Requires-Dist: jsonld-ex<0.8,>=0.7.4; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pollard[tokenmaster]<2,>=1.6.0; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Requires-Dist: scipy>=1.13; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Provides-Extra: jsonld
Requires-Dist: jsonld-ex<0.8,>=0.7.4; extra == 'jsonld'
Provides-Extra: vector
Requires-Dist: numpy>=1.26; extra == 'vector'
Description-Content-Type: text/markdown

# epicormic

Provider drift detection and containment for pollard-governed AI systems.

Epicormic shoots sprout from dormant buds after a tree is pollarded: growth
that reappears after the cut. epicormic watches for model behaviour that
reappears, or changes, after a baseline has been pinned.

Status: pre-release, under construction. The 0.0.1 release on PyPI is a
name claim: it installs and reports its version and nothing more. The
specification is [docs/PLAN.md](docs/PLAN.md), and the first functional
release will be 0.1.0.

## What it will do

- Record repeated observations of a pinned canary panel inside a
  [pollard](https://github.com/jemsbhai/pollard) execution tree, so every
  observation is content-addressed, budgeted, sealed, and replayable.
- Reduce each observation to value-free signals through an extensible
  scorer protocol.
- Test whether the current window differs from the baseline beyond
  sampling variance, per probe and pooled, and run anytime-valid sequential
  change detection across windows.
- Drive pollard's fail-closed levers from the drift state: a meter that
  refuses dispatch, a policy that forces confirmation of side-effectful
  tools, and a gate on unacknowledged execution fingerprint changes.

## What it will not do

It does not prevent a provider from changing a model. It observes the
consequence, records evidence, and contains the effect.

## Installation

```
python -m pip install epicormic
```

Development install from a checkout:

```
python -m pip install -e ".[dev]"
```

## License

MIT.
