[project]
name = "core-versor"
version = "0.1.0"
description = "Versor Engine: cognitive field system on Cl(4,1) Conformal Geometric Algebra"
requires-python = ">=3.11"

dependencies = [
    "hypothesis>=6.152.7",
    "numpy>=1.26",
    "pytest>=9.0.3",
    "pytest-asyncio>=1.3.0",
    "pytest-xdist>=3.6",
    "psutil>=7.0",
    "pyrage==1.2.3",
    "pyyaml>=6.0",
    "ruff>=0.15.12",
    "datasets>=4.8.5",
]

[project.optional-dependencies]
dev = [
    "pytest>=8.0",
    "pytest-asyncio>=0.23",
    "hypothesis>=6.100",
]
# ADR-0181 PR-6 — audio teacher / shadow lanes. Strictly optional: the
# deterministic compiler is the substrate; these models only label or align and
# are admitted as typed hints (sensorium.audio.teachers). Never runtime-required.
audio-whisper = ["openai-whisper>=20231117"]
audio-nemo = ["nemo_toolkit[asr]>=1.23"]
audio-clap = ["laion-clap>=1.1.6"]
audio-encodec = ["encodec>=0.1.1"]

[project.scripts]
core = "core.cli:main"

[tool.setuptools.packages.find]
where = ["."]
include = [
    "algebra*",
    "alignment*",
    "chat*",
    "core*",
    "field*",
    "formation*",
    "generate*",
    "ingest*",
    "language_packs*",
    "morphology*",
    "persona*",
    "recognition*",
    "sensorium*",
    "session*",
    "vault*",
    "vocab*",
    "workbench*",
]

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
markers = [
    "quarantine: pre-existing failure tracked in conftest.py QUARANTINE registry; excluded from full-pytest CI gate. See docs/test-debt-quarantine.md.",
]
