A cross-runtime trust surface for LLM-rendered text.
SUM focuses on one load-bearing claim: Python, Node, and modern browsers produce byte-identical Ed25519 signatures over the same JCS-canonical bytes for signed render receipts.
Each hosted render returns a detached-JWS receipt (sum.render_receipt.v1) that can be verified offline against JWKS.
View Repository • PyPI: sum-engine • Live demo (worker) • Proof Boundary
What Ships Today
sum-engineon PyPI —pip install 'sum-engine[sieve]'—sum attest,sum verify,sum render,sum resolve,sum ledger,sum inspect,sum schema, plus the v0.7.0 additions:sum transform list / apply <name>(registry-dispatched transforms withsum.transform_receipt.v1),sum verify --explain(layered per-dimension report), andsum compliance check --regime <id>(six-regime validator), plus the later meaning-layer subcommandssum mint-meaning,sum mint-chain, andsum verify-meaning(research tier). 170 catalogued features indocs/FEATURE_CATALOG.md(151 production, 18 scaffolded, 1 designed), sourced frommeta/repo_manifest.jsonat v0.12.0. v0.12.0 was tagged on 2026-10-21 and published to PyPI on 2026-10-22; SUM main’s manifest recordspypi_published_version: 0.12.0(updated after the tag, SUM#548). v0.11.0 was tagged on GitHub on 2026-09-16 and never published to PyPI, and SUM’s changelog marks it superseded by 0.12.0. The v0.8.0pip install 'sum-engine[verify]'extra — a dependency-light (cryptography+joserfc, no numpy/torch) receipt verifier that checks SUM’s signed receipts and replays a meaning-risk certificate’s conformal bound offline.- Cloudflare Worker APIs (
/api/render,/api/transform,/api/complete,/api/qid) plus verification surfaces (/.well-known/jwks.json,/.well-known/revoked-kids.json). Per-IP rate limiter + BYO-key gate on public LLM-axis routes (5/24h operator-keyed demo, 100/hr with BYO key). - Browser demo for in-browser attest/verify; same bytes verify under the Node verifier in
standalone_verifier/. - Cross-runtime trust triangle in CI (
make xruntime+make xruntime-adversarial) — K1–K4 valid-input agreement, A1–A6 rejection-class equivalence, plus the 20-fixture transform K-matrix locking accept + reject forsum.transform_receipt.v1across Python ↔ Node ↔ browser. - MCP server (
sum-mcp) exposingextract/attest/verify/inspect/render/schemaover stdio, plus a meaning layer added after v0.8.1:verify_receipt(all five receipt schemas),meaning_diff,depth_frontier, and the BYO-key-onlymint_meaning_receipt/mint_chain_receipt. The server never generates, stores, or logs key material. - Certified multi-hop chains (
sum.chain_receipt.v1, research tier) — one signed, offline-replayable certificate over an ordered sequence ofsum.meaning_risk_receipt.v1hops, with the per-hop bounds composed into an integer-exact Bonferroni budget and a mandatorybudget_scopefield the verifier fails closed without. The first real one covers two transforms over 32 CC0 BillSum bills; SUM performed only hop 2, and certifies the meaning-loss of a transform it did not perform in hop 1. - T0 altitude panel on the live demo — one real BillSum bill descending four altitudes with the strict-NLI measured loss and a per-rung kept / dropped / added claim readout, under a “measured, not certified” header.
- Multi-provider cascade —
LiveLLMAdapter.from_modelroutes by model-id prefix across OpenAI / Anthropic (Worker) / HF Inference Providers / NVIDIA NIM / Groq / Cerebras / Ollama / llama.cpp /local:(Modal, Fireworks, vLLM-on-anything). Free-tier options first-class. - Replay-defense window — opt-in
signed_at_out_of_windowcheck on all four verifier surfaces (Python render / Python transform / JS render / JS transform). Default-off preserves archival use. - Negative-control corpus (T5) — 20 hand-authored documents across five failure modes; runner exits 1 when the bench succeeds on inputs it should fail on.
Truthfulness Boundary (Explicit)
SUM makes a hard distinction between:
- Mechanically proven surfaces (canonical codec, cross-runtime signature equivalence, verifier parity), and
- Empirical LLM behavior (extraction quality, slider preservation, narrative round-trip fidelity).
The full LLM narrative round-trip (text → LLM-extract → axioms → LLM-generate → prose' → LLM-extract → axioms') was closed empirically across three measured corpora on 2026-04-28 under a two-layer intervention (canonical-first generator prompt + constrained-decoding extractor + lemma-exclusion of source-predicate lemmas from the canonical-padding set). Combined results: seed_v1 recall 1.0000 / drift 0.00%, seed_v2 0.9750 / 5.00%, seed_long_paragraphs 0.9972 / 0.57%. The unprompted baseline (no intervention) stands at the documented 107.75% drift / 0.12 recall on seed_v1 — preserved as the “no-intervention” reference point. Empirical closure on three corpora is not the same as corpus-independent proof: the deterministic round-trip is mechanically proven (§1.1); the LLM round-trip is closed empirically (§2.5). Full attribution and bench receipts in docs/PROOF_BOUNDARY.md.
Technical Surface
- Core package: Python 3.10+ (
sum-engine) - Trust/verification: Ed25519 + JCS canonicalization + detached JWS receipts
- Runtime parity: Python CLI verifier, Node verifier, in-browser verifier
- Infra: Cloudflare Worker for hosted render/verification endpoints
- Protocol surfaces: CanonicalBundle format, render receipts, MCP tool server
Why It Matters
SUM is built for cases where downstream systems need proof that output was produced and signed by a specific issuer under a reproducible canonical format — without pretending that cryptographic attestation alone proves semantic truth.
That explicit separation between attestation guarantees and semantic-quality benchmarks is the core product stance.
License
Apache 2.0.
Verification
Full proof report → All claims, all projects →- Proved
Three-runtime byte-symmetric Ed25519 over JCS bytes (Python ↔ Node ↔ browser)
- Proved
Canonical round-trip reconstruct(parse(canonical_tome(S))) == S — 0.00% drift on every CI run
- Shipped
Render receipt format sum.render_receipt.v1 (Ed25519 / JCS / detached JWS) — verifier in three runtimes
- Empirical benchmark
Slider fact preservation median 1.000 (p10 0.769 long n=16 / 0.818 short n=8) — measured; same-commit replay receipt pending (bench-hardening T2/T3)
- Empirical benchmark
Extraction F1 1.000 on seed_v1 (50 hand-authored single-fact SVO sentences); precision 1.000, F1 0.762 on seed_v2 (20 hand-authored harder prose patterns — apposition, passive, relative clause, conjunction). Synthetic author-written corpora; no clinical, customer or third-party text has been measured. Reproduce: python -m scripts.bench.run_bench --corpus scripts/bench/corpora/seed_v1.json --no-llm
- Shipped
Transform substrate (sum.transform_receipt.v1 + registry: slider / extract / compose) — 20-fixture cross-runtime K-matrix locks accept + reject across Python ↔ Node ↔ browser; T4 source-chain binding, T5 ShareableRender, T6 multi-school extract shipped in v0.7.0
- Shipped
sum verify --explain layered output (sum.verify_explained.v1) — seven per-dimension checks each tagged with epistemic_status; truth-of-content always not_asserted (test-locked invariant)
- Shipped
Compliance validators across six regimes (EU AI Act Art. 12 / GDPR Art. 30 / HIPAA §164.312(b) / ISO 27001 A.8.15 / SOC 2 CC 7.2 / PCI DSS v4.0 Req 10) — sum compliance check emits sum.compliance_report.v1
- Empirical benchmark
T1 iterated round-trip K=10 stability — STABLE on all three corpora (seed_v1, seed_v2, seed_long_paragraphs)
- Shipped
Certified multi-hop chain receipt sum.chain_receipt.v1 (Ed25519 / JCS / detached JWS over an ordered sequence of meaning-risk hops) — issued by `sum mint-chain`, replayed offline by a third party via `python -m sum_verify`; the mandatory budget_scope field is fail-closed. Research tier for issuance and dependency-light verification.
- Empirical benchmark
First real certified chain, over the first 32 BillSum test bills (CC0-1.0): per-hop 95%-confidence strict-NLI meaning-loss upper bounds of 0.865768 (hop 1, abstractive summarization performed by the dataset itself, not by SUM) and 0.488860 (hop 2, deterministic lead-N extractive compression), composed to a Bonferroni budget ≤ 1.354628 at joint confidence 0.90; separately measured direct end-to-end leg ≤ 0.874216. The bounds are wide at n=32 (Hoeffding), and the budget is not the end-to-end loss.
Repository README
We couldn't load this repository's README from GitHub right now. You can view it directly on GitHub instead.
View README on GitHubRelated work
-
in-development
HFAO — Hugging Face Agent Observatory
Observe and debug AI agents in production. Trace every step an agent takes, evaluate outputs against expected behavior, and watch quality drift before users do. Open-source, standards-native (OpenTelemetry GenAI + OpenInference), MCP-queryable, Apache-2.0.
-
in-development
Memory Mind Mesh — Living Memory for AI
AI memory that learns from feedback. Recall gets more accurate the more corrections a memory has seen, instead of decaying as the model drifts. Hybrid static + adaptive store.
-
in-development
MTE — Meta-Template Engine
A research engine that turns reusable Python templates into domain-specific implementations as a measured, reviewable, sandbox-tested process — with a built-in harness to test whether it beats one-shot LLM adaptation.