claude-fable-5 @ high · cursor-xl

cursor-xlhigh
config
claude-fable-5-eff-high--cli--cursor-xl--dev
batch
2026-07-19--unified
transport
cursor-agent-cli-isolated-home
protocol
cli · plan
served model
claude-fable-5-high
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
claude-fable-5 @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 neighborsNo similarity data for this session — this batch has no computed pairs.

Fidelity — does the card show the right data?

  • namematch
  • conditionmatch
  • datematch
  • max tempmatchshown: 25
  • min tempmatchshown: 16
  • hourlymismatchcoverage 0/24 · 0 match · 4 mismatch · 20 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{
    --bg1:#0f1b33; --bg2:#1c2f55; --accent:#7fc4ff;
    --card:rgba(255,255,255,.07);
    --stroke:rgba(255,255,255,.14);
    --text:#eef4ff; --muted:rgba(238,244,255,.62);
    --hi:#ffb46b; --lo:#8fd0ff;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html,body{height:100%}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    color:var(--text);
    background:
      radial-gradient(1100px 700px at 15% -10%, rgba(96,150,255,.28), transparent 60%),
      radial-gradient(900px 600px at 95% 110%, rgba(64,197,255,.16), transparent 55%),
      linear-gradient(160deg,var(--bg1),var(--bg2) 60%, #16233f);
    display:flex;align-items:center;justify-content:center;
    min-height:800px;
    overflow:hidden;
  }
  .stars{position:fixed;inset:0;pointer-events:none;opacity:.5}
  .card{
    width:980px;
    border-radius:28px;
    background:var(--card);
    border:1px solid var(--stroke);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
    box-shadow:0 30px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.10);
    padding:44px 52px 40px;
    position:relative;
    z-index:1;
  }
  .top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}
  .loc h1{font-size:34px;font-weight:650;letter-spacing:.2px}
  .loc .date{margin-top:6px;font-size:15px;color:var(--muted);font-weight:500;letter-spacing:.4px}
  .loc .coords{margin-top:4px;font-size:12px;color:rgba(238,244,255,.38);letter-spacing:.5px;font-variant-numeric:tabular-nums}
  .now{display:flex;align-items:center;gap:26px}
  .icon-wrap{width:110px;height:110px;flex:0 0 auto;filter:drop-shadow(0 8px 24px rgba(127,196,255,.35))}
  .cond{text-align:right}
  .cond .condname{font-size:20px;font-weight:600;margin-bottom:10px}
  .temps{display:flex;gap:22px;justify-content:flex-end}
  .temps .t{display:flex;flex-direction:column;align-items:flex-end}
  .temps .val{font-size:44px;font-weight:250;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1}
  .temps .val.hi{color:var(--hi)} .temps .val.lo{color:var(--lo)}
  .temps .lbl{font-size:11px;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;margin-bottom:8px;font-weight:600}
  .divider{height:1px;background:linear-gradient(90deg,transparent,var(--stroke) 15%,var(--stroke) 85%,transparent);margin:34px 0 26px}
  .section-title{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:650;margin-bottom:14px}
  .chart-wrap{width:100%}
  svg.chart{display:block;width:100%;height:auto}
  .status{
    text-align:center;padding:70px 0 66px;
  }
  .status .spinner{
    width:38px;height:38px;margin:0 auto 20px;border-radius:50%;
    border:3px solid rgba(255,255,255,.15);border-top-color:var(--accent);
    animation:spin 0.9s linear infinite;
  }
  @keyframes spin{to{transform:rotate(360deg)}}
  .status p{color:var(--muted);font-size:15px}
  .error-box{
    text-align:center;padding:64px 0 60px;
  }
  .error-box .eicon{font-size:40px;margin-bottom:14px}
  .error-box h2{font-size:20px;font-weight:600;margin-bottom:8px}
  .error-box p{color:var(--muted);font-size:14px;max-width:520px;margin:0 auto;line-height:1.6}
  .hidden{display:none}
  .fade-in{animation:fade .5s ease both}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
</style>
</head>
<body>
<svg class="stars" width="100%" height="100%" aria-hidden="true">
  <g fill="#ffffff">
    <circle cx="8%" cy="18%" r="1.2" opacity=".5"/><circle cx="14%" cy="72%" r="1" opacity=".3"/>
    <circle cx="22%" cy="34%" r="1.4" opacity=".4"/><circle cx="31%" cy="12%" r="1" opacity=".35"/>
    <circle cx="44%" cy="8%" r="1.3" opacity=".45"/><circle cx="58%" cy="16%" r="1" opacity=".3"/>
    <circle cx="70%" cy="9%" r="1.4" opacity=".5"/><circle cx="82%" cy="22%" r="1.1" opacity=".35"/>
    <circle cx="91%" cy="40%" r="1.3" opacity=".45"/><circle cx="87%" cy="78%" r="1" opacity=".3"/>
    <circle cx="66%" cy="88%" r="1.2" opacity=".35"/><circle cx="38%" cy="90%" r="1" opacity=".3"/>
    <circle cx="5%" cy="52%" r="1.1" opacity=".4"/><circle cx="95%" cy="60%" r="1.2" opacity=".4"/>
  </g>
</svg>

<main class="card">
  <div id="loading" class="status">
    <div class="spinner"></div>
    <p>Loading weather data…</p>
  </div>

  <div id="error" class="error-box hidden">
    <div class="eicon">⚠️</div>
    <h2>Weather data could not be loaded</h2>
    <p id="error-detail">Please check your connection or try again later.</p>
  </div>

  <div id="content" class="hidden">
    <div class="top fade-in">
      <div class="loc">
        <h1 id="place">—</h1>
        <div class="date" id="datefmt">—</div>
        <div class="coords" id="coords"></div>
      </div>
      <div class="now">
        <div class="cond">
          <div class="condname" id="condname">—</div>
          <div class="temps">
            <div class="t"><span class="lbl">High</span><span class="val hi" id="tmax">–</span></div>
            <div class="t"><span class="lbl">Low</span><span class="val lo" id="tmin">–</span></div>
          </div>
        </div>
        <div class="icon-wrap" id="icon"></div>
      </div>
    </div>

    <div class="divider"></div>

    <div class="fade-in" style="animation-delay:.12s">
      <div class="section-title">Hourly temperature</div>
      <div class="chart-wrap" id="chart"></div>
    </div>
  </div>
</main>

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

  const qs = new URLSearchParams(location.search);
  const lat  = parseFloat(qs.get("lat"))  || 52.52;
  const lon  = parseFloat(qs.get("lon"))  || 13.405;
  const name = qs.get("name") || "Berlin";
  const todayUTC = new Date().toISOString().slice(0,10);
  const dateStr = /^\d{4}-\d{2}-\d{2}$/.test(qs.get("date")||"") ? qs.get("date") : todayUTC;

  const WMO = {
    0:["Clear sky","sun"],1:["Mainly clear","sun"],2:["Partly cloudy","suncloud"],3:["Overcast","cloud"],
    45:["Fog","fog"],48:["Depositing rime fog","fog"],
    51:["Light drizzle","rain"],53:["Moderate drizzle","rain"],55:["Dense drizzle","rain"],
    56:["Light freezing drizzle","rain"],57:["Dense freezing drizzle","rain"],
    61:["Slight rain","rain"],63:["Moderate rain","rain"],65:["Heavy rain","rain"],
    66:["Light freezing rain","rain"],67:["Heavy 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 slight hail","storm"],99:["Thunderstorm with heavy hail","storm"]
  };

  const ICONS = {
    sun:`<svg viewBox="0 0 100 100"><circle cx="50" cy="50" r="22" fill="#ffd76b"/><g stroke="#ffd76b" stroke-width="5" stroke-linecap="round">
      <line x1="50" y1="8" x2="50" y2="20"/><line x1="50" y1="80" x2="50" y2="92"/>
      <line x1="8" y1="50" x2="20" y2="50"/><line x1="80" y1="50" x2="92" y2="50"/>
      <line x1="20.3" y1="20.3" x2="28.8" y2="28.8"/><line x1="71.2" y1="71.2" x2="79.7" y2="79.7"/>
      <line x1="79.7" y1="20.3" x2="71.2" y2="28.8"/><line x1="28.8" y1="71.2" x2="20.3" y2="79.7"/></g></svg>`,
    suncloud:`<svg viewBox="0 0 100 100"><circle cx="38" cy="36" r="16" fill="#ffd76b"/>
      <g stroke="#ffd76b" stroke-width="4" stroke-linecap="round"><line x1="38" y1="8" x2="38" y2="15"/><line x1="10" y1="36" x2="17" y2="36"/><line x1="18" y1="16" x2="23" y2="21"/><line x1="58" y1="16" x2="53" y2="21"/></g>
      <path d="M30 78a14 14 0 0 1-2-27.8A20 20 0 0 1 66 46a15 15 0 0 1 4 29.5c-1.3.3-2.6.5-4 .5H30z" fill="#dfe9f5"/></svg>`,
    cloud:`<svg viewBox="0 0 100 100"><path d="M28 76a16 16 0 0 1-2.3-31.8A23 23 0 0 1 70 40a17 17 0 0 1 4.5 33.4c-1.5.4-3 .6-4.5.6H28z" fill="#dfe9f5"/>
      <path d="M20 60a12 12 0 0 1 8-11" stroke="#b9cbdf" stroke-width="3" fill="none" stroke-linecap="round"/></svg>`,
    rain:`<svg viewBox="0 0 100 100"><path d="M28 62a15 15 0 0 1-2.1-29.8A21 21 0 0 1 67 28a16 16 0 0 1 4.2 31.4c-1.4.4-2.8.6-4.2.6H28z" fill="#dfe9f5"/>
      <g stroke="#7fc4ff" stroke-width="5" stroke-linecap="round"><line x1="34" y1="72" x2="30" y2="86"/><line x1="52" y1="72" x2="48" y2="86"/><line x1="70" y1="72" x2="66" y2="86"/></g></svg>`,
    snow:`<svg viewBox="0 0 100 100"><path d="M28 60a15 15 0 0 1-2.1-29.8A21 21 0 0 1 67 26a16 16 0 0 1 4.2 31.4c-1.4.4-2.8.6-4.2.6H28z" fill="#dfe9f5"/>
      <g fill="#cfe8ff"><circle cx="33" cy="74" r="4"/><circle cx="51" cy="82" r="4"/><circle cx="69" cy="74" r="4"/></g></svg>`,
    fog:`<svg viewBox="0 0 100 100"><path d="M28 52a15 15 0 0 1-2.1-29.8A21 21 0 0 1 67 18a16 16 0 0 1 4.2 31.4c-1.4.4-2.8.6-4.2.6H28z" fill="#dfe9f5" opacity=".9"/>
      <g stroke="#b9cbdf" stroke-width="5" stroke-linecap="round"><line x1="22" y1="64" x2="78" y2="64"/><line x1="30" y1="76" x2="70" y2="76"/><line x1="38" y1="88" x2="62" y2="88"/></g></svg>`,
    storm:`<svg viewBox="0 0 100 100"><path d="M28 58a15 15 0 0 1-2.1-29.8A21 21 0 0 1 67 24a16 16 0 0 1 4.2 31.4c-1.4.4-2.8.6-4.2.6H28z" fill="#dfe9f5"/>
      <path d="M54 56 40 76h10l-6 18 20-24H52l6-14z" fill="#ffd76b"/></svg>`
  };

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

  function fmtDate(d){
    const dt = new Date(d + "T00:00:00Z");
    return dt.toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric",timeZone:"UTC"});
  }

  function showError(msg){
    $("loading").classList.add("hidden");
    $("content").classList.add("hidden");
    $("error").classList.remove("hidden");
    if(msg) $("error-detail").textContent = msg;
  }

  function buildChart(hours, temps){
    const pts = hours.map((h,i)=>({h, t: temps[i]})).filter(p => p.t !== null && p.t !== undefined && isFinite(p.t));
    if(pts.length < 2){ $("chart").innerHTML = '<p style="color:var(--muted);font-size:14px">Hourly data unavailable for this date.</p>'; return; }

    const W=876, H=240, padL=14, padR=14, padT=42, padB=34;
    const iw = W-padL-padR, ih = H-padT-padB;
    const vals = pts.map(p=>p.t);
    let mn = Math.min(...vals), mx = Math.max(...vals);
    if(mx-mn < 2){ const c=(mx+mn)/2; mn=c-1; mx=c+1; }
    const X = i => padL + (i/(pts.length-1))*iw;
    const Y = t => padT + (1-(t-mn)/(mx-mn))*ih;

    let line="", area="";
    pts.forEach((p,i)=>{
      const x=X(i).toFixed(1), y=Y(p.t).toFixed(1);
      line += (i? " L":"M")+x+" "+y;
    });
    area = line + ` L${X(pts.length-1).toFixed(1)} ${H-padB} L${X(0).toFixed(1)} ${H-padB} Z`;

    const iMax = vals.indexOf(Math.max(...vals));
    const iMin = vals.indexOf(Math.min(...vals));

    let labels="";
    const step = Math.max(1, Math.round(pts.length/8));
    pts.forEach((p,i)=>{
      if(i % step === 0 || i === pts.length-1){
        const hh = p.h.slice(11,16);
        labels += `<text x="${X(i).toFixed(1)}" y="${H-10}" text-anchor="middle" font-size="11" fill="rgba(238,244,255,.5)">${hh}</text>`;
        labels += `<line x1="${X(i).toFixed(1)}" y1="${padT}" x2="${X(i).toFixed(1)}" y2="${H-padB}" stroke="rgba(255,255,255,.05)"/>`;
      }
    });

    let marks="";
    [[iMax,"#ffb46b"],[iMin,"#8fd0ff"]].forEach(([i,color])=>{
      const x=X(i).toFixed(1), y=Y(pts[i].t).toFixed(1);
      marks += `<circle cx="${x}" cy="${y}" r="4.5" fill="${color}" stroke="#0f1b33" stroke-width="2"/>
        <text x="${x}" y="${(Y(pts[i].t)-12).toFixed(1)}" text-anchor="middle" font-size="13" font-weight="600" fill="${color}">${Math.round(pts[i].t)}°</text>`;
    });

    let dots="";
    pts.forEach((p,i)=>{
      if(i===iMax || i===iMin) return;
      dots += `<circle cx="${X(i).toFixed(1)}" cy="${Y(p.t).toFixed(1)}" r="2" fill="rgba(127,196,255,.55)"/>`;
    });

    $("chart").innerHTML = `
      <svg class="chart" viewBox="0 0 ${W} ${H}" role="img" aria-label="Hourly temperature chart">
        <defs>
          <linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1">
            <stop offset="0%" stop-color="rgba(127,196,255,.35)"/>
            <stop offset="100%" stop-color="rgba(127,196,255,0)"/>
          </linearGradient>
          <linearGradient id="lineGrad" x1="0" y1="0" x2="1" y2="0">
            <stop offset="0%" stop-color="#8fd0ff"/>
            <stop offset="100%" stop-color="#b18cff"/>
          </linearGradient>
        </defs>
        <path d="${area}" fill="url(#areaGrad)"/>
        <path d="${line}" fill="none" stroke="url(#lineGrad)" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round"/>
        ${labels}${dots}${marks}
      </svg>`;
  }

  async function load(){
    const isPast = dateStr < todayUTC;
    const base = isPast ? "/api/om/archive" : "/api/om/forecast";
    const p = 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: dateStr, end_date: dateStr
    });
    let data;
    try{
      const res = await fetch(base + "?" + p.toString());
      if(!res.ok) throw new Error("Server responded with status " + res.status);
      data = await res.json();
    }catch(e){
      showError("Could not fetch weather for " + name + " on " + dateStr + ". " + (e && e.message ? e.message : ""));
      return;
    }

    try{
      const d = data.daily;
      const tmax = d.temperature_2m_max[0];
      const tmin = d.temperature_2m_min[0];
      const code = d.weather_code[0];
      if(tmax === null || tmax === undefined || tmin === null || tmin === undefined) throw new Error("empty");

      const [condText, iconKey] = WMO[code] || ["Unknown conditions","cloud"];

      $("place").textContent = name;
      $("datefmt").textContent = fmtDate(dateStr) + " · UTC";
      $("coords").textContent = lat.toFixed(3) + "°, " + lon.toFixed(3) + "°";
      $("condname").textContent = condText;
      $("tmax").textContent = Math.round(tmax) + "°C";
      $("tmin").textContent = Math.round(tmin) + "°C";
      $("icon").innerHTML = ICONS[iconKey];

      buildChart(data.hourly.time, data.hourly.temperature_2m);

      $("loading").classList.add("hidden");
      $("content").classList.remove("hidden");
    }catch(e){
      showError("The weather service returned no usable data for " + name + " on " + dateStr + ".");
    }
  }

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

L1 — cheap deterministic descriptors

bytes total14,618html / css / js2,271 / 3,371 / 8,976
dom nodes53dom depth10
css rules38js presentyes
brightness52.1contrast17.3
colorfulness20.3whitespace84.9%

This slot's telemetry

prompt tokens2completion tokens8,146
total tokens8,148wall89.8 s
costrequest id
config.json579 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "claude-fable-5-eff-high--cli--cursor-xl--dev",
  "effort": "high",
  "family": "claude",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "claude-fable-5",
  "protocol": "cli",
  "served_model": "claude-fable-5-high",
  "telemetry": {
    "completion_tokens": 28568,
    "cost_usd": null,
    "prompt_tokens": 8,
    "total_tokens": 28576,
    "wall_ms": 312417
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-xl-s1",
  "config_id": "claude-fable-5-eff-high--cli--cursor-xl--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-13T11:42:26.463633+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T11:40:56.669454+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-13T11:43:35.220442+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T11:42:30.155296+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-13T11:44:30.728356+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T11:43:38.650501+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-13T11:46:19.829989+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-13T11:44:34.345371+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
    }
  }
}