{
  "$schema": "runback.audit/v2",
  "manifest": {
    "run_id": "demo-kyc-agent",
    "generated_at": "2026-06-20T14:56:42.335Z",
    "event_count": 7,
    "algorithm": "sha256-chain",
    "content_digest": "b5e2c83eb34aebfc31be23fb43cba04056d0c36415e882e01acb1c5fa26565a2",
    "replay": {
      "cassette_digest": "a87f818af5956d1bb97a3d021d1262db3488580845236f3ad2d25369c19a7604",
      "entry_count": 5,
      "algorithm": "oracle-chain/sha256",
      "note": "The run's oracle stream — every model response and tool output, hash-chained. Re-execute the agent against `events` with @runback/replay and the cassette digest must reproduce. This is proof the recording IS the deterministic input stream of the run — an audit you can re-run, not just read."
    },
    "signed": true,
    "signature": {
      "alg": "HMAC-SHA256",
      "value": "716a45890c0bec10ac94f4b8cf9978bcb3a0bc6a843809c69e9c3150a9a50f27"
    },
    "verify": "Recompute the event chain h_i = SHA-256(h_{i-1} + canonical(event_i)) over `events` → must equal content_digest. Recompute the oracle-stream digest from `events` → must equal replay.cassette_digest. The HMAC signature covers `${content_digest}:${cassette_digest}`. POST this record to /api/audit/verify."
  },
  "run": {
    "run_id": "demo-kyc-agent",
    "name": "kyc-onboarding-agent",
    "status": "success",
    "input": "Onboard new business customer: Acme Pty Ltd (ABN 51 824 753 556).",
    "output": {
      "risk": "low",
      "decision": "approved"
    },
    "error": null,
    "metadata": {
      "seed": "demo-v1",
      "scenario": "clean compliant run"
    },
    "step_count": 3,
    "total_tokens": 1503,
    "started_at": "2026-06-19T03:00:00+00:00",
    "ended_at": "2026-06-19T03:00:01.9+00:00"
  },
  "events": [
    {
      "seq": 0,
      "name": "kyc-onboarding-agent",
      "type": "run",
      "error": null,
      "input": "Onboard new business customer: Acme Pty Ltd (ABN 51 824 753 556).",
      "phase": "start",
      "output": null,
      "status": "running",
      "ts_end": "2026-06-19T03:00:01.900Z",
      "span_id": "r",
      "metadata": {
        "seed": "demo-v1"
      },
      "ts_start": "2026-06-19T03:00:00.000Z",
      "parent_span_id": null,
      "schema_version": 1,
      "_hash": "932476404900405ff0c8324c0c6c9ee53324c6299f1a356c5e16b2088153a80f"
    },
    {
      "seq": 1,
      "type": "llm",
      "error": null,
      "model": {
        "model_id": "claude-sonnet-4-6",
        "provider": "anthropic"
      },
      "usage": {
        "input_tokens": 410,
        "total_tokens": 430,
        "output_tokens": 20
      },
      "ts_end": "2026-06-19T03:00:00.520Z",
      "request": {
        "tools": [
          {
            "name": "sanctions_screen",
            "parameters": {}
          },
          {
            "name": "verify_abn",
            "parameters": {}
          }
        ],
        "params": {
          "temperature": 0.2
        },
        "system": "You onboard business customers. Screen sanctions, verify the ABN, score risk, then decide.",
        "messages": [
          {
            "role": "user",
            "content": "Onboard Acme Pty Ltd, ABN 51 824 753 556."
          }
        ]
      },
      "span_id": "l1",
      "response": {
        "text": null,
        "reasoning": null,
        "tool_calls": [
          {
            "input": {
              "entity": "Acme Pty Ltd"
            },
            "tool_name": "sanctions_screen",
            "tool_call_id": "c1"
          }
        ],
        "finish_reason": "tool-calls"
      },
      "ts_start": "2026-06-19T03:00:00.030Z",
      "latency_ms": 490,
      "parent_span_id": "r",
      "schema_version": 1,
      "_hash": "fcc4871f5d41c1f80b5c348f2074c79a785f70181019ed5ead1451fe054d9ec2"
    },
    {
      "seq": 2,
      "type": "tool",
      "error": null,
      "input": {
        "entity": "Acme Pty Ltd"
      },
      "output": {
        "match": false,
        "lists_checked": [
          "DFAT",
          "OFAC",
          "UN"
        ]
      },
      "ts_end": "2026-06-19T03:00:00.640Z",
      "span_id": "t1",
      "ts_start": "2026-06-19T03:00:00.530Z",
      "tool_name": "sanctions_screen",
      "latency_ms": 110,
      "tool_call_id": "c1",
      "parent_span_id": "l1",
      "schema_version": 1,
      "_hash": "8e4a5b1dd369d2b3a28a4e7cc862871cd3e39807ec54cac93b82da9c504f1e0d"
    },
    {
      "seq": 3,
      "type": "llm",
      "error": null,
      "model": {
        "model_id": "claude-sonnet-4-6",
        "provider": "anthropic"
      },
      "usage": {
        "input_tokens": 480,
        "total_tokens": 502,
        "output_tokens": 22
      },
      "ts_end": "2026-06-19T03:00:01.150Z",
      "request": {
        "tools": [
          {
            "name": "verify_abn",
            "parameters": {}
          }
        ],
        "params": {
          "temperature": 0.2
        },
        "system": "You onboard business customers.",
        "messages": [
          {
            "role": "tool",
            "content": "sanctions_screen → no match"
          }
        ]
      },
      "span_id": "l2",
      "response": {
        "text": null,
        "reasoning": null,
        "tool_calls": [
          {
            "input": {
              "abn": "51824753556"
            },
            "tool_name": "verify_abn",
            "tool_call_id": "c2"
          }
        ],
        "finish_reason": "tool-calls"
      },
      "ts_start": "2026-06-19T03:00:00.660Z",
      "latency_ms": 490,
      "parent_span_id": "r",
      "schema_version": 1,
      "_hash": "447ab358e4b3931c7485a20dd86a85eb060cb1f7afdb5f0724a5b10d8018a7ec"
    },
    {
      "seq": 4,
      "type": "tool",
      "error": null,
      "input": {
        "abn": "51824753556"
      },
      "output": {
        "valid": true,
        "entity": "Acme Pty Ltd",
        "status": "active"
      },
      "ts_end": "2026-06-19T03:00:01.300Z",
      "span_id": "t2",
      "ts_start": "2026-06-19T03:00:01.160Z",
      "tool_name": "verify_abn",
      "latency_ms": 140,
      "tool_call_id": "c2",
      "parent_span_id": "l2",
      "schema_version": 1,
      "_hash": "66fd0169d603ab254fd7c48c4ec093a11a165718d27cda1075302137af38dcf2"
    },
    {
      "seq": 5,
      "type": "llm",
      "error": null,
      "model": {
        "model_id": "claude-sonnet-4-6",
        "provider": "anthropic"
      },
      "usage": {
        "input_tokens": 540,
        "total_tokens": 571,
        "output_tokens": 31
      },
      "ts_end": "2026-06-19T03:00:01.800Z",
      "request": {
        "tools": [],
        "params": {
          "temperature": 0.2
        },
        "system": "You onboard business customers.",
        "messages": [
          {
            "role": "tool",
            "content": "abn valid, active"
          }
        ]
      },
      "span_id": "l3",
      "response": {
        "text": "Sanctions clear and ABN verified active. Risk is low — approving onboarding.",
        "reasoning": null,
        "tool_calls": [],
        "finish_reason": "stop"
      },
      "ts_start": "2026-06-19T03:00:01.320Z",
      "latency_ms": 480,
      "parent_span_id": "r",
      "schema_version": 1,
      "_hash": "c3b3337ac6fff1b3818d148a2aac183e120a89454c7c7283d4305db53063ee3b"
    },
    {
      "seq": 6,
      "name": "kyc-onboarding-agent",
      "type": "run",
      "error": null,
      "input": null,
      "phase": "end",
      "output": {
        "risk": "low",
        "decision": "approved"
      },
      "status": "success",
      "ts_end": "2026-06-19T03:00:01.900Z",
      "span_id": "re",
      "metadata": {},
      "ts_start": "2026-06-19T03:00:01.820Z",
      "parent_span_id": null,
      "schema_version": 1,
      "_hash": "b5e2c83eb34aebfc31be23fb43cba04056d0c36415e882e01acb1c5fa26565a2"
    }
  ]
}