core/pyproject.toml
Shay a2980bdca2
[codex] Recognition anti-unifier Phase 1 (#224)
* feat(epistemic): populate normative_detail on TurnEvent and ChatResponse

Adds normative_detail_from_verdicts() to core.epistemic_state and wires
it into both the stub and main ChatResponse/TurnEvent construction sites.
The field carries a sorted comma-separated list of violated boundary or
commitment IDs when normative clearance is VIOLATED or SUPPRESSED; empty
string otherwise.

* docs(ADR-0142): ratify epistemic state taxonomy — 14-state vocabulary + normative clearance axis

Formalises the six-subsystem Framing 1 audit findings into a first-class
decision. Accepts the 14-state taxonomy and companion 4-value normative
clearance axis. Documents Phase 3 deliverables already landed and defers
structured provenance + cross-subsystem transition machinery to ADR-0144.

* feat(recognition): output contract + ADR-0143

Adds recognition/outcome.py: RecognitionOutcome, FeatureBundle,
BoundFeature, EvidenceSpan, NegativeEvidence, the three typed refusal
classes (ShapeRefusal, FeatureEvidenceRefusal, FeatureConsistencyRefusal),
and RecognitionProvenance. Frozen dataclasses, JSON-serializable,
byte-deterministic invariants enforced in __post_init__.

ADR-0143 commits to Mechanism D (multi-resolution anti-unification over
token sequences) and defines the two-phase acceptance test.

* feat(recognition): derive phase1 anti-unifier
2026-05-24 12:37:38 -07:00

53 lines
966 B
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",
]
[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*",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]