gpt-5.6-terra @ xhigh · cursor

cursorxhigh
config
gpt-5.6-terra-eff-xhigh--cli--cursor--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
gpt-5.6-terra-xhigh
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe
gpt-5.6-terra @xhigh · cursor P-q slot 0 截图

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。

similarity 邻居

限于 session 2026-07-19--unified

similarity 衡量本 session 内的趋同程度 —— 不是质量。

Fidelity —— 卡片展示的数据对不对?

  • namematch
  • conditionmatch
  • datematch
  • max tempambiguousinsufficient-distinct-temperature-nodes
  • min tempambiguousinsufficient-distinct-temperature-nodes
  • hourlyambiguouscoverage · 0 命中 · 0 不符 · 24 未展示
  • request sidematch0 处违规

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

源码 —— 原始模型输出,一字节未改

下载 card.html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="color-scheme" content="light">
  <title>Weather Card</title>
  <style>
    :root {
      --ink: #15243b;
      --muted: #6d7d94;
      --line: rgba(73, 100, 134, .16);
      --paper: #f7fbff;
      --sky: #5e9eff;
      --sky-deep: #286bd3;
      --cloud: #bfd3ee;
      --sun: #ffd46b;
      --warm: #ff9f5d;
      --night: #102a53;
    }

    * { box-sizing: border-box; }

    body {
      min-width: 980px;
      min-height: 800px;
      margin: 0;
      overflow: hidden;
      color: var(--ink);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background:
        radial-gradient(circle at 15% 15%, rgba(255, 215, 109, .38), transparent 24rem),
        radial-gradient(circle at 83% 83%, rgba(108, 168, 255, .28), transparent 31rem),
        linear-gradient(135deg, #e8f4ff 0%, #f8fbff 50%, #edf3ff 100%);
      display: grid;
      place-items: center;
    }

    .ambient {
      position: fixed;
      width: 410px;
      height: 410px;
      border-radius: 50%;
      border: 1px solid rgba(81, 139, 222, .12);
      pointer-events: none;
    }
    .ambient.one { top: -195px; right: -110px; }
    .ambient.two { bottom: -265px; left: -150px; width: 490px; height: 490px; }

    .weather-card {
      position: relative;
      width: 1152px;
      height: 684px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, .78);
      border-radius: 30px;
      background: rgba(255, 255, 255, .85);
      box-shadow: 0 28px 70px rgba(52, 88, 136, .18), 0 2px 8px rgba(32, 67, 111, .05);
      backdrop-filter: blur(16px);
    }

    .weather-card::before {
      content: "";
      position: absolute;
      z-index: 0;
      inset: 0 0 auto;
      height: 280px;
      background:
        radial-gradient(ellipse at 76% 0%, rgba(255, 223, 126, .65), transparent 35%),
        linear-gradient(115deg, rgba(103, 177, 255, .25), rgba(222, 242, 255, .2) 48%, rgba(255, 237, 172, .32));
      pointer-events: none;
    }

    .weather-card::after {
      content: "";
      position: absolute;
      z-index: 0;
      top: 235px;
      right: -72px;
      width: 295px;
      height: 295px;
      border: 36px solid rgba(91, 158, 250, .06);
      border-radius: 50%;
      pointer-events: none;
    }

    .card-content { position: relative; z-index: 1; height: 100%; }

    .topbar {
      height: 66px;
      padding: 27px 34px 0 38px;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
    }

    .eyebrow {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0;
      color: #356293;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .17em;
      line-height: 1;
    }

    .eyebrow i {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--sky-deep);
      box-shadow: 0 0 0 5px rgba(40, 107, 211, .11);
    }

    .coordinates {
      color: #7184a2;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .05em;
    }

    .hero {
      height: 210px;
      padding: 11px 53px 0 38px;
      display: grid;
      grid-template-columns: 1fr 340px 205px;
      align-items: center;
    }

    .location {
      margin: 0 0 8px;
      color: var(--ink);
      font-size: 42px;
      font-weight: 750;
      letter-spacing: -.055em;
      line-height: 1;
    }

    .date {
      margin: 0;
      color: #5e7190;
      font-size: 15px;
      font-weight: 650;
      letter-spacing: -.01em;
    }

    .temperature-block {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      height: 150px;
    }

    .temperature {
      color: var(--night);
      font-size: 126px;
      font-weight: 720;
      letter-spacing: -.1em;
      line-height: .8;
    }

    .degree {
      display: inline-block;
      margin: 1px 0 0 4px;
      vertical-align: top;
      color: var(--sky-deep);
      font-size: 44px;
      font-weight: 600;
      letter-spacing: -.05em;
    }

    .temp-label {
      position: absolute;
      bottom: 2px;
      left: 50%;
      transform: translateX(-50%);
      white-space: nowrap;
      color: #486888;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .15em;
    }

    .condition {
      height: 166px;
      padding-left: 26px;
      border-left: 1px solid rgba(85, 124, 166, .17);
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start;
    }

    .weather-icon {
      width: 72px;
      height: 62px;
      margin-bottom: 7px;
      overflow: visible;
    }

    .condition-name {
      max-width: 160px;
      color: #203b61;
      font-size: 19px;
      font-weight: 750;
      letter-spacing: -.035em;
      line-height: 1.1;
    }

    .minmax {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 9px;
      color: #6e8099;
      font-size: 12px;
      font-weight: 700;
    }
    .minmax span { display: flex; align-items: center; gap: 5px; }
    .minmax b { color: #2b476e; font-weight: 800; }
    .minmax .high::before, .minmax .low::before {
      content: "";
      width: 6px;
      height: 6px;
      border-radius: 50%;
    }
    .minmax .high::before { background: var(--warm); }
    .minmax .low::before { background: var(--sky); }

    .chart-section {
      height: 230px;
      margin: 0 38px;
      padding: 21px 19px 0;
      border: 1px solid rgba(102, 139, 178, .15);
      border-radius: 19px 19px 0 0;
      background: linear-gradient(180deg, rgba(247, 251, 255, .9), rgba(255, 255, 255, .64));
    }

    .chart-heading {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 7px;
    }

    .section-title {
      margin: 0;
      color: #263f62;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .105em;
    }

    .chart-caption {
      color: #8292a7;
      font-size: 10px;
      font-weight: 750;
      letter-spacing: .05em;
    }

    .chart-wrap {
      position: relative;
      height: 164px;
    }

    .chart-wrap::before, .chart-wrap::after {
      content: "";
      position: absolute;
      z-index: 0;
      right: 0;
      left: 0;
      border-top: 1px dashed rgba(89, 124, 161, .14);
    }
    .chart-wrap::before { top: 40px; }
    .chart-wrap::after { top: 107px; }

    .weather-chart {
      position: relative;
      z-index: 1;
      display: block;
      width: 100%;
      height: 164px;
      overflow: visible;
    }

    .hourly {
      height: 134px;
      margin: 0 38px;
      padding: 12px 19px 0;
      border: 1px solid rgba(102, 139, 178, .15);
      border-top: 0;
      border-radius: 0 0 19px 19px;
      background: rgba(255, 255, 255, .73);
    }

    .hour-grid {
      display: grid;
      grid-template-columns: repeat(24, minmax(0, 1fr));
      height: 100%;
    }

    .hour {
      position: relative;
      min-width: 0;
      padding-top: 10px;
      text-align: center;
      border-left: 1px solid rgba(112, 141, 175, .1);
    }
    .hour:first-child { border-left: 0; }

    .hour-temp {
      display: block;
      color: #314b6f;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: -.03em;
    }

    .hour-time {
      display: block;
      margin-top: 8px;
      color: #8392a4;
      font-size: 8px;
      font-weight: 750;
      letter-spacing: .02em;
    }

    .hour.is-now::before {
      content: "";
      position: absolute;
      top: 0;
      left: 50%;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      transform: translateX(-50%);
      background: var(--sky-deep);
    }

    .footer {
      height: 42px;
      padding: 16px 39px 0;
      display: flex;
      justify-content: space-between;
      color: #8392a4;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .055em;
    }

    .footer strong { color: #53739b; font-weight: 800; }

    .loading, .error {
      position: absolute;
      z-index: 5;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 13px;
      background: rgba(248, 252, 255, .72);
      backdrop-filter: blur(4px);
      transition: opacity .35s ease, visibility .35s ease;
    }
    .loading.is-hidden, .error.is-hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    .spinner {
      width: 32px;
      height: 32px;
      border: 3px solid rgba(57, 122, 216, .16);
      border-top-color: var(--sky-deep);
      border-radius: 50%;
      animation: spin .8s linear infinite;
    }
    .loading p, .error p {
      margin: 0;
      color: #56718f;
      font-size: 12px;
      font-weight: 750;
      letter-spacing: .045em;
    }
    .error { display: none; background: rgba(248, 252, 255, .9); }
    .error:not(.is-hidden) { display: flex; }
    .error-mark {
      width: 40px;
      height: 40px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: #e8f1ff;
      color: #3979cf;
      font-size: 21px;
      font-weight: 800;
    }
    @keyframes spin { to { transform: rotate(360deg); } }

    body.theme-cloudy {
      --sky: #8da7c8;
      --sky-deep: #49698f;
      --sun: #e5b856;
    }
    body.theme-rain, body.theme-storm {
      --sky: #6f9fcf;
      --sky-deep: #3b689b;
      --warm: #c98665;
    }
    body.theme-snow {
      --sky: #74acd6;
      --sky-deep: #4a82b4;
    }
  </style>
</head>
<body>
  <div class="ambient one"></div>
  <div class="ambient two"></div>

  <main class="weather-card" aria-live="polite">
    <div class="card-content">
      <header class="topbar">
        <p class="eyebrow"><i></i> DAILY WEATHER</p>
        <span class="coordinates" id="coordinates">52.520° N&nbsp;&nbsp;13.405° E</span>
      </header>

      <section class="hero" aria-label="Weather summary">
        <div>
          <h1 class="location" id="location">Berlin</h1>
          <p class="date" id="date">—</p>
        </div>
        <div class="temperature-block">
          <div class="temperature"><span id="maximum">—</span><span class="degree">°</span></div>
          <span class="temp-label">DAYTIME HIGH</span>
        </div>
        <div class="condition">
          <svg class="weather-icon" id="weather-icon" viewBox="0 0 80 68" aria-hidden="true"></svg>
          <div class="condition-name" id="condition">Loading weather</div>
          <div class="minmax">
            <span class="high">H <b id="max-small">—</b>°</span>
            <span class="low">L <b id="minimum">—</b>°</span>
          </div>
        </div>
      </section>

      <section class="chart-section" aria-label="Hourly temperature chart">
        <div class="chart-heading">
          <h2 class="section-title">TEMPERATURE THROUGH THE DAY</h2>
          <span class="chart-caption">UTC · °C</span>
        </div>
        <div class="chart-wrap">
          <svg class="weather-chart" id="weather-chart" viewBox="0 0 1038 184" preserveAspectRatio="none" aria-label="Hourly temperature line chart"></svg>
        </div>
      </section>

      <section class="hourly" aria-label="Hourly temperatures">
        <div class="hour-grid" id="hour-grid"></div>
      </section>

      <footer class="footer">
        <span><strong>24-HOUR DETAIL</strong> &nbsp;·&nbsp; LOCAL TIME: UTC</span>
        <span id="source-note">OPEN-METEO DATA</span>
      </footer>
    </div>

    <div class="loading" id="loading">
      <div class="spinner"></div>
      <p>LOADING THE SKY</p>
    </div>
    <div class="error is-hidden" id="error" role="alert">
      <div class="error-mark">!</div>
      <p>WEATHER DATA COULDN’T BE LOADED</p>
    </div>
  </main>

  <script>
    (() => {
      const $ = (selector) => document.querySelector(selector);
      const params = new URLSearchParams(window.location.search);
      const today = new Date().toISOString().slice(0, 10);
      const inputDate = params.get("date");
      const date = /^\d{4}-\d{2}-\d{2}$/.test(inputDate || "") ? inputDate : today;
      const parseCoordinate = (value, fallback, lower, upper) => {
        const number = Number(value);
        return Number.isFinite(number) && number >= lower && number <= upper ? number : fallback;
      };
      const lat = parseCoordinate(params.get("lat"), 52.52, -90, 90);
      const lon = parseCoordinate(params.get("lon"), 13.405, -180, 180);
      const name = (params.get("name") || "Berlin").trim() || "Berlin";

      const conditions = {
        0: ["Clear sky", "clear"],
        1: ["Mainly clear", "clear"],
        2: ["Partly cloudy", "partly"],
        3: ["Overcast", "cloudy"],
        45: ["Fog", "fog"],
        48: ["Rime fog", "fog"],
        51: ["Light drizzle", "rain"],
        53: ["Drizzle", "rain"],
        55: ["Heavy drizzle", "rain"],
        56: ["Freezing drizzle", "rain"],
        57: ["Freezing drizzle", "rain"],
        61: ["Slight 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: ["Rain showers", "rain"],
        81: ["Rain showers", "rain"],
        82: ["Heavy showers", "rain"],
        85: ["Snow showers", "snow"],
        86: ["Heavy snow showers", "snow"],
        95: ["Thunderstorm", "storm"],
        96: ["Thunderstorm with hail", "storm"],
        99: ["Thunderstorm with hail", "storm"]
      };

      function formatNumber(value) {
        const rounded = Math.round(Number(value));
        return Number.isFinite(rounded) ? String(rounded).replace("-", "−") : "—";
      }

      function formatDate(value) {
        return new Intl.DateTimeFormat("en-US", {
          weekday: "long", month: "long", day: "numeric", year: "numeric", timeZone: "UTC"
        }).format(new Date(value + "T00:00:00Z"));
      }

      function formatCoordinate(value, positive, negative) {
        return Math.abs(value).toFixed(3) + "° " + (value >= 0 ? positive : negative);
      }

      function iconFor(kind) {
        const rays = `<g stroke="#F6B93B" stroke-width="3" stroke-linecap="round"><path d="M40 3v7"/><path d="M40 51v7"/><path d="m14 14 5 5"/><path d="m61 14-5 5"/><path d="M4 30h7"/><path d="M69 30h7"/></g>`;
        const sun = `<circle cx="40" cy="30" r="13" fill="#FFD66B"/>`;
        const cloud = `<path d="M19 48h42c8 0 13-5 13-12 0-8-6-13-14-13-2 0-4 0-6 1C51 16 45 12 37 12c-11 0-19 8-20 18-9 0-15 6-15 14 0 3 1 4 2 4h15Z" fill="#B7CCE6"/>`;
        if (kind === "clear") return `${rays}${sun}`;
        if (kind === "partly") return `<g transform="translate(-7,-6) scale(.82)">${rays}${sun}</g>${cloud}`;
        if (kind === "cloudy") return `${cloud}<path d="M18 51h43" stroke="#8DA9C8" stroke-width="3" stroke-linecap="round"/>`;
        if (kind === "fog") return `${cloud}<g stroke="#8DA9C8" stroke-width="3" stroke-linecap="round"><path d="M9 54h47"/><path d="M18 62h43"/></g>`;
        if (kind === "snow") return `${cloud}<g fill="#67A9DC"><circle cx="27" cy="58" r="2.5"/><circle cx="43" cy="62" r="2.5"/><circle cx="59" cy="57" r="2.5"/></g>`;
        if (kind === "storm") return `${cloud}<path d="m42 48-10 14h10l-3 10 13-17H42z" fill="#F4BB42"/>`;
        return `${cloud}<g stroke="#4C91CC" stroke-width="3" stroke-linecap="round"><path d="m27 55-3 8"/><path d="m44 55-3 8"/><path d="m61 55-3 8"/></g>`;
      }

      function chart(hours) {
        const svg = $("#weather-chart");
        const width = 1038, height = 184, top = 12, bottom = 34;
        const temperatures = hours.map((hour) => Number(hour.temperature));
        const low = Math.min(...temperatures), high = Math.max(...temperatures);
        const padding = Math.max(1, (high - low) * .22);
        const min = low - padding, max = high + padding;
        const x = (i) => (i / Math.max(hours.length - 1, 1)) * width;
        const y = (temperature) => top + ((max - temperature) / (max - min || 1)) * (height - top - bottom);
        const points = hours.map((hour, i) => `${x(i).toFixed(1)},${y(Number(hour.temperature)).toFixed(1)}`).join(" ");
        const area = `0,${height - bottom} ${points} ${width},${height - bottom}`;
        const highlighted = hours.reduce((best, value, index) =>
          Number(value.temperature) > Number(hours[best].temperature) ? index : best, 0);
        const highlight = hours[highlighted];
        const highX = x(highlighted), highY = y(Number(highlight.temperature));
        let labels = "";
        for (let i = 0; i < hours.length; i += 3) {
          labels += `<text x="${x(i).toFixed(1)}" y="178" fill="#8797AA" font-size="8" font-weight="700" text-anchor="${i === 0 ? "start" : i === hours.length - 3 ? "end" : "middle"}">${String(i).padStart(2, "0")}:00</text>`;
        }
        svg.innerHTML = `
          <defs>
            <linearGradient id="area-fill" x1="0" y1="0" x2="0" y2="1">
              <stop offset="0%" stop-color="#75B7FF" stop-opacity=".32"/>
              <stop offset="100%" stop-color="#BDE0FF" stop-opacity=".02"/>
            </linearGradient>
          </defs>
          <polygon points="${area}" fill="url(#area-fill)"/>
          <polyline points="${points}" fill="none" stroke="#3E8EF1" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
          <circle cx="${highX.toFixed(1)}" cy="${highY.toFixed(1)}" r="7" fill="#fff" stroke="#3E8EF1" stroke-width="3"/>
          <text x="${highX.toFixed(1)}" y="${Math.max(highY - 15, 13).toFixed(1)}" fill="#37689E" font-size="10" font-weight="800" text-anchor="middle">${formatNumber(highlight.temperature)}°</text>
          ${labels}
        `;
      }

      function renderHours(hours) {
        $("#hour-grid").innerHTML = hours.map((hour, index) => {
          const hourValue = new Date(hour.time + "Z").getUTCHours();
          return `<div class="hour${index === 12 ? " is-now" : ""}">
            <span class="hour-temp">${formatNumber(hour.temperature)}°</span>
            <span class="hour-time">${String(hourValue).padStart(2, "0")}</span>
          </div>`;
        }).join("");
      }

      function render(data) {
        const daily = data.daily || {};
        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 hourly = (data.hourly?.time || []).map((time, index) => ({
          time, temperature: data.hourly.temperature_2m?.[index]
        })).filter((item) => Number.isFinite(Number(item.temperature)));
        if (!Number.isFinite(Number(max)) || !Number.isFinite(Number(min)) || !hourly.length) {
          throw new Error("Incomplete weather data");
        }
        const [condition, kind] = conditions[code] || ["Weather conditions", "cloudy"];
        document.body.className = "theme-" + kind;
        $("#location").textContent = name;
        $("#date").textContent = formatDate(date);
        $("#coordinates").textContent = `${formatCoordinate(lat, "N", "S")}  ${formatCoordinate(lon, "E", "W")}`;
        $("#maximum").textContent = formatNumber(max);
        $("#max-small").textContent = formatNumber(max);
        $("#minimum").textContent = formatNumber(min);
        $("#condition").textContent = condition;
        $("#weather-icon").innerHTML = iconFor(kind);
        chart(hourly);
        renderHours(hourly);
        $("#loading").classList.add("is-hidden");
      }

      async function load() {
        const query = new URLSearchParams({
          latitude: String(lat),
          longitude: String(lon),
          daily: "temperature_2m_max,temperature_2m_min,weather_code",
          hourly: "temperature_2m",
          timezone: "UTC",
          temperature_unit: "celsius",
          start_date: date,
          end_date: date
        });
        const path = date < today ? "/api/om/archive" : "/api/om/forecast";
        try {
          const response = await fetch(path + "?" + query.toString());
          if (!response.ok) throw new Error("Weather request failed");
          const data = await response.json();
          if (data.error) throw new Error(data.reason || "Weather request failed");
          render(data);
        } catch (error) {
          $("#loading").classList.add("is-hidden");
          $("#error").classList.remove("is-hidden");
        }
      }

      $("#location").textContent = name;
      $("#date").textContent = formatDate(date);
      $("#coordinates").textContent = `${formatCoordinate(lat, "N", "S")}  ${formatCoordinate(lon, "E", "W")}`;
      load();
    })();
  </script>
</body>
</html>

L1 —— 廉价的确定性描述量

bytes 总计21,017html / css / js2,522 / 9,447 / 9,048
dom 节点52dom 深度9
css 规则60含 js是
brightness241.9contrast20.6
colorfulness19.3留白96.2%

该 slot 的 telemetry

prompt tokens18completion tokens16,230
total tokens16,248wall134.1 s
cost—request id—
config.json574 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.6-terra-eff-xhigh--cli--cursor--dev",
  "effort": "xhigh",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.6-terra",
  "protocol": "cli",
  "served_model": "gpt-5.6-terra-xhigh",
  "telemetry": {
    "completion_tokens": 27120,
    "cost_usd": null,
    "prompt_tokens": 27,
    "total_tokens": 27147,
    "wall_ms": 243365
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s0",
  "config_id": "gpt-5.6-terra-eff-xhigh--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T20:30:36.057466+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:30:06.820691+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-12T20:32:53.901421+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:30:39.807012+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-12T20:33:34.492465+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:32:57.313657+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-12T20:34:21.116984+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:33:38.259712+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
    }
  }
}