gpt-5.6-luna @ xhigh · cursor

cursorxhigh
config
gpt-5.6-luna-eff-xhigh--cli--cursor--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
gpt-5.6-luna-xhigh
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
gpt-5.6-luna @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 tempambiguousno-remaining-candidate
  • min tempmismatchshown: 25
  • 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>Weather Card</title>
  <style>
    :root {
      color-scheme: dark;
      --ink: #f4f8ff;
      --muted: #9eafc9;
      --soft: #71839e;
      --panel: rgba(17, 31, 55, 0.88);
      --panel-light: rgba(28, 48, 79, 0.76);
      --line: rgba(156, 182, 220, 0.16);
      --cyan: #63d8f6;
      --gold: #ffc86b;
      --violet: #9b9cff;
      --danger: #ff9d9d;
    }

    * {
      box-sizing: border-box;
    }

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

    body {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow-x: hidden;
      padding: 22px 24px;
      background:
        radial-gradient(circle at 15% 15%, rgba(58, 126, 183, 0.24), transparent 31%),
        radial-gradient(circle at 88% 84%, rgba(100, 89, 183, 0.2), transparent 32%),
        #08111f;
      color: var(--ink);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      -webkit-font-smoothing: antialiased;
    }

    body::before {
      position: fixed;
      inset: 0;
      z-index: -1;
      background-image:
        linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
      background-size: 46px 46px;
      content: "";
      mask-image: linear-gradient(to bottom, black, transparent 80%);
    }

    .weather-shell {
      width: min(1160px, 100%);
      min-height: 700px;
      overflow: hidden;
      border: 1px solid rgba(174, 203, 242, 0.18);
      border-radius: 30px;
      background: linear-gradient(135deg, rgba(15, 29, 52, 0.98), rgba(9, 19, 36, 0.96));
      box-shadow:
        0 30px 90px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    }

    .topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 76px;
      padding: 0 34px;
      border-bottom: 1px solid var(--line);
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      color: #dceaff;
      font-size: 13px;
      font-weight: 750;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .brand-mark {
      position: relative;
      display: grid;
      width: 29px;
      height: 29px;
      place-items: center;
      border: 1px solid rgba(108, 217, 247, 0.6);
      border-radius: 9px;
      background: linear-gradient(145deg, rgba(67, 193, 229, 0.2), rgba(97, 94, 198, 0.2));
      color: var(--cyan);
      font-size: 16px;
      box-shadow: 0 0 20px rgba(76, 207, 239, 0.14);
    }

    .brand-mark::after {
      position: absolute;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--gold);
      box-shadow: 0 0 9px var(--gold);
      content: "";
      transform: translate(7px, -7px);
    }

    .live-indicator {
      display: flex;
      align-items: center;
      gap: 8px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 650;
      letter-spacing: 0.13em;
      text-transform: uppercase;
    }

    .live-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #71e2b2;
      box-shadow: 0 0 0 4px rgba(113, 226, 178, 0.1), 0 0 12px rgba(113, 226, 178, 0.8);
    }

    .state-panel {
      display: flex;
      min-height: 580px;
      align-items: center;
      justify-content: center;
      padding: 50px;
    }

    .state-box {
      width: min(420px, 100%);
      padding: 36px;
      border: 1px solid var(--line);
      border-radius: 22px;
      background: rgba(20, 37, 64, 0.62);
      text-align: center;
    }

    .state-icon {
      display: grid;
      width: 52px;
      height: 52px;
      margin: 0 auto 18px;
      place-items: center;
      border: 1px solid rgba(99, 216, 246, 0.3);
      border-radius: 16px;
      background: rgba(99, 216, 246, 0.08);
      color: var(--cyan);
      font-size: 24px;
    }

    .state-box h1 {
      margin: 0;
      font-size: 21px;
      letter-spacing: -0.02em;
    }

    .state-box p {
      margin: 10px 0 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.55;
    }

    .state-box.error {
      border-color: rgba(255, 157, 157, 0.24);
    }

    .state-box.error .state-icon {
      border-color: rgba(255, 157, 157, 0.34);
      background: rgba(255, 157, 157, 0.08);
      color: var(--danger);
    }

    .retry-button {
      margin-top: 23px;
      padding: 11px 17px;
      border: 1px solid rgba(137, 211, 244, 0.35);
      border-radius: 10px;
      background: rgba(95, 201, 239, 0.1);
      color: #dff7ff;
      cursor: pointer;
      font: inherit;
      font-size: 13px;
      font-weight: 700;
      transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
    }

    .retry-button:hover {
      border-color: rgba(137, 211, 244, 0.75);
      background: rgba(95, 201, 239, 0.18);
      transform: translateY(-1px);
    }

    .hidden {
      display: none !important;
    }

    .content {
      padding: 28px 34px 25px;
    }

    .hero-card {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 315px;
      gap: 30px;
      min-height: 265px;
      overflow: hidden;
      padding: 30px 32px;
      border: 1px solid rgba(141, 176, 221, 0.18);
      border-radius: 24px;
      background:
        radial-gradient(circle at 86% 12%, rgba(255, 199, 105, 0.15), transparent 28%),
        radial-gradient(circle at 68% 100%, rgba(87, 195, 238, 0.12), transparent 32%),
        linear-gradient(120deg, rgba(30, 55, 91, 0.83), rgba(15, 31, 55, 0.8));
    }

    .hero-card::after {
      position: absolute;
      right: -74px;
      bottom: -118px;
      width: 300px;
      height: 300px;
      border: 1px solid rgba(167, 197, 231, 0.09);
      border-radius: 50%;
      box-shadow:
        0 0 0 28px rgba(167, 197, 231, 0.025),
        0 0 0 56px rgba(167, 197, 231, 0.018);
      content: "";
    }

    .hero-main {
      position: relative;
      z-index: 1;
      min-width: 0;
    }

    .eyebrow {
      margin: 0 0 11px;
      color: var(--cyan);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 0.15em;
      text-transform: uppercase;
    }

    .location-name {
      max-width: 670px;
      margin: 0;
      overflow: hidden;
      color: #f3f7ff;
      font-size: clamp(34px, 4vw, 53px);
      font-weight: 750;
      letter-spacing: -0.055em;
      line-height: 1.03;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .date-line {
      display: flex;
      align-items: center;
      gap: 9px;
      margin-top: 14px;
      color: var(--muted);
      font-size: 14px;
      font-weight: 550;
    }

    .calendar-icon {
      display: inline-block;
      width: 13px;
      height: 13px;
      border: 1.5px solid var(--soft);
      border-radius: 3px;
      opacity: 0.9;
    }

    .temperature-row {
      display: flex;
      align-items: flex-end;
      gap: 27px;
      margin-top: 29px;
    }

    .temperature-block {
      display: flex;
      align-items: flex-start;
      gap: 7px;
    }

    .temperature-block .value {
      color: #ffffff;
      font-size: 61px;
      font-weight: 700;
      letter-spacing: -0.09em;
      line-height: 0.84;
    }

    .temperature-block .unit {
      margin-top: 3px;
      color: var(--cyan);
      font-size: 21px;
      font-weight: 650;
      line-height: 1;
    }

    .range-divider {
      width: 1px;
      height: 49px;
      margin-bottom: 1px;
      background: var(--line);
    }

    .low-temperature {
      display: flex;
      flex-direction: column;
      gap: 5px;
      margin-bottom: 2px;
    }

    .low-temperature .label,
    .metric-label {
      color: var(--soft);
      font-size: 10px;
      font-weight: 750;
      letter-spacing: 0.13em;
      text-transform: uppercase;
    }

    .low-temperature .value {
      color: #cfdbec;
      font-size: 26px;
      font-weight: 650;
      letter-spacing: -0.04em;
    }

    .condition-panel {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      padding: 25px 26px;
      border: 1px solid rgba(168, 194, 228, 0.15);
      border-radius: 18px;
      background: rgba(8, 21, 39, 0.34);
    }

    .condition-icon {
      display: block;
      height: 76px;
      color: var(--gold);
      font-family: "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
      font-size: 64px;
      line-height: 1;
      text-shadow: 0 7px 25px rgba(255, 201, 105, 0.2);
    }

    .condition-label {
      margin-top: 20px;
      color: #f0f5ff;
      font-size: 20px;
      font-weight: 700;
      letter-spacing: -0.025em;
    }

    .condition-code {
      margin-top: 7px;
      color: var(--muted);
      font-size: 12px;
    }

    .meta-row {
      display: flex;
      align-items: center;
      gap: 17px;
      margin: 17px 5px 0;
      color: var(--soft);
      font-size: 11px;
    }

    .meta-item {
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .meta-item strong {
      color: #bccce1;
      font-weight: 650;
    }

    .meta-separator {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: #506582;
    }

    .hourly-card {
      margin-top: 17px;
      padding: 22px 22px 19px;
      border: 1px solid rgba(141, 176, 221, 0.15);
      border-radius: 22px;
      background: rgba(15, 29, 51, 0.77);
    }

    .section-heading {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 20px;
      margin: 0 3px 18px;
    }

    .section-heading h2 {
      margin: 0;
      color: #edf4ff;
      font-size: 16px;
      font-weight: 700;
      letter-spacing: -0.015em;
    }

    .section-heading p {
      margin: 0;
      color: var(--soft);
      font-size: 11px;
      font-weight: 650;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

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

    .hour-item {
      display: flex;
      min-width: 0;
      flex-direction: column;
      align-items: center;
      justify-content: flex-end;
      padding: 10px 2px 8px;
      border: 1px solid rgba(133, 167, 210, 0.11);
      border-radius: 12px;
      background: linear-gradient(to bottom, rgba(34, 58, 91, 0.48), rgba(19, 37, 63, 0.48));
    }

    .hour-item:nth-child(6n + 1) {
      border-color: rgba(99, 216, 246, 0.27);
      background: linear-gradient(to bottom, rgba(47, 88, 117, 0.46), rgba(20, 41, 65, 0.52));
    }

    .hour-time {
      margin-bottom: auto;
      color: #a9bad1;
      font-size: 10px;
      font-weight: 650;
      line-height: 1;
    }

    .hour-bar {
      display: flex;
      width: 12px;
      height: 66px;
      align-items: flex-end;
      margin: 12px 0 10px;
      border-radius: 7px;
      background: rgba(115, 143, 178, 0.14);
      overflow: hidden;
    }

    .hour-bar span {
      display: block;
      width: 100%;
      min-height: 10px;
      border-radius: 7px;
      background: linear-gradient(to top, #55c9e9, #b6ecfa);
      box-shadow: 0 0 13px rgba(89, 206, 235, 0.24);
    }

    .hour-temp {
      color: #eaf5ff;
      font-size: 11px;
      font-weight: 700;
      white-space: nowrap;
    }

    .hour-temp small {
      color: var(--cyan);
      font-size: 9px;
      font-weight: 700;
    }

    .footer-line {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      margin: 15px 4px 0;
      color: #647895;
      font-size: 10px;
    }

    .footer-line span:last-child {
      color: #8195b1;
      font-weight: 650;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

    @media (max-width: 900px) {
      body {
        align-items: flex-start;
        padding: 12px;
      }

      .topbar {
        padding: 0 22px;
      }

      .content {
        padding: 18px;
      }

      .hero-card {
        grid-template-columns: 1fr;
      }

      .condition-panel {
        min-height: 150px;
      }

      .hourly-card {
        overflow-x: auto;
      }

      .hourly-grid {
        min-width: 840px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      *,
      *::before,
      *::after {
        scroll-behavior: auto !important;
        transition: none !important;
      }
    }
  </style>
</head>
<body>
  <main class="weather-shell">
    <header class="topbar">
      <div class="brand">
        <span class="brand-mark">W</span>
        <span>Atmos</span>
      </div>
      <div class="live-indicator">
        <span class="live-dot"></span>
        <span>Weather snapshot</span>
      </div>
    </header>

    <section id="loading-state" class="state-panel" aria-live="polite">
      <div class="state-box">
        <div class="state-icon">☼</div>
        <h1>Reading the sky</h1>
        <p>Loading the latest weather details for your location.</p>
      </div>
    </section>

    <section id="error-state" class="state-panel hidden" aria-live="assertive">
      <div class="state-box error">
        <div class="state-icon">!</div>
        <h1>Weather data unavailable</h1>
        <p>We couldn't load weather data for this date. Please try another date or location.</p>
        <button id="retry-button" class="retry-button" type="button">Try again</button>
      </div>
    </section>

    <div id="weather-content" class="content hidden">
      <section class="hero-card" aria-label="Daily weather summary">
        <div class="hero-main">
          <p class="eyebrow">Daily outlook</p>
          <h1 id="location-name" class="location-name">Berlin</h1>
          <div class="date-line">
            <span class="calendar-icon" aria-hidden="true"></span>
            <span id="date-label">—</span>
          </div>

          <div class="temperature-row">
            <div class="temperature-block">
              <span id="max-temp" class="value">—</span>
              <span class="unit">°C</span>
            </div>
            <span class="range-divider" aria-hidden="true"></span>
            <div class="low-temperature">
              <span class="label">Low</span>
              <span id="min-temp" class="value">—°</span>
            </div>
          </div>
        </div>

        <aside class="condition-panel">
          <span id="condition-icon" class="condition-icon" aria-hidden="true">☀</span>
          <div id="condition-label" class="condition-label">—</div>
          <div id="condition-code" class="condition-code">Weather condition</div>
        </aside>
      </section>

      <div class="meta-row">
        <div class="meta-item">
          <span>Coordinates</span>
          <strong id="coordinates">—</strong>
        </div>
        <span class="meta-separator" aria-hidden="true"></span>
        <div class="meta-item">
          <span>Data</span>
          <strong id="data-source">Open-Meteo</strong>
        </div>
        <span class="meta-separator" aria-hidden="true"></span>
        <div class="meta-item">
          <span>Timezone</span>
          <strong>UTC</strong>
        </div>
      </div>

      <section class="hourly-card" aria-label="Hourly temperatures">
        <div class="section-heading">
          <h2>Hourly temperatures</h2>
          <p id="hourly-summary">24-hour view · Celsius</p>
        </div>
        <div id="hourly-list" class="hourly-grid" role="list"></div>
      </section>

      <footer class="footer-line">
        <span id="footer-date">Weather for —</span>
        <span id="footer-source">Open-Meteo compatible API</span>
      </footer>
    </div>
  </main>

  <script>
    (() => {
      const params = new URLSearchParams(window.location.search);

      const todayUtc = () => {
        const now = new Date();
        return [
          now.getUTCFullYear(),
          String(now.getUTCMonth() + 1).padStart(2, "0"),
          String(now.getUTCDate()).padStart(2, "0")
        ].join("-");
      };

      const isValidDate = (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 fallbackDate = todayUtc();
      const requestedDate = isValidDate(params.get("date") || "") ? params.get("date") : fallbackDate;
      const latitude = Number(params.get("lat"));
      const longitude = Number(params.get("lon"));
      const lat = Number.isFinite(latitude) && latitude >= -90 && latitude <= 90 ? latitude : 52.52;
      const lon = Number.isFinite(longitude) && longitude >= -180 && longitude <= 180 ? longitude : 13.405;
      const locationName = (params.get("name") || "Berlin").trim() || "Berlin";
      const endpoint = requestedDate < fallbackDate ? "/api/om/archive" : "/api/om/forecast";

      const loadingState = document.getElementById("loading-state");
      const errorState = document.getElementById("error-state");
      const content = document.getElementById("weather-content");

      const conditionForCode = (code) => {
        const definitions = {
          0: ["Clear sky", "☀"],
          1: ["Mainly clear", "🌤"],
          2: ["Partly cloudy", "⛅"],
          3: ["Overcast", "☁"],
          45: ["Fog", "🌫"],
          48: ["Rime fog", "🌫"],
          51: ["Light drizzle", "🌦"],
          53: ["Drizzle", "🌦"],
          55: ["Dense drizzle", "🌧"],
          56: ["Freezing drizzle", "🌧"],
          57: ["Freezing drizzle", "🌧"],
          61: ["Light rain", "🌦"],
          63: ["Rain", "🌧"],
          65: ["Heavy rain", "🌧"],
          66: ["Freezing rain", "🌧"],
          67: ["Heavy freezing rain", "🌧"],
          71: ["Light snow", "🌨"],
          73: ["Snowfall", "❄"],
          75: ["Heavy snowfall", "❄"],
          77: ["Snow grains", "❄"],
          80: ["Light showers", "🌦"],
          81: ["Rain showers", "🌧"],
          82: ["Heavy showers", "⛈"],
          85: ["Snow showers", "🌨"],
          86: ["Heavy snow showers", "🌨"],
          95: ["Thunderstorm", "⛈"],
          96: ["Thunderstorm with hail", "⛈"],
          99: ["Thunderstorm with hail", "⛈"]
        };
        return definitions[code] || ["Unsettled conditions", "☁"];
      };

      const formatDate = (value) => {
        const date = new Date(`${value}T00:00:00Z`);
        return new Intl.DateTimeFormat(undefined, {
          weekday: "long",
          month: "long",
          day: "numeric",
          year: "numeric",
          timeZone: "UTC"
        }).format(date);
      };

      const formatTemperature = (value) => `${Math.round(value)}°`;

      const showError = () => {
        loadingState.classList.add("hidden");
        content.classList.add("hidden");
        errorState.classList.remove("hidden");
      };

      const showContent = () => {
        loadingState.classList.add("hidden");
        errorState.classList.add("hidden");
        content.classList.remove("hidden");
      };

      const renderHourly = (items) => {
        const list = document.getElementById("hourly-list");
        list.replaceChildren();

        const values = items.map(item => item.temperature);
        const minValue = Math.min(...values);
        const maxValue = Math.max(...values);
        const spread = Math.max(maxValue - minValue, 1);

        items.forEach((item) => {
          const hour = document.createElement("div");
          hour.className = "hour-item";
          hour.setAttribute("role", "listitem");

          const time = document.createElement("div");
          time.className = "hour-time";
          time.textContent = item.time.slice(11, 16);

          const bar = document.createElement("div");
          bar.className = "hour-bar";

          const barFill = document.createElement("span");
          const percent = 25 + ((item.temperature - minValue) / spread) * 75;
          barFill.style.height = `${percent}%`;
          bar.appendChild(barFill);

          const temperature = document.createElement("div");
          temperature.className = "hour-temp";
          temperature.innerHTML = `${Math.round(item.temperature)}<small>°</small>`;

          hour.append(time, bar, temperature);
          list.appendChild(hour);
        });
      };

      const renderWeather = (data) => {
        if (!data || data.error) throw new Error("The weather response was invalid.");

        const daily = data.daily;
        const hourly = data.hourly;

        if (!daily || !hourly || !Array.isArray(daily.time) || !Array.isArray(hourly.time)) {
          throw new Error("The weather response did not include the expected fields.");
        }

        const dayIndex = daily.time.indexOf(requestedDate);
        if (dayIndex < 0) throw new Error("The requested date was not returned.");

        const maximum = Number(daily.temperature_2m_max?.[dayIndex]);
        const minimum = Number(daily.temperature_2m_min?.[dayIndex]);
        const code = Number(daily.weather_code?.[dayIndex]);

        if (!Number.isFinite(maximum) || !Number.isFinite(minimum) || !Number.isFinite(code)) {
          throw new Error("The daily weather values were incomplete.");
        }

        const hourlyItems = hourly.time
          .map((time, index) => ({
            time,
            temperature: Number(hourly.temperature_2m?.[index])
          }))
          .filter(item => item.time.slice(0, 10) === requestedDate && Number.isFinite(item.temperature));

        if (!hourlyItems.length) throw new Error("The hourly weather values were incomplete.");

        const [condition, icon] = conditionForCode(code);

        document.getElementById("location-name").textContent = locationName;
        document.getElementById("date-label").textContent = formatDate(requestedDate);
        document.getElementById("max-temp").textContent = formatTemperature(maximum);
        document.getElementById("min-temp").textContent = formatTemperature(minimum);
        document.getElementById("condition-icon").textContent = icon;
        document.getElementById("condition-label").textContent = condition;
        document.getElementById("condition-code").textContent = `WMO code ${code}`;
        document.getElementById("coordinates").textContent = `${lat.toFixed(3)}, ${lon.toFixed(3)}`;
        document.getElementById("data-source").textContent = requestedDate < fallbackDate ? "Historical archive" : "Forecast";
        document.getElementById("hourly-summary").textContent = `${hourlyItems.length}-hour view · Celsius`;
        document.getElementById("footer-date").textContent = `Weather for ${requestedDate}`;

        renderHourly(hourlyItems);
        showContent();
      };

      const loadWeather = async () => {
        loadingState.classList.remove("hidden");
        errorState.classList.add("hidden");
        content.classList.add("hidden");

        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: requestedDate,
          end_date: requestedDate
        });

        try {
          const response = await fetch(`${endpoint}?${query.toString()}`, {
            headers: { "Accept": "application/json" }
          });
          if (!response.ok) throw new Error(`Request failed with status ${response.status}.`);
          renderWeather(await response.json());
        } catch (error) {
          showError();
        }
      };

      document.getElementById("retry-button").addEventListener("click", loadWeather);
      loadWeather();
    })();
  </script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total24,218html / css / js3,495 / 12,569 / 8,154
dom nodes67dom depth9
css rules70js presentyes
brightness34.2contrast24.2
colorfulness22.1whitespace68.5%

This slot's telemetry

prompt tokens3completion tokens9,541
total tokens9,544wall74.7 s
cost—request id—
config.json571 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.6-luna-eff-xhigh--cli--cursor--dev",
  "effort": "xhigh",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.6-luna",
  "protocol": "cli",
  "served_model": "gpt-5.6-luna-xhigh",
  "telemetry": {
    "completion_tokens": 35022,
    "cost_usd": null,
    "prompt_tokens": 12,
    "total_tokens": 35034,
    "wall_ms": 284607
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s1",
  "config_id": "gpt-5.6-luna-eff-xhigh--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T17:27:13.728300+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:25:59.064896+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-12T17:28:24.511673+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:27:17.579387+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-12T17:29:09.569735+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:28:27.886426+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-12T17:30:54.550936+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:29:13.217948+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
    }
  }
}