grok-4.5 @ medium · grok-cli

grok-climedium
config
grok-4.5-eff-medium--cli--grok--dev
batch
2026-07-19--unified
transport
grok-cli-oauth-isolated-home
protocol
cli · plan
served model
grok-4.5
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
grok-4.5 @medium · grok-cli 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 tempmismatchshown: 13.405
  • min tempmismatchshown: 52.52
  • 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=1280, height=800">
<title>Weather Card</title>
<style>
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --bg0: #0b1220;
    --bg1: #152238;
    --card: rgba(255, 255, 255, 0.06);
    --card-border: rgba(255, 255, 255, 0.12);
    --text: #f4f7fb;
    --muted: rgba(244, 247, 251, 0.62);
    --accent: #7dd3fc;
    --accent-soft: rgba(125, 211, 252, 0.18);
    --warm: #fbbf24;
    --cool: #93c5fd;
    --danger: #fca5a5;
    --shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
    --radius: 28px;
  }

  html, body {
    width: 1280px;
    height: 800px;
    overflow: hidden;
    font-family: "SF Pro Display", "Segoe UI", system-ui, -apple-system, sans-serif;
    color: var(--text);
    background: var(--bg0);
  }

  body {
    display: grid;
    place-items: center;
    background:
      radial-gradient(1200px 600px at 12% -10%, var(--glow-a, rgba(56, 189, 248, 0.28)), transparent 55%),
      radial-gradient(900px 500px at 92% 110%, var(--glow-b, rgba(251, 191, 36, 0.16)), transparent 50%),
      linear-gradient(160deg, var(--bg0) 0%, var(--bg1) 48%, #0a1628 100%);
  }

  .shell {
    width: 1180px;
    height: 700px;
    position: relative;
  }

  .card {
    width: 100%;
    height: 100%;
    border-radius: var(--radius);
    background:
      linear-gradient(145deg, rgba(255,255,255,0.10), rgba(255,255,255,0.03) 42%, rgba(255,255,255,0.06)),
      var(--card);
    border: 1px solid var(--card-border);
    box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.12);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    display: grid;
    grid-template-rows: auto 1fr;
    overflow: hidden;
    position: relative;
  }

  .card::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 86% 18%, rgba(255,255,255,0.10), transparent 28%),
      linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.18));
    pointer-events: none;
  }

  .top {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 28px;
    padding: 42px 48px 18px;
    position: relative;
    z-index: 1;
  }

  .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
  }

  .eyebrow .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 6px var(--accent-soft);
  }

  h1 {
    margin-top: 14px;
    font-size: 56px;
    line-height: 1.05;
    font-weight: 700;
    letter-spacing: -0.03em;
    max-width: 14ch;
  }

  .date-line {
    margin-top: 14px;
    font-size: 20px;
    color: var(--muted);
    font-weight: 500;
  }

  .coords {
    margin-top: 8px;
    font-size: 13px;
    color: rgba(244,247,251,0.42);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
  }

  .hero-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 18px;
    text-align: right;
  }

  .condition {
    display: flex;
    align-items: center;
    gap: 16px;
  }

  .icon-wrap {
    width: 88px;
    height: 88px;
    border-radius: 24px;
    display: grid;
    place-items: center;
    background: linear-gradient(160deg, rgba(255,255,255,0.16), rgba(255,255,255,0.04));
    border: 1px solid rgba(255,255,255,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18);
  }

  .icon-wrap svg {
    width: 54px;
    height: 54px;
  }

  .condition-text {
    font-size: 28px;
    font-weight: 600;
    letter-spacing: -0.02em;
  }

  .temps {
    display: flex;
    gap: 18px;
    margin-top: 4px;
  }

  .temp-pill {
    min-width: 148px;
    padding: 18px 20px;
    border-radius: 20px;
    background: rgba(0,0,0,0.18);
    border: 1px solid rgba(255,255,255,0.08);
  }

  .temp-pill .label {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
  }

  .temp-pill .value {
    margin-top: 8px;
    font-size: 42px;
    font-weight: 700;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
  }

  .temp-pill.max .value { color: var(--warm); }
  .temp-pill.min .value { color: var(--cool); }
  .temp-pill .unit {
    font-size: 20px;
    font-weight: 600;
    opacity: 0.7;
    margin-left: 2px;
  }

  .bottom {
    position: relative;
    z-index: 1;
    padding: 12px 48px 40px;
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 0;
  }

  .section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 16px;
  }

  .section-head h2 {
    font-size: 15px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 650;
  }

  .section-head span {
    font-size: 13px;
    color: rgba(244,247,251,0.45);
  }

  .hourly {
    height: 100%;
    border-radius: 22px;
    background: rgba(0,0,0,0.18);
    border: 1px solid rgba(255,255,255,0.08);
    padding: 22px 18px 16px;
    display: grid;
    grid-template-columns: repeat(24, 1fr);
    gap: 6px;
    align-items: end;
    min-height: 0;
  }

  .hour {
    display: grid;
    grid-template-rows: auto 1fr auto;
    height: 100%;
    min-height: 220px;
    gap: 8px;
    justify-items: center;
  }

  .hour .t {
    font-size: 12px;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: rgba(244,247,251,0.88);
    letter-spacing: -0.02em;
  }

  .bar-track {
    width: 100%;
    max-width: 28px;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }

  .bar {
    width: 100%;
    border-radius: 999px 999px 8px 8px;
    min-height: 8px;
    background: linear-gradient(180deg, var(--bar-top, #7dd3fc), var(--bar-bot, #2563eb));
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.22);
    opacity: 0.95;
    transition: height 0.4s ease;
  }

  .hour .h {
    font-size: 11px;
    color: rgba(244,247,251,0.48);
    font-variant-numeric: tabular-nums;
    font-weight: 550;
  }

  .hour.is-peak .t { color: var(--warm); }
  .hour.is-peak .bar {
    background: linear-gradient(180deg, #fde68a, #f59e0b);
    box-shadow: 0 8px 18px rgba(245, 158, 11, 0.25);
  }
  .hour.is-low .t { color: var(--cool); }

  .state {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    z-index: 2;
    background:
      radial-gradient(800px 400px at 50% 30%, rgba(56,189,248,0.12), transparent 60%),
      rgba(11, 18, 32, 0.72);
    backdrop-filter: blur(8px);
  }

  .state.hidden { display: none; }

  .state-box {
    width: min(520px, 80%);
    text-align: center;
    padding: 40px 36px;
    border-radius: 24px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    box-shadow: var(--shadow);
  }

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

  @keyframes spin { to { transform: rotate(360deg); } }

  .state h3 {
    font-size: 26px;
    letter-spacing: -0.02em;
    margin-bottom: 10px;
  }

  .state p {
    color: var(--muted);
    font-size: 16px;
    line-height: 1.5;
  }

  .state.error h3 { color: var(--danger); }
  .state.error .spinner { display: none; }

  .content.hidden { visibility: hidden; }

  .decor {
    position: absolute;
    right: -40px;
    bottom: -60px;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.06), transparent 68%);
    pointer-events: none;
  }
</style>
</head>
<body>
  <div class="shell">
    <div class="card" id="card">
      <div class="decor" aria-hidden="true"></div>

      <div id="loading" class="state">
        <div class="state-box">
          <div class="spinner" aria-hidden="true"></div>
          <h3>Loading weather</h3>
          <p>Fetching conditions for your location…</p>
        </div>
      </div>

      <div id="error" class="state error hidden">
        <div class="state-box">
          <h3>Weather data cannot be loaded</h3>
          <p id="error-detail">Something went wrong while retrieving the forecast. Please check the location and date, then try again.</p>
        </div>
      </div>

      <div id="content" class="content hidden">
        <div class="top">
          <div>
            <div class="eyebrow"><span class="dot"></span> Weather Card</div>
            <h1 id="location-name">Berlin</h1>
            <div class="date-line" id="date-line">—</div>
            <div class="coords" id="coords">—</div>
          </div>
          <div class="hero-right">
            <div class="condition">
              <div>
                <div class="condition-text" id="condition">—</div>
              </div>
              <div class="icon-wrap" id="icon" aria-hidden="true"></div>
            </div>
            <div class="temps">
              <div class="temp-pill max">
                <div class="label">High</div>
                <div class="value"><span id="temp-max">—</span><span class="unit">°C</span></div>
              </div>
              <div class="temp-pill min">
                <div class="label">Low</div>
                <div class="value"><span id="temp-min">—</span><span class="unit">°C</span></div>
              </div>
            </div>
          </div>
        </div>

        <div class="bottom">
          <div class="section-head">
            <h2>Hourly temperature</h2>
            <span id="range-hint">UTC · °C</span>
          </div>
          <div class="hourly" id="hourly" aria-label="Hourly temperatures"></div>
        </div>
      </div>
    </div>
  </div>

<script>
(function () {
  const WEATHER = {
    0:  { label: "Clear sky", theme: "clear" },
    1:  { label: "Mainly clear", theme: "clear" },
    2:  { label: "Partly cloudy", theme: "cloud" },
    3:  { label: "Overcast", theme: "cloud" },
    45: { label: "Fog", theme: "fog" },
    48: { label: "Depositing rime fog", theme: "fog" },
    51: { label: "Light drizzle", theme: "rain" },
    53: { label: "Moderate drizzle", theme: "rain" },
    55: { label: "Dense drizzle", theme: "rain" },
    56: { label: "Light freezing drizzle", theme: "rain" },
    57: { label: "Dense freezing drizzle", theme: "rain" },
    61: { label: "Slight rain", theme: "rain" },
    63: { label: "Moderate rain", theme: "rain" },
    65: { label: "Heavy rain", theme: "rain" },
    66: { label: "Light freezing rain", theme: "rain" },
    67: { label: "Heavy freezing rain", theme: "rain" },
    71: { label: "Slight snow", theme: "snow" },
    73: { label: "Moderate snow", theme: "snow" },
    75: { label: "Heavy snow", theme: "snow" },
    77: { label: "Snow grains", theme: "snow" },
    80: { label: "Slight rain showers", theme: "rain" },
    81: { label: "Moderate rain showers", theme: "rain" },
    82: { label: "Violent rain showers", theme: "rain" },
    85: { label: "Slight snow showers", theme: "snow" },
    86: { label: "Heavy snow showers", theme: "snow" },
    95: { label: "Thunderstorm", theme: "storm" },
    96: { label: "Thunderstorm with slight hail", theme: "storm" },
    99: { label: "Thunderstorm with heavy hail", theme: "storm" }
  };

  const THEMES = {
    clear: { a: "rgba(56, 189, 248, 0.32)", b: "rgba(251, 191, 36, 0.22)", top: "#fde68a", bot: "#38bdf8" },
    cloud: { a: "rgba(148, 163, 184, 0.28)", b: "rgba(100, 116, 139, 0.18)", top: "#cbd5e1", bot: "#64748b" },
    fog:   { a: "rgba(203, 213, 225, 0.22)", b: "rgba(148, 163, 184, 0.16)", top: "#e2e8f0", bot: "#94a3b8" },
    rain:  { a: "rgba(59, 130, 246, 0.30)", b: "rgba(14, 165, 233, 0.18)", top: "#7dd3fc", bot: "#1d4ed8" },
    snow:  { a: "rgba(186, 230, 253, 0.30)", b: "rgba(224, 242, 254, 0.16)", top: "#e0f2fe", bot: "#38bdf8" },
    storm: { a: "rgba(129, 140, 248, 0.30)", b: "rgba(251, 191, 36, 0.14)", top: "#c4b5fd", bot: "#4f46e5" }
  };

  function icons(theme) {
    const stroke = "rgba(255,255,255,0.92)";
    const fill = "rgba(255,255,255,0.18)";
    const map = {
      clear: `<svg viewBox="0 0 64 64" fill="none"><circle cx="32" cy="32" r="12" fill="#fbbf24"/><g stroke="#fbbf24" stroke-width="3" stroke-linecap="round"><path d="M32 8v6M32 50v6M8 32h6M50 32h6M14.5 14.5l4.2 4.2M45.3 45.3l4.2 4.2M14.5 49.5l4.2-4.2M45.3 18.7l4.2-4.2"/></g></svg>`,
      cloud: `<svg viewBox="0 0 64 64" fill="none"><path d="M22 46h24a10 10 0 0 0 1.2-19.9A14 14 0 0 0 20.5 28 9 9 0 0 0 22 46z" fill="${fill}" stroke="${stroke}" stroke-width="2.4"/><circle cx="42" cy="20" r="7" fill="#fbbf24" opacity="0.85"/></svg>`,
      fog: `<svg viewBox="0 0 64 64" fill="none"><path d="M20 30h26a8 8 0 0 0 .9-16A12 12 0 0 0 19 22a7.5 7.5 0 0 0 1 8z" fill="${fill}" stroke="${stroke}" stroke-width="2.2"/><path d="M16 40h32M20 46h24M18 52h28" stroke="${stroke}" stroke-width="2.4" stroke-linecap="round" opacity="0.75"/></svg>`,
      rain: `<svg viewBox="0 0 64 64" fill="none"><path d="M20 30h26a8 8 0 0 0 .9-16A12 12 0 0 0 19 22a7.5 7.5 0 0 0 1 8z" fill="${fill}" stroke="${stroke}" stroke-width="2.2"/><path d="M24 38l-3 8M32 38l-3 8M40 38l-3 8" stroke="#7dd3fc" stroke-width="2.6" stroke-linecap="round"/></svg>`,
      snow: `<svg viewBox="0 0 64 64" fill="none"><path d="M20 28h26a8 8 0 0 0 .9-16A12 12 0 0 0 19 20a7.5 7.5 0 0 0 1 8z" fill="${fill}" stroke="${stroke}" stroke-width="2.2"/><g stroke="#e0f2fe" stroke-width="2" stroke-linecap="round"><path d="M24 40v8M20 44h8"/><path d="M33 42v8M29 46h8"/><path d="M42 40v8M38 44h8"/></g></svg>`,
      storm: `<svg viewBox="0 0 64 64" fill="none"><path d="M20 28h26a8 8 0 0 0 .9-16A12 12 0 0 0 19 20a7.5 7.5 0 0 0 1 8z" fill="${fill}" stroke="${stroke}" stroke-width="2.2"/><path d="M30 34l-6 10h7l-3 10 12-14h-7l4-6z" fill="#fbbf24"/></svg>`
    };
    return map[theme] || map.cloud;
  }

  function todayUTC() {
    return new Date().toISOString().slice(0, 10);
  }

  function parseParams() {
    const q = new URLSearchParams(window.location.search);
    const lat = parseFloat(q.get("lat"));
    const lon = parseFloat(q.get("lon"));
    const name = (q.get("name") || "Berlin").trim() || "Berlin";
    let date = (q.get("date") || "").trim();
    if (!/^\d{4}-\d{2}-\d{2}$/.test(date)) date = todayUTC();
    return {
      lat: Number.isFinite(lat) ? lat : 52.52,
      lon: Number.isFinite(lon) ? lon : 13.405,
      name,
      date
    };
  }

  function formatDisplayDate(iso) {
    const [y, m, d] = iso.split("-").map(Number);
    const dt = new Date(Date.UTC(y, m - 1, d));
    return new Intl.DateTimeFormat("en-US", {
      weekday: "long",
      year: "numeric",
      month: "long",
      day: "numeric",
      timeZone: "UTC"
    }).format(dt);
  }

  function isPastDate(dateStr) {
    return dateStr < todayUTC();
  }

  function buildUrl(base, params) {
    const sp = new URLSearchParams({
      latitude: String(params.lat),
      longitude: String(params.lon),
      daily: "temperature_2m_max,temperature_2m_min,weather_code",
      hourly: "temperature_2m",
      timezone: "UTC",
      temperature_unit: "celsius",
      start_date: params.date,
      end_date: params.date
    });
    return base + "?" + sp.toString();
  }

  function showError(msg) {
    document.getElementById("loading").classList.add("hidden");
    document.getElementById("content").classList.add("hidden");
    const err = document.getElementById("error");
    err.classList.remove("hidden");
    if (msg) document.getElementById("error-detail").textContent = msg;
  }

  function applyTheme(themeKey) {
    const t = THEMES[themeKey] || THEMES.cloud;
    document.documentElement.style.setProperty("--glow-a", t.a);
    document.documentElement.style.setProperty("--glow-b", t.b);
    document.documentElement.style.setProperty("--bar-top", t.top);
    document.documentElement.style.setProperty("--bar-bot", t.bot);
  }

  function render(params, data) {
    const daily = data.daily || {};
    const hourly = data.hourly || {};
    const max = daily.temperature_2m_max && daily.temperature_2m_max[0];
    const min = daily.temperature_2m_min && daily.temperature_2m_min[0];
    const code = daily.weather_code && daily.weather_code[0];
    const hours = hourly.time || [];
    const temps = hourly.temperature_2m || [];

    if (
      max == null || min == null || code == null ||
      !hours.length || temps.length !== hours.length ||
      temps.some(function (t) { return t == null || Number.isNaN(Number(t)); })
    ) {
      showError("The weather service returned incomplete data for this date and location.");
      return;
    }

    const info = WEATHER[code] || { label: "Weather code " + code, theme: "cloud" };
    applyTheme(info.theme);

    document.getElementById("location-name").textContent = params.name;
    document.getElementById("date-line").textContent = formatDisplayDate(params.date);
    document.getElementById("coords").textContent =
      params.lat.toFixed(4) + "°, " + params.lon.toFixed(4) + "° · UTC";
    document.getElementById("condition").textContent = info.label;
    document.getElementById("icon").innerHTML = icons(info.theme);
    document.getElementById("temp-max").textContent = Math.round(max);
    document.getElementById("temp-min").textContent = Math.round(min);

    const nums = temps.map(Number);
    const tMin = Math.min.apply(null, nums);
    const tMax = Math.max.apply(null, nums);
    const span = Math.max(tMax - tMin, 1);
    const peakIdx = nums.indexOf(tMax);
    const lowIdx = nums.indexOf(tMin);

    document.getElementById("range-hint").textContent =
      "UTC · " + Math.round(tMin) + "° to " + Math.round(tMax) + "°C";

    const root = document.getElementById("hourly");
    root.innerHTML = "";

    hours.forEach(function (iso, i) {
      const t = nums[i];
      const hour = iso.slice(11, 13);
      const pct = 12 + ((t - tMin) / span) * 88;
      const el = document.createElement("div");
      el.className = "hour" + (i === peakIdx ? " is-peak" : "") + (i === lowIdx ? " is-low" : "");
      el.innerHTML =
        '<div class="t">' + Math.round(t) + "°</div>" +
        '<div class="bar-track"><div class="bar" style="height:' + pct.toFixed(1) + '%"></div></div>' +
        '<div class="h">' + hour + "</div>";
      root.appendChild(el);
    });

    document.getElementById("loading").classList.add("hidden");
    document.getElementById("error").classList.add("hidden");
    document.getElementById("content").classList.remove("hidden");
  }

  async function main() {
    const params = parseParams();
    const endpoint = isPastDate(params.date) ? "/api/om/archive" : "/api/om/forecast";
    const url = buildUrl(endpoint, params);

    try {
      const res = await fetch(url);
      if (!res.ok) {
        showError("Weather data cannot be loaded (HTTP " + res.status + ").");
        return;
      }
      const data = await res.json();
      if (data.error) {
        showError(data.reason || "Weather data cannot be loaded.");
        return;
      }
      render(params, data);
    } catch (e) {
      showError("Weather data cannot be loaded. The request failed or the service is unavailable.");
    }
  }

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

L1 — cheap deterministic descriptors

bytes total19,414html / css / js2,295 / 7,662 / 9,457
dom nodes49dom depth11
css rules50js presentyes
brightness53.6contrast28.4
colorfulness39.3whitespace41.3%

This slot's telemetry

prompt tokens0completion tokens0
total tokens0wall120.8 s
costrequest id
config.json552 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "grok-4.5-eff-medium--cli--grok--dev",
  "effort": "medium",
  "family": "grok",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "grok-4.5",
  "protocol": "cli",
  "served_model": "grok-4.5",
  "telemetry": {
    "completion_tokens": null,
    "cost_usd": null,
    "prompt_tokens": null,
    "total_tokens": null,
    "wall_ms": 310460
  },
  "transport": "grok-cli-oauth-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-07-17--dev-grok-cli",
  "config_id": "grok-4.5-eff-medium--cli--grok--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T13:57:10.661134+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T13:55:09.867509+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-07-17T13:57:56.150314+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T13:57:14.397174+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-07-17T13:58:42.496985+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T13:57:59.513656+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-07-17T14:00:30.874482+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T13:58:45.938203+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
    }
  }
}