kimi-k3 @ high · cursor-xl

cursor-xlhigh
config
kimi-k3-eff-high--cli--cursor-xl--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
kimi-k3-high
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
kimi-k3 @high · 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 tempambiguousno-remaining-candidate
  • 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>Weather</title>
<style>
  :root {
    --accent: #7fb2e5;
    --text: #eef3f8;
    --text-dim: rgba(238, 243, 248, 0.62);
    --text-faint: rgba(238, 243, 248, 0.38);
    --card-bg: rgba(16, 22, 32, 0.55);
    --card-border: rgba(255, 255, 255, 0.09);
  }

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

  html, body { height: 100%; }

  body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
    background: #0b1018;
    color: var(--text);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
  }

  .bg {
    position: fixed;
    inset: 0;
    background:
      radial-gradient(ellipse 90% 65% at 75% -10%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 60%),
      radial-gradient(ellipse 70% 55% at 10% 110%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 65%),
      linear-gradient(165deg, #101725 0%, #0b1018 55%, #080c12 100%);
    transition: background 1s ease;
    z-index: 0;
  }

  .bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 26px 26px;
    mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, black, transparent);
  }

  .card {
    position: relative;
    z-index: 1;
    width: 920px;
    max-width: calc(100vw - 64px);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 28px;
    padding: 44px 48px 36px;
    backdrop-filter: blur(22px) saturate(1.3);
    -webkit-backdrop-filter: blur(22px) saturate(1.3);
    box-shadow:
      0 30px 80px rgba(0, 0, 0, 0.55),
      inset 0 1px 0 rgba(255, 255, 255, 0.07);
    animation: rise 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
  }

  @keyframes rise {
    from { opacity: 0; transform: translateY(22px) scale(0.985); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
  }

  .head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
  }

  .place {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .pin {
    width: 40px;
    height: 40px;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: color-mix(in srgb, var(--accent) 16%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    color: var(--accent);
  }

  .place h1 {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
  }

  .date-line {
    margin-top: 5px;
    font-size: 14.5px;
    color: var(--text-dim);
    font-weight: 500;
    letter-spacing: 0.01em;
  }

  .badge {
    flex: none;
    margin-top: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-faint);
    border: 1px solid var(--card-border);
    border-radius: 999px;
    padding: 6px 12px;
    background: rgba(255, 255, 255, 0.03);
  }

  .hero {
    display: flex;
    align-items: center;
    gap: 34px;
    padding: 6px 4px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  }

  .hero-icon {
    width: 108px;
    height: 108px;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 28px;
    color: var(--accent);
    background:
      radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 70%),
      rgba(255, 255, 255, 0.04);
    border: 1px solid color-mix(in srgb, var(--accent) 24%, transparent);
    box-shadow: 0 12px 34px color-mix(in srgb, var(--accent) 16%, transparent);
  }

  .hero-icon svg { width: 62px; height: 62px; }

  .condition {
    font-size: 19px;
    font-weight: 600;
    color: var(--text-dim);
    margin-bottom: 8px;
    letter-spacing: 0.01em;
  }

  .temps {
    display: flex;
    align-items: baseline;
    gap: 26px;
  }

  .t-max {
    font-size: 84px;
    font-weight: 750;
    letter-spacing: -0.045em;
    line-height: 0.95;
    background: linear-gradient(180deg, #ffffff 20%, color-mix(in srgb, var(--accent) 70%, #ffffff 30%));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  .t-max sup { font-size: 34px; font-weight: 600; }

  .t-min-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 8px;
  }

  .t-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-faint);
  }

  .t-min {
    font-size: 30px;
    font-weight: 650;
    color: var(--text-dim);
    letter-spacing: -0.02em;
  }

  .range {
    margin-left: auto;
    flex: none;
    width: 190px;
    padding-bottom: 10px;
  }

  .range-track {
    position: relative;
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
    margin: 8px 0 6px;
  }

  .range-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #6db3f2, var(--accent), #f6b73c);
  }

  .range-ends {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-faint);
  }

  .hourly-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 26px 4px 6px;
  }

  .hourly-title h2 {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-dim);
  }

  .hourly-title span {
    font-size: 12px;
    color: var(--text-faint);
    font-weight: 500;
  }

  .scroller {
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.16) transparent;
  }

  .scroller::-webkit-scrollbar { height: 6px; }
  .scroller::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.14); border-radius: 999px; }
  .scroller::-webkit-scrollbar-track { background: transparent; }

  .chart-wrap { position: relative; }

  .chart { display: block; }

  .strip {
    display: flex;
    margin-top: 2px;
  }

  .hour {
    width: 64px;
    flex: none;
    text-align: center;
    padding: 10px 0 6px;
    border-radius: 14px;
    transition: background 0.25s ease;
  }

  .hour:hover { background: rgba(255, 255, 255, 0.05); }

  .hour.now {
    background: color-mix(in srgb, var(--accent) 13%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 34%, transparent);
  }

  .hour .h {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--text-faint);
    margin-bottom: 5px;
  }

  .hour.now .h { color: var(--accent); }

  .hour .t {
    font-size: 15.5px;
    font-weight: 650;
    letter-spacing: -0.01em;
  }

  .state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 320px;
    text-align: center;
  }

  .state .spin {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.12);
    border-top-color: var(--accent);
    animation: spin 0.9s linear infinite;
  }

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

  .state p { color: var(--text-dim); font-size: 15px; font-weight: 500; }

  .state .err-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    color: #f28b82;
    background: rgba(242, 139, 130, 0.1);
    border: 1px solid rgba(242, 139, 130, 0.25);
  }

  .state .err-title { font-size: 19px; font-weight: 700; color: var(--text); }

  .foot {
    margin-top: 22px;
    text-align: right;
    font-size: 11px;
    letter-spacing: 0.06em;
    color: var(--text-faint);
  }
</style>
</head>
<body>
  <div class="bg"></div>
  <main class="card" id="card">
    <div class="state">
      <div class="spin"></div>
      <p>Loading weather…</p>
    </div>
  </main>

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

  var card = document.getElementById("card");

  var q = new URLSearchParams(window.location.search);
  var lat = q.get("lat") || "52.52";
  var lon = q.get("lon") || "13.405";
  var name = q.get("name") || "Berlin";
  var todayUTC = new Date().toISOString().slice(0, 10);
  var date = q.get("date") || todayUTC;
  if (!/^\d{4}-\d{2}-\d{2}$/.test(date)) date = todayUTC;

  var WMO = {
    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", "drizzle"], 53: ["Moderate drizzle", "drizzle"], 55: ["Dense drizzle", "drizzle"],
    56: ["Freezing drizzle", "drizzle"], 57: ["Freezing drizzle", "drizzle"],
    61: ["Slight rain", "rain"], 63: ["Moderate rain", "rain"], 65: ["Heavy rain", "rain"],
    66: ["Freezing rain", "rain"], 67: ["Freezing rain", "rain"],
    71: ["Slight snowfall", "snow"], 73: ["Moderate snowfall", "snow"], 75: ["Heavy snowfall", "snow"], 77: ["Snow grains", "snow"],
    80: ["Slight rain showers", "rain"], 81: ["Moderate rain showers", "rain"], 82: ["Violent rain showers", "rain"],
    85: ["Slight snow showers", "snow"], 86: ["Heavy snow showers", "snow"],
    95: ["Thunderstorm", "storm"], 96: ["Thunderstorm with hail", "storm"], 99: ["Thunderstorm with hail", "storm"]
  };

  var ACCENTS = {
    clear: "#f6b73c", partly: "#8fc1f0", cloudy: "#9fb0c0", fog: "#a8b6c2",
    drizzle: "#7fc8d8", rain: "#5aa9e6", snow: "#cfe4ff", storm: "#b28dff"
  };

  function svgOpen(size) {
    return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="' + size + '" height="' + size + '">';
  }

  var CLOUD = '<path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/>';

  var ICONS = {
    clear: svgOpen(62) + '<circle cx="12" cy="12" r="4.4"/><line x1="12" y1="1.6" x2="12" y2="3.6"/><line x1="12" y1="20.4" x2="12" y2="22.4"/><line x1="4.2" y1="4.2" x2="5.6" y2="5.6"/><line x1="18.4" y1="18.4" x2="19.8" y2="19.8"/><line x1="1.6" y1="12" x2="3.6" y2="12"/><line x1="20.4" y1="12" x2="22.4" y2="12"/><line x1="4.2" y1="19.8" x2="5.6" y2="18.4"/><line x1="18.4" y1="5.6" x2="19.8" y2="4.2"/></svg>',
    partly: svgOpen(62) + '<path d="M9.5 6.5a3.4 3.4 0 1 1 4.6 4.4"/><line x1="11" y1="1.4" x2="11" y2="2.8"/><line x1="4.6" y1="4.4" x2="5.6" y2="5.4"/><line x1="2.4" y1="10" x2="3.8" y2="10"/><path d="M17.5 20.5H8a4.2 4.2 0 0 1-.6-8.35 5.4 5.4 0 0 1 10.5 1.6 3.55 3.55 0 0 1-.4 6.75z"/></svg>',
    cloudy: svgOpen(62) + CLOUD + '</svg>',
    fog: svgOpen(62) + '<path d="M17.2 13.5H8.3a3.8 3.8 0 0 1-.6-7.55 4.9 4.9 0 0 1 9.5 1.45 3.2 3.2 0 0 1 0 6.1z"/><line x1="5" y1="17" x2="19" y2="17"/><line x1="7.5" y1="20.5" x2="16.5" y2="20.5"/></svg>',
    drizzle: svgOpen(62) + CLOUD + '<line x1="8" y1="22" x2="8" y2="22.6"/><line x1="12" y1="22" x2="12" y2="22.6"/><line x1="16" y1="22" x2="16" y2="22.6"/></svg>',
    rain: svgOpen(62) + CLOUD + '<line x1="16" y1="14.5" x2="16" y2="20"/><line x1="8" y1="14.5" x2="8" y2="20"/><line x1="12" y1="16.5" x2="12" y2="22.5"/></svg>',
    snow: svgOpen(62) + CLOUD + '<line x1="8" y1="15.5" x2="8" y2="20.5"/><line x1="16" y1="15.5" x2="16" y2="20.5"/><line x1="12" y1="17" x2="12" y2="22"/><line x1="6.5" y1="16.7" x2="9.5" y2="19.3"/><line x1="14.5" y1="16.7" x2="17.5" y2="19.3"/><line x1="6.5" y1="19.3" x2="9.5" y2="16.7"/><line x1="14.5" y1="19.3" x2="17.5" y2="16.7"/></svg>',
    storm: svgOpen(62) + '<path d="M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9"/><polyline points="13 11 9 17 15 17 11 23"/></svg>'
  };

  var PIN = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="20" height="20"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>';
  var WARN = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="28" height="28"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>';

  function esc(s) {
    return String(s).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
  }

  function showError() {
    card.innerHTML =
      '<div class="state">' +
        '<div class="err-icon">' + WARN + '</div>' +
        '<div class="err-title">Weather data could not be loaded</div>' +
        '<p>The forecast for ' + esc(name) + ' on ' + esc(date) + ' is unavailable right now.<br>Please check the location parameters or try again later.</p>' +
      '</div>';
  }

  function smoothPath(pts) {
    if (pts.length < 2) return "";
    var d = "M " + pts[0][0].toFixed(1) + " " + pts[0][1].toFixed(1);
    for (var i = 0; i < pts.length - 1; i++) {
      var p0 = pts[Math.max(0, i - 1)], p1 = pts[i], p2 = pts[i + 1], p3 = pts[Math.min(pts.length - 1, i + 2)];
      var c1x = p1[0] + (p2[0] - p0[0]) / 6, c1y = p1[1] + (p2[1] - p0[1]) / 6;
      var c2x = p2[0] - (p3[0] - p1[0]) / 6, c2y = p2[1] - (p3[1] - p1[1]) / 6;
      d += " C " + c1x.toFixed(1) + " " + c1y.toFixed(1) + ", " + c2x.toFixed(1) + " " + c2y.toFixed(1) + ", " + p2[0].toFixed(1) + " " + p2[1].toFixed(1);
    }
    return d;
  }

  function render(data) {
    var daily = data.daily || {};
    if (!daily.time || !daily.time.length) { showError(); return; }

    var tmax = daily.temperature_2m_max[0];
    var tmin = daily.temperature_2m_min[0];
    var code = daily.weather_code[0];
    if (tmax == null || tmin == null) { showError(); return; }

    var info = WMO[code] || ["Unknown conditions", "cloudy"];
    var label = info[0], cat = info[1];
    document.documentElement.style.setProperty("--accent", ACCENTS[cat] || ACCENTS.partly);
    document.title = "Weather — " + name;

    var times = (data.hourly && data.hourly.time) || [];
    var temps = (data.hourly && data.hourly.temperature_2m) || [];
    var hours = [];
    for (var i = 0; i < times.length; i++) {
      if (typeof times[i] === "string" && times[i].slice(0, 10) === date && temps[i] != null) {
        hours.push({ hh: times[i].slice(11, 13), t: temps[i] });
      }
    }

    var dateStr = new Date(date + "T00:00:00Z").toLocaleDateString("en-GB", {
      weekday: "long", day: "numeric", month: "long", year: "numeric", timeZone: "UTC"
    });

    var span = Math.max(tmax - tmin, 0);
    var fillLeft = Math.max(0, 12 - span * 1.4);
    var fillWidth = Math.min(100 - fillLeft, 22 + span * 2.8);

    var html =
      '<div class="head">' +
        '<div class="place">' +
          '<div class="pin">' + PIN + '</div>' +
          '<div>' +
            '<h1>' + esc(name) + '</h1>' +
            '<div class="date-line">' + esc(dateStr) + '</div>' +
          '</div>' +
        '</div>' +
        '<div class="badge">UTC</div>' +
      '</div>' +
      '<div class="hero">' +
        '<div class="hero-icon">' + ICONS[cat] + '</div>' +
        '<div>' +
          '<div class="condition">' + esc(label) + '</div>' +
          '<div class="temps">' +
            '<div class="t-max">' + Math.round(tmax) + '<sup>°C</sup></div>' +
            '<div class="t-min-wrap">' +
              '<span class="t-label">Low</span>' +
              '<span class="t-min">' + Math.round(tmin) + '°</span>' +
            '</div>' +
          '</div>' +
        '</div>' +
        '<div class="range">' +
          '<span class="t-label">Daily range</span>' +
          '<div class="range-track"><div class="range-fill" style="left:' + fillLeft + '%;width:' + fillWidth + '%"></div></div>' +
          '<div class="range-ends"><span>' + Math.round(tmin) + '°</span><span>' + Math.round(tmax) + '°</span></div>' +
        '</div>' +
      '</div>';

    if (hours.length) {
      var col = 64, W = hours.length * col, H = 132, padT = 26, padB = 14;
      var lo = Math.min.apply(null, hours.map(function (h) { return h.t; }));
      var hi = Math.max.apply(null, hours.map(function (h) { return h.t; }));
      if (hi - lo < 1) { hi += 0.5; lo -= 0.5; }
      var pts = hours.map(function (h, i) {
        var x = i * col + col / 2;
        var y = padT + (1 - (h.t - lo) / (hi - lo)) * (H - padT - padB);
        return [x, y];
      });
      var line = smoothPath(pts);
      var area = line + " L " + pts[pts.length - 1][0].toFixed(1) + " " + H + " L " + pts[0][0].toFixed(1) + " " + H + " Z";

      var dots = "", labels = "";
      var iMax = 0, iMin = 0;
      hours.forEach(function (h, i) {
        if (h.t > hours[iMax].t) iMax = i;
        if (h.t < hours[iMin].t) iMin = i;
      });
      pts.forEach(function (p, i) {
        var hot = i === iMax, cold = i === iMin;
        var r = hot || cold ? 4 : 2.4;
        var fill = hot ? "#f6b73c" : cold ? "#6db3f2" : "rgba(255,255,255,0.55)";
        dots += '<circle cx="' + p[0].toFixed(1) + '" cy="' + p[1].toFixed(1) + '" r="' + r + '" fill="' + fill + '"/>';
        if (hot || cold) {
          var anchor = p[0] < 30 ? "start" : p[0] > W - 30 ? "end" : "middle";
          labels += '<text x="' + p[0].toFixed(1) + '" y="' + (p[1] - 10).toFixed(1) + '" text-anchor="' + anchor + '" font-size="12" font-weight="700" fill="' + fill + '">' + Math.round(hours[i].t) + '°</text>';
        }
      });

      var nowHour = date === todayUTC ? String(new Date().getUTCHours()).padStart(2, "0") : null;
      var strip = "";
      hours.forEach(function (h) {
        var isNow = nowHour !== null && h.hh === nowHour;
        strip +=
          '<div class="hour' + (isNow ? " now" : "") + '">' +
            '<div class="h">' + (isNow ? "Now" : h.hh + ":00") + '</div>' +
            '<div class="t">' + Math.round(h.t) + '°</div>' +
          '</div>';
      });

      html +=
        '<div class="hourly-title"><h2>Hourly temperature</h2><span>' + hours.length + ' hours · °C</span></div>' +
        '<div class="scroller"><div class="chart-wrap" style="width:' + W + 'px">' +
          '<svg class="chart" width="' + W + '" height="' + H + '" viewBox="0 0 ' + W + ' ' + H + '">' +
            '<defs>' +
              '<linearGradient id="area" x1="0" y1="0" x2="0" y2="1">' +
                '<stop offset="0%" stop-color="' + (ACCENTS[cat] || ACCENTS.partly) + '" stop-opacity="0.30"/>' +
                '<stop offset="100%" stop-color="' + (ACCENTS[cat] || ACCENTS.partly) + '" stop-opacity="0"/>' +
              '</linearGradient>' +
            '</defs>' +
            '<path d="' + area + '" fill="url(#area)"/>' +
            '<path d="' + line + '" fill="none" stroke="' + (ACCENTS[cat] || ACCENTS.partly) + '" stroke-width="2.4" stroke-linecap="round"/>' +
            dots + labels +
          '</svg>' +
          '<div class="strip">' + strip + '</div>' +
        '</div></div>';
    }

    html += '<div class="foot">Data · Open-Meteo · ' + esc(lat) + ', ' + esc(lon) + '</div>';
    card.innerHTML = html;
  }

  var endpoint = date < todayUTC ? "/api/om/archive" : "/api/om/forecast";
  var qs = new URLSearchParams({
    latitude: lat,
    longitude: lon,
    daily: "temperature_2m_max,temperature_2m_min,weather_code",
    hourly: "temperature_2m",
    timezone: "UTC",
    temperature_unit: "celsius",
    start_date: date,
    end_date: date
  });

  fetch(endpoint + "?" + qs.toString())
    .then(function (res) {
      if (!res.ok) throw new Error("HTTP " + res.status);
      return res.json();
    })
    .then(function (data) {
      if (!data || data.error || !data.daily) throw new Error("Bad payload");
      render(data);
    })
    .catch(showError);
})();
</script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total19,975html / css / js387 / 7,937 / 11,651
dom nodes13dom depth5
css rules54js presentyes
brightness23.3contrast15.8
colorfulness10.2whitespace95.7%

This slot's telemetry

prompt tokens29,040completion tokens17,707
total tokens46,747wall148.6 s
cost—request id—
config.json561 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "kimi-k3-eff-high--cli--cursor-xl--dev",
  "effort": "high",
  "family": "kimi",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "kimi-k3",
  "protocol": "cli",
  "served_model": "kimi-k3-high",
  "telemetry": {
    "completion_tokens": 47445,
    "cost_usd": null,
    "prompt_tokens": 90704,
    "total_tokens": 138149,
    "wall_ms": 410404
  },
  "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": "kimi-k3-eff-high--cli--cursor-xl--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-13T10:03:55.169534+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T10:02:57.826980+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-13T10:06:27.610365+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T10:03:59.000261+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-13T10:08:21.834197+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T10:06:30.935807+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-13T10:09:58.975594+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T10:08:25.417762+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
    }
  }
}