Implements ADR-0181 PR-6 (eval-plan §4): teachers label or align; they never
define the substrate and never fold embeddings into the versor path.
- sensorium/audio/teachers.py:
- TeacherHint: typed, versioned, checksummed annotation (no raw embeddings).
- AudioTeacher protocol (pure on the signal).
- attach_teacher_hints: the ONLY admission path — appends content.* anchors to
the IR's content_anchors (immutable, recomputes ir_sha256). content.* is not
an operator key, so compile_events skips it: versor + projection_sha256 stay
byte-identical; only the ir leg of the merge_key moves (evidence recorded).
- KNOWN_TEACHER_LANES (whisper/nemo/clap/encodec): declared + gated behind
optional extras; load_teacher import-guards and fails loudly (never a silent
fallback). StubTranscriptTeacher is the deterministic reference instance.
- parser.py: extract _ir_payload + ir_sha256_of (DRY single source of truth for
ir_sha256; byte-identical to parse() output — regression-guarded).
- pyproject.toml: audio-whisper/nemo/clap/encodec optional extras (never
runtime-required).
16 failable proof tests in tests/test_audio_teachers.py. Load-bearing:
test_teacher_hint_does_not_change_versor. Mutation-verified — giving a teacher
anchor an operator event_type (folding it into the versor) fails the
versor-invariance proof; reverted, all pass.
Additive only (ADR-0013): no core layer touched. Audio suite 57/57; eval-gate
ir_sha256 pins unchanged by the parser refactor; architectural invariants 40/40.
Real model adapters are deferred until extras+weights are present; this PR ships
the policy, the typed-hint contract, and the shadow-only guarantee.
64 lines
1.5 KiB
TOML
64 lines
1.5 KiB
TOML
[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.",
|
|
]
|