|
|
--- |
|
|
title: TimelineDiff Differential Reproducibility |
|
|
emoji: 🐠 |
|
|
colorFrom: indigo |
|
|
colorTo: pink |
|
|
sdk: gradio |
|
|
sdk_version: 6.2.0 |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
license: other |
|
|
short_description: Diff agent timelines. Find first divergence. Export forensic |
|
|
thumbnail: >- |
|
|
https://cdn-uploads.huggingface.co/production/uploads/685edcb04796127b024b4805/cc2glLOtiZJWxbbDoELfT.jpeg |
|
|
--- |
|
|
TimelineDiff — Differential Reproducibility Protocol (DRP) |
|
|
|
|
|
Production agents diverge: sampling variance, flaky tools, drifting data, timing/race effects. |
|
|
Benchmarks tell you *whether* you failed. Logs tell you *what happened once*. |
|
|
TimelineDiff tells you **why two runs diverged**. |
|
|
|
|
|
## What this Space does |
|
|
- Upload **two DRP trace bundles (.zip)** |
|
|
- Computes: |
|
|
- **Timeline alignment** (same / diff / missing) |
|
|
- **First divergence index** |
|
|
- Divergence class (sampling / tool / memory / control-flow / governance / state) |
|
|
- Per-event structured diffs (JSON) |
|
|
- Exports: |
|
|
- `report.md` (human-readable) |
|
|
- `report.pdf` (stakeholder-ready) |
|
|
- `diff.json` (machine-readable) |
|
|
- `drp-diff-report.zip` (all of the above) |
|
|
|
|
|
## DRP bundle format (v0) |
|
|
A bundle is a `.zip` containing: |
|
|
- `manifest.json` |
|
|
- `events.jsonl` |
|
|
|
|
|
Each event is hash-chained: |
|
|
- `prev` is the previous event hash |
|
|
- `hash` is SHA-256 of canonical event JSON |
|
|
This makes the timeline tamper-evident. |
|
|
|
|
|
## Optional ReplayProof deep-linking |
|
|
If you include either of the following in `manifest.json`, TimelineDiff will generate per-event links: |
|
|
|
|
|
### Option A (recommended) |
|
|
```json |
|
|
"replay": { |
|
|
"base_url": "https://your-space-or-site", |
|
|
"pattern": "/?run_id={run_id}&i={i}" |
|
|
} |
|
|
|
|
|
### Option B |
|
|
"run_url": "https://your-viewer/run/demo-123" |
|
|
Links will appear in the report and in the diff JSON. |
|
|
|
|
|
Suggested event kinds |
|
|
• llm_sample |
|
|
• tool_call |
|
|
• tool_result |
|
|
• memory_write |
|
|
• plan_step |
|
|
• guardrail |
|
|
• state_snapshot |
|
|
|
|
|
Optional reward delta |
|
|
|
|
|
If your state_snapshot.payload includes: |
|
|
• reward_total, or |
|
|
• metrics.reward_total |
|
|
|
|
|
…TimelineDiff will compute final_reward_delta. |
|
|
--- |
|
|
|
|
|
## `drp/__init__.py` |
|
|
|
|
|
```python |
|
|
__all__ = [ |
|
|
"canon", |
|
|
"sha256_hex", |
|
|
"now_utc_iso", |
|
|
"load_bundle", |
|
|
"verify_bundle", |
|
|
"write_bundle_zip", |
|
|
"diff_bundles", |
|
|
"render_report_markdown", |
|
|
"write_pdf_report", |
|
|
"make_demo_bundle_zip", |
|
|
"fork_patch_bundle", |
|
|
] |
|
|
|
|
|
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference |