Metadata-Version: 2.4
Name: aurochs-core
Version: 0.1.0
Summary: Shared infrastructure for the Aurochs agency line plugins.
Project-URL: Homepage, https://github.com/skovalik/aurochs-core
Project-URL: Repository, https://github.com/skovalik/aurochs-core
Project-URL: Issues, https://github.com/skovalik/aurochs-core/issues
Author-email: Stefan Kovalik <stefan@aurochs.agency>
Maintainer-email: Stefan Kovalik <stefan@aurochs.agency>
License-Expression: MIT
License-File: LICENSE
Keywords: advisory-lock,aurochs,lockfile,sqlite
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.13
Requires-Dist: psutil>=5.9
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Requires-Dist: types-psutil; extra == 'dev'
Description-Content-Type: text/markdown

# aurochs-core

Shared infrastructure for the Aurochs agency line plugins. Not user-facing.

Ships the canonical advisory-lockfile classes (`WriteLock`, `MigrateLock`, `LockError`)
and the SQLite connection helper (`db_connect`) used by every plugin in the Aurochs
agency line (`aurochs-recall`, `aurochs-voice`, `aurochs-llm-scrub`, `aurochs-seo-geo`).

Plugins still own their own `MigrationRunner`, types, and schema modules — only the
truly shared substrate lives here.

## Public surface

```python
from aurochs_core import LockError, MigrateLock, WriteLock, db_connect
```

Pragma contract applied by `db_connect()`:

- `foreign_keys = ON`
- `journal_mode = WAL`
- `synchronous = NORMAL`
- `busy_timeout = 30000` (30s)
- `row_factory = sqlite3.Row`

## License

MIT — see [LICENSE](LICENSE).
