claude-sonnet-5-thinking @ high · cursor
cursorhigh
- config
- claude-sonnet-5-thinking-eff-high--cli--cursor--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- claude-sonnet-5-thinking-high
- 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 neighbors
nearest
claude-sonnet-5-thinking @high · cursor-xl0.68claude-sonnet-5 @xhigh · cursor0.67claude-opus-4-8 @high · CC0.67claude-opus-4-8-thinking @medium · cursor0.67claude-sonnet-5 @high · CC0.67farthest
north-mini-code-free · api0.52grok-4.3 · api0.52qwen3.6-plus · go0.52grok-4.3 @medium · api0.53grok-4.3 @low · api0.53within session 2026-07-19--unified
similarity measures convergence within this session — not quality.
Fidelity — does the card show the right data?
- namematch
- conditionmatch
- datematch
- max tempmismatchshown: 52.52
- min tempmismatchshown: 13.4
- hourlynot-foundcoverage · 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" data-weather="clear">
<head>
<meta charset="UTF-8">
<title>Weather</title>
<style>
:root {
--bg-1: #4a9de8;
--bg-2: #1c5aa8;
--bg-3: #ffd88a;
--accent: #ffb648;
--accent-soft: rgba(255, 182, 72, 0.35);
--card-bg: rgba(255, 255, 255, 0.10);
--card-border: rgba(255, 255, 255, 0.28);
--card-shadow: rgba(10, 20, 40, 0.45);
--text-primary: #ffffff;
--text-secondary: rgba(255, 255, 255, 0.70);
--panel-bg: rgba(255, 255, 255, 0.07);
--cloud-fill: rgba(255, 255, 255, 0.94);
--cloud-fill-2: rgba(255, 255, 255, 0.55);
}
html[data-weather="cloudy"] {
--bg-1: #8393a7; --bg-2: #4c5b73; --bg-3: #cfd8e3;
--accent: #a9c1de; --accent-soft: rgba(169, 193, 222, 0.35);
}
html[data-weather="fog"] {
--bg-1: #9aa1a9; --bg-2: #5f6670; --bg-3: #d8dbdf;
--accent: #c7ccd1; --accent-soft: rgba(199, 204, 209, 0.35);
}
html[data-weather="rain"] {
--bg-1: #3c5068; --bg-2: #131c2b; --bg-3: #5b7a9d;
--accent: #74b9f0; --accent-soft: rgba(116, 185, 240, 0.35);
}
html[data-weather="snow"] {
--bg-1: #d7ecfa; --bg-2: #9cc4de; --bg-3: #ffffff;
--accent: #4f9cc9; --accent-soft: rgba(79, 156, 201, 0.30);
--card-bg: rgba(20, 50, 75, 0.10); --card-border: rgba(20, 50, 75, 0.18);
--card-shadow: rgba(30, 60, 90, 0.25);
--text-primary: #16374d; --text-secondary: rgba(22, 55, 77, 0.65);
--panel-bg: rgba(20, 50, 75, 0.06);
--cloud-fill: rgba(255, 255, 255, 0.98); --cloud-fill-2: rgba(255, 255, 255, 0.7);
}
html[data-weather="thunder"] {
--bg-1: #2c2050; --bg-2: #0d0a1c; --bg-3: #7c5cc4;
--accent: #b58cf2; --accent-soft: rgba(181, 140, 242, 0.35);
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
width: 1280px;
height: 800px;
overflow: hidden;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background: #0b1220;
}
.scene {
position: relative;
width: 1280px;
height: 800px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(150deg, var(--bg-1) 0%, var(--bg-2) 75%);
transition: background 0.8s ease;
}
.blob {
position: absolute;
border-radius: 50%;
filter: blur(90px);
opacity: 0.55;
pointer-events: none;
}
.blob-a {
width: 480px; height: 480px;
top: -140px; left: -100px;
background: var(--bg-3);
animation: floatBlob 22s ease-in-out infinite;
}
.blob-b {
width: 420px; height: 420px;
bottom: -160px; right: -80px;
background: var(--accent);
opacity: 0.4;
animation: floatBlob 26s ease-in-out infinite reverse;
}
@keyframes floatBlob {
0% { transform: translate(0, 0) scale(1); }
50% { transform: translate(35px, -25px) scale(1.08); }
100% { transform: translate(-25px, 20px) scale(0.95); }
}
.card {
position: relative;
width: 1080px;
height: 700px;
padding: 52px 60px;
border-radius: 32px;
background: var(--card-bg);
border: 1px solid var(--card-border);
backdrop-filter: blur(28px) saturate(150%);
-webkit-backdrop-filter: blur(28px) saturate(150%);
box-shadow: 0 40px 90px var(--card-shadow), inset 0 1px 0 rgba(255,255,255,0.15);
color: var(--text-primary);
display: flex;
flex-direction: column;
transition: color 0.8s ease, background 0.8s ease, border-color 0.8s ease;
}
[hidden] { display: none !important; }
/* ---------- Loading state ---------- */
.state-loading {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 22px;
}
.spinner {
width: 56px; height: 56px;
border-radius: 50%;
border: 4px solid rgba(255,255,255,0.25);
border-top-color: var(--accent);
animation: spin 0.9s linear infinite;
}
html[data-weather="snow"] .spinner { border-color: rgba(20,50,75,0.15); border-top-color: var(--accent); }
@keyframes spin { to { transform: rotate(360deg); } }
.state-loading p { color: var(--text-secondary); font-size: 16px; letter-spacing: 0.2px; margin: 0; }
/* ---------- Error state ---------- */
.state-error {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 18px;
text-align: center;
}
.state-error svg { width: 64px; height: 64px; opacity: 0.9; }
.state-error h2 { margin: 0; font-size: 24px; font-weight: 600; }
.state-error p { margin: 0; max-width: 520px; color: var(--text-secondary); font-size: 15px; line-height: 1.5; }
/* ---------- Content state ---------- */
.state-content { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.card-header { display: flex; align-items: flex-start; justify-content: space-between; }
.place h1 { margin: 0; font-size: 42px; font-weight: 600; letter-spacing: -0.5px; }
.date-label { margin: 6px 0 0; font-size: 16px; color: var(--text-secondary); }
.coords {
padding: 9px 16px;
border-radius: 20px;
background: rgba(255,255,255,0.08);
border: 1px solid var(--card-border);
font-size: 13px;
letter-spacing: 0.3px;
color: var(--text-secondary);
white-space: nowrap;
}
html[data-weather="snow"] .coords { background: rgba(20,50,75,0.06); }
.hero { display: flex; align-items: center; justify-content: space-between; padding: 0 4px; }
.condition-group { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.hero-icon { width: 148px; height: 148px; }
.hero-icon svg { width: 100%; height: 100%; overflow: visible; }
.condition-text { font-size: 23px; font-weight: 500; text-align: center; }
.temps { text-align: right; }
.temp-max-row { display: flex; align-items: flex-start; justify-content: flex-end; line-height: 1; }
.temp-max-row .value { font-size: 132px; font-weight: 200; letter-spacing: -5px; }
.temp-max-row .deg { font-size: 52px; font-weight: 200; margin-top: 10px; }
.temp-min-row { margin-top: 6px; font-size: 21px; color: var(--text-secondary); }
.temp-min-row .lowlabel { text-transform: uppercase; letter-spacing: 1.5px; font-size: 13px; opacity: 0.85; margin-right: 8px; }
.temp-min-row .deg-small { font-size: 16px; }
.hourly {
background: var(--panel-bg);
border: 1px solid var(--card-border);
border-radius: 24px;
padding: 26px 30px 20px;
}
.hourly-title { font-size: 12.5px; text-transform: uppercase; letter-spacing: 2px; color: var(--text-secondary); margin-bottom: 14px; }
.chart-wrap { width: 100%; }
#chart { width: 100%; height: 168px; display: block; }
.hourly-labels { position: relative; height: 18px; margin-top: 6px; }
.hourly-labels span {
position: absolute;
top: 0;
transform: translateX(-50%);
font-size: 12.5px;
color: var(--text-secondary);
white-space: nowrap;
}
.chart-line { stroke: var(--accent); stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.chart-dot { fill: var(--accent); }
.stop-start { stop-color: var(--accent); stop-opacity: 0.35; }
.stop-end { stop-color: var(--accent); stop-opacity: 0; }
/* ---------- Weather icon shared pieces ---------- */
.sun-core { fill: var(--accent); filter: drop-shadow(0 0 22px var(--accent-soft)); animation: pulseGlow 4s ease-in-out infinite; }
.sun-rays line { stroke: var(--accent); stroke-width: 4.5; stroke-linecap: round; }
.sun-rays { transform-origin: 60px 60px; animation: rotateRays 24s linear infinite; }
@keyframes rotateRays { to { transform: rotate(360deg); } }
@keyframes pulseGlow { 0%, 100% { filter: drop-shadow(0 0 16px var(--accent-soft)); } 50% { filter: drop-shadow(0 0 30px var(--accent-soft)); } }
.cloud-body { fill: var(--cloud-fill); filter: drop-shadow(0 6px 10px rgba(0,0,0,0.18)); }
.cloud-body-2 { fill: var(--cloud-fill-2); }
.cloud-drift { animation: cloudDrift 6.5s ease-in-out infinite; }
.cloud-back { animation-duration: 9s; }
@keyframes cloudDrift { 0%, 100% { transform: translateX(-4px); } 50% { transform: translateX(4px); } }
.rain-drops line { stroke: var(--accent); stroke-width: 3.2; stroke-linecap: round; opacity: 0; animation: dropFall 1.1s linear infinite; }
.rain-drops line:nth-child(2) { animation-delay: 0.22s; }
.rain-drops line:nth-child(3) { animation-delay: 0.44s; }
.rain-drops line:nth-child(4) { animation-delay: 0.66s; }
.rain-drops line:nth-child(5) { animation-delay: 0.88s; }
@keyframes dropFall { 0% { transform: translateY(-6px); opacity: 0; } 25% { opacity: 1; } 100% { transform: translateY(12px); opacity: 0; } }
.snow-flakes circle { fill: #ffffff; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.2)); opacity: 0; animation: flakeFall 3s linear infinite; }
.snow-flakes circle:nth-child(2) { animation-delay: 0.6s; }
.snow-flakes circle:nth-child(3) { animation-delay: 1.2s; }
.snow-flakes circle:nth-child(4) { animation-delay: 1.8s; }
.snow-flakes circle:nth-child(5) { animation-delay: 2.4s; }
@keyframes flakeFall { 0% { transform: translate(0, -6px); opacity: 0; } 25% { opacity: 1; } 100% { transform: translate(5px, 16px); opacity: 0; } }
.fog-lines line { stroke: var(--text-secondary); stroke-width: 4.5; stroke-linecap: round; animation: fogWave 4.5s ease-in-out infinite; }
.fog-lines line:nth-child(2) { animation-delay: 0.6s; }
.fog-lines line:nth-child(3) { animation-delay: 1.2s; }
@keyframes fogWave { 0%, 100% { opacity: 0.35; transform: translateX(-6px); } 50% { opacity: 0.85; transform: translateX(6px); } }
.bolt { fill: var(--accent); filter: drop-shadow(0 0 10px var(--accent-soft)); animation: boltFlicker 2.6s ease-in-out infinite; }
@keyframes boltFlicker { 0%, 38%, 100% { opacity: 1; } 44% { opacity: 0.25; } 50% { opacity: 1; } 68% { opacity: 0.45; } 74% { opacity: 1; } }
</style>
</head>
<body>
<div class="scene">
<div class="blob blob-a"></div>
<div class="blob blob-b"></div>
<div class="card" id="card">
<div class="state-loading" id="loadingState">
<div class="spinner"></div>
<p>Loading weather data…</p>
</div>
<div class="state-error" id="errorState" hidden>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6">
<path d="M12 9v4M12 16.5h.01M10.29 3.86l-8.18 14.18A1 1 0 0 0 3 19.5h18a1 1 0 0 0 .87-1.5L13.71 3.86a1 1 0 0 0-1.72 0Z" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<h2>Unable to load weather data</h2>
<p id="errorMessage">Something went wrong while fetching the forecast. Please try again later.</p>
</div>
<div class="state-content" id="contentState" hidden>
<header class="card-header">
<div class="place">
<h1 id="locationName">Berlin</h1>
<p class="date-label" id="dateLabel"> </p>
</div>
<div class="coords" id="coords"> </div>
</header>
<section class="hero">
<div class="condition-group">
<div class="hero-icon" id="weatherIcon"></div>
<div class="condition-text" id="conditionText"> </div>
</div>
<div class="temps">
<div class="temp-max-row">
<span class="value" id="tempMax">—</span><span class="deg">°</span>
</div>
<div class="temp-min-row">
<span class="lowlabel">Low</span><span id="tempMin">—</span><span class="deg-small">°</span>
</div>
</div>
</section>
<section class="hourly">
<div class="hourly-title">Hourly Temperature</div>
<div class="chart-wrap">
<svg id="chart" viewBox="0 0 900 200" preserveAspectRatio="none"></svg>
</div>
<div class="hourly-labels" id="hourlyLabels"></div>
</section>
</div>
</div>
</div>
<script>
(function () {
'use strict';
var ICONS = {
clear:
'<svg viewBox="0 0 120 120"><g class="sun-rays">' +
'<line x1="60" y1="6" x2="60" y2="20"/><line x1="60" y1="100" x2="60" y2="114"/>' +
'<line x1="6" y1="60" x2="20" y2="60"/><line x1="100" y1="60" x2="114" y2="60"/>' +
'<line x1="20" y1="20" x2="30" y2="30"/><line x1="90" y1="90" x2="100" y2="100"/>' +
'<line x1="20" y1="100" x2="30" y2="90"/><line x1="90" y1="30" x2="100" y2="20"/>' +
'</g><circle class="sun-core" cx="60" cy="60" r="27"/></svg>',
cloudy:
'<svg viewBox="0 0 120 120">' +
'<g class="cloud-drift cloud-back"><path class="cloud-body cloud-body-2" d="M42 66c-8 0-14-6-14-14 0-7 5-13 12-14 2-9 10-15 19-15 10 0 18 7 20 16 7 1 12 7 12 14 0 8-6 14-14 14H42z"/></g>' +
'<g class="cloud-drift cloud-front"><path class="cloud-body" d="M28 90c-10 0-18-8-18-18 0-9 7-16 16-17 2-11 12-19 24-19 13 0 23 9 25 21 9 1 16 9 16 18 0 10-8 18-18 18H28z"/></g>' +
'</svg>',
fog:
'<svg viewBox="0 0 120 120">' +
'<g class="cloud-drift"><path class="cloud-body" d="M35 52c-8 0-14-6-14-14 0-7 5-13 12-14 2-9 10-15 19-15 10 0 18 7 20 16 7 1 12 7 12 14 0 8-6 14-14 14H35z"/></g>' +
'<g class="fog-lines"><line x1="18" y1="78" x2="102" y2="78"/><line x1="26" y1="93" x2="94" y2="93"/><line x1="14" y1="108" x2="106" y2="108"/></g>' +
'</svg>',
rain:
'<svg viewBox="0 0 120 120">' +
'<g class="cloud-drift"><path class="cloud-body" d="M30 68c-9 0-16-7-16-16 0-8 6-15 14-16 2-10 11-17 21-17 11 0 20 8 22 18 8 1 14 8 14 16 0 9-7 16-16 16H30z"/></g>' +
'<g class="rain-drops"><line x1="38" y1="82" x2="34" y2="97"/><line x1="58" y1="82" x2="54" y2="97"/><line x1="78" y1="82" x2="74" y2="97"/><line x1="48" y1="93" x2="44" y2="108"/><line x1="68" y1="93" x2="64" y2="108"/></g>' +
'</svg>',
snow:
'<svg viewBox="0 0 120 120">' +
'<g class="cloud-drift"><path class="cloud-body" d="M30 68c-9 0-16-7-16-16 0-8 6-15 14-16 2-10 11-17 21-17 11 0 20 8 22 18 8 1 14 8 14 16 0 9-7 16-16 16H30z"/></g>' +
'<g class="snow-flakes"><circle cx="38" cy="86" r="3.2"/><circle cx="58" cy="92" r="3.2"/><circle cx="78" cy="86" r="3.2"/><circle cx="48" cy="103" r="3.2"/><circle cx="68" cy="103" r="3.2"/></g>' +
'</svg>',
thunder:
'<svg viewBox="0 0 120 120">' +
'<g class="cloud-drift"><path class="cloud-body" d="M30 62c-9 0-16-7-16-16 0-8 6-15 14-16 2-10 11-17 21-17 11 0 20 8 22 18 8 1 14 8 14 16 0 9-7 16-16 16H30z"/></g>' +
'<polygon class="bolt" points="63,70 46,98 58,98 50,116 79,85 64,85"/>' +
'</svg>'
};
var WEATHER_TABLE = {
0: ['clear', 'Clear sky'], 1: ['clear', 'Mainly clear'],
2: ['cloudy', 'Partly cloudy'], 3: ['cloudy', 'Overcast'],
45: ['fog', 'Fog'], 48: ['fog', 'Rime fog'],
51: ['rain', 'Light drizzle'], 53: ['rain', 'Moderate drizzle'], 55: ['rain', 'Dense drizzle'],
56: ['rain', 'Light freezing drizzle'], 57: ['rain', 'Dense freezing drizzle'],
61: ['rain', 'Slight rain'], 63: ['rain', 'Moderate rain'], 65: ['rain', 'Heavy rain'],
66: ['rain', 'Light freezing rain'], 67: ['rain', 'Heavy freezing rain'],
71: ['snow', 'Slight snow fall'], 73: ['snow', 'Moderate snow fall'], 75: ['snow', 'Heavy snow fall'],
77: ['snow', 'Snow grains'],
80: ['rain', 'Slight rain showers'], 81: ['rain', 'Moderate rain showers'], 82: ['rain', 'Violent rain showers'],
85: ['snow', 'Slight snow showers'], 86: ['snow', 'Heavy snow showers'],
95: ['thunder', 'Thunderstorm'], 96: ['thunder', 'Thunderstorm with hail'], 99: ['thunder', 'Thunderstorm with heavy hail']
};
function getWeatherInfo(code) {
var entry = WEATHER_TABLE[code];
if (!entry) entry = ['cloudy', 'Unknown conditions'];
return { group: entry[0], text: entry[1], icon: ICONS[entry[0]] || ICONS.cloudy };
}
function pad2(n) { return n < 10 ? '0' + n : String(n); }
function todayUTCString() {
var d = new Date();
return d.getUTCFullYear() + '-' + pad2(d.getUTCMonth() + 1) + '-' + pad2(d.getUTCDate());
}
function formatDate(dateStr) {
var d = new Date(dateStr + 'T00:00:00Z');
if (isNaN(d.getTime())) return dateStr;
return d.toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' });
}
function formatCoords(lat, lon) {
var latDir = lat >= 0 ? 'N' : 'S';
var lonDir = lon >= 0 ? 'E' : 'W';
return Math.abs(lat).toFixed(2) + '\u00B0' + latDir + ', ' + Math.abs(lon).toFixed(2) + '\u00B0' + lonDir;
}
function formatHourLabel(timeStr) {
var hh = parseInt(timeStr.slice(11, 13), 10);
if (isNaN(hh)) return '';
if (hh === 0) return '12 AM';
if (hh < 12) return hh + ' AM';
if (hh === 12) return '12 PM';
return (hh - 12) + ' PM';
}
function smoothPath(points) {
if (points.length === 0) return '';
if (points.length === 1) return 'M ' + points[0][0] + ' ' + points[0][1];
var d = 'M ' + points[0][0] + ' ' + points[0][1];
for (var i = 0; i < points.length - 1; i++) {
var p0 = points[i === 0 ? i : i - 1];
var p1 = points[i];
var p2 = points[i + 1];
var p3 = points[i + 2 < points.length ? i + 2 : i + 1];
var cp1x = p1[0] + (p2[0] - p0[0]) / 6;
var cp1y = p1[1] + (p2[1] - p0[1]) / 6;
var cp2x = p2[0] - (p3[0] - p1[0]) / 6;
var cp2y = p2[1] - (p3[1] - p1[1]) / 6;
d += ' C ' + cp1x + ' ' + cp1y + ', ' + cp2x + ' ' + cp2y + ', ' + p2[0] + ' ' + p2[1];
}
return d;
}
function renderChart(times, temps) {
var svg = document.getElementById('chart');
var labelsEl = document.getElementById('hourlyLabels');
var w = 900, h = 200, padX = 14, padTop = 26, padBottom = 20;
var n = temps.length;
if (!n) {
svg.innerHTML = '';
labelsEl.innerHTML = '';
return;
}
var min = Math.min.apply(null, temps);
var max = Math.max.apply(null, temps);
var range = (max - min) || 1;
var stepX = n > 1 ? (w - padX * 2) / (n - 1) : 0;
var points = [];
for (var i = 0; i < n; i++) {
var x = padX + i * stepX;
var y = padTop + (1 - (temps[i] - min) / range) * (h - padTop - padBottom);
points.push([x, y]);
}
var linePath = smoothPath(points);
var areaPath = linePath +
' L ' + points[n - 1][0] + ' ' + (h - padBottom) +
' L ' + points[0][0] + ' ' + (h - padBottom) + ' Z';
var dots = '';
for (var j = 0; j < points.length; j++) {
if (j % 3 === 0) {
dots += '<circle class="chart-dot" cx="' + points[j][0] + '" cy="' + points[j][1] + '" r="3.2"></circle>';
}
}
svg.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
svg.innerHTML =
'<defs><linearGradient id="areaFill" x1="0" y1="0" x2="0" y2="1">' +
'<stop class="stop-start" offset="0%"></stop>' +
'<stop class="stop-end" offset="100%"></stop>' +
'</linearGradient></defs>' +
'<path d="' + areaPath + '" fill="url(#areaFill)" stroke="none"></path>' +
'<path class="chart-line" d="' + linePath + '"></path>' +
dots;
var labelsHtml = '';
for (var k = 0; k < times.length; k++) {
if (k % 3 !== 0) continue;
var xPct = n > 1 ? ((padX + k * stepX) / w) * 100 : 50;
labelsHtml += '<span style="left:' + xPct + '%">' + formatHourLabel(times[k]) + '</span>';
}
labelsEl.innerHTML = labelsHtml;
}
function showError(message) {
document.getElementById('loadingState').hidden = true;
document.getElementById('contentState').hidden = true;
var errorState = document.getElementById('errorState');
errorState.hidden = false;
document.getElementById('errorMessage').textContent = message;
}
function render(data, ctx) {
var daily = data && data.daily;
var hourly = data && data.hourly;
if (!daily || !daily.time || !daily.time.length ||
!Array.isArray(daily.temperature_2m_max) || !Array.isArray(daily.temperature_2m_min) ||
!Array.isArray(daily.weather_code)) {
throw new Error('No weather data is available for the selected date.');
}
var tmax = daily.temperature_2m_max[0];
var tmin = daily.temperature_2m_min[0];
var code = daily.weather_code[0];
if (tmax === null || tmax === undefined || tmin === null || tmin === undefined) {
throw new Error('No weather data is available for the selected date.');
}
var info = getWeatherInfo(code);
document.documentElement.setAttribute('data-weather', info.group);
document.getElementById('locationName').textContent = ctx.name;
document.getElementById('dateLabel').textContent = formatDate(ctx.date);
document.getElementById('coords').textContent = formatCoords(ctx.latitude, ctx.longitude);
document.getElementById('conditionText').textContent = info.text;
document.getElementById('tempMax').textContent = Math.round(tmax);
document.getElementById('tempMin').textContent = Math.round(tmin);
document.getElementById('weatherIcon').innerHTML = info.icon;
var hTimes = (hourly && hourly.time) || [];
var hTemps = (hourly && hourly.temperature_2m) || [];
renderChart(hTimes, hTemps);
document.getElementById('loadingState').hidden = true;
document.getElementById('errorState').hidden = true;
document.getElementById('contentState').hidden = false;
}
function init() {
var params = new URLSearchParams(window.location.search);
var latRaw = parseFloat(params.get('lat'));
var lonRaw = parseFloat(params.get('lon'));
var latitude = isFinite(latRaw) ? latRaw : 52.52;
var longitude = isFinite(lonRaw) ? lonRaw : 13.405;
var name = params.get('name') || 'Berlin';
var dateParam = params.get('date');
var today = todayUTCString();
var date = (dateParam && /^\d{4}-\d{2}-\d{2}$/.test(dateParam)) ? dateParam : today;
var useArchive = date < today;
var endpoint = useArchive ? '/api/om/archive' : '/api/om/forecast';
var qs = new URLSearchParams({
latitude: String(latitude),
longitude: String(longitude),
daily: 'temperature_2m_max,temperature_2m_min,weather_code',
hourly: 'temperature_2m',
timezone: 'UTC',
temperature_unit: 'celsius',
start_date: date,
end_date: date
});
var ctx = { latitude: latitude, longitude: longitude, name: name, date: date };
fetch(endpoint + '?' + qs.toString())
.then(function (res) {
if (!res.ok) {
throw new Error('The weather service responded with an error (status ' + 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, ctx);
})
.catch(function (err) {
showError((err && err.message) ? err.message : 'Unable to load weather data.');
});
}
init();
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 23,422 | html / css / js | 2,228 / 9,781 / 11,413 |
|---|---|---|---|
| dom nodes | 42 | dom depth | 9 |
| css rules | 102 | js present | yes |
| brightness | 72.1 | contrast | 24.3 |
| colorfulness | 22.0 | whitespace | 44.4% |
This slot's telemetry
| prompt tokens | 48 | completion tokens | 49,321 |
|---|---|---|---|
| total tokens | 49,369 | wall | 600.6 s |
| cost | — | request id | — |
config.json607 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-sonnet-5-thinking-eff-high--cli--cursor--dev",
"effort": "high",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-sonnet-5-thinking",
"protocol": "cli",
"served_model": "claude-sonnet-5-thinking-high",
"telemetry": {
"completion_tokens": 92302,
"cost_usd": null,
"prompt_tokens": 68,
"total_tokens": 92370,
"wall_ms": 984696
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-s2",
"config_id": "claude-sonnet-5-thinking-eff-high--cli--cursor--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-12T17:10:18.981250+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:09:00.233742+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:20:23.282490+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:10:22.669669+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:23:39.414557+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:20:27.020407+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-12T17:25:35.581011+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:23:42.671953+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
}
}
}