[
 {
  "id": "C01",
  "http_status": 200,
  "recorded_at": "2026-11-03T23:50:19+00:00",
  "ms": 0,
  "reply": {
   "slug": "trajectorygate",
   "title": "Grade an agent run for wasted and risky steps",
   "status": "ok",
   "input": null,
   "total_ms": 51,
   "steps": [
    {
     "call": "POST /trajectory/grade",
     "request": {
      "steps": [
       {
        "index": 0,
        "tool": "search",
        "args": {
         "q": "refund policy"
        },
        "cost": 0.01,
        "risk_tier": "low"
       },
       {
        "index": 1,
        "tool": "search",
        "args": {
         "q": "refund policy"
        },
        "cost": 0.01,
        "risk_tier": "low"
       },
       {
        "index": 2,
        "tool": "shell",
        "args": {
         "cmd": "rm -rf /tmp/cache"
        },
        "cost": 0.0,
        "risk_tier": "high",
        "resource": "/tmp/cache"
       },
       {
        "index": 3,
        "tool": "reply",
        "args": {
         "text": "Refunds within 30 days"
        },
        "cost": 0.02,
        "risk_tier": "low",
        "depends_on": [
         0
        ]
       }
      ],
      "terminal_step": 3
     },
     "status": 200,
     "ms": 23,
     "reply": {
      "grading_id": "6f913145-1a63-42f7-8766-702bd457ca7d",
      "score": 0.825,
      "total_cost": 0.04,
      "redundant_calls": [
       {
        "tool": "search",
        "repeated_at_steps": [
         0,
         1
        ],
        "extra_calls": 1
       }
      ],
      "redundant_cost": 0.01,
      "unreachable_from_terminal": [
       1,
       2
      ],
      "wasted_cost": 0.01,
      "waste_basis": "cost",
      "risky_then_corrected": [],
      "note": "redundant_calls and unreachable_from_terminal are exact, deterministic graph facts given the supplied depends_on edges. risky_then_corrected is a tool-name heuristic, disclosed as such."
     }
    }
   ],
   "note": "Real calls to the running service with the public demo identity; replies are unedited."
  }
 },
 {
  "id": "C02",
  "http_status": 200,
  "recorded_at": "2026-11-03T23:50:19+00:00",
  "ms": 0,
  "reply": {
   "slug": "trajectorygate",
   "title": "Grade an agent run for wasted and risky steps",
   "status": "ok",
   "input": null,
   "total_ms": 51,
   "steps": [
    {
     "call": "POST /trajectory/grade",
     "request": {
      "steps": [
       {
        "index": 0,
        "tool": "search",
        "args": {
         "q": "refund policy"
        },
        "cost": 0.01,
        "risk_tier": "low"
       },
       {
        "index": 1,
        "tool": "search",
        "args": {
         "q": "refund policy"
        },
        "cost": 0.01,
        "risk_tier": "low"
       },
       {
        "index": 2,
        "tool": "shell",
        "args": {
         "cmd": "rm -rf /tmp/cache"
        },
        "cost": 0.0,
        "risk_tier": "high",
        "resource": "/tmp/cache"
       },
       {
        "index": 3,
        "tool": "reply",
        "args": {
         "text": "Refunds within 30 days"
        },
        "cost": 0.02,
        "risk_tier": "low",
        "depends_on": [
         0
        ]
       }
      ],
      "terminal_step": 3
     },
     "status": 200,
     "ms": 23,
     "reply": {
      "grading_id": "6f913145-1a63-42f7-8766-702bd457ca7d",
      "score": 0.825,
      "total_cost": 0.04,
      "redundant_calls": [
       {
        "tool": "search",
        "repeated_at_steps": [
         0,
         1
        ],
        "extra_calls": 1
       }
      ],
      "redundant_cost": 0.01,
      "unreachable_from_terminal": [
       1,
       2
      ],
      "wasted_cost": 0.01,
      "waste_basis": "cost",
      "risky_then_corrected": [],
      "note": "redundant_calls and unreachable_from_terminal are exact, deterministic graph facts given the supplied depends_on edges. risky_then_corrected is a tool-name heuristic, disclosed as such."
     }
    }
   ],
   "note": "Real calls to the running service with the public demo identity; replies are unedited."
  }
 }
]