gpt-5.5 @ high · cursor

cursorhigh
config
gpt-5.5-eff-high--cli--cursor--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
gpt-5.5-high
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe
gpt-5.5 @high · 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">
<title>Weather Card</title>
<style>
  :root {
    --bg-a: #0b1224;
    --bg-b: #152b53;
    --card: rgba(255, 255, 255, 0.12);
    --card-strong: rgba(255, 255, 255, 0.18);
    --line: rgba(255, 255, 255, 0.22);
    --text: #f7fbff;
    --muted: rgba(247, 251, 255, 0.72);
    --soft: rgba(247, 251, 255, 0.48);
    --warm: #ffd37a;
    --cool: #89d8ff;
    --danger: #ffb4a8;
  }

  * {
    box-sizing: border-box;
  }

  body {
    margin: 0;
    min-height: 100vh;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--text);
    background:
      radial-gradient(circle at 18% 16%, rgba(255, 211, 122, 0.28), transparent 26%),
      radial-gradient(circle at 82% 20%, rgba(137, 216, 255, 0.28), transparent 28%),
      radial-gradient(circle at 70% 88%, rgba(118, 99, 255, 0.20), transparent 34%),
      linear-gradient(135deg, var(--bg-a), var(--bg-b));
    overflow: hidden;
  }

  .stage {
    width: 1280px;
    height: 800px;
    max-width: 100vw;
    max-height: 100vh;
    margin: 0 auto;
    padding: 58px 74px;
    position: relative;
    display: grid;
    place-items: center;
  }

  .orb {
    position: absolute;
    border-radius: 999px;
    filter: blur(2px);
    opacity: 0.7;
    pointer-events: none;
  }

  .orb.one {
    width: 330px;
    height: 330px;
    left: 80px;
    top: 55px;
    background: radial-gradient(circle, rgba(255, 211, 122, 0.26), rgba(255, 211, 122, 0));
  }

  .orb.two {
    width: 420px;
    height: 420px;
    right: 80px;
    bottom: 28px;
    background: radial-gradient(circle, rgba(93, 190, 255, 0.20), rgba(93, 190, 255, 0));
  }

  .card {
    width: 100%;
    height: 100%;
    position: relative;
    border: 1px solid var(--line);
    border-radius: 38px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08)),
      rgba(255, 255, 255, 0.08);
    box-shadow:
      0 32px 90px rgba(0, 0, 0, 0.34),
      inset 0 1px 0 rgba(255, 255, 255, 0.26);
    backdrop-filter: blur(26px);
    -webkit-backdrop-filter: blur(26px);
    overflow: hidden;
  }

  .card::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      linear-gradient(110deg, rgba(255, 255, 255, 0.22), transparent 34%),
      radial-gradient(circle at 78% 18%, rgba(255, 255, 255, 0.18), transparent 24%);
    pointer-events: none;
  }

  .content {
    position: relative;
    z-index: 1;
    height: 100%;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 34px;
    padding: 46px;
  }

  .top {
    display: flex;
    justify-content: space-between;
    gap: 36px;
    align-items: flex-start;
  }

  .eyebrow {
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 15px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
  }

  h1 {
    margin: 0;
    font-size: 62px;
    line-height: 0.98;
    letter-spacing: -0.06em;
    max-width: 650px;
  }

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

  .badge {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    color: var(--muted);
    font-size: 17px;
    white-space: nowrap;
  }

  .badge-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--warm);
    box-shadow: 0 0 24px var(--warm);
  }

  .main {
    display: grid;
    grid-template-columns: 390px 1fr;
    gap: 34px;
    min-height: 0;
  }

  .summary {
    border: 1px solid var(--line);
    border-radius: 30px;
    padding: 34px;
    background: rgba(255, 255, 255, 0.10);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
  }

  .condition-art {
    height: 190px;
    position: relative;
    display: grid;
    place-items: center;
  }

  .sun {
    width: 116px;
    height: 116px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 32%, #fff8ca, #ffd36f 48%, #ff9f43);
    box-shadow: 0 0 58px rgba(255, 200, 91, 0.58);
  }

  .cloud {
    position: absolute;
    width: 152px;
    height: 58px;
    left: 122px;
    top: 82px;
    border-radius: 999px;
    background: rgba(238, 248, 255, 0.88);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.18);
  }

  .cloud::before,
  .cloud::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: inherit;
  }

  .cloud::before {
    width: 78px;
    height: 78px;
    left: 22px;
    bottom: 22px;
  }

  .cloud::after {
    width: 58px;
    height: 58px;
    right: 24px;
    bottom: 26px;
  }

  .rain {
    position: absolute;
    left: 154px;
    top: 148px;
    width: 96px;
    height: 52px;
    background:
      linear-gradient(115deg, transparent 0 42%, rgba(137, 216, 255, 0.95) 43% 52%, transparent 53%) 0 0 / 30px 48px repeat-x;
    opacity: 0;
  }

  .summary.rainy .rain,
  .summary.stormy .rain,
  .summary.snowy .rain {
    opacity: 1;
  }

  .summary.clear .cloud {
    opacity: 0.15;
    transform: translateX(28px) scale(0.8);
  }

  .summary.cloudy .sun {
    opacity: 0.45;
    transform: translate(-22px, -10px) scale(0.9);
  }

  .summary.rainy .sun,
  .summary.stormy .sun,
  .summary.snowy .sun,
  .summary.foggy .sun {
    opacity: 0.18;
  }

  .summary.foggy .cloud {
    filter: blur(7px);
    opacity: 0.72;
  }

  .summary.snowy .rain {
    background:
      radial-gradient(circle, rgba(247, 251, 255, 0.95) 0 3px, transparent 4px) 0 0 / 26px 26px;
  }

  .summary.stormy .condition-art::after {
    content: "";
    position: absolute;
    left: 178px;
    top: 132px;
    width: 34px;
    height: 68px;
    background: #ffe66f;
    clip-path: polygon(42% 0, 100% 0, 62% 42%, 92% 42%, 22% 100%, 42% 54%, 8% 54%);
    filter: drop-shadow(0 0 16px rgba(255, 230, 111, 0.8));
  }

  .temp-now {
    font-size: 90px;
    letter-spacing: -0.08em;
    line-height: 0.9;
    margin: 4px 0 20px;
  }

  .condition {
    font-size: 26px;
    font-weight: 650;
    letter-spacing: -0.03em;
  }

  .range {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 28px;
  }

  .range-card {
    padding: 19px;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.14);
  }

  .range-card span {
    display: block;
    color: var(--soft);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    margin-bottom: 8px;
  }

  .range-card strong {
    font-size: 34px;
    letter-spacing: -0.05em;
  }

  .detail {
    border: 1px solid var(--line);
    border-radius: 30px;
    padding: 30px 32px;
    background: rgba(255, 255, 255, 0.08);
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 20px;
  }

  .detail-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: baseline;
  }

  .detail h2 {
    margin: 0;
    font-size: 28px;
    letter-spacing: -0.04em;
  }

  .detail-note {
    color: var(--muted);
    font-size: 15px;
  }

  .chart-wrap {
    min-height: 0;
    border-radius: 24px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03));
    border: 1px solid rgba(255, 255, 255, 0.13);
    overflow: hidden;
    position: relative;
  }

  svg {
    display: block;
    width: 100%;
    height: 100%;
  }

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

  .axis-label,
  .point-label {
    fill: rgba(247, 251, 255, 0.64);
    font-size: 12px;
  }

  .point-label {
    font-weight: 650;
  }

  .temp-line {
    fill: none;
    stroke: url(#tempGradient);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 10px 18px rgba(255, 181, 88, 0.23));
  }

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

  .temp-dot {
    fill: #fff6ca;
    stroke: rgba(255, 158, 67, 0.9);
    stroke-width: 3;
  }

  .hours {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 10px;
  }

  .hour-pill {
    min-width: 0;
    padding: 12px 8px;
    border-radius: 16px;
    text-align: center;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.12);
  }

  .hour-pill .h {
    color: var(--soft);
    font-size: 12px;
    margin-bottom: 6px;
  }

  .hour-pill .t {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.04em;
  }

  .state {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    padding: 50px;
    text-align: center;
    background:
      radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.10), transparent 32%),
      rgba(8, 13, 27, 0.34);
  }

  .state-card {
    max-width: 560px;
    border: 1px solid var(--line);
    border-radius: 30px;
    padding: 34px;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.26);
  }

  .state-title {
    margin: 0 0 12px;
    font-size: 34px;
    letter-spacing: -0.05em;
  }

  .state-text {
    margin: 0;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.55;
  }

  .hidden {
    display: none;
  }

  @media (max-width: 900px) {
    body {
      overflow: auto;
    }

    .stage {
      width: 100%;
      height: auto;
      min-height: 100vh;
      padding: 20px;
    }

    .content {
      padding: 24px;
    }

    .top,
    .main {
      grid-template-columns: 1fr;
      display: grid;
    }

    h1 {
      font-size: 42px;
    }

    .hours {
      grid-template-columns: repeat(4, 1fr);
    }
  }
</style>
</head>
<body>
  <main class="stage">
    <div class="orb one"></div>
    <div class="orb two"></div>

    <section class="card" aria-label="Weather card">
      <div id="loading" class="state">
        <div class="state-card">
          <h2 class="state-title">Loading weather</h2>
          <p class="state-text">Fetching the requested day from the local weather API.</p>
        </div>
      </div>

      <div id="error" class="state hidden">
        <div class="state-card">
          <h2 class="state-title">Weather unavailable</h2>
          <p class="state-text">The weather data could not be loaded for this location and date.</p>
        </div>
      </div>

      <div class="content" id="content" aria-live="polite">
        <header class="top">
          <div>
            <p class="eyebrow">Daily Forecast</p>
            <h1 id="locationName">Berlin</h1>
            <div class="date" id="dateLabel"></div>
          </div>
          <div class="badge">
            <span class="badge-dot"></span>
            <span id="sourceLabel">UTC weather data</span>
          </div>
        </header>

        <section class="main">
          <aside class="summary clear" id="summaryCard">
            <div>
              <div class="condition-art" aria-hidden="true">
                <div class="sun"></div>
                <div class="cloud"></div>
                <div class="rain"></div>
              </div>
              <div class="temp-now" id="primaryTemp">--&deg;</div>
              <div class="condition" id="conditionLabel">Loading</div>
            </div>

            <div class="range">
              <div class="range-card">
                <span>High</span>
                <strong id="maxTemp">--&deg;</strong>
              </div>
              <div class="range-card">
                <span>Low</span>
                <strong id="minTemp">--&deg;</strong>
              </div>
            </div>
          </aside>

          <section class="detail">
            <div class="detail-head">
              <h2>Hourly Temperature</h2>
              <div class="detail-note" id="hourCount">24 hourly readings</div>
            </div>
            <div class="chart-wrap">
              <svg id="chart" role="img" aria-label="Hourly temperature chart" viewBox="0 0 650 330" preserveAspectRatio="none"></svg>
            </div>
          </section>
        </section>

        <section class="hours" id="hours"></section>
      </div>
    </section>
  </main>

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

  var params = new URLSearchParams(window.location.search);
  var today = utcToday();
  var requestedDate = validDate(params.get("date")) ? params.get("date") : today;
  var lat = validNumber(params.get("lat")) ? Number(params.get("lat")) : 52.52;
  var lon = validNumber(params.get("lon")) ? Number(params.get("lon")) : 13.405;
  var name = (params.get("name") || "Berlin").trim() || "Berlin";

  var els = {
    loading: document.getElementById("loading"),
    error: document.getElementById("error"),
    locationName: document.getElementById("locationName"),
    dateLabel: document.getElementById("dateLabel"),
    sourceLabel: document.getElementById("sourceLabel"),
    summaryCard: document.getElementById("summaryCard"),
    primaryTemp: document.getElementById("primaryTemp"),
    conditionLabel: document.getElementById("conditionLabel"),
    maxTemp: document.getElementById("maxTemp"),
    minTemp: document.getElementById("minTemp"),
    hourCount: document.getElementById("hourCount"),
    chart: document.getElementById("chart"),
    hours: document.getElementById("hours")
  };

  els.locationName.textContent = name;
  els.dateLabel.textContent = formatDate(requestedDate);
  els.sourceLabel.textContent = requestedDate < today ? "UTC archive data" : "UTC forecast data";

  loadWeather().catch(showError);

  function loadWeather() {
    var endpoint = requestedDate < today ? "/api/om/archive" : "/api/om/forecast";
    var 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
    });

    return fetch(endpoint + "?" + query.toString(), { cache: "no-store" })
      .then(function (response) {
        if (!response.ok) throw new Error("Weather request failed");
        return response.json();
      })
      .then(function (data) {
        var parsed = parseWeather(data);
        render(parsed);
      });
  }

  function parseWeather(data) {
    if (!data || !data.daily || !data.hourly) throw new Error("Missing weather data");

    var dailyIndex = Array.isArray(data.daily.time) ? data.daily.time.indexOf(requestedDate) : 0;
    if (dailyIndex < 0) dailyIndex = 0;

    var max = valueAt(data.daily.temperature_2m_max, dailyIndex);
    var min = valueAt(data.daily.temperature_2m_min, dailyIndex);
    var code = valueAt(data.daily.weather_code, dailyIndex);

    if (!Number.isFinite(max) || !Number.isFinite(min) || !Number.isFinite(code)) {
      throw new Error("Incomplete daily weather data");
    }

    var times = Array.isArray(data.hourly.time) ? data.hourly.time : [];
    var temps = Array.isArray(data.hourly.temperature_2m) ? data.hourly.temperature_2m : [];
    var hourly = [];

    for (var i = 0; i < times.length; i += 1) {
      if (typeof times[i] === "string" && times[i].slice(0, 10) === requestedDate && Number.isFinite(Number(temps[i]))) {
        hourly.push({ time: times[i], temp: Number(temps[i]) });
      }
    }

    if (!hourly.length) throw new Error("No hourly weather data");

    return {
      max: Number(max),
      min: Number(min),
      code: Number(code),
      condition: describeWeather(Number(code)),
      hourly: hourly
    };
  }

  function render(weather) {
    var representative = nearestMidday(weather.hourly);
    els.primaryTemp.innerHTML = formatTemp(representative.temp);
    els.maxTemp.innerHTML = formatTemp(weather.max);
    els.minTemp.innerHTML = formatTemp(weather.min);
    els.conditionLabel.textContent = weather.condition.label;
    els.summaryCard.className = "summary " + weather.condition.mood;
    els.hourCount.textContent = weather.hourly.length + " hourly reading" + (weather.hourly.length === 1 ? "" : "s");

    drawChart(weather.hourly);
    drawHours(weather.hourly);

    els.loading.classList.add("hidden");
    els.error.classList.add("hidden");
  }

  function drawChart(hourly) {
    var width = 650;
    var height = 330;
    var pad = { top: 34, right: 30, bottom: 52, left: 44 };
    var temps = hourly.map(function (h) { return h.temp; });
    var min = Math.min.apply(null, temps);
    var max = Math.max.apply(null, temps);
    var spread = Math.max(4, max - min);
    var yMin = min - spread * 0.25;
    var yMax = max + spread * 0.25;
    var innerW = width - pad.left - pad.right;
    var innerH = height - pad.top - pad.bottom;

    function x(i) {
      return pad.left + (hourly.length === 1 ? innerW / 2 : i * innerW / (hourly.length - 1));
    }

    function y(temp) {
      return pad.top + (yMax - temp) * innerH / (yMax - yMin);
    }

    var points = hourly.map(function (h, i) {
      return [x(i), y(h.temp)];
    });

    var line = points.map(function (p, i) {
      return (i === 0 ? "M" : "L") + p[0].toFixed(1) + " " + p[1].toFixed(1);
    }).join(" ");

    var area = line + " L " + points[points.length - 1][0].toFixed(1) + " " + (height - pad.bottom) +
      " L " + points[0][0].toFixed(1) + " " + (height - pad.bottom) + " Z";

    var grid = "";
    for (var g = 0; g < 5; g += 1) {
      var gy = pad.top + g * innerH / 4;
      var label = yMax - g * (yMax - yMin) / 4;
      grid += '<line class="grid-line" x1="' + pad.left + '" y1="' + gy.toFixed(1) + '" x2="' + (width - pad.right) + '" y2="' + gy.toFixed(1) + '"></line>';
      grid += '<text class="axis-label" x="10" y="' + (gy + 4).toFixed(1) + '">' + Math.round(label) + '&deg;</text>';
    }

    var labels = "";
    var labelSlots = [0, 6, 12, 18, hourly.length - 1].filter(uniqueInRange(hourly.length));
    labelSlots.forEach(function (idx) {
      labels += '<text class="axis-label" text-anchor="middle" x="' + x(idx).toFixed(1) + '" y="' + (height - 20) + '">' + hourLabel(hourly[idx].time) + '</text>';
    });

    var dots = "";
    var dotSlots = [0, Math.floor((hourly.length - 1) / 2), hourly.length - 1].filter(uniqueInRange(hourly.length));
    dotSlots.forEach(function (idx) {
      var px = x(idx);
      var py = y(hourly[idx].temp);
      dots += '<circle class="temp-dot" cx="' + px.toFixed(1) + '" cy="' + py.toFixed(1) + '" r="5"></circle>';
      dots += '<text class="point-label" text-anchor="middle" x="' + px.toFixed(1) + '" y="' + (py - 12).toFixed(1) + '">' + Math.round(hourly[idx].temp) + '&deg;</text>';
    });

    els.chart.innerHTML =
      '<defs>' +
        '<linearGradient id="tempGradient" x1="0" y1="0" x2="1" y2="0">' +
          '<stop offset="0%" stop-color="#89d8ff"></stop>' +
          '<stop offset="52%" stop-color="#fff0a3"></stop>' +
          '<stop offset="100%" stop-color="#ff9f43"></stop>' +
        '</linearGradient>' +
        '<linearGradient id="areaGradient" x1="0" y1="0" x2="0" y2="1">' +
          '<stop offset="0%" stop-color="#ffd37a" stop-opacity="0.30"></stop>' +
          '<stop offset="100%" stop-color="#89d8ff" stop-opacity="0.02"></stop>' +
        '</linearGradient>' +
      '</defs>' +
      grid +
      '<path class="temp-area" d="' + area + '"></path>' +
      '<path class="temp-line" d="' + line + '"></path>' +
      dots +
      labels;
  }

  function drawHours(hourly) {
    els.hours.innerHTML = "";
    hourly.forEach(function (item, index) {
      if (hourly.length > 12 && index % 2 !== 0) return;
      var pill = document.createElement("div");
      pill.className = "hour-pill";

      var h = document.createElement("div");
      h.className = "h";
      h.textContent = hourLabel(item.time);

      var t = document.createElement("div");
      t.className = "t";
      t.innerHTML = formatTemp(item.temp);

      pill.appendChild(h);
      pill.appendChild(t);
      els.hours.appendChild(pill);
    });
  }

  function showError() {
    els.loading.classList.add("hidden");
    els.error.classList.remove("hidden");
  }

  function describeWeather(code) {
    var map = {
      0: ["Clear sky", "clear"],
      1: ["Mainly clear", "clear"],
      2: ["Partly cloudy", "cloudy"],
      3: ["Overcast", "cloudy"],
      45: ["Fog", "foggy"],
      48: ["Depositing rime fog", "foggy"],
      51: ["Light drizzle", "rainy"],
      53: ["Moderate drizzle", "rainy"],
      55: ["Dense drizzle", "rainy"],
      56: ["Freezing drizzle", "rainy"],
      57: ["Dense freezing drizzle", "rainy"],
      61: ["Slight rain", "rainy"],
      63: ["Moderate rain", "rainy"],
      65: ["Heavy rain", "rainy"],
      66: ["Freezing rain", "rainy"],
      67: ["Heavy freezing rain", "rainy"],
      71: ["Slight snow", "snowy"],
      73: ["Moderate snow", "snowy"],
      75: ["Heavy snow", "snowy"],
      77: ["Snow grains", "snowy"],
      80: ["Rain showers", "rainy"],
      81: ["Moderate rain showers", "rainy"],
      82: ["Violent rain showers", "rainy"],
      85: ["Snow showers", "snowy"],
      86: ["Heavy snow showers", "snowy"],
      95: ["Thunderstorm", "stormy"],
      96: ["Thunderstorm with hail", "stormy"],
      99: ["Severe thunderstorm with hail", "stormy"]
    };

    var item = map[code] || ["Unknown conditions", "cloudy"];
    return { label: item[0], mood: item[1] };
  }

  function nearestMidday(hourly) {
    var best = hourly[0];
    var bestDistance = Infinity;
    hourly.forEach(function (item) {
      var hour = Number(item.time.slice(11, 13));
      var distance = Math.abs(hour - 12);
      if (distance < bestDistance) {
        best = item;
        bestDistance = distance;
      }
    });
    return best;
  }

  function formatTemp(value) {
    return Math.round(Number(value)) + "&deg;";
  }

  function hourLabel(value) {
    var hour = value.slice(11, 13);
    return hour + ":00";
  }

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

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

  function validDate(value) {
    if (!/^\d{4}-\d{2}-\d{2}$/.test(value || "")) return false;
    var date = new Date(value + "T00:00:00Z");
    return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === value;
  }

  function validNumber(value) {
    return value !== null && value !== "" && Number.isFinite(Number(value));
  }

  function valueAt(array, index) {
    return Array.isArray(array) ? Number(array[index]) : NaN;
  }

  function uniqueInRange(length) {
    var seen = Object.create(null);
    return function (value) {
      var idx = Math.max(0, Math.min(length - 1, value));
      if (seen[idx]) return false;
      seen[idx] = true;
      return idx === value;
    };
  }
}());
</script>
</body>
</html>

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

bytes 总计23,083html / css / js2,689 / 9,614 / 10,780
dom 节点52dom 深度10
css 规则66含 js是
brightness91.3contrast39.7
colorfulness24.7留白34.6%

该 slot 的 telemetry

prompt tokens16,523completion tokens7,662
total tokens24,185wall85.3 s
cost—request id—
config.json556 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.5-eff-high--cli--cursor--dev",
  "effort": "high",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.5",
  "protocol": "cli",
  "served_model": "gpt-5.5-high",
  "telemetry": {
    "completion_tokens": 22589,
    "cost_usd": null,
    "prompt_tokens": 38437,
    "total_tokens": 61026,
    "wall_ms": 285888
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s3",
  "config_id": "gpt-5.5-eff-high--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T17:33:33.670870+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:32:08.372029+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:34:31.962170+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:33:37.921893+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:35:41.220541+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:34:35.151965+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:37:05.211673+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T17:35:44.726340+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
    }
  }
}