Future Uploads - currently all created:
eDNA Engine 11.5 PYTHON FILES (package of 12 files)
From README_edna.md
## Files and their single responsibilities
| File | Role | Depends on |
|---|---|---|
| `edna_engine_v11_5.py` | v11.5 ethical-reasoning **core** (LLM scorers, C1–C6, 19-name M14 factor surface, GatedToolExecutor). Produces verdicts. | numpy required; torch / transformers / sentence-transformers now **optional** (guarded imports; NLI & embeddings fail closed at point of use) |
| `edna_effect_bound_broker.py` | The **single assurance core**. Runs native gate + cross-family ensemble + sanitization + **defeasible** check, binds effects in a separate process. Covers both paths. | stdlib only; lazily imports the others |
| `edna_defeasible_layer.py` | **Symbolic** defeasible reasoning over C1–C6. Sound including strict-opposite defeat (see CHANGELOG). Escalate-on-weak for violation predicates. | stdlib only |
| `edna_predicate_grounder.py` | **Neural→symbolic seam**. Cross-family ensemble grounds each predicate; divergence ⇒ weak ⇒ fail-closed. True abstention, polarity-aware tie-breaks, batch mode (3 calls vs 42), bounded memo cache, provider-envelope unwrap. | edna_defeasible_layer; lazily edna_engine_v11_5 |
| `edna_grounding_eval.py` | **Offline** — validates labels (inter-annotator agreement) then calibrates the floor per predicate/polarity. Calibrate batch and per-predicate modes **separately**. | edna_predicate_grounder |
| `edna_defeasible_stress.py` | **Offline** — fuzz/soundness battery for the reasoner (13 checks incl. strict-opposite soundness M and augmented-base differential N with an independently-sound oracle). | edna_defeasible_layer |
| `edna_api.py` | **HTTP surface**. FastAPI service: `/v1/evaluate`, `/v1/audit` (external defense-in-depth), `/v1/gate` (judgment only), `/v1/health`. Fail-closed construction, auth on by default, mock mode loudly labeled. | edna_engine_v11_5, fastapi, uvicorn |
| `edna_family_probe.py` | **Offline** — cross-family scorer divergence probe: scores one text per family independently, reports per-factor spread and zone agreement. Makes scorer circularity measurable. | edna_engine_v11_5 |
| `edna_outcome_coherence.py` | **Spirit-of-the-law check (OCV)**. Construes the OUTCOME a request would produce, stripping re-routing wrappers (verse/fiction/"as a historian"/translation), and governs by the construed outcome — stricter-only, fail-closed on construer divergence. The defense against the AHB stylistic-transform attack class. `build_real_ocv_check()` wires a cross-family construer ensemble; `_stub_ocv_check()` runs the mechanism offline. | edna_engine_v11_5 (lazily) |
| `edna_ahb.py` | **Offline benchmark** — the Adversarial Humanities Benchmark harness. Runs 14 stylistic-transform attacks (+ a mechanically-distinct held-out set) past a BEFORE (surface-only) and AFTER (surface+OCV) pipeline and reports catch-rate AND benign-twin false-positive-rate. Turns "0/14" into a measured before/after. | edna_effect_bound_broker, edna_outcome_coherence |
| `run_edna.py` | **Orchestrator**. Wires both paths and all checks. Modes: `demo`, `real`, `verify` (path-safe, stderr-reporting, missing-module = failure). | edna_effect_bound_broker |