grok-4.6 @ xhigh · grok-cli

grok-clixhigh
config
grok-4.6-eff-xhigh--cli--grok--dev
batch
2026-07-19--unified
transport
grok-cli-oauth-isolated-home
protocol
cli · plan
served model
grok-4.6
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 1 · P-q · sandboxed iframe
grok-4.6 @xhigh · grok-cli P-q slot 1 截图

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

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

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

  • namematch
  • conditionmatch
  • datematch
  • max tempmatch展示值:25.3
  • min tempmatch展示值:16
  • hourlymatchcoverage 24/24 · 24 命中 · 0 不符 · 0 未展示
  • 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=1280, height=800, initial-scale=1">
<title>Weather</title>
<style>
  :root {
    --sky0: #5d6d78;
    --sky1: #8b98a0;
    --sky2: #c3cbc8;
    --glow: rgba(232, 228, 214, 0.45);
    --paper: #efe6d6;
    --ink: #1b1712;
    --muted: rgba(27, 23, 18, 0.56);
    --faint: rgba(27, 23, 18, 0.38);
    --line: rgba(27, 23, 18, 0.14);
    --high: #9a3b16;
    --low: #1f4d5c;
    --bar: #2a3330;
    --bar-hi: #9a3b16;
    --bar-lo: #1f4d5c;
    --rule: #b4532a;
    --rain: rgba(255, 255, 255, 0.22);
    --blob: rgba(236, 238, 236, 0.28);
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: var(--paper);
    color: var(--ink);
    font-family: "Iowan Old Style", Palatino, "Palatino Linotype", "Book Antiqua", Georgia, "Times New Roman", serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  body {
    display: flex;
    flex-direction: column;
  }

  .sans {
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  }

  #sky {
    position: relative;
    height: 292px;
    flex: 0 0 292px;
    overflow: hidden;
    background:
      radial-gradient(ellipse 70% 55% at 78% 18%, var(--glow), transparent 62%),
      radial-gradient(ellipse 50% 40% at 18% 70%, rgba(255,255,255,0.16), transparent 70%),
      linear-gradient(180deg, var(--sky0) 0%, var(--sky1) 52%, var(--sky2) 100%);
  }

  #sky .blobs { position: absolute; inset: 0; pointer-events: none; }
  .blob {
    position: absolute;
    border-radius: 50%;
    background: var(--blob);
    filter: blur(10px);
  }
  .b1 { width: 420px; height: 150px; left: -80px; top: 22px; opacity: 0.9; }
  .b2 { width: 280px; height: 100px; left: 220px; top: 8px; opacity: 0.55; }
  .b3 { width: 240px; height: 88px; left: 70px; top: 78px; opacity: 0.45; }
  .b4 { width: 160px; height: 64px; right: 280px; top: 28px; opacity: 0.4; }

  #wx-art {
    position: absolute;
    right: 72px;
    top: 28px;
    width: 248px;
    height: 176px;
    z-index: 2;
    filter: drop-shadow(0 10px 18px rgba(20, 24, 28, 0.18));
  }
  #wx-art svg { width: 100%; height: 100%; display: block; }

  #rain, #snow, #fog, #sun {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    display: none;
  }
  body[data-kind="rain"] #rain,
  body[data-kind="storm"] #rain { display: block; }
  body[data-kind="snow"] #snow { display: block; }
  body[data-kind="fog"] #fog { display: block; }
  body[data-kind="clear"] #sun,
  body[data-kind="mainly"] #sun { display: block; }

  #rain {
    background: repeating-linear-gradient(
      76deg,
      transparent 0 13px,
      var(--rain) 13px 14px
    );
    opacity: 0.85;
  }
  body[data-kind="storm"] #rain { opacity: 1; }

  #snow {
    background-image:
      radial-gradient(circle, rgba(255,255,255,0.9) 1.1px, transparent 1.2px),
      radial-gradient(circle, rgba(255,255,255,0.55) 0.9px, transparent 1px),
      radial-gradient(circle, rgba(255,255,255,0.7) 1.3px, transparent 1.4px);
    background-size: 52px 64px, 37px 48px, 71px 82px;
    background-position: 0 0, 18px 12px, 30px 40px;
  }

  #fog {
    background:
      linear-gradient(180deg, transparent 0%, rgba(232,232,228,0.2) 30%, rgba(232,232,228,0.55) 70%, rgba(232,232,228,0.15) 100%);
  }

  #sun {
    background: radial-gradient(circle at 76% 28%, rgba(255, 228, 160, 0.95) 0 38px, rgba(255, 200, 110, 0.35) 70px, transparent 120px);
  }

  #horizon-wrap {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 132px;
    z-index: 3;
    pointer-events: none;
  }
  #horizon-wrap svg { width: 100%; height: 100%; display: block; }

  #join {
    height: 10px;
    background: linear-gradient(180deg, rgba(27,23,18,0.12), transparent);
    position: relative;
    z-index: 4;
  }

  #sheet {
    flex: 1;
    min-height: 0;
    position: relative;
    padding: 28px 56px 26px;
    display: flex;
    flex-direction: column;
    background:
      radial-gradient(ellipse 80% 40% at 50% 0%, rgba(255,255,255,0.35), transparent 55%),
      var(--paper);
  }

  #sheet::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.35;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.12  0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  header.top {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 32px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
  }

  .kicker {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--faint);
    font-weight: 600;
    margin-bottom: 8px;
  }

  #place {
    font-size: 64px;
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 0.92;
    font-variation-settings: "opsz" 64;
    max-width: 720px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .meta {
    text-align: right;
    padding-bottom: 6px;
    flex: 0 0 auto;
  }

  #date {
    font-size: 18px;
    letter-spacing: -0.01em;
    margin-bottom: 6px;
  }

  #condition {
    font-size: 15px;
    color: var(--muted);
    font-style: italic;
  }

  .range {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    padding: 22px 0 18px;
  }

  .bound {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .bound + .bound {
    padding-left: 48px;
    border-left: 1px solid var(--line);
  }

  .lbl {
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--faint);
    font-weight: 650;
  }

  .val {
    font-size: 84px;
    font-weight: 380;
    letter-spacing: -0.045em;
    line-height: 0.92;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1, "ss01" 1;
  }

  #tmax { color: var(--high); }
  #tmin { color: var(--low); }

  .hours-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 2px 0 10px;
  }

  .hours-head h2 {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--faint);
    font-weight: 650;
  }

  .hours-head span {
    font-size: 11px;
    color: var(--faint);
    letter-spacing: 0.08em;
  }

  #hours {
    position: relative;
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(24, 1fr);
    gap: 0 3px;
    align-items: end;
  }

  .col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    min-width: 0;
  }

  .bar-slot {
    flex: 1;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 88px;
  }

  .bar {
    width: 46%;
    max-width: 14px;
    min-height: 6px;
    border-radius: 2px 2px 0 0;
    background: var(--bar);
    opacity: 0.82;
  }

  .col.is-max .bar { background: var(--bar-hi); opacity: 1; }
  .col.is-min .bar { background: var(--bar-lo); opacity: 1; }

  .htemp {
    margin-top: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    color: var(--ink);
    line-height: 1;
    white-space: nowrap;
  }

  .hhour {
    margin-top: 4px;
    font-size: 9px;
    letter-spacing: 0.02em;
    color: var(--faint);
    font-variant-numeric: tabular-nums;
    line-height: 1;
  }

  #status {
    position: absolute;
    inset: 292px 0 0 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--paper);
    z-index: 6;
    text-align: center;
    padding: 40px;
  }

  #status[hidden] { display: none !important; }

  #status .mark {
    width: 42px;
    height: 3px;
    background: var(--rule);
    margin-bottom: 8px;
  }

  #status h2 {
    font-size: 34px;
    font-weight: 500;
    letter-spacing: -0.03em;
  }

  #status p {
    font-size: 16px;
    color: var(--muted);
    max-width: 420px;
    line-height: 1.45;
  }

  #status.loading h2 { font-size: 22px; font-weight: 400; color: var(--muted); }

  body[data-kind="clear"] {
    --sky0: #2f6fba;
    --sky1: #7eb7de;
    --sky2: #f0c98a;
    --glow: rgba(255, 236, 176, 0.7);
    --blob: rgba(255,255,255,0.22);
    --paper: #f4ead8;
    --high: #b45309;
    --low: #1d4e89;
    --bar: #3d4a3c;
  }
  body[data-kind="mainly"] {
    --sky0: #3b7cbc;
    --sky1: #8cbcd8;
    --sky2: #e7c9a0;
    --glow: rgba(255, 230, 170, 0.55);
    --paper: #f2eadc;
  }
  body[data-kind="partly"] {
    --sky0: #4b7ea8;
    --sky1: #97b6c4;
    --sky2: #d9c5a4;
    --glow: rgba(255,255,255,0.35);
    --paper: #efe6d6;
  }
  body[data-kind="overcast"] {
    --sky0: #6a7278;
    --sky1: #8f969a;
    --sky2: #c2c4be;
    --glow: rgba(220,220,220,0.25);
    --blob: rgba(230,232,232,0.4);
    --paper: #e9e2d4;
  }
  body[data-kind="fog"] {
    --sky0: #8b8e90;
    --sky1: #b4b6b4;
    --sky2: #d8d6ce;
    --glow: rgba(255,255,255,0.5);
    --blob: rgba(255,255,255,0.45);
    --paper: #ebe6db;
    --ink: #2a2722;
  }
  body[data-kind="rain"] {
    --sky0: #3e4d58;
    --sky1: #6d7c84;
    --sky2: #aeb8b6;
    --glow: rgba(210, 220, 220, 0.28);
    --blob: rgba(220,228,228,0.28);
    --paper: #e9e2d3;
    --high: #8d2f12;
    --low: #1b4a58;
  }
  body[data-kind="snow"] {
    --sky0: #8fa0b0;
    --sky1: #c5d0d8;
    --sky2: #e8e6e0;
    --glow: rgba(255,255,255,0.7);
    --blob: rgba(255,255,255,0.5);
    --paper: #f2eee6;
    --ink: #22262b;
    --high: #9a3412;
    --low: #1e3a5f;
  }
  body[data-kind="storm"] {
    --sky0: #1a1528;
    --sky1: #3a2d4e;
    --sky2: #6d5a6a;
    --glow: rgba(180, 160, 220, 0.28);
    --blob: rgba(80,70,100,0.45);
    --rain: rgba(220, 220, 230, 0.28);
    --paper: #e6dfd2;
    --high: #9f1239;
    --low: #1e3a5f;
  }
</style>
</head>
<body data-kind="overcast">
  <div id="sky" aria-hidden="true">
    <div class="blobs">
      <div class="blob b1"></div>
      <div class="blob b2"></div>
      <div class="blob b3"></div>
      <div class="blob b4"></div>
    </div>
    <div id="sun"></div>
    <div id="rain"></div>
    <div id="snow"></div>
    <div id="fog"></div>
    <div id="wx-art"></div>
    <div id="horizon-wrap">
      <svg viewBox="0 0 23 10" preserveAspectRatio="none" aria-hidden="true">
        <path id="horizon-fill" fill="rgba(32,28,24,0.22)" d="M0 10 H23 V10 Z"></path>
        <path id="horizon-line" fill="none" stroke="rgba(24,20,16,0.22)" stroke-width="0.08" d=""></path>
      </svg>
    </div>
  </div>
  <div id="join"></div>
  <main id="sheet">
    <header class="top">
      <div>
        <p class="kicker sans">Daily weather</p>
        <h1 id="place"></h1>
      </div>
      <div class="meta">
        <p id="date"></p>
        <p id="condition"></p>
      </div>
    </header>
    <section class="range">
      <div class="bound">
        <div class="lbl sans">High</div>
        <div class="val sans" id="tmax"></div>
      </div>
      <div class="bound">
        <div class="lbl sans">Low</div>
        <div class="val sans" id="tmin"></div>
      </div>
    </section>
    <div class="hours-head">
      <h2 class="sans">Hourly temperature</h2>
      <span class="sans">UTC · Celsius</span>
    </div>
    <div id="hours"></div>
  </main>
  <div id="status" class="loading">
    <div class="mark"></div>
    <h2>Loading weather</h2>
    <p class="sans">Fetching the daily range and hourly temperatures.</p>
  </div>
<script>
(function () {
  var WMO = {
    0: { phrase: "Clear sky", kind: "clear" },
    1: { phrase: "Mainly clear", kind: "mainly" },
    2: { phrase: "Partly cloudy", kind: "partly" },
    3: { phrase: "Overcast", kind: "overcast" },
    45: { phrase: "Fog", kind: "fog" },
    48: { phrase: "Depositing rime fog", kind: "fog" },
    51: { phrase: "Light drizzle", kind: "rain" },
    53: { phrase: "Moderate drizzle", kind: "rain" },
    55: { phrase: "Dense drizzle", kind: "rain" },
    56: { phrase: "Light freezing drizzle", kind: "rain" },
    57: { phrase: "Dense freezing drizzle", kind: "rain" },
    61: { phrase: "Slight rain", kind: "rain" },
    63: { phrase: "Moderate rain", kind: "rain" },
    65: { phrase: "Heavy rain", kind: "rain" },
    66: { phrase: "Light freezing rain", kind: "rain" },
    67: { phrase: "Heavy freezing rain", kind: "rain" },
    71: { phrase: "Slight snow", kind: "snow" },
    73: { phrase: "Moderate snow", kind: "snow" },
    75: { phrase: "Heavy snow", kind: "snow" },
    77: { phrase: "Snow grains", kind: "snow" },
    80: { phrase: "Slight rain showers", kind: "rain" },
    81: { phrase: "Moderate rain showers", kind: "rain" },
    82: { phrase: "Violent rain showers", kind: "rain" },
    85: { phrase: "Slight snow showers", kind: "snow" },
    86: { phrase: "Heavy snow showers", kind: "snow" },
    95: { phrase: "Thunderstorm", kind: "storm" },
    96: { phrase: "Thunderstorm with slight hail", kind: "storm" },
    99: { phrase: "Thunderstorm with heavy hail", kind: "storm" }
  };

  var MONTHS = ["January","February","March","April","May","June","July","August","September","October","November","December"];
  var DAYS = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

  var params = new URLSearchParams(location.search);
  var todayUTC = new Date().toISOString().slice(0, 10);

  function parseNum(raw, fallback) {
    if (raw == null || String(raw).trim() === "") return fallback;
    var n = Number(raw);
    return Number.isFinite(n) ? n : fallback;
  }

  function validDate(s) {
    if (!/^\d{4}-\d{2}-\d{2}$/.test(s)) return false;
    var p = s.split("-").map(Number);
    var dt = new Date(Date.UTC(p[0], p[1] - 1, p[2]));
    return dt.getUTCFullYear() === p[0] && dt.getUTCMonth() === p[1] - 1 && dt.getUTCDate() === p[2];
  }

  var lat = parseNum(params.get("lat"), 52.52);
  var lon = parseNum(params.get("lon"), 13.405);
  var nameRaw = params.get("name");
  var name = nameRaw == null || String(nameRaw).trim() === "" ? "Berlin" : String(nameRaw).trim();
  var dateStr = params.get("date");
  dateStr = dateStr && validDate(String(dateStr).trim()) ? String(dateStr).trim() : todayUTC;

  function $(id) { return document.getElementById(id); }

  function fmtTemp(v) {
    var n = Number(v);
    if (!Number.isFinite(n)) return null;
    if (Object.is(n, -0)) n = 0;
    var s = Number.isInteger(n) ? String(n) : n.toFixed(1);
    return s + "°";
  }

  function formatDate(iso) {
    var p = iso.split("-").map(Number);
    var dt = new Date(Date.UTC(p[0], p[1] - 1, p[2]));
    return DAYS[dt.getUTCDay()] + ", " + p[2] + " " + MONTHS[p[1] - 1] + " " + p[0];
  }

  function showError() {
    var el = $("status");
    el.hidden = false;
    el.className = "";
    el.innerHTML = '<div class="mark"></div><h2>Weather data cannot be loaded</h2><p class="sans">The forecast for this location and date could not be loaded.</p>';
    $("sheet").style.visibility = "hidden";
    document.documentElement.removeAttribute("data-ready");
  }

  function iconSvg(kind) {
    if (kind === "clear" || kind === "mainly") {
      return '<svg viewBox="0 0 120 120" fill="none"><circle cx="60" cy="58" r="22" fill="rgba(255,220,130,0.95)"/><g stroke="rgba(255,220,130,0.75)" stroke-width="3" stroke-linecap="round"><path d="M60 18v10M60 88v10M18 58h10M92 58h10M32 30l7 7M81 79l7 7M32 86l7-7M81 35l7-7"/></g></svg>';
    }
    if (kind === "partly") {
      return '<svg viewBox="0 0 120 120" fill="none"><circle cx="46" cy="44" r="16" fill="rgba(255,220,130,0.9)"/><path d="M38 84h46a16 16 0 0 0 2-32 22 22 0 0 0-42-6 16 16 0 0 0-6 38z" fill="rgba(255,255,255,0.88)"/></svg>';
    }
    if (kind === "snow") {
      return '<svg viewBox="0 0 120 120" fill="none"><path d="M34 62h50a16 16 0 0 0 1-32 22 22 0 0 0-43-5 15 15 0 0 0-8 37z" fill="rgba(255,255,255,0.9)"/><g stroke="rgba(255,255,255,0.9)" stroke-width="2" stroke-linecap="round"><path d="M44 88v12M44 94l-4 4M44 94l4 4M60 86v14M60 93l-4 4M60 93l4 4M76 88v12M76 94l-4 4M76 94l4 4"/></g></svg>';
    }
    if (kind === "storm") {
      return '<svg viewBox="0 0 120 120" fill="none"><path d="M32 56h52a16 16 0 0 0 1-31 22 22 0 0 0-43-6 15 15 0 0 0-10 37z" fill="rgba(230,230,240,0.82)"/><path d="M62 58l-16 24h14l-6 20 24-28H62z" fill="rgba(255,220,140,0.95)"/></svg>';
    }
    if (kind === "fog") {
      return '<svg viewBox="0 0 120 120" fill="none"><path d="M34 50h50a14 14 0 0 0 1-28 20 20 0 0 0-40-4 14 14 0 0 0-11 32z" fill="rgba(255,255,255,0.55)"/><g stroke="rgba(255,255,255,0.7)" stroke-width="3" stroke-linecap="round"><path d="M28 72h64M34 84h52M32 96h56"/></g></svg>';
    }
    return '<svg viewBox="0 0 120 120" fill="none"><path d="M30 64h56c9 0 16-7 16-15 0-8-6-14-14-15a24 24 0 0 0-46-4c-9 1-16 9-16 18 0 9 8 16 16 16z" fill="rgba(248,250,250,0.92)"/><g stroke="rgba(214,226,230,0.95)" stroke-width="2.6" stroke-linecap="round"><path d="M44 78v18M58 76v22M72 78v18M86 80v14"/></g></svg>';
  }

  function paintHorizon(values) {
    var nums = values.filter(function (v) { return Number.isFinite(Number(v)); }).map(Number);
    if (!nums.length) return;
    var lo = Math.min.apply(null, nums);
    var hi = Math.max.apply(null, nums);
    var span = hi - lo || 1;
    var pts = values.map(function (v, i) {
      var n = Number(v);
      if (!Number.isFinite(n)) n = lo;
      var x = values.length === 1 ? 0 : (i * 23) / (values.length - 1);
      var y = 8.4 - ((n - lo) / span) * 6.6;
      return x.toFixed(2) + " " + y.toFixed(2);
    });
    $("horizon-line").setAttribute("d", "M" + pts.join(" L"));
    $("horizon-fill").setAttribute("d", "M0 10 L" + pts.join(" L") + " L23 10 Z");
  }

  function render(data) {
    if (!data || data.error || !data.daily || !data.hourly) {
      showError();
      return;
    }

    var tmax = data.daily.temperature_2m_max && data.daily.temperature_2m_max[0];
    var tmin = data.daily.temperature_2m_min && data.daily.temperature_2m_min[0];
    var code = data.daily.weather_code && data.daily.weather_code[0];
    var times = data.hourly.time || [];
    var temps = data.hourly.temperature_2m || [];

    var maxTxt = fmtTemp(tmax);
    var minTxt = fmtTemp(tmin);
    if (maxTxt == null || minTxt == null || code == null || code === "") {
      showError();
      return;
    }

    var rows = [];
    for (var i = 0; i < times.length; i++) {
      var t = times[i];
      if (typeof t !== "string" || t.slice(0, 10) !== dateStr) continue;
      var hm = /T(\d{2})/.exec(t);
      if (!hm) continue;
      var hour = Number(hm[1]);
      var tv = temps[i];
      if (!Number.isFinite(Number(tv))) continue;
      rows.push({ hour: hour, temp: Number(tv) });
    }

    if (!rows.length) {
      showError();
      return;
    }

    var meta = WMO[Number(code)] || { phrase: "Overcast", kind: "overcast" };
    if (!WMO[Number(code)]) {
      meta = { phrase: "Condition " + String(code), kind: "overcast" };
    }

    document.body.setAttribute("data-kind", meta.kind);
    $("place").textContent = name;
    $("date").textContent = formatDate(dateStr);
    $("condition").textContent = meta.phrase;
    $("tmax").textContent = maxTxt;
    $("tmin").textContent = minTxt;
    $("wx-art").innerHTML = iconSvg(meta.kind);

    var loH = Math.min.apply(null, rows.map(function (r) { return r.temp; }));
    var hiH = Math.max.apply(null, rows.map(function (r) { return r.temp; }));
    var span = hiH - loH || 1;
    var firstMax = -1;
    var firstMin = -1;
    for (var j = 0; j < rows.length; j++) {
      if (firstMax < 0 && rows[j].temp === hiH) firstMax = j;
      if (firstMin < 0 && rows[j].temp === loH) firstMin = j;
    }

    var host = $("hours");
    host.textContent = "";
    for (var k = 0; k < rows.length; k++) {
      var r = rows[k];
      var col = document.createElement("div");
      col.className = "col";
      if (k === firstMax) col.classList.add("is-max");
      if (k === firstMin) col.classList.add("is-min");

      var slot = document.createElement("div");
      slot.className = "bar-slot";
      var bar = document.createElement("div");
      bar.className = "bar";
      var pct = 0.12 + 0.88 * ((r.temp - loH) / span);
      bar.style.height = Math.round(pct * 132) + "px";
      slot.appendChild(bar);

      var ht = document.createElement("div");
      ht.className = "htemp sans";
      ht.textContent = fmtTemp(r.temp);

      var hh = document.createElement("div");
      hh.className = "hhour sans";
      hh.textContent = String(r.hour).padStart(2, "0") + "h";

      col.appendChild(slot);
      col.appendChild(ht);
      col.appendChild(hh);
      host.appendChild(col);
    }

    paintHorizon(rows.map(function (r) { return r.temp; }));

    $("status").hidden = true;
    $("sheet").style.visibility = "visible";
    document.documentElement.setAttribute("data-ready", "1");
  }

  var endpoint = dateStr < todayUTC ? "/api/om/archive" : "/api/om/forecast";
  var q = 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: dateStr,
    end_date: dateStr
  });

  fetch(endpoint + "?" + q.toString())
    .then(function (res) {
      if (!res.ok) throw new Error("bad status");
      return res.json();
    })
    .then(render)
    .catch(showError);
})();
</script>
</body>
</html>

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

bytes 总计21,911html / css / js1,838 / 10,164 / 9,909
dom 节点47dom 深度6
css 规则67含 js是
brightness185.1contrast49.7
colorfulness20.5留白55.9%

该 slot 的 telemetry

prompt tokens0completion tokens0
total tokens0wall806.3 s
cost—request id—
config.json551 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "grok-4.6-eff-xhigh--cli--grok--dev",
  "effort": "xhigh",
  "family": "grok",
  "m": {
    "min": 2,
    "q": 1
  },
  "model_id": "grok-4.6",
  "protocol": "cli",
  "served_model": "grok-4.6",
  "telemetry": {
    "completion_tokens": null,
    "cost_usd": null,
    "prompt_tokens": null,
    "total_tokens": null,
    "wall_ms": 2184355
  },
  "transport": "grok-cli-oauth-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--grok46-cli",
  "config_id": "grok-4.6-eff-xhigh--cli--grok--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T18:20:06.479027+00:00",
          "http_status": null,
          "outcome": "infra-failed",
          "reached_model": true,
          "reason": "mid-stream-death",
          "request_id": null,
          "started_at": "2026-08-12T17:55:06.365441+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "infra-failed",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T18:32:40.373560+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T18:20:06.481579+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-12T18:43:08.445884+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T18:32:44.302951+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-12T18:57:21.881050+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T18:43:55.547982+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
    }
  }
}