claude-fable-5 @ xhigh · cursor-xl
cursor-xlxhigh
- config
- claude-fable-5-eff-xhigh--cli--cursor-xl--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- claude-fable-5-xhigh
- captured
- Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe

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
- hourlyambiguouscoverage · 0 match · 0 mismatch · 24 not shown
- request sidematch0 violation(s)
extractor fidelity-extractor-v1+Berlin-2026-07-15
Source — raw model output, one byte unchanged
download card.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=1280, initial-scale=1">
<link rel="icon" href="data:,">
<title>Weather</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
--bg1: #46586f; --bg2: #131a24; --accent: #aac3e0; --glow: rgba(170,195,224,.22);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background: linear-gradient(160deg, var(--bg1) 0%, var(--bg2) 78%);
color: #fff;
overflow: hidden;
transition: background .7s ease;
}
body.theme-clear { --bg1:#1f5fc4; --bg2:#0a1f4d; --accent:#ffd466; --glow:rgba(255,200,90,.32); }
body.theme-partly { --bg1:#2b62b8; --bg2:#0d1d3f; --accent:#ffd98a; --glow:rgba(255,214,120,.26); }
body.theme-cloudy { --bg1:#46586f; --bg2:#131a24; --accent:#aac3e0; --glow:rgba(170,195,224,.22); }
body.theme-fog { --bg1:#5a6472; --bg2:#181c22; --accent:#ccd6e0; --glow:rgba(205,215,225,.18); }
body.theme-rain { --bg1:#1d4287; --bg2:#0a1226; --accent:#7fb3ff; --glow:rgba(127,179,255,.28); }
body.theme-snow { --bg1:#3d6285; --bg2:#0e1b2a; --accent:#cfe9ff; --glow:rgba(207,233,255,.30); }
body.theme-thunder { --bg1:#41306e; --bg2:#0f0a1e; --accent:#cbb1ff; --glow:rgba(203,177,255,.30); }
.blob { position: fixed; border-radius: 50%; filter: blur(95px); pointer-events: none; transition: background .7s ease; }
.blob-a { width: 560px; height: 560px; background: var(--glow); top: -170px; left: -130px; }
.blob-b { width: 480px; height: 480px; background: rgba(255,255,255,.06); bottom: -190px; right: -110px; }
.card {
position: relative;
width: 1120px;
max-width: calc(100vw - 80px);
background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
border: 1px solid rgba(255,255,255,.16);
border-radius: 28px;
box-shadow: 0 30px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.18);
backdrop-filter: blur(18px);
-webkit-backdrop-filter: blur(18px);
padding: 36px 44px 32px;
animation: rise .6s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes rise { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
.head { display: flex; justify-content: space-between; align-items: flex-start; }
.loc-name { font-size: 36px; font-weight: 700; letter-spacing: -.02em; display: flex; align-items: center; gap: 12px; }
.loc-name svg { width: 26px; height: 26px; opacity: .8; flex: none; }
.loc-sub { margin-top: 7px; font-size: 15px; color: rgba(255,255,255,.62); letter-spacing: .01em; }
.loc-sub b { color: rgba(255,255,255,.88); font-weight: 600; }
.chip {
padding: 8px 16px; border-radius: 999px; flex: none; margin-top: 6px;
background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.20);
font-size: 12px; font-weight: 700; letter-spacing: .10em; text-transform: uppercase;
color: rgba(255,255,255,.85);
}
.hero { display: flex; align-items: center; gap: 30px; margin-top: 34px; }
.icon-wrap { width: 134px; height: 134px; flex: none; filter: drop-shadow(0 14px 26px rgba(0,0,0,.35)); animation: rise .7s .1s cubic-bezier(.2,.7,.3,1) both; }
.icon-wrap svg { width: 100%; height: 100%; }
.cond-name { font-size: 32px; font-weight: 650; letter-spacing: -.01em; }
.cond-sub { margin-top: 8px; font-size: 15px; color: rgba(255,255,255,.60); }
.temps { margin-left: auto; display: flex; align-items: center; gap: 34px; }
.temp { text-align: right; font-variant-numeric: tabular-nums; }
.t-label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 6px; }
.t-val { font-size: 62px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.t-val.low { color: rgba(255,255,255,.66); }
.t-divider { width: 1px; height: 66px; background: linear-gradient(180deg, transparent, rgba(255,255,255,.25), transparent); }
.section-head { margin: 36px 0 12px; display: flex; justify-content: space-between; align-items: baseline; }
.section-head h2 { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.62); }
.section-head span { font-size: 13px; color: rgba(255,255,255,.42); }
.chart-box {
background: rgba(0,0,0,.20);
border: 1px solid rgba(255,255,255,.10);
border-radius: 20px;
padding: 14px 10px 6px;
animation: rise .7s .18s cubic-bezier(.2,.7,.3,1) both;
}
.chart-box svg { display: block; width: 100%; height: auto; }
.cline { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1.3s .35s ease-out forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.carea { opacity: 0; animation: fadein .9s .9s ease forwards; }
@keyframes fadein { to { opacity: 1; } }
.dot { fill: var(--accent); stroke: rgba(0,0,0,.35); stroke-width: 1; }
.dot-ring { fill: none; stroke: rgba(255,255,255,.85); stroke-width: 1.6; }
.tval { font-size: 13px; font-weight: 600; fill: rgba(255,255,255,.92); text-anchor: middle; font-variant-numeric: tabular-nums; }
.hlabel { font-size: 11.5px; fill: rgba(255,255,255,.48); text-anchor: middle; }
.grid { stroke: rgba(255,255,255,.12); stroke-dasharray: 4 5; }
.nowline { stroke: rgba(255,255,255,.55); stroke-width: 1.4; stroke-dasharray: 3 4; }
.nowtag { font-size: 11px; font-weight: 700; letter-spacing: .08em; fill: rgba(255,255,255,.85); text-anchor: middle; }
.no-hourly { padding: 48px 0; text-align: center; color: rgba(255,255,255,.55); font-size: 15px; }
.state { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 96px 0; text-align: center; }
.state h1 { font-size: 26px; font-weight: 650; }
.state p { font-size: 15px; color: rgba(255,255,255,.60); max-width: 460px; line-height: 1.55; }
.spinner { width: 46px; height: 46px; border-radius: 50%; border: 3px solid rgba(255,255,255,.18); border-top-color: #fff; animation: spin .85s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.err-icon { width: 58px; height: 58px; }
.retry {
margin-top: 6px; padding: 11px 26px; border-radius: 999px; cursor: pointer;
border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.12);
color: #fff; font-size: 14px; font-weight: 600; font-family: inherit;
transition: background .2s;
}
.retry:hover { background: rgba(255,255,255,.22); }
</style>
</head>
<body class="theme-cloudy">
<div class="blob blob-a"></div>
<div class="blob blob-b"></div>
<main class="card" id="app">
<div class="state"><div class="spinner"></div><p>Loading weather…</p></div>
</main>
<script>
(function () {
var app = document.getElementById('app');
function esc(s) {
return String(s).replace(/[&<>"']/g, function (c) {
return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c];
});
}
var qs = new URLSearchParams(location.search);
var lat = parseFloat(qs.get('lat'));
var lon = parseFloat(qs.get('lon'));
if (!isFinite(lat)) lat = 52.52;
if (!isFinite(lon)) lon = 13.405;
var name = qs.get('name') || 'Berlin';
var today = new Date().toISOString().slice(0, 10);
var dateStr = /^\d{4}-\d{2}-\d{2}$/.test(qs.get('date') || '') ? qs.get('date') : today;
var isPast = dateStr < today;
var WMO = {
0: ['Clear sky', 'clear'], 1: ['Mainly clear', 'clear'], 2: ['Partly cloudy', 'partly'], 3: ['Overcast', 'cloudy'],
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', 'thunder'], 96: ['Thunderstorm with slight hail', 'thunder'], 99: ['Thunderstorm with heavy hail', 'thunder']
};
function cloudShape(tx, ty, s, fill) {
return '<g transform="translate(' + tx + ' ' + ty + ') scale(' + s + ')" fill="' + fill + '">' +
'<circle cx="22" cy="30" r="10"/><circle cx="33" cy="24" r="12"/><circle cx="44" cy="31" r="9"/>' +
'<rect x="20" y="28" width="27" height="12" rx="6"/></g>';
}
function sunRays(cx, cy, r1, r2, n, w) {
var out = '<g stroke="#ffd466" stroke-width="' + w + '" stroke-linecap="round">';
for (var i = 0; i < n; i++) {
var a = Math.PI * 2 * i / n + Math.PI / n;
out += '<line x1="' + (cx + Math.cos(a) * r1).toFixed(1) + '" y1="' + (cy + Math.sin(a) * r1).toFixed(1) +
'" x2="' + (cx + Math.cos(a) * r2).toFixed(1) + '" y2="' + (cy + Math.sin(a) * r2).toFixed(1) + '"/>';
}
return out + '</g>';
}
function flake(x, y) {
var out = '<g transform="translate(' + x + ' ' + y + ')" stroke="#dff0ff" stroke-width="2.4" stroke-linecap="round">';
for (var i = 0; i < 3; i++) {
var a = Math.PI * i / 3;
out += '<line x1="' + (-Math.cos(a) * 4.5).toFixed(1) + '" y1="' + (-Math.sin(a) * 4.5).toFixed(1) +
'" x2="' + (Math.cos(a) * 4.5).toFixed(1) + '" y2="' + (Math.sin(a) * 4.5).toFixed(1) + '"/>';
}
return out + '</g>';
}
var CLOUD_FILL = '#e9eef8';
var ICONS = {
clear: function () {
return sunRays(32, 32, 18, 25, 8, 4) + '<circle cx="32" cy="32" r="12" fill="#ffd466"/>';
},
partly: function () {
return sunRays(22, 21, 13, 18, 7, 3.4) + '<circle cx="22" cy="21" r="9" fill="#ffd466"/>' + cloudShape(4, 8, 1, CLOUD_FILL);
},
cloudy: function () {
return cloudShape(-2, -4, .8, 'rgba(233,238,248,.5)') + cloudShape(4, 8, 1, CLOUD_FILL);
},
fog: function () {
return cloudShape(2, -8, 1, CLOUD_FILL) +
'<g stroke="rgba(233,238,248,.75)" stroke-width="4" stroke-linecap="round">' +
'<line x1="16" y1="44" x2="46" y2="44"/><line x1="21" y1="52" x2="51" y2="52"/><line x1="16" y1="60" x2="42" y2="60"/></g>';
},
rain: function () {
return cloudShape(2, -6, 1, CLOUD_FILL) +
'<g stroke="#7fb3ff" stroke-width="4" stroke-linecap="round">' +
'<line x1="24" y1="44" x2="21" y2="54"/><line x1="34" y1="44" x2="31" y2="54"/><line x1="44" y1="44" x2="41" y2="54"/></g>';
},
snow: function () {
return cloudShape(2, -8, 1, CLOUD_FILL) + flake(23, 48) + flake(34, 56) + flake(45, 48);
},
thunder: function () {
return cloudShape(2, -10, 1, CLOUD_FILL) +
'<polygon fill="#ffd466" points="33,34 42,34 36,44 42,44 27,60 32,49 26,49"/>';
}
};
function iconSvg(kind) {
return '<svg viewBox="0 0 64 64" aria-hidden="true">' + (ICONS[kind] || ICONS.cloudy)() + '</svg>';
}
function fmtDate(d) {
return new Intl.DateTimeFormat('en-GB', { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric', timeZone: 'UTC' }).format(new Date(d + 'T00:00:00Z'));
}
function relLabel(d) {
var diff = Math.round((Date.parse(d + 'T00:00:00Z') - Date.parse(today + 'T00:00:00Z')) / 864e5);
if (diff === 0) return 'Today';
if (diff === 1) return 'Tomorrow';
if (diff === -1) return 'Yesterday';
return diff > 0 ? 'In ' + diff + ' days' : Math.abs(diff) + ' days ago';
}
function fmtCoord(v, pos, neg) {
return Math.abs(v).toFixed(2) + '\u00B0' + (v >= 0 ? pos : neg);
}
function deg(v) { return Math.round(v) + '\u00B0'; }
function smoothPath(pts) {
var d = 'M ' + pts[0].x.toFixed(1) + ' ' + pts[0].y.toFixed(1);
for (var i = 0; i < pts.length - 1; i++) {
var p0 = pts[Math.max(0, i - 1)], p1 = pts[i], p2 = pts[i + 1], p3 = pts[Math.min(pts.length - 1, i + 2)];
d += ' C ' + (p1.x + (p2.x - p0.x) / 6).toFixed(1) + ' ' + (p1.y + (p2.y - p0.y) / 6).toFixed(1) +
', ' + (p2.x - (p3.x - p1.x) / 6).toFixed(1) + ' ' + (p2.y - (p3.y - p1.y) / 6).toFixed(1) +
', ' + p2.x.toFixed(1) + ' ' + p2.y.toFixed(1);
}
return d;
}
function buildChart(hrs, isToday) {
var W = 1128, H = 252, padX = 26, topPad = 46, bottomPad = 30;
var n = hrs.length;
var temps = hrs.map(function (h) { return h.t; }).filter(function (t) { return t != null; });
if (n < 2 || temps.length === 0) {
return '<div class="no-hourly">Hourly temperatures are not available for this date.</div>';
}
var tMax = Math.max.apply(null, temps), tMin = Math.min.apply(null, temps);
var range = Math.max(tMax - tMin, 2);
var lo = (tMax + tMin) / 2 - range / 2 - range * 0.08;
var hi = (tMax + tMin) / 2 + range / 2 + range * 0.08;
var step = (W - padX * 2) / (n - 1);
var plotH = H - topPad - bottomPad;
var baseY = H - bottomPad + 2;
function X(i) { return padX + i * step; }
function Y(t) { return topPad + (1 - (t - lo) / (hi - lo)) * plotH; }
var pts = [], runs = [], cur = [];
hrs.forEach(function (h, i) {
if (h.t == null) { if (cur.length) { runs.push(cur); cur = []; } pts.push(null); return; }
var p = { x: X(i), y: Y(h.t), t: h.t, i: i };
pts.push(p); cur.push(p);
});
if (cur.length) runs.push(cur);
var s = '<svg viewBox="0 0 ' + W + ' ' + H + '" role="img" aria-label="Hourly temperature chart">';
s += '<defs><linearGradient id="ag" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0" style="stop-color:var(--accent);stop-opacity:.32"/>' +
'<stop offset="1" style="stop-color:var(--accent);stop-opacity:0"/></linearGradient></defs>';
s += '<line class="grid" x1="' + padX + '" y1="' + Y(tMax).toFixed(1) + '" x2="' + (W - padX) + '" y2="' + Y(tMax).toFixed(1) + '"/>';
s += '<line class="grid" x1="' + padX + '" y1="' + Y(tMin).toFixed(1) + '" x2="' + (W - padX) + '" y2="' + Y(tMin).toFixed(1) + '"/>';
if (isToday) {
var nh = new Date().getUTCHours();
if (nh < n) {
var nx = X(nh);
s += '<line class="nowline" x1="' + nx.toFixed(1) + '" y1="22" x2="' + nx.toFixed(1) + '" y2="' + baseY + '"/>';
s += '<text class="nowtag" x="' + Math.min(Math.max(nx, 20), W - 20).toFixed(1) + '" y="14">NOW</text>';
}
}
runs.forEach(function (run) {
if (run.length < 2) return;
var d = smoothPath(run);
s += '<path class="carea" fill="url(#ag)" d="' + d + ' L ' + run[run.length - 1].x.toFixed(1) + ' ' + baseY + ' L ' + run[0].x.toFixed(1) + ' ' + baseY + ' Z"/>';
s += '<path class="cline" pathLength="1" d="' + d + '"/>';
});
var maxP = null, minP = null;
pts.forEach(function (p) {
if (!p) return;
if (!maxP || p.t > maxP.t) maxP = p;
if (!minP || p.t < minP.t) minP = p;
});
hrs.forEach(function (h, i) {
var x = X(i);
if (pts[i]) {
s += '<g><title>' + h.label + ' \u2014 ' + h.t.toFixed(1) + '\u00B0C</title>' +
'<circle class="dot" cx="' + x.toFixed(1) + '" cy="' + pts[i].y.toFixed(1) + '" r="3.6"/></g>';
s += '<text class="tval" x="' + x.toFixed(1) + '" y="' + (pts[i].y - 12).toFixed(1) + '">' + deg(h.t) + '</text>';
} else {
s += '<text class="tval" x="' + x.toFixed(1) + '" y="' + (topPad + plotH / 2).toFixed(1) + '" opacity=".4">\u2013</text>';
}
s += '<text class="hlabel" x="' + x.toFixed(1) + '" y="' + (H - 8) + '">' + h.label.slice(0, 2) + '</text>';
});
if (maxP) s += '<circle class="dot-ring" cx="' + maxP.x.toFixed(1) + '" cy="' + maxP.y.toFixed(1) + '" r="6.5"/>';
if (minP && minP !== maxP) s += '<circle class="dot-ring" cx="' + minP.x.toFixed(1) + '" cy="' + minP.y.toFixed(1) + '" r="6.5"/>';
return s + '</svg>';
}
function renderError(msg) {
document.body.className = 'theme-cloudy';
app.innerHTML =
'<div class="state">' +
'<svg class="err-icon" viewBox="0 0 64 64"><path d="M32 8 60 56 H4 Z" fill="none" stroke="rgba(255,255,255,.8)" stroke-width="3.5" stroke-linejoin="round"/>' +
'<line x1="32" y1="26" x2="32" y2="42" stroke="rgba(255,255,255,.8)" stroke-width="3.5" stroke-linecap="round"/>' +
'<circle cx="32" cy="49" r="2.4" fill="rgba(255,255,255,.8)"/></svg>' +
'<h1>Weather data could not be loaded</h1>' +
'<p>' + esc(msg) + '</p>' +
'<button class="retry" onclick="location.reload()">Try again</button>' +
'</div>';
}
function render(data) {
var daily = data.daily || {};
var hourly = data.hourly || {};
var hrs = [];
if (hourly.time && hourly.temperature_2m) {
hourly.time.forEach(function (t, i) {
if (t.slice(0, 10) === dateStr) {
hrs.push({ label: t.slice(11, 16) || (t.slice(11, 13) + ':00'), t: hourly.temperature_2m[i] });
}
});
}
var hourTemps = hrs.map(function (h) { return h.t; }).filter(function (t) { return t != null; });
var tMax = daily.temperature_2m_max ? daily.temperature_2m_max[0] : null;
var tMin = daily.temperature_2m_min ? daily.temperature_2m_min[0] : null;
if (tMax == null && hourTemps.length) tMax = Math.max.apply(null, hourTemps);
if (tMin == null && hourTemps.length) tMin = Math.min.apply(null, hourTemps);
if (tMax == null || tMin == null) {
renderError('No temperature data is available for ' + fmtDate(dateStr) + ' at this location.');
return;
}
var code = daily.weather_code ? daily.weather_code[0] : null;
var cond = (code != null && WMO[code]) ? WMO[code] : ['Unknown conditions', 'cloudy'];
document.body.className = 'theme-' + cond[1];
document.title = name + ' \u00B7 ' + dateStr;
app.innerHTML =
'<div class="head">' +
'<div>' +
'<div class="loc-name">' +
'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' +
'<path d="M12 21s-7-5.5-7-11a7 7 0 0 1 14 0c0 5.5-7 11-7 11z"/><circle cx="12" cy="10" r="2.6"/></svg>' +
esc(name) +
'</div>' +
'<div class="loc-sub"><b>' + fmtDate(dateStr) + '</b> \u00B7 ' +
fmtCoord(lat, 'N', 'S') + ', ' + fmtCoord(lon, 'E', 'W') + '</div>' +
'</div>' +
'<div class="chip">' + (isPast ? 'Archive' : 'Forecast') + '</div>' +
'</div>' +
'<div class="hero">' +
'<div class="icon-wrap">' + iconSvg(cond[1]) + '</div>' +
'<div>' +
'<div class="cond-name">' + cond[0] + '</div>' +
'<div class="cond-sub">' + relLabel(dateStr) + ' \u00B7 All times UTC</div>' +
'</div>' +
'<div class="temps">' +
'<div class="temp"><span class="t-label">High</span><span class="t-val">' + deg(tMax) + '</span></div>' +
'<div class="t-divider"></div>' +
'<div class="temp"><span class="t-label">Low</span><span class="t-val low">' + deg(tMin) + '</span></div>' +
'</div>' +
'</div>' +
'<div class="section-head"><h2>Hourly temperature</h2><span>' + hrs.length + ' hours \u00B7 \u00B0C</span></div>' +
'<div class="chart-box">' + buildChart(hrs, dateStr === today) + '</div>';
}
var base = isPast ? '/api/om/archive' : '/api/om/forecast';
var params = 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
});
fetch(base + '?' + params.toString())
.then(function (res) {
if (!res.ok) throw new Error('The weather service responded with HTTP ' + res.status + '.');
return res.json();
})
.then(function (data) {
if (data && data.error) throw new Error(data.reason || 'The weather service returned an error.');
render(data);
})
.catch(function (e) {
renderError(e && e.message ? e.message : 'An unexpected error occurred while fetching the data.');
});
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 20,496 | html / css / js | 451 / 6,494 / 13,551 |
|---|---|---|---|
| dom nodes | 15 | dom depth | 5 |
| css rules | 61 | js present | yes |
| brightness | 51.6 | contrast | 27.8 |
| colorfulness | 34.0 | whitespace | 42.1% |
This slot's telemetry
| prompt tokens | 2 | completion tokens | 24,360 |
|---|---|---|---|
| total tokens | 24,362 | wall | 310.6 s |
| cost | — | request id | — |
config.json582 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-fable-5-eff-xhigh--cli--cursor-xl--dev",
"effort": "xhigh",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-fable-5",
"protocol": "cli",
"served_model": "claude-fable-5-xhigh",
"telemetry": {
"completion_tokens": 67075,
"cost_usd": null,
"prompt_tokens": 8,
"total_tokens": 67083,
"wall_ms": 832211
},
"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": "claude-fable-5-eff-xhigh--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T12:52:54.199617+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T12:47:43.597323+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-13T12:54:00.998074+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T12:52:58.151758+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-13T12:55:23.049917+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T12:54:04.327706+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-13T13:01:46.289750+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T12:55:26.244371+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
}
}
}