gpt-5.3-codex @ high · cursor-xl

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

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

similarity 邻居本 session 没有 similarity 数据 —— 这个 batch 没有计算 pairs。

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

  • namematch
  • conditionmatch
  • datematch
  • max tempambiguous展示值:17max-equals-min
  • min tempambiguous展示值:17max-equals-min
  • 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-1: #0b1220;
      --bg-2: #121f36;
      --bg-3: #1b3157;
      --glass: rgba(255, 255, 255, 0.12);
      --glass-strong: rgba(255, 255, 255, 0.2);
      --line: rgba(255, 255, 255, 0.24);
      --text: #eef4ff;
      --muted: #b9c6de;
      --accent: #7ec8ff;
      --hot: #ff8a65;
      --cold: #7cb7ff;
      --ok: #83ffc6;
      --warn: #ffd27d;
      --err: #ff9aa7;
    }

    * {
      box-sizing: border-box;
    }

    html, body {
      width: 100%;
      height: 100%;
      margin: 0;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
      color: var(--text);
      background: radial-gradient(1200px 600px at 15% 10%, #2a4f85 0%, transparent 50%),
                  radial-gradient(1100px 700px at 85% 90%, #18325e 0%, transparent 55%),
                  linear-gradient(145deg, var(--bg-1), var(--bg-2) 45%, var(--bg-3));
      overflow: hidden;
    }

    body::before {
      content: "";
      position: fixed;
      inset: -20%;
      background:
        linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
      background-size: 28px 28px, 28px 28px;
      transform: perspective(900px) rotateX(55deg) translateY(180px);
      opacity: 0.22;
      pointer-events: none;
    }

    .stage {
      width: min(1220px, calc(100vw - 48px));
      height: min(760px, calc(100vh - 48px));
      margin: 24px auto;
      padding: 22px;
      border-radius: 28px;
      background: linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0.06));
      border: 1px solid rgba(255,255,255,0.18);
      box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255,255,255,0.25);
      backdrop-filter: blur(10px);
      display: grid;
      grid-template-rows: auto auto 1fr;
      gap: 18px;
    }

    .header {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 24px;
      padding: 10px 14px;
      border-radius: 16px;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.16);
    }

    .title-wrap {
      min-width: 0;
    }

    .location {
      margin: 0;
      font-size: clamp(28px, 3vw, 42px);
      letter-spacing: 0.2px;
      line-height: 1.05;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .date {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 16px;
    }

    .status-pill {
      padding: 8px 12px;
      border-radius: 999px;
      font-size: 13px;
      color: #081225;
      background: linear-gradient(180deg, #b7e7ff, #7ec8ff);
      box-shadow: 0 10px 18px rgba(25, 127, 204, 0.35);
      white-space: nowrap;
    }

    .summary {
      display: grid;
      grid-template-columns: 1.25fr 0.75fr;
      gap: 18px;
      min-height: 220px;
    }

    .panel {
      border-radius: 22px;
      background: var(--glass);
      border: 1px solid var(--line);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
      position: relative;
      overflow: hidden;
    }

    .primary {
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      gap: 24px;
      padding: 24px 28px;
    }

    .weather-glyph {
      width: 124px;
      height: 124px;
      border-radius: 28px;
      display: grid;
      place-items: center;
      font-size: 62px;
      background: linear-gradient(160deg, rgba(255,255,255,0.32), rgba(255,255,255,0.08));
      border: 1px solid rgba(255,255,255,0.28);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.45),
        0 14px 26px rgba(0,0,0,0.25);
      text-shadow: 0 6px 16px rgba(0,0,0,0.25);
    }

    .condition {
      margin: 0 0 10px;
      font-size: clamp(24px, 2.3vw, 34px);
      letter-spacing: 0.15px;
    }

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

    .temp-chip {
      padding: 10px 14px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,0.22);
      font-size: 18px;
      background: rgba(255,255,255,0.08);
      white-space: nowrap;
    }

    .temp-chip strong {
      font-size: 26px;
      margin-right: 6px;
      vertical-align: baseline;
    }

    .temp-chip.max strong { color: var(--hot); }
    .temp-chip.min strong { color: var(--cold); }

    .meta {
      display: grid;
      grid-template-columns: 1fr;
      gap: 12px;
      padding: 24px;
      align-content: center;
    }

    .meta-row {
      padding: 12px 14px;
      border-radius: 14px;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.14);
      display: flex;
      justify-content: space-between;
      gap: 14px;
      color: var(--muted);
      font-size: 14px;
    }

    .meta-row b {
      color: var(--text);
      font-weight: 600;
    }

    .hourly {
      padding: 18px 18px 16px;
      display: grid;
      grid-template-rows: auto 1fr;
      gap: 12px;
      min-height: 0;
    }

    .hourly-title {
      margin: 0;
      font-size: 16px;
      color: var(--muted);
      letter-spacing: 0.3px;
    }

    .hour-scroll {
      min-height: 0;
      border-radius: 18px;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.14);
      padding: 14px;
      overflow: auto hidden;
    }

    .hour-grid {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: 62px;
      gap: 10px;
      align-items: end;
      min-height: 238px;
    }

    .hour-item {
      height: 224px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,0.17);
      background: linear-gradient(180deg, rgba(255,255,255,0.14), rgba(255,255,255,0.06));
      display: grid;
      grid-template-rows: auto 1fr auto;
      gap: 6px;
      padding: 8px 6px;
      text-align: center;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
    }

    .hour-time {
      font-size: 12px;
      color: var(--muted);
    }

    .bar-wrap {
      display: flex;
      align-items: flex-end;
      justify-content: center;
      padding: 4px 0;
    }

    .bar {
      width: 24px;
      border-radius: 10px 10px 7px 7px;
      background: linear-gradient(180deg, #b7e7ff, #7ec8ff 45%, #4ea7ff);
      border: 1px solid rgba(255,255,255,0.3);
      box-shadow: 0 8px 16px rgba(25, 127, 204, 0.35);
      min-height: 12px;
      transition: height 420ms ease;
    }

    .hour-temp {
      font-weight: 600;
      font-size: 13px;
      color: #eaf5ff;
      letter-spacing: 0.1px;
    }

    .message {
      position: absolute;
      inset: 0;
      display: none;
      place-items: center;
      text-align: center;
      padding: 24px;
      background: linear-gradient(180deg, rgba(9,16,30,0.68), rgba(9,16,30,0.9));
      backdrop-filter: blur(4px);
      border-radius: inherit;
      font-size: 20px;
      line-height: 1.4;
      color: #e8efff;
    }

    .message.show {
      display: grid;
    }

    .message small {
      display: block;
      margin-top: 8px;
      color: var(--muted);
      font-size: 14px;
    }

    .ok { color: var(--ok); }
    .warn { color: var(--warn); }
    .err { color: var(--err); }

    .hour-scroll::-webkit-scrollbar {
      height: 10px;
    }

    .hour-scroll::-webkit-scrollbar-track {
      background: rgba(255,255,255,0.08);
      border-radius: 999px;
    }

    .hour-scroll::-webkit-scrollbar-thumb {
      background: rgba(167, 219, 255, 0.6);
      border-radius: 999px;
    }

    @media (max-width: 980px) {
      .summary {
        grid-template-columns: 1fr;
      }
      .meta {
        grid-template-columns: repeat(2, 1fr);
      }
    }
  </style>
</head>
<body>
  <main class="stage">
    <section class="header">
      <div class="title-wrap">
        <h1 id="location" class="location">Loading...</h1>
        <p id="date" class="date">Preparing weather card</p>
      </div>
      <div id="statusPill" class="status-pill">Loading weather</div>
    </section>

    <section class="summary">
      <article class="panel primary">
        <div id="glyph" class="weather-glyph" aria-hidden="true">⛅</div>
        <div>
          <h2 id="condition" class="condition">Loading condition...</h2>
          <div class="temps">
            <div class="temp-chip max"><strong id="tmax">--</strong><span>&deg;C max</span></div>
            <div class="temp-chip min"><strong id="tmin">--</strong><span>&deg;C min</span></div>
          </div>
        </div>
      </article>
      <aside class="panel meta">
        <div class="meta-row"><span>Latitude</span><b id="latText">--</b></div>
        <div class="meta-row"><span>Longitude</span><b id="lonText">--</b></div>
        <div class="meta-row"><span>Source</span><b id="sourceText">--</b></div>
        <div class="meta-row"><span>Timezone</span><b>UTC</b></div>
      </aside>
    </section>

    <section class="panel hourly">
      <h3 class="hourly-title">Hourly temperatures</h3>
      <div class="hour-scroll">
        <div id="hourGrid" class="hour-grid"></div>
      </div>
      <div id="message" class="message" role="status" aria-live="polite"></div>
    </section>
  </main>

  <script>
    (function () {
      const defaults = {
        lat: 52.52,
        lon: 13.405,
        name: "Berlin"
      };

      const codeMap = {
        0: { label: "Clear sky", glyph: "☀️" },
        1: { label: "Mainly clear", glyph: "🌤️" },
        2: { label: "Partly cloudy", glyph: "⛅" },
        3: { label: "Overcast", glyph: "☁️" },
        45: { label: "Fog", glyph: "🌫️" },
        48: { label: "Rime fog", glyph: "🌫️" },
        51: { label: "Light drizzle", glyph: "🌦️" },
        53: { label: "Drizzle", glyph: "🌦️" },
        55: { label: "Dense drizzle", glyph: "🌧️" },
        56: { label: "Freezing drizzle", glyph: "🌧️" },
        57: { label: "Dense freezing drizzle", glyph: "🌧️" },
        61: { label: "Slight rain", glyph: "🌧️" },
        63: { label: "Rain", glyph: "🌧️" },
        65: { label: "Heavy rain", glyph: "🌧️" },
        66: { label: "Freezing rain", glyph: "🌧️" },
        67: { label: "Heavy freezing rain", glyph: "🌧️" },
        71: { label: "Slight snow", glyph: "🌨️" },
        73: { label: "Snow", glyph: "🌨️" },
        75: { label: "Heavy snow", glyph: "❄️" },
        77: { label: "Snow grains", glyph: "❄️" },
        80: { label: "Rain showers", glyph: "🌦️" },
        81: { label: "Rain showers", glyph: "🌧️" },
        82: { label: "Violent rain showers", glyph: "⛈️" },
        85: { label: "Snow showers", glyph: "🌨️" },
        86: { label: "Heavy snow showers", glyph: "❄️" },
        95: { label: "Thunderstorm", glyph: "⛈️" },
        96: { label: "Thunderstorm with hail", glyph: "⛈️" },
        99: { label: "Severe thunderstorm with hail", glyph: "⛈️" }
      };

      const $ = (id) => document.getElementById(id);

      const ui = {
        location: $("location"),
        date: $("date"),
        statusPill: $("statusPill"),
        glyph: $("glyph"),
        condition: $("condition"),
        tmax: $("tmax"),
        tmin: $("tmin"),
        latText: $("latText"),
        lonText: $("lonText"),
        sourceText: $("sourceText"),
        hourGrid: $("hourGrid"),
        message: $("message")
      };

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

      function validDateString(s) {
        if (!/^\d{4}-\d{2}-\d{2}$/.test(s)) return false;
        const d = new Date(s + "T00:00:00Z");
        return Number.isFinite(d.getTime()) && d.toISOString().slice(0, 10) === s;
      }

      function parseInput() {
        const q = new URLSearchParams(window.location.search);
        const lat = Number.parseFloat(q.get("lat"));
        const lon = Number.parseFloat(q.get("lon"));
        const nameRaw = q.get("name");
        const dateRaw = q.get("date");

        const date = validDateString(dateRaw || "") ? dateRaw : utcToday();

        return {
          latitude: Number.isFinite(lat) ? lat : defaults.lat,
          longitude: Number.isFinite(lon) ? lon : defaults.lon,
          name: nameRaw && nameRaw.trim() ? nameRaw.trim() : defaults.name,
          date
        };
      }

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

      function pickEndpoint(date) {
        return date < utcToday() ? "/api/om/archive" : "/api/om/forecast";
      }

      function weatherInfo(code) {
        return codeMap[code] || { label: "Unknown weather", glyph: "❔" };
      }

      function setMessage(text, detail, isError) {
        ui.message.className = "message show";
        ui.message.innerHTML = isError
          ? '<div><span class="err">' + text + "</span>" + (detail ? "<small>" + detail + "</small>" : "") + "</div>"
          : "<div>" + text + (detail ? "<small>" + detail + "</small>" : "") + "</div>";
      }

      function clearMessage() {
        ui.message.className = "message";
        ui.message.textContent = "";
      }

      function fmtTemp(v) {
        return Number.isFinite(v) ? Math.round(v) : null;
      }

      function renderHourly(times, temps, date) {
        ui.hourGrid.innerHTML = "";

        const rows = [];
        const n = Math.min(times.length, temps.length);

        for (let i = 0; i < n; i++) {
          const t = times[i];
          if (typeof t === "string" && t.startsWith(date) && Number.isFinite(temps[i])) {
            rows.push({ time: t, temp: temps[i] });
          }
        }

        if (!rows.length) {
          setMessage("No hourly data available for this date.");
          return;
        }

        clearMessage();

        let min = Infinity;
        let max = -Infinity;
        for (const r of rows) {
          if (r.temp < min) min = r.temp;
          if (r.temp > max) max = r.temp;
        }
        const span = Math.max(1, max - min);

        for (const r of rows) {
          const hour = r.time.slice(11, 16);
          const h = 20 + ((r.temp - min) / span) * 128;
          const item = document.createElement("div");
          item.className = "hour-item";
          item.innerHTML =
            '<div class="hour-time">' + hour + "</div>" +
            '<div class="bar-wrap"><div class="bar" style="height:' + h.toFixed(1) + 'px"></div></div>' +
            '<div class="hour-temp">' + Math.round(r.temp) + "&deg;</div>";
          ui.hourGrid.appendChild(item);
        }
      }

      async function load() {
        const input = parseInput();

        ui.location.textContent = input.name;
        ui.date.textContent = formatDateUTC(input.date) + " (UTC)";
        ui.latText.textContent = input.latitude.toFixed(3);
        ui.lonText.textContent = input.longitude.toFixed(3);
        ui.statusPill.textContent = "Loading weather";
        ui.statusPill.style.background = "linear-gradient(180deg, #b7e7ff, #7ec8ff)";
        ui.sourceText.textContent = "Pending";

        const endpoint = pickEndpoint(input.date);
        ui.sourceText.textContent = endpoint.endsWith("archive") ? "Archive API" : "Forecast API";

        const params = new URLSearchParams({
          latitude: String(input.latitude),
          longitude: String(input.longitude),
          daily: "temperature_2m_max,temperature_2m_min,weather_code",
          hourly: "temperature_2m",
          timezone: "UTC",
          temperature_unit: "celsius",
          start_date: input.date,
          end_date: input.date
        });

        try {
          const res = await fetch(endpoint + "?" + params.toString(), { method: "GET" });
          if (!res.ok) {
            throw new Error("HTTP " + res.status);
          }
          const data = await res.json();

          const daily = data && data.daily ? data.daily : {};
          const tMaxRaw = daily.temperature_2m_max && daily.temperature_2m_max[0];
          const tMinRaw = daily.temperature_2m_min && daily.temperature_2m_min[0];
          const codeRaw = daily.weather_code && daily.weather_code[0];

          if (!Number.isFinite(tMaxRaw) || !Number.isFinite(tMinRaw) || !Number.isFinite(codeRaw)) {
            throw new Error("Missing daily weather fields");
          }

          const info = weatherInfo(codeRaw);
          const tMax = fmtTemp(tMaxRaw);
          const tMin = fmtTemp(tMinRaw);

          ui.glyph.textContent = info.glyph;
          ui.condition.textContent = info.label;
          ui.tmax.textContent = String(tMax);
          ui.tmin.textContent = String(tMin);

          const hourly = data && data.hourly ? data.hourly : {};
          const times = Array.isArray(hourly.time) ? hourly.time : [];
          const temps = Array.isArray(hourly.temperature_2m) ? hourly.temperature_2m : [];
          renderHourly(times, temps, input.date);

          ui.statusPill.textContent = "Weather loaded";
          ui.statusPill.style.background = "linear-gradient(180deg, #c6ffe4, #83ffc6)";
        } catch (err) {
          ui.statusPill.textContent = "Load failed";
          ui.statusPill.style.background = "linear-gradient(180deg, #ffd2d9, #ff9aa7)";
          ui.condition.textContent = "Weather unavailable";
          ui.glyph.textContent = "⚠️";
          ui.tmax.textContent = "--";
          ui.tmin.textContent = "--";
          ui.hourGrid.innerHTML = "";
          setMessage("Weather data could not be loaded.", "Please check the API availability or query parameters.", true);
        }
      }

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

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

bytes 总计18,053html / css / js1,712 / 7,737 / 8,604
dom 节点44dom 深度9
css 规则44含 js
brightness84.0contrast30.8
colorfulness29.2留白45.4%

该 slot 的 telemetry

prompt tokens1,925completion tokens6,824
total tokens8,749wall63.6 s
costrequest id
config.json576 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.3-codex-eff-high--cli--cursor-xl--dev",
  "effort": "high",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.3-codex",
  "protocol": "cli",
  "served_model": "gpt-5.3-codex-high",
  "telemetry": {
    "completion_tokens": 23628,
    "cost_usd": null,
    "prompt_tokens": 7690,
    "total_tokens": 31318,
    "wall_ms": 241629
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-xl-s2",
  "config_id": "gpt-5.3-codex-eff-high--cli--cursor-xl--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-13T08:34:41.519402+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T08:33:56.658022+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-13T08:35:49.697320+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T08:34:46.101763+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-13T08:36:58.258239+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T08:35:53.135663+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-13T08:38:10.362889+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T08:37:02.303484+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
    }
  }
}