RFTSystems's picture
Update app.py
d6d06cf verified
import gradio as gr
SUITE = [
(
"AuditPlane — LLM Decision Proofs",
"https://huggingface.co/spaces/RFTSystems/AuditPlane__LLM_Decision_Proofs",
"Signed verification plane: Ed25519-signed decision receipts + hash-chained runs + replay + drift diffs + Merkle proofs.",
),
(
"ReplayProof Agent POV Verified Replay",
"https://huggingface.co/spaces/RFTSystems/ReplayProof__Agent_POV__Verified_Replay",
"Fast proof: generate a deterministic run bundle you can verify and replay anywhere.",
),
(
"Agent Flight Recorder",
"https://huggingface.co/spaces/RFTSystems/Agent_Flight_Recorder",
"Chain-of-custody logging: hash-chained events across prompts, tools, outputs, and memory reads/writes.",
),
(
"RFT Memory Receipt Engine",
"https://huggingface.co/spaces/RFTSystems/RFT_Memory_Receipt_Engine",
"Proof layer: generate/download tamper-evident receipts; upload to independently verify integrity.",
),
(
"TimelineDiff Differential Reproducibility",
"https://huggingface.co/spaces/RFTSystems/TimelineDiff__Differential_Reproducibility",
"First divergence: align two run bundles and pinpoint exactly where/why they split.",
),
(
"TrustStack Console",
"https://huggingface.co/spaces/RFTSystems/TrustStack_Console",
"Audit cockpit: inspect runs, compare state, and trace exactly what changed and why.",
),
(
"Coherent Compute Engine",
"https://huggingface.co/spaces/RFTSystems/Coherent_Compute_Engine",
"Verification-first benchmark: live throughput + stability/energy behaviour + downloadable receipt.",
),
]
WHY = (
"AI is being shipped into real systems faster than teams can reliably reproduce or explain agent behaviour. "
"When an agent fails, too many postmortems still rely on screenshots, partial logs, and opinions — not evidence.\n\n"
"The operational risk is not only that an agent does the wrong thing. The deeper risk is that **nobody can prove what happened**: "
"what the system saw, what it decided, what it called, what it wrote, and where the run diverged. When failures are unreproducible, accountability collapses.\n\n"
"RFTSystems exists to make behaviour **inspectable and independently verifiable**. This suite produces evidence bundles you can share and validate: "
"Ed25519-signed receipts, hash-chained timelines, deterministic replays, Merkle proofs, and first-divergence diffs. You don’t need to trust the author — you can verify the evidence.\n\n"
"I can’t promise “AI will never take over.” No one can. What I *can* promise is this: **with chain-of-custody logs and signed receipts, we can prove what happened and who is responsible.**"
)
WHY_VERIFICATION_DOC = (
"# Why verification matters (the risks, plainly)\n\n"
"AI is being built and deployed at a pace that is now outstripping accountability. That mismatch is where harm happens.\n\n"
"The problem isn’t that agents make mistakes. Mistakes are inevitable. The unacceptable part is what usually follows:\n\n"
"- “We can’t reproduce it.”\n"
"- “We’re not sure which prompt/tool/model version caused it.”\n"
"- “We changed a few things and it seems better now.”\n"
"- “Trust us.”\n\n"
"That is not engineering. That is damage control.\n\n"
"## What must be provable (every time)\n\n"
"If you’re shipping agents that browse, call tools, write files, automate actions, or influence real users, you need to be able to prove:\n\n"
"1) **WHEN** it happened (a verifiable timeline)\n"
"2) **WHAT** happened (inputs → decisions → tool calls → outputs)\n"
"3) **WHY** it happened (the exact chain of state transitions)\n"
"4) **HOW** to stop it happening again (what changed, and proof that the change works)\n\n"
"If you cannot answer those with evidence, you do not have a safe system — you have a black box.\n\n"
"## Why this collection exists\n\n"
"This suite exists to end the “unanswered for” failure mode.\n\n"
"It turns runs into **evidence you can verify independently**:\n\n"
"- Ed25519-signed receipts (so outputs are attestations, not vibes)\n"
"- Merkle proofs (so you can verify inclusion without shipping everything)\n"
"- deterministic replays (so anyone can reproduce behaviour)\n"
"- chain-of-custody logging (so the record can’t be quietly rewritten)\n"
"- first-divergence diffs (so you can pinpoint exactly where and why two runs split)\n"
"- audit views (so governance becomes evidence-led, not opinion-led)\n\n"
"### Bottom line\n\n"
"**If you can’t replay it, you don’t understand it. If you can’t prove it, you can’t govern it.**\n\n"
"Collection:\n"
"https://huggingface.co/collections/RFTSystems/rftsystems-agent-forensics-suite\n"
)
LICENSE_NOTICE = """All materials contained in or associated with this repository — including but not limited to text, code, algorithms, equations, figures, datasets, and documentation — are original works authored by Liam Grinstead and form part of the Rendered Frame Theory (RFT) research framework.
These works are protected under the following laws and treaties:
• Copyright, Designs and Patents Act 1988 (UK) — ss.1–103 (copyright subsistence, ownership, and infringement) and ss.77–89 (moral rights).
• Trade Secrets (Enforcement etc.) Regulations 2018 (UK) — Regs.2–6 (protection of confidential know-how, algorithms, and unpublished research).
• Copyright and Rights in Databases Regulations 1997 (UK) — Regs.14–24 (protection of compiled datasets).
• Berne Convention for the Protection of Literary and Artistic Works (1886) — Arts.5(2) & 6bis (automatic international copyright and moral rights).
• TRIPS Agreement (1994) — Arts.9–14 (international enforcement of copyright and related rights).
All rights are reserved.
No part of this work may be copied, reproduced, distributed, performed, displayed, trained upon by AI systems, reverse-engineered, or used to create derivative works without the author’s explicit written consent.
Enforcement rights: Unauthorised use constitutes infringement under CDPA 1988 ss.16 & 96–103, giving rise to civil remedies (injunctions, damages, delivery-up, account of profits, and costs recovery).
Commercial infringement may amount to a criminal offence under CDPA s.107, punishable by fines and/or imprisonment.
Verification: Each record is timestamped through the Zenodo/DataCite registry and may reference the master DOI: https://doi.org/10.5281/zenodo.17460107 as the consolidated legal and authorship archive.
© 2025 Liam Grinstead — All Rights Reserved.
"""
def _build_markdown() -> str:
md = []
md.append("# RFTSystems — Agent Forensics Suite")
md.append("**Evidence-first instrumentation for AI agents and safety decisions.**")
md.append("Audit, prove, replay, and diff runs — turning “trust me” into verification.")
md.append("")
md.append("## Why I built this")
md.append(WHY)
md.append("")
md.append("## The workflow")
md.append("**learn → generate proof → record reality → seal it → replay → diff → audit → benchmark**")
md.append("")
md.append("### Quick start (60 seconds)")
md.append("1. Open **AuditPlane** and generate a baseline suite.")
md.append("2. Replay the same suite and confirm drift diffs (should be 0 if unchanged).")
md.append("3. Export the offline bundle — anyone can verify receipts and Merkle proofs.")
md.append("")
md.append("### Agent pipeline (real systems)")
md.append("1. **Record reality** (Agent Flight Recorder).")
md.append("2. **Seal it** into receipts (RFT Memory Receipt Engine).")
md.append("3. **Diff** two runs and find first divergence (TimelineDiff).")
md.append("4. **Audit** state transitions and governance evidence (TrustStack).")
md.append("5. **Benchmark** verifiable performance signals (Coherent Compute Engine).")
md.append("")
md.append("## The labs")
for name, url, desc in SUITE:
md.append(f"- **[{name}]({url})** — {desc}")
md.append("")
md.append("## Design principle")
md.append(
"We don’t ‘hand-wave’ agent safety. We measure drift from declared intent and produce evidence. "
"Enforcement remains an operator decision; this suite is the instrumentation layer."
)
md.append("")
md.append("**Tags:** #Agents #LLMOps #MLOps #AISafety #Reproducibility #Forensics #Security #Governance")
return "\n".join(md)
def render_doc(which: str) -> str:
if which == "Why verification matters":
return WHY_VERIFICATION_DOC
return _build_markdown()
with gr.Blocks(title="RFTSystems — Agent Forensics Suite") as demo:
doc = gr.Dropdown(
choices=["Start Here", "Why verification matters"],
value="Start Here",
label="Pages",
)
main = gr.Markdown(render_doc("Start Here"))
doc.change(fn=render_doc, inputs=doc, outputs=main)
with gr.Accordion("Licence / Rights Notice (click to expand)", open=False):
gr.Markdown(LICENSE_NOTICE)
demo.launch()