claude-opus-4-8 @ xhigh · cursor

cursorxhigh
config
claude-opus-4-8-eff-xhigh--cli--cursor--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
claude-opus-4-8-xhigh
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
claude-opus-4-8 @xhigh · cursor P-q slot 0 screenshot

The screenshot is the exact frozen pixels the similarity channels measured. Run live re-executes the raw output in a sandboxed iframe; its rendering depends on your browser and fonts and is not guaranteed to match the measured pixels.

similarity neighbors

within session 2026-07-19--unified

similarity measures convergence within this session — not quality.

Fidelity — does the card show the right data?

  • namematch
  • conditionmatch
  • datematch
  • max tempmatchshown: 25
  • min tempmatchshown: 16
  • hourlymatchcoverage 12/24 · 12 match · 0 mismatch · 12 not shown
  • request sidematch0 violation(s)

extractor fidelity-extractor-v1+Berlin-2026-07-15

Source — raw model output, one byte unchanged

download card.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=1280, initial-scale=1" />
<title>Weather</title>
<style>
  :root {
    --bg-a: #0f2027;
    --bg-b: #203a43;
    --bg-c: #2c5364;
    --card-bg: rgba(255, 255, 255, 0.08);
    --card-border: rgba(255, 255, 255, 0.16);
    --text: #f4f8fb;
    --text-dim: rgba(244, 248, 251, 0.62);
    --text-faint: rgba(244, 248, 251, 0.4);
    --accent: #ffd166;
    --shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }

  html, body {
    width: 1280px;
    height: 800px;
    overflow: hidden;
  }

  body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--text);
    background: linear-gradient(135deg, var(--bg-a), var(--bg-b) 55%, var(--bg-c));
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: background 0.8s ease;
  }

  /* soft ambient glows */
  body::before,
  body::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
  }
  body::before {
    width: 520px; height: 520px;
    background: radial-gradient(circle, rgba(120, 180, 255, 0.55), transparent 70%);
    top: -160px; left: -120px;
  }
  body::after {
    width: 560px; height: 560px;
    background: radial-gradient(circle, rgba(255, 209, 102, 0.35), transparent 70%);
    bottom: -200px; right: -140px;
  }

  .card {
    position: relative;
    z-index: 1;
    width: 1120px;
    height: 660px;
    background: var(--card-bg);
    backdrop-filter: blur(24px) saturate(140%);
    -webkit-backdrop-filter: blur(24px) saturate(140%);
    border: 1px solid var(--card-border);
    border-radius: 32px;
    box-shadow: var(--shadow);
    display: grid;
    grid-template-columns: 420px 1fr;
    overflow: hidden;
  }

  /* ---------- Left panel ---------- */
  .left {
    padding: 48px 44px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.01));
    border-right: 1px solid var(--card-border);
  }

  .loc {
    display: flex;
    align-items: baseline;
    gap: 10px;
  }
  .loc-name {
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -0.5px;
    line-height: 1.1;
  }
  .loc-pin {
    font-size: 14px;
    color: var(--text-dim);
    letter-spacing: 0.5px;
    margin-top: 14px;
  }
  .date {
    margin-top: 6px;
    font-size: 16px;
    color: var(--text-dim);
    font-weight: 500;
  }

  .hero {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .hero-icon {
    width: 130px;
    height: 130px;
    margin-bottom: 6px;
  }
  .hero-temp {
    font-size: 92px;
    font-weight: 200;
    line-height: 1;
    letter-spacing: -3px;
    display: flex;
    align-items: flex-start;
  }
  .hero-temp .deg { font-size: 42px; font-weight: 300; margin-top: 8px; }
  .hero-cond {
    font-size: 22px;
    font-weight: 600;
    margin-top: 10px;
    letter-spacing: -0.2px;
  }

  .minmax {
    display: flex;
    gap: 14px;
    margin-top: 22px;
  }
  .pill {
    flex: 1;
    background: rgba(255,255,255,0.06);
    border: 1px solid var(--card-border);
    border-radius: 16px;
    padding: 14px 16px;
  }
  .pill .label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--text-faint);
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .pill .val {
    font-size: 28px;
    font-weight: 600;
    margin-top: 6px;
  }
  .pill.max .arrow { color: #ff8a65; }
  .pill.min .arrow { color: #64b5f6; }

  /* ---------- Right panel ---------- */
  .right {
    padding: 44px 48px 40px;
    display: flex;
    flex-direction: column;
  }
  .right-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
  }
  .right-title {
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    color: var(--text-dim);
  }
  .right-sub {
    font-size: 13px;
    color: var(--text-faint);
  }

  .chart {
    flex: 1;
    margin-top: 10px;
    position: relative;
  }
  .chart svg { width: 100%; height: 100%; display: block; overflow: visible; }

  .hours {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 2px;
    margin-top: 14px;
  }
  .hour {
    text-align: center;
    padding: 6px 0;
  }
  .hour .t {
    font-size: 13px;
    font-weight: 600;
  }
  .hour .h {
    font-size: 11px;
    color: var(--text-faint);
    margin-top: 3px;
  }
  /* two-row hour strip for 24 values */
  .hours.two { grid-template-columns: repeat(12, 1fr); }

  /* ---------- States ---------- */
  .state {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--bg-a), var(--bg-c));
  }
  .state.hidden { display: none; }
  .state-box {
    text-align: center;
    max-width: 460px;
    padding: 40px;
  }
  .spinner {
    width: 46px; height: 46px;
    border: 4px solid rgba(255,255,255,0.15);
    border-top-color: var(--accent);
    border-radius: 50%;
    margin: 0 auto 22px;
    animation: spin 0.9s linear infinite;
  }
  @keyframes spin { to { transform: rotate(360deg); } }
  .state h2 { font-size: 22px; font-weight: 600; margin-bottom: 10px; }
  .state p { color: var(--text-dim); font-size: 15px; line-height: 1.5; }
  .err-icon { font-size: 48px; margin-bottom: 14px; }

  .fade-in { animation: fade 0.6s ease both; }
  @keyframes fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
</style>
</head>
<body>
  <div class="card">
    <div class="left" id="left"></div>
    <div class="right" id="right"></div>
  </div>

  <div class="state" id="loading">
    <div class="state-box">
      <div class="spinner"></div>
      <h2>Loading weather…</h2>
      <p id="loading-sub">Fetching the latest conditions</p>
    </div>
  </div>

  <div class="state hidden" id="error">
    <div class="state-box">
      <div class="err-icon">⚠️</div>
      <h2>Unable to load weather</h2>
      <p id="error-msg">The weather data could not be retrieved. Please try again later.</p>
    </div>
  </div>

<script>
(function () {
  "use strict";

  // ---------- URL params & defaults ----------
  var params = new URLSearchParams(window.location.search);
  var lat = parseFloat(params.get("lat"));
  var lon = parseFloat(params.get("lon"));
  if (!isFinite(lat)) lat = 52.52;
  if (!isFinite(lon)) lon = 13.405;
  var name = params.get("name") || "Berlin";

  function todayUTC() {
    var d = new Date();
    return d.getUTCFullYear() + "-" +
      String(d.getUTCMonth() + 1).padStart(2, "0") + "-" +
      String(d.getUTCDate()).padStart(2, "0");
  }
  var dateParam = params.get("date");
  var date = /^\d{4}-\d{2}-\d{2}$/.test(dateParam || "") ? dateParam : todayUTC();

  // ---------- Endpoint choice: past vs today/future ----------
  function isPast(d) {
    return d < todayUTC();
  }
  var base = isPast(date) ? "/api/om/archive" : "/api/om/forecast";

  var query = new URLSearchParams({
    latitude: lat,
    longitude: lon,
    daily: "temperature_2m_max,temperature_2m_min,weather_code",
    hourly: "temperature_2m",
    timezone: "UTC",
    temperature_unit: "celsius",
    start_date: date,
    end_date: date
  });
  var url = base + "?" + query.toString();

  // ---------- Weather code mapping (WMO) ----------
  var WMO = {
    0:  ["Clear sky", "sun"],
    1:  ["Mainly clear", "sun"],
    2:  ["Partly cloudy", "cloud-sun"],
    3:  ["Overcast", "cloud"],
    45: ["Fog", "fog"],
    48: ["Depositing rime fog", "fog"],
    51: ["Light drizzle", "drizzle"],
    53: ["Moderate drizzle", "drizzle"],
    55: ["Dense drizzle", "drizzle"],
    56: ["Light freezing drizzle", "drizzle"],
    57: ["Dense freezing drizzle", "drizzle"],
    61: ["Slight rain", "rain"],
    63: ["Moderate rain", "rain"],
    65: ["Heavy rain", "rain"],
    66: ["Light freezing rain", "rain"],
    67: ["Heavy freezing rain", "rain"],
    71: ["Slight snow", "snow"],
    73: ["Moderate snow", "snow"],
    75: ["Heavy snow", "snow"],
    77: ["Snow grains", "snow"],
    80: ["Slight rain showers", "rain"],
    81: ["Moderate rain showers", "rain"],
    82: ["Violent rain showers", "rain"],
    85: ["Slight snow showers", "snow"],
    86: ["Heavy snow showers", "snow"],
    95: ["Thunderstorm", "storm"],
    96: ["Thunderstorm w/ slight hail", "storm"],
    99: ["Thunderstorm w/ heavy hail", "storm"]
  };

  function condInfo(code) {
    return WMO[code] || ["Unknown", "cloud"];
  }

  // ---------- SVG icons ----------
  function icon(kind, size) {
    size = size || 130;
    var s = 'width="' + size + '" height="' + size + '" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"';
    var sun = '<circle cx="50" cy="50" r="18" fill="#FFD166"/>' +
      '<g stroke="#FFD166" stroke-width="5" stroke-linecap="round">' +
      '<line x1="50" y1="14" x2="50" y2="24"/><line x1="50" y1="76" x2="50" y2="86"/>' +
      '<line x1="14" y1="50" x2="24" y2="50"/><line x1="76" y1="50" x2="86" y2="50"/>' +
      '<line x1="25" y1="25" x2="32" y2="32"/><line x1="68" y1="68" x2="75" y2="75"/>' +
      '<line x1="75" y1="25" x2="68" y2="32"/><line x1="32" y1="68" x2="25" y2="75"/></g>';
    var cloud = '<path d="M32 68h38a16 16 0 0 0 2-31.8A22 22 0 0 0 30 40 15 15 0 0 0 32 68z" fill="#E3ECF5"/>';
    var cloudSun = '<circle cx="66" cy="34" r="12" fill="#FFD166"/>' +
      '<g stroke="#FFD166" stroke-width="4" stroke-linecap="round">' +
      '<line x1="66" y1="10" x2="66" y2="16"/><line x1="84" y1="16" x2="80" y2="20"/>' +
      '<line x1="90" y1="34" x2="84" y2="34"/><line x1="48" y1="34" x2="42" y2="34"/></g>' +
      '<path d="M28 74h40a15 15 0 0 0 2-29.8A20 20 0 0 0 30 48 14 14 0 0 0 28 74z" fill="#E3ECF5"/>';
    var drops = function (n, col) {
      var o = '';
      var xs = n === 3 ? [38, 50, 62] : [42, 58];
      for (var i = 0; i < xs.length; i++) {
        o += '<line x1="' + xs[i] + '" y1="74" x2="' + (xs[i] - 4) + '" y2="86" stroke="' + col + '" stroke-width="4" stroke-linecap="round"/>';
      }
      return o;
    };
    var rain = cloud.replace('68', '64').replace('68', '64') + drops(3, "#64B5F6");
    var drizzle = cloud.replace('68', '64') + drops(2, "#9ecdf5");
    var snow = cloud.replace('68', '64') +
      '<g fill="#CFE4FF">' +
      '<circle cx="40" cy="80" r="3.2"/><circle cx="52" cy="84" r="3.2"/><circle cx="62" cy="79" r="3.2"/></g>';
    var storm = cloud.replace('68', '62') +
      '<path d="M52 66l-10 14h8l-4 12 14-18h-8l4-8z" fill="#FFD166"/>';
    var fog = cloud.replace('68', '62') +
      '<g stroke="#CBD8E6" stroke-width="4" stroke-linecap="round">' +
      '<line x1="30" y1="78" x2="70" y2="78"/><line x1="36" y1="88" x2="64" y2="88"/></g>';

    var body;
    switch (kind) {
      case "sun": body = sun; break;
      case "cloud-sun": body = cloudSun; break;
      case "rain": body = rain; break;
      case "drizzle": body = drizzle; break;
      case "snow": body = snow; break;
      case "storm": body = storm; break;
      case "fog": body = fog; break;
      default: body = cloud;
    }
    return '<svg ' + s + '>' + body + '</svg>';
  }

  // ---------- Background theming ----------
  function themeFor(kind) {
    var map = {
      "sun":       ["#2b5876", "#4e7ba6", "#f6b26b"],
      "cloud-sun": ["#3a4b5c", "#4b6079", "#6b7f96"],
      "cloud":     ["#3a3f47", "#4a525c", "#5b6673"],
      "fog":       ["#4a4f55", "#5c626a", "#6f757d"],
      "drizzle":   ["#2c3e50", "#34586e", "#456b82"],
      "rain":      ["#1c2b3a", "#243b53", "#2f5169"],
      "snow":      ["#3b4a5e", "#54677f", "#7d90a6"],
      "storm":     ["#1a1f2b", "#2b2f42", "#3d3352"]
    };
    return map[kind] || ["#0f2027", "#203a43", "#2c5364"];
  }

  // ---------- Formatting ----------
  function fmtDate(iso) {
    var parts = iso.split("-");
    var d = new Date(Date.UTC(+parts[0], +parts[1] - 1, +parts[2]));
    return d.toLocaleDateString("en-US", {
      weekday: "long", year: "numeric", month: "long", day: "numeric", timeZone: "UTC"
    });
  }
  function round(n) { return Math.round(n); }

  // ---------- Rendering ----------
  function showError(msg) {
    document.getElementById("loading").classList.add("hidden");
    var e = document.getElementById("error");
    if (msg) document.getElementById("error-msg").textContent = msg;
    e.classList.remove("hidden");
  }

  function render(data) {
    var daily = data.daily || {};
    var hourly = data.hourly || {};

    if (!daily.time || !daily.time.length) {
      showError("The weather service returned no data for " + name + " on " + date + ".");
      return;
    }

    var tmax = daily.temperature_2m_max ? daily.temperature_2m_max[0] : null;
    var tmin = daily.temperature_2m_min ? daily.temperature_2m_min[0] : null;
    var code = daily.weather_code ? daily.weather_code[0] : 0;
    var info = condInfo(code);
    var kind = info[1];

    // theme background
    var t = themeFor(kind);
    document.documentElement.style.setProperty("--bg-a", t[0]);
    document.documentElement.style.setProperty("--bg-b", t[1]);
    document.documentElement.style.setProperty("--bg-c", t[2]);
    document.body.style.background = "linear-gradient(135deg," + t[0] + "," + t[1] + " 55%," + t[2] + ")";

    // hourly for this date
    var times = hourly.time || [];
    var temps = hourly.temperature_2m || [];
    var hourData = [];
    for (var i = 0; i < times.length; i++) {
      if (times[i].indexOf(date) === 0 && temps[i] != null) {
        var hh = times[i].slice(11, 13);
        hourData.push({ hour: hh, temp: temps[i] });
      }
    }

    // representative "current"/headline temp: midday if available else max
    var headline = tmax;
    var noon = hourData.find(function (h) { return h.hour === "12"; });
    if (noon) headline = noon.temp;

    // ----- Left panel -----
    var left = document.getElementById("left");
    left.innerHTML =
      '<div>' +
        '<div class="loc">' +
          '<div class="loc-name">' + escapeHtml(name) + '</div>' +
          '<div class="loc-pin">' + lat.toFixed(2) + '°, ' + lon.toFixed(2) + '°</div>' +
        '</div>' +
        '<div class="date">' + fmtDate(date) + '</div>' +
      '</div>' +
      '<div class="hero">' +
        '<div class="hero-icon">' + icon(kind, 130) + '</div>' +
        '<div class="hero-temp">' + round(headline) + '<span class="deg">°C</span></div>' +
        '<div class="hero-cond">' + info[0] + '</div>' +
      '</div>' +
      '<div class="minmax">' +
        '<div class="pill max">' +
          '<div class="label"><span class="arrow">▲</span> High</div>' +
          '<div class="val">' + (tmax != null ? round(tmax) + '°' : '—') + '</div>' +
        '</div>' +
        '<div class="pill min">' +
          '<div class="label"><span class="arrow">▼</span> Low</div>' +
          '<div class="val">' + (tmin != null ? round(tmin) + '°' : '—') + '</div>' +
        '</div>' +
      '</div>';

    // ----- Right panel -----
    var right = document.getElementById("right");
    var chartHtml = buildChart(hourData);
    var hoursHtml = buildHours(hourData);
    right.innerHTML =
      '<div class="right-head">' +
        '<div class="right-title">Hourly Temperature</div>' +
        '<div class="right-sub">' + hourData.length + ' hours · UTC</div>' +
      '</div>' +
      '<div class="chart">' + chartHtml + '</div>' +
      hoursHtml;

    // reveal
    document.getElementById("loading").classList.add("hidden");
    document.querySelector(".card").classList.add("fade-in");
  }

  function buildChart(hourData) {
    if (!hourData.length) {
      return '<div style="display:flex;align-items:center;justify-content:center;height:100%;color:rgba(255,255,255,0.5);font-size:14px;">No hourly data available</div>';
    }
    var W = 600, H = 260, padX = 20, padY = 30;
    var vals = hourData.map(function (h) { return h.temp; });
    var min = Math.min.apply(null, vals);
    var max = Math.max.apply(null, vals);
    if (min === max) { min -= 1; max += 1; }
    var n = hourData.length;

    function x(i) { return padX + (i / (n - 1 || 1)) * (W - padX * 2); }
    function y(v) { return padY + (1 - (v - min) / (max - min)) * (H - padY * 2); }

    var linePts = [], areaPts = [];
    for (var i = 0; i < n; i++) {
      var px = x(i).toFixed(1), py = y(hourData[i].temp).toFixed(1);
      linePts.push(px + "," + py);
      areaPts.push(px + "," + py);
    }
    var area = "M" + x(0).toFixed(1) + "," + (H - padY) +
      " L" + areaPts.join(" L") +
      " L" + x(n - 1).toFixed(1) + "," + (H - padY) + " Z";
    var line = "M" + linePts.join(" L");

    // dots + labels at every 3 hours + extremes
    var dots = "";
    var maxI = vals.indexOf(max), minI = vals.indexOf(min);
    for (var j = 0; j < n; j++) {
      var show = (j % 3 === 0) || j === maxI || j === minI;
      if (!show) continue;
      var cx = x(j), cy = y(hourData[j].temp);
      var isExt = (j === maxI || j === minI);
      dots += '<circle cx="' + cx.toFixed(1) + '" cy="' + cy.toFixed(1) + '" r="' + (isExt ? 4.5 : 3) + '" fill="' + (isExt ? "#FFD166" : "#ffffff") + '"/>';
      if (isExt) {
        dots += '<text x="' + cx.toFixed(1) + '" y="' + (cy - 12).toFixed(1) + '" text-anchor="middle" font-size="14" font-weight="700" fill="#FFD166">' + round(hourData[j].temp) + '°</text>';
      }
    }

    return '<svg viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none">' +
      '<defs>' +
        '<linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1">' +
          '<stop offset="0%" stop-color="rgba(255,209,102,0.35)"/>' +
          '<stop offset="100%" stop-color="rgba(255,209,102,0.02)"/>' +
        '</linearGradient>' +
        '<linearGradient id="lineGrad" x1="0" y1="0" x2="1" y2="0">' +
          '<stop offset="0%" stop-color="#8fd3fe"/>' +
          '<stop offset="100%" stop-color="#ffd166"/>' +
        '</linearGradient>' +
      '</defs>' +
      '<path d="' + area + '" fill="url(#areaGrad)"/>' +
      '<path d="' + line + '" fill="none" stroke="url(#lineGrad)" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"/>' +
      dots +
      '</svg>';
  }

  function buildHours(hourData) {
    if (!hourData.length) return '';
    // show every 2nd hour to fit 12 columns nicely when 24 present
    var items = hourData;
    var step = items.length > 12 ? 2 : 1;
    var cells = '';
    for (var i = 0; i < items.length; i += step) {
      var h = items[i];
      cells += '<div class="hour">' +
        '<div class="t">' + round(h.temp) + '°</div>' +
        '<div class="h">' + h.hour + ':00</div>' +
      '</div>';
    }
    return '<div class="hours">' + cells + '</div>';
  }

  function escapeHtml(s) {
    return String(s).replace(/[&<>"']/g, function (c) {
      return { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }[c];
    });
  }

  // ---------- Fetch ----------
  fetch(url, { headers: { "Accept": "application/json" } })
    .then(function (res) {
      if (!res.ok) throw new Error("HTTP " + res.status);
      return res.json();
    })
    .then(function (data) {
      if (data && data.error) throw new Error(data.reason || "API error");
      render(data);
    })
    .catch(function (err) {
      showError("The weather data could not be retrieved (" + (err && err.message ? err.message : "network error") + ").");
    });
})();
</script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total19,702html / css / js800 / 5,652 / 13,250
dom nodes21dom depth5
css rules48js presentyes
brightness93.0contrast19.5
colorfulness30.3whitespace40.2%

This slot's telemetry

prompt tokens6completion tokens10,061
total tokens10,067wall122.1 s
cost—request id—
config.json583 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "claude-opus-4-8-eff-xhigh--cli--cursor--dev",
  "effort": "xhigh",
  "family": "claude",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "claude-opus-4-8",
  "protocol": "cli",
  "served_model": "claude-opus-4-8-xhigh",
  "telemetry": {
    "completion_tokens": 41729,
    "cost_usd": null,
    "prompt_tokens": 14,
    "total_tokens": 41743,
    "wall_ms": 430987
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s2",
  "config_id": "claude-opus-4-8-eff-xhigh--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T19:06:30.264421+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:04:28.132261+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T19:07:39.709753+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:06:33.750246+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T19:09:51.974143+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:07:43.029713+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T19:11:48.697833+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:09:54.736435+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-q"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}