gpt-5.6-sol @ xhigh · cursor-xl

cursor-xlxhigh
config
gpt-5.6-sol-eff-xhigh--cli--cursor-xl--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
gpt-5.6-sol-xhigh
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
gpt-5.6-sol @xhigh · cursor-xl 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
  • hourlyambiguouscoverage · 0 match · 0 mismatch · 24 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=device-width, initial-scale=1.0">
  <title>Daily Weather</title>
  <style>
    :root {
      color-scheme: dark;
      --ink: #f7fbff;
      --muted: rgba(234, 244, 255, 0.66);
      --line: rgba(255, 255, 255, 0.12);
      --panel: rgba(13, 28, 53, 0.68);
      --accent: #80e5ff;
      --warm: #ffd27d;
    }

    * { box-sizing: border-box; }

    html, body {
      width: 100%;
      height: 100%;
      margin: 0;
    }

    body {
      display: grid;
      place-items: center;
      min-width: 1000px;
      overflow: hidden;
      color: var(--ink);
      font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background:
        radial-gradient(circle at 17% 16%, rgba(255, 191, 105, 0.28), transparent 29%),
        radial-gradient(circle at 87% 86%, rgba(74, 184, 255, 0.25), transparent 32%),
        linear-gradient(135deg, #09162f 0%, #122f54 48%, #235f79 100%);
    }

    body::before,
    body::after {
      position: fixed;
      content: "";
      border-radius: 999px;
      filter: blur(2px);
      pointer-events: none;
    }

    body::before {
      width: 420px;
      height: 420px;
      top: -210px;
      right: 50px;
      background: rgba(127, 229, 255, 0.09);
      border: 1px solid rgba(255, 255, 255, 0.08);
    }

    body::after {
      width: 280px;
      height: 280px;
      left: -100px;
      bottom: -130px;
      background: rgba(255, 210, 125, 0.08);
    }

    .weather-card {
      position: relative;
      display: grid;
      grid-template-columns: 390px 1fr;
      width: min(1160px, calc(100vw - 80px));
      height: 690px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.17);
      border-radius: 34px;
      background: rgba(7, 20, 40, 0.52);
      box-shadow:
        0 35px 90px rgba(0, 8, 25, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
      backdrop-filter: blur(24px);
    }

    .summary {
      position: relative;
      display: flex;
      flex-direction: column;
      padding: 44px 40px 36px;
      overflow: hidden;
      background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.12), transparent 50%),
        linear-gradient(180deg, rgba(59, 146, 185, 0.23), rgba(11, 29, 56, 0.42));
      border-right: 1px solid var(--line);
    }

    .summary::after {
      position: absolute;
      width: 250px;
      height: 250px;
      right: -110px;
      bottom: 35px;
      content: "";
      border-radius: 50%;
      background: rgba(113, 220, 255, 0.08);
      box-shadow: 0 0 70px rgba(113, 220, 255, 0.1);
    }

    .eyebrow {
      margin-bottom: 9px;
      color: var(--accent);
      font-size: 11px;
      font-weight: 750;
      letter-spacing: 0.2em;
      text-transform: uppercase;
    }

    h1 {
      max-width: 310px;
      margin: 0;
      overflow: hidden;
      font-size: 36px;
      font-weight: 650;
      letter-spacing: -0.04em;
      line-height: 1.08;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .date {
      margin-top: 9px;
      color: var(--muted);
      font-size: 15px;
    }

    .hero-icon {
      display: grid;
      width: 150px;
      height: 150px;
      margin: 42px auto 18px;
      place-items: center;
      filter: drop-shadow(0 18px 25px rgba(0, 8, 25, 0.28));
    }

    .hero-icon svg {
      width: 100%;
      height: 100%;
      overflow: visible;
    }

    .condition {
      margin: 0;
      text-align: center;
      font-size: 22px;
      font-weight: 580;
      letter-spacing: -0.02em;
    }

    .temperature-range {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-top: auto;
      position: relative;
      z-index: 1;
    }

    .temp-block {
      padding: 17px 18px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.065);
    }

    .temp-block span {
      display: block;
      margin-bottom: 4px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }

    .temp-block strong {
      font-size: 29px;
      font-weight: 570;
      letter-spacing: -0.04em;
    }

    .details {
      display: flex;
      min-width: 0;
      flex-direction: column;
      padding: 40px 42px 35px;
    }

    .details-header {
      display: flex;
      align-items: end;
      justify-content: space-between;
      margin-bottom: 24px;
    }

    h2 {
      margin: 0;
      font-size: 23px;
      font-weight: 620;
      letter-spacing: -0.025em;
    }

    .details-subtitle {
      margin-top: 5px;
      color: var(--muted);
      font-size: 13px;
    }

    .unit-badge {
      padding: 8px 11px;
      border: 1px solid var(--line);
      border-radius: 12px;
      color: var(--muted);
      background: rgba(255, 255, 255, 0.055);
      font-size: 12px;
      font-weight: 650;
    }

    .chart-panel {
      position: relative;
      height: 278px;
      padding: 19px 18px 12px;
      border: 1px solid var(--line);
      border-radius: 22px;
      background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.025));
    }

    #chart {
      display: block;
      width: 100%;
      height: 100%;
      overflow: visible;
    }

    .grid-line {
      stroke: rgba(255, 255, 255, 0.085);
      stroke-width: 1;
    }

    .area {
      fill: url(#areaGradient);
    }

    .curve {
      fill: none;
      stroke: #8be8ff;
      stroke-width: 3;
      stroke-linecap: round;
      stroke-linejoin: round;
      filter: drop-shadow(0 3px 7px rgba(82, 213, 255, 0.45));
    }

    .point {
      fill: #dffaff;
      stroke: #2a7996;
      stroke-width: 2;
    }

    .axis-label {
      fill: rgba(232, 243, 255, 0.52);
      font-size: 10px;
      font-family: inherit;
    }

    .hourly-title {
      margin: 25px 0 12px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 750;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }

    .hourly-grid {
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      gap: 7px;
    }

    .hour {
      min-width: 0;
      padding: 10px 2px 9px;
      text-align: center;
      border: 1px solid rgba(255, 255, 255, 0.085);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.04);
    }

    .hour:nth-child(n + 13) {
      background: rgba(89, 202, 235, 0.055);
    }

    .hour time {
      display: block;
      margin-bottom: 5px;
      color: var(--muted);
      font-size: 9px;
      font-weight: 650;
    }

    .hour strong {
      font-size: 12px;
      font-weight: 620;
      white-space: nowrap;
    }

    .status {
      position: absolute;
      inset: 0;
      z-index: 5;
      display: grid;
      padding: 40px;
      place-items: center;
      text-align: center;
      background: rgba(7, 20, 40, 0.91);
      backdrop-filter: blur(18px);
      transition: opacity 0.35s ease, visibility 0.35s ease;
    }

    .status.hidden {
      visibility: hidden;
      opacity: 0;
    }

    .status-box {
      max-width: 390px;
    }

    .spinner {
      width: 43px;
      height: 43px;
      margin: 0 auto 20px;
      border: 3px solid rgba(255,255,255,.13);
      border-top-color: var(--accent);
      border-radius: 50%;
      animation: spin .8s linear infinite;
    }

    .status h3 {
      margin: 0 0 8px;
      font-size: 23px;
      font-weight: 620;
    }

    .status p {
      margin: 0;
      color: var(--muted);
      line-height: 1.55;
    }

    @keyframes spin { to { transform: rotate(360deg); } }
  </style>
</head>
<body>
  <main class="weather-card" aria-live="polite">
    <section class="summary">
      <div class="eyebrow">Daily forecast</div>
      <h1 id="location">Berlin</h1>
      <div class="date" id="dateLabel"></div>
      <div class="hero-icon" id="weatherIcon" aria-hidden="true"></div>
      <p class="condition" id="condition">—</p>
      <div class="temperature-range">
        <div class="temp-block">
          <span>High</span>
          <strong id="maxTemp">—</strong>
        </div>
        <div class="temp-block">
          <span>Low</span>
          <strong id="minTemp">—</strong>
        </div>
      </div>
    </section>

    <section class="details">
      <header class="details-header">
        <div>
          <h2>Temperature through the day</h2>
          <div class="details-subtitle">Hourly readings in Coordinated Universal Time</div>
        </div>
        <div class="unit-badge">°C · UTC</div>
      </header>

      <div class="chart-panel">
        <svg id="chart" viewBox="0 0 670 235" preserveAspectRatio="none" role="img" aria-label="Hourly temperature chart">
          <defs>
            <linearGradient id="areaGradient" x1="0" y1="0" x2="0" y2="1">
              <stop offset="0%" stop-color="#7ce5ff" stop-opacity=".31"/>
              <stop offset="100%" stop-color="#7ce5ff" stop-opacity="0"/>
            </linearGradient>
          </defs>
          <g id="chartContent"></g>
        </svg>
      </div>

      <div class="hourly-title">Every hour</div>
      <div class="hourly-grid" id="hourlyGrid"></div>
    </section>

    <div class="status" id="status">
      <div class="status-box">
        <div class="spinner" id="spinner"></div>
        <h3 id="statusTitle">Loading weather</h3>
        <p id="statusMessage">Gathering the forecast for your selected location.</p>
      </div>
    </div>
  </main>

  <script>
    (() => {
      const params = new URLSearchParams(location.search);
      const utcToday = new Date().toISOString().slice(0, 10);
      const isDate = value => {
        if (!/^\d{4}-\d{2}-\d{2}$/.test(value || "")) return false;
        const date = new Date(value + "T00:00:00Z");
        return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === value;
      };

      const parseCoordinate = (value, fallback, min, max) => {
        const number = Number(value);
        return Number.isFinite(number) && number >= min && number <= max ? number : fallback;
      };

      const latitude = parseCoordinate(params.get("lat"), 52.52, -90, 90);
      const longitude = parseCoordinate(params.get("lon"), 13.405, -180, 180);
      const requestedName = (params.get("name") || "").trim();
      const placeName = requestedName ? requestedName.slice(0, 80) : "Berlin";
      const requestedDate = isDate(params.get("date")) ? params.get("date") : utcToday;

      const conditions = {
        0: ["Clear sky", "clear"],
        1: ["Mainly clear", "clear"],
        2: ["Partly cloudy", "cloud"],
        3: ["Overcast", "cloud"],
        45: ["Fog", "fog"],
        48: ["Rime fog", "fog"],
        51: ["Light drizzle", "rain"],
        53: ["Drizzle", "rain"],
        55: ["Heavy drizzle", "rain"],
        56: ["Freezing drizzle", "rain"],
        57: ["Heavy freezing drizzle", "rain"],
        61: ["Light rain", "rain"],
        63: ["Rain", "rain"],
        65: ["Heavy rain", "rain"],
        66: ["Freezing rain", "rain"],
        67: ["Heavy freezing rain", "rain"],
        71: ["Light snow", "snow"],
        73: ["Snowfall", "snow"],
        75: ["Heavy snowfall", "snow"],
        77: ["Snow grains", "snow"],
        80: ["Light rain showers", "rain"],
        81: ["Rain showers", "rain"],
        82: ["Heavy rain showers", "rain"],
        85: ["Snow showers", "snow"],
        86: ["Heavy snow showers", "snow"],
        95: ["Thunderstorm", "storm"],
        96: ["Thunderstorm with hail", "storm"],
        99: ["Severe thunderstorm", "storm"]
      };

      const icons = {
        clear: `
          <svg viewBox="0 0 160 160">
            <defs><radialGradient id="sun" cx="42%" cy="38%"><stop offset="0" stop-color="#fff6bc"/><stop offset=".52" stop-color="#ffd36f"/><stop offset="1" stop-color="#ff9d4a"/></radialGradient></defs>
            <g stroke="#ffd982" stroke-width="7" stroke-linecap="round" opacity=".9">
              <path d="M80 8v17M80 135v17M8 80h17M135 80h17M29 29l12 12M119 119l12 12M131 29l-12 12M41 119l-12 12"/>
            </g>
            <circle cx="80" cy="80" r="39" fill="url(#sun)"/>
          </svg>`,
        cloud: `
          <svg viewBox="0 0 160 160">
            <defs><linearGradient id="cloud" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#fff"/><stop offset="1" stop-color="#a8c9df"/></linearGradient></defs>
            <circle cx="104" cy="48" r="28" fill="#ffd36f" opacity=".9"/>
            <path d="M42 117h76c18 0 30-11 30-27s-12-27-29-27c-5-19-20-30-40-30-24 0-42 17-44 40-14 2-23 11-23 23 0 13 11 21 30 21Z" fill="url(#cloud)"/>
          </svg>`,
        rain: `
          <svg viewBox="0 0 160 160">
            <defs><linearGradient id="raincloud" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#e9f5fd"/><stop offset="1" stop-color="#82a9c4"/></linearGradient></defs>
            <path d="M39 96h79c18 0 29-10 29-26s-12-26-28-26c-7-17-21-27-40-27-23 0-40 16-43 37-15 1-24 10-24 22 0 13 10 20 27 20Z" fill="url(#raincloud)"/>
            <g stroke="#6fe0ff" stroke-width="7" stroke-linecap="round"><path d="M48 112l-8 18M81 112l-8 18M114 112l-8 18"/></g>
          </svg>`,
        snow: `
          <svg viewBox="0 0 160 160">
            <path d="M39 91h79c18 0 29-10 29-26s-12-26-28-26c-7-17-21-27-40-27-23 0-40 16-43 37-15 1-24 10-24 22 0 13 10 20 27 20Z" fill="#dcecf6"/>
            <g fill="#a5efff"><circle cx="43" cy="116" r="6"/><circle cx="79" cy="127" r="6"/><circle cx="115" cy="116" r="6"/><circle cx="48" cy="145" r="5"/><circle cx="111" cy="144" r="5"/></g>
          </svg>`,
        fog: `
          <svg viewBox="0 0 160 160">
            <path d="M41 88h76c18 0 29-10 29-25 0-16-12-25-28-25-7-17-21-27-39-27-23 0-40 16-43 37-15 1-24 10-24 21 0 12 11 19 29 19Z" fill="#dcebf3"/>
            <g stroke="#b8d7e6" stroke-width="7" stroke-linecap="round"><path d="M24 108h106M37 127h101M18 146h104"/></g>
          </svg>`,
        storm: `
          <svg viewBox="0 0 160 160">
            <path d="M39 91h79c18 0 29-10 29-26s-12-26-28-26c-7-17-21-27-40-27-23 0-40 16-43 37-15 1-24 10-24 22 0 13 10 20 27 20Z" fill="#a7bacb"/>
            <path d="M80 94h25l-20 24h15l-36 36 11-28H59Z" fill="#ffd35f"/>
          </svg>`
      };

      document.getElementById("location").textContent = placeName;
      document.getElementById("dateLabel").textContent = new Intl.DateTimeFormat("en", {
        weekday: "long",
        day: "numeric",
        month: "long",
        year: "numeric",
        timeZone: "UTC"
      }).format(new Date(requestedDate + "T12:00:00Z"));

      const formatTemp = value => `${Math.round(Number(value))}°`;
      const svgNS = "http://www.w3.org/2000/svg";

      function svgElement(name, attributes = {}) {
        const element = document.createElementNS(svgNS, name);
        Object.entries(attributes).forEach(([key, value]) => element.setAttribute(key, value));
        return element;
      }

      function drawChart(values, times) {
        const group = document.getElementById("chartContent");
        group.replaceChildren();

        const width = 670;
        const height = 235;
        const left = 38;
        const right = 13;
        const top = 17;
        const bottom = 31;
        const min = Math.floor(Math.min(...values) - 2);
        const max = Math.ceil(Math.max(...values) + 2);
        const range = Math.max(max - min, 1);
        const x = i => left + i * ((width - left - right) / Math.max(values.length - 1, 1));
        const y = value => top + (max - value) * ((height - top - bottom) / range);

        for (let i = 0; i < 4; i++) {
          const lineY = top + i * ((height - top - bottom) / 3);
          const value = max - i * (range / 3);
          group.appendChild(svgElement("line", {
            x1: left, y1: lineY, x2: width - right, y2: lineY, class: "grid-line"
          }));
          const label = svgElement("text", {
            x: 0, y: lineY + 4, class: "axis-label"
          });
          label.textContent = `${Math.round(value)}°`;
          group.appendChild(label);
        }

        const points = values.map((value, i) => [x(i), y(value)]);
        const linePath = points.map((point, i) =>
          `${i ? "L" : "M"} ${point[0].toFixed(2)} ${point[1].toFixed(2)}`
        ).join(" ");
        const floor = height - bottom;
        const areaPath = `${linePath} L ${points.at(-1)[0]} ${floor} L ${points[0][0]} ${floor} Z`;

        group.appendChild(svgElement("path", { d: areaPath, class: "area" }));
        group.appendChild(svgElement("path", { d: linePath, class: "curve" }));

        points.forEach((point, i) => {
          if (i % 3 === 0 || i === points.length - 1) {
            group.appendChild(svgElement("circle", {
              cx: point[0], cy: point[1], r: 3.8, class: "point"
            }));
          }
        });

        [0, 6, 12, 18, values.length - 1].filter((v, i, a) => v < values.length && a.indexOf(v) === i)
          .forEach(i => {
            const label = svgElement("text", {
              x: x(i),
              y: height - 7,
              "text-anchor": i === 0 ? "start" : i === values.length - 1 ? "end" : "middle",
              class: "axis-label"
            });
            label.textContent = new Date(times[i]).toISOString().slice(11, 16);
            group.appendChild(label);
          });
      }

      function showError() {
        document.getElementById("spinner").style.display = "none";
        document.getElementById("statusTitle").textContent = "Weather data could not be loaded";
        document.getElementById("statusMessage").textContent =
          "Please check the location, date, and connection, then try again.";
      }

      async function loadWeather() {
        const apiPath = requestedDate < utcToday ? "/api/om/archive" : "/api/om/forecast";
        const query = new URLSearchParams({
          latitude: String(latitude),
          longitude: String(longitude),
          daily: "temperature_2m_max,temperature_2m_min,weather_code",
          hourly: "temperature_2m",
          timezone: "UTC",
          temperature_unit: "celsius",
          start_date: requestedDate,
          end_date: requestedDate
        });

        try {
          const response = await fetch(`${apiPath}?${query}`);
          if (!response.ok) throw new Error(`HTTP ${response.status}`);
          const data = await response.json();

          const dailyIndex = data.daily?.time?.indexOf(requestedDate);
          if (dailyIndex == null || dailyIndex < 0) throw new Error("Requested date missing");

          const maxTemp = Number(data.daily.temperature_2m_max?.[dailyIndex]);
          const minTemp = Number(data.daily.temperature_2m_min?.[dailyIndex]);
          const code = Number(data.daily.weather_code?.[dailyIndex]);
          const hourlyTimes = data.hourly?.time || [];
          const hourlyValues = data.hourly?.temperature_2m || [];
          const selected = hourlyTimes
            .map((time, index) => ({ time, value: Number(hourlyValues[index]) }))
            .filter(item => item.time.startsWith(requestedDate) && Number.isFinite(item.value));

          if (!Number.isFinite(maxTemp) || !Number.isFinite(minTemp) || !selected.length) {
            throw new Error("Incomplete weather data");
          }

          const [description, iconType] = conditions[code] || ["Weather conditions", "cloud"];
          document.getElementById("condition").textContent = description;
          document.getElementById("weatherIcon").innerHTML = icons[iconType];
          document.getElementById("maxTemp").textContent = formatTemp(maxTemp);
          document.getElementById("minTemp").textContent = formatTemp(minTemp);

          const grid = document.getElementById("hourlyGrid");
          grid.replaceChildren();
          selected.forEach(item => {
            const hour = document.createElement("div");
            hour.className = "hour";
            const time = document.createElement("time");
            time.dateTime = item.time;
            time.textContent = item.time.slice(11, 16);
            const temp = document.createElement("strong");
            temp.textContent = formatTemp(item.value);
            hour.append(time, temp);
            grid.appendChild(hour);
          });

          drawChart(selected.map(item => item.value), selected.map(item => item.time));
          document.getElementById("status").classList.add("hidden");
        } catch (error) {
          showError();
        }
      }

      loadWeather();
    })();
  </script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total20,672html / css / js2,090 / 7,528 / 11,054
dom nodes42dom depth8
css rules46js presentyes
brightness50.7contrast21.8
colorfulness27.2whitespace65.5%

This slot's telemetry

prompt tokens3completion tokens6,651
total tokens6,654wall82.3 s
cost—request id—
config.json571 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.6-sol-eff-xhigh--cli--cursor-xl--dev",
  "effort": "xhigh",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.6-sol",
  "protocol": "cli",
  "served_model": "gpt-5.6-sol-xhigh",
  "telemetry": {
    "completion_tokens": 29210,
    "cost_usd": null,
    "prompt_tokens": 12,
    "total_tokens": 29222,
    "wall_ms": 388523
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-xl-s0",
  "config_id": "gpt-5.6-sol-eff-xhigh--cli--cursor-xl--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-13T08:59:01.450392+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T08:57:58.954974+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-13T09:00:27.318263+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T08:59:04.992519+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-13T09:02:56.573583+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T09:00:30.842831+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-13T09:04:38.011491+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T09:03:00.029324+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-min"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}