claude-opus-5-thinking @ low · cursor
cursorlow
- config
- claude-opus-5-thinking-eff-low--cli--cursor--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- claude-opus-5-thinking-low
- 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-opus-5 @low · cursor-xl0.77claude-opus-5-thinking @low · cursor-xl0.72claude-fable-5 @low · CC0.71claude-opus-5 @low · CC0.71claude-opus-5 @low · cursor0.70farthest
gpt-5.6-luna @max · codex-oauth0.52gpt-5.6-luna @max · cursor0.52qwen3.6-plus · go0.52minimax-m2.5 · kiro0.53glm-5.1 @enabled · 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 tempambiguousshown: 17max-equals-min
- min tempambiguousshown: 17max-equals-min
- 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=device-width, initial-scale=1.0">
<title>Weather Card</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--ink: #0f1b2d;
--ink-soft: #4a5a72;
--ink-faint: #8c9ab0;
--card-bg: rgba(255, 255, 255, 0.72);
--stroke: rgba(255, 255, 255, 0.85);
--accent: #2f6df6;
}
html, body {
width: 100%;
min-height: 100%;
}
body {
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background:
radial-gradient(1200px 700px at 12% -10%, #cfe3ff 0%, rgba(207,227,255,0) 60%),
radial-gradient(900px 620px at 88% 8%, #ffe6cf 0%, rgba(255,230,207,0) 58%),
radial-gradient(1000px 800px at 60% 110%, #dcd6ff 0%, rgba(220,214,255,0) 62%),
linear-gradient(160deg, #eef3fb 0%, #e7ecf7 45%, #eae7f6 100%);
color: var(--ink);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 40px 24px;
-webkit-font-smoothing: antialiased;
}
.card {
width: 1080px;
max-width: 100%;
background: var(--card-bg);
border: 1px solid var(--stroke);
border-radius: 28px;
box-shadow:
0 1px 0 rgba(255,255,255,0.9) inset,
0 30px 70px -30px rgba(24, 40, 75, 0.35),
0 8px 24px -12px rgba(24, 40, 75, 0.18);
backdrop-filter: blur(22px) saturate(150%);
-webkit-backdrop-filter: blur(22px) saturate(150%);
overflow: hidden;
}
.card-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 32px;
padding: 36px 44px 28px;
border-bottom: 1px solid rgba(15, 27, 45, 0.07);
}
.loc {
display: flex;
flex-direction: column;
gap: 6px;
}
.eyebrow {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--ink-faint);
}
.loc-name {
font-size: 40px;
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.1;
}
.loc-date {
font-size: 15px;
color: var(--ink-soft);
font-weight: 500;
}
.coords {
font-size: 12px;
color: var(--ink-faint);
font-variant-numeric: tabular-nums;
margin-top: 2px;
}
.cond {
display: flex;
align-items: center;
gap: 18px;
padding: 14px 20px 14px 16px;
background: rgba(255, 255, 255, 0.6);
border: 1px solid rgba(255,255,255,0.9);
border-radius: 20px;
box-shadow: 0 10px 30px -18px rgba(24, 40, 75, 0.45);
min-width: 240px;
}
.icon {
width: 62px;
height: 62px;
flex: 0 0 62px;
}
.cond-text { display: flex; flex-direction: column; gap: 3px; }
.cond-label { font-size: 19px; font-weight: 650; letter-spacing: -0.01em; }
.cond-sub { font-size: 12px; color: var(--ink-faint); font-weight: 500; }
.body {
display: grid;
grid-template-columns: 300px 1fr;
gap: 0;
}
.temps {
padding: 34px 40px 38px 44px;
border-right: 1px solid rgba(15, 27, 45, 0.07);
display: flex;
flex-direction: column;
justify-content: center;
gap: 26px;
}
.temp-block { display: flex; flex-direction: column; gap: 4px; }
.temp-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--ink-faint);
display: flex;
align-items: center;
gap: 7px;
}
.dot { width: 8px; height: 8px; border-radius: 50%; }
.dot.hi { background: linear-gradient(180deg, #ff9a5a, #f4622d); }
.dot.lo { background: linear-gradient(180deg, #7db8ff, #3b7ae0); }
.temp-value {
font-size: 62px;
font-weight: 300;
letter-spacing: -0.045em;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.temp-value.hi { color: #d9531e; }
.temp-value.lo { color: #2f6df6; }
.temp-value sup { font-size: 26px; font-weight: 400; vertical-align: super; letter-spacing: 0; }
.range-bar {
height: 6px;
border-radius: 999px;
background: linear-gradient(90deg, #7db8ff, #b9c9ff 40%, #ffc79a 70%, #f4622d);
opacity: 0.85;
}
.chart-wrap { padding: 30px 44px 34px 36px; min-width: 0; }
.chart-head {
display: flex;
align-items: baseline;
justify-content: space-between;
margin-bottom: 14px;
}
.chart-title { font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); }
.chart-meta { font-size: 12px; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
svg.chart { width: 100%; height: 210px; display: block; overflow: visible; }
.grid-line { stroke: rgba(15, 27, 45, 0.08); stroke-width: 1; }
.axis-text { fill: #8c9ab0; font-size: 10px; font-weight: 600; font-family: inherit; }
.pt-label { fill: #3c4a60; font-size: 10.5px; font-weight: 600; font-family: inherit; font-variant-numeric: tabular-nums; }
.hours {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 6px;
margin-top: 22px;
padding-top: 20px;
border-top: 1px solid rgba(15, 27, 45, 0.07);
}
.hour {
text-align: center;
padding: 8px 2px 9px;
border-radius: 12px;
background: rgba(255,255,255,0.5);
border: 1px solid rgba(255,255,255,0.7);
}
.hour .h { font-size: 10px; font-weight: 700; color: var(--ink-faint); letter-spacing: 0.04em; }
.hour .t { font-size: 14px; font-weight: 600; margin-top: 3px; font-variant-numeric: tabular-nums; }
.foot {
padding: 14px 44px 18px;
font-size: 11px;
color: var(--ink-faint);
display: flex;
justify-content: space-between;
border-top: 1px solid rgba(15, 27, 45, 0.07);
}
.state {
padding: 90px 44px;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
}
.state h2 { font-size: 22px; font-weight: 650; letter-spacing: -0.01em; }
.state p { font-size: 14px; color: var(--ink-soft); max-width: 460px; line-height: 1.6; }
.state .err-icon { font-size: 34px; }
.state code {
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
font-size: 12px;
background: rgba(15,27,45,0.06);
padding: 3px 8px;
border-radius: 6px;
color: var(--ink-soft);
}
.spinner {
width: 34px; height: 34px;
border-radius: 50%;
border: 3px solid rgba(47,109,246,0.18);
border-top-color: var(--accent);
animation: spin 0.85s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.fade { animation: fade 0.5s ease both; }
@keyframes fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
</style>
</head>
<body>
<div class="card" id="card">
<div class="state">
<div class="spinner"></div>
<p>Loading weather…</p>
</div>
</div>
<script>
(function () {
var WMO = {
0: ["Clear sky", "sun"],
1: ["Mainly clear", "sun-cloud"],
2: ["Partly cloudy", "sun-cloud"],
3: ["Overcast", "cloud"],
45: ["Fog", "fog"],
48: ["Depositing rime fog", "fog"],
51: ["Light drizzle", "drizzle"],
53: ["Moderate drizzle", "drizzle"],
55: ["Dense drizzle", "drizzle"],
56: ["Light freezing drizzle", "drizzle"],
57: ["Dense freezing drizzle", "drizzle"],
61: ["Slight rain", "rain"],
63: ["Moderate rain", "rain"],
65: ["Heavy rain", "rain"],
66: ["Light freezing rain", "rain"],
67: ["Heavy freezing rain", "rain"],
71: ["Slight snow fall", "snow"],
73: ["Moderate snow fall", "snow"],
75: ["Heavy snow fall", "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"]
};
var ICONS = {
sun: '<circle cx="32" cy="32" r="13" fill="url(#gSun)"/>' +
'<g stroke="#f9a03f" stroke-width="3.4" stroke-linecap="round">' +
'<line x1="32" y1="4" x2="32" y2="12"/><line x1="32" y1="52" x2="32" y2="60"/>' +
'<line x1="4" y1="32" x2="12" y2="32"/><line x1="52" y1="32" x2="60" y2="32"/>' +
'<line x1="12.2" y1="12.2" x2="17.8" y2="17.8"/><line x1="46.2" y1="46.2" x2="51.8" y2="51.8"/>' +
'<line x1="51.8" y1="12.2" x2="46.2" y2="17.8"/><line x1="17.8" y1="46.2" x2="12.2" y2="51.8"/></g>',
"sun-cloud":
'<circle cx="24" cy="23" r="10" fill="url(#gSun)"/>' +
'<g stroke="#f9a03f" stroke-width="3" stroke-linecap="round">' +
'<line x1="24" y1="3" x2="24" y2="9"/><line x1="4" y1="23" x2="10" y2="23"/>' +
'<line x1="9.8" y1="8.8" x2="14" y2="13"/><line x1="38.2" y1="8.8" x2="34" y2="13"/></g>' +
'<path d="M20 50a10 10 0 0 1 1.2-19.9A14 14 0 0 1 48 33.5a9.2 9.2 0 0 1-1.6 16.5z" fill="url(#gCloud)"/>',
cloud: '<path d="M18 50a11 11 0 0 1 1.4-21.9A15 15 0 0 1 49 31.6 10 10 0 0 1 47.4 50z" fill="url(#gCloud)"/>' +
'<path d="M13 41a8 8 0 0 1 6-11.6" stroke="#c7d3e6" stroke-width="2.4" fill="none" stroke-linecap="round"/>',
fog: '<path d="M18 40a11 11 0 0 1 1.4-21.9A15 15 0 0 1 49 21.6 10 10 0 0 1 47.4 40z" fill="url(#gCloud)"/>' +
'<g stroke="#9fb2cc" stroke-width="3.4" stroke-linecap="round">' +
'<line x1="12" y1="48" x2="52" y2="48"/><line x1="18" y1="56" x2="46" y2="56"/></g>',
drizzle: '<path d="M18 38a11 11 0 0 1 1.4-21.9A15 15 0 0 1 49 19.6 10 10 0 0 1 47.4 38z" fill="url(#gCloud)"/>' +
'<g stroke="#4f93e8" stroke-width="3" stroke-linecap="round">' +
'<line x1="23" y1="45" x2="21" y2="52"/><line x1="33" y1="45" x2="31" y2="52"/><line x1="43" y1="45" x2="41" y2="52"/></g>',
rain: '<path d="M18 36a11 11 0 0 1 1.4-21.9A15 15 0 0 1 49 17.6 10 10 0 0 1 47.4 36z" fill="url(#gCloud)"/>' +
'<g stroke="#3b7ae0" stroke-width="3.4" stroke-linecap="round">' +
'<line x1="23" y1="43" x2="19" y2="55"/><line x1="34" y1="43" x2="30" y2="55"/><line x1="45" y1="43" x2="41" y2="55"/></g>',
snow: '<path d="M18 36a11 11 0 0 1 1.4-21.9A15 15 0 0 1 49 17.6 10 10 0 0 1 47.4 36z" fill="url(#gCloud)"/>' +
'<g stroke="#79a9dd" stroke-width="2.6" stroke-linecap="round">' +
'<line x1="21" y1="44" x2="21" y2="54"/><line x1="17" y1="46.5" x2="25" y2="51.5"/><line x1="25" y1="46.5" x2="17" y2="51.5"/>' +
'<line x1="43" y1="44" x2="43" y2="54"/><line x1="39" y1="46.5" x2="47" y2="51.5"/><line x1="47" y1="46.5" x2="39" y2="51.5"/></g>' +
'<circle cx="32" cy="52" r="2.6" fill="#79a9dd"/>',
storm: '<path d="M18 34a11 11 0 0 1 1.4-21.9A15 15 0 0 1 49 15.6 10 10 0 0 1 47.4 34z" fill="url(#gCloud)"/>' +
'<path d="M33 36 24 50h7l-3 12 14-17h-8l4-9z" fill="url(#gBolt)"/>'
};
var DEFS = '<defs>' +
'<linearGradient id="gSun" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#ffd479"/><stop offset="1" stop-color="#f79a2b"/></linearGradient>' +
'<linearGradient id="gCloud" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#cfdcee"/></linearGradient>' +
'<linearGradient id="gBolt" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#ffd66b"/><stop offset="1" stop-color="#f7961e"/></linearGradient>' +
'</defs>';
function esc(s) {
return String(s).replace(/[&<>"']/g, function (c) {
return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c];
});
}
var qs = new URLSearchParams(location.search);
function num(v, d) { var n = parseFloat(v); return isFinite(n) ? n : d; }
var lat = num(qs.get("lat"), 52.52);
var lon = num(qs.get("lon"), 13.405);
var name = (qs.get("name") || "Berlin").trim() || "Berlin";
var todayUTC = new Date().toISOString().slice(0, 10);
var dateRaw = (qs.get("date") || "").trim();
var date = /^\d{4}-\d{2}-\d{2}$/.test(dateRaw) ? dateRaw : todayUTC;
var isPast = date < todayUTC;
var base = isPast ? "/api/om/archive" : "/api/om/forecast";
var params = 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: date,
end_date: date
});
var card = document.getElementById("card");
function fmtDate(iso) {
var p = iso.split("-");
var d = new Date(Date.UTC(+p[0], +p[1] - 1, +p[2]));
if (isNaN(d.getTime())) return iso;
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var mons = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
return days[d.getUTCDay()] + ", " + d.getUTCDate() + " " + mons[d.getUTCMonth()] + " " + d.getUTCFullYear();
}
function t1(v) { return (Math.round(v * 10) / 10).toFixed(1); }
function t0(v) { return String(Math.round(v)); }
function coordStr() {
return Math.abs(lat).toFixed(3) + "\u00B0" + (lat >= 0 ? "N" : "S") + " " +
Math.abs(lon).toFixed(3) + "\u00B0" + (lon >= 0 ? "E" : "W");
}
function showError(msg) {
card.innerHTML =
'<div class="state fade">' +
'<div class="err-icon">\u26A0\uFE0F</div>' +
'<h2>Weather data could not be loaded</h2>' +
'<p>' + esc(msg) + '</p>' +
'<p><code>' + esc(name) + " \u00B7 " + esc(date) + '</code></p>' +
'</div>';
}
function buildChart(times, temps) {
var W = 1000, H = 210, padL = 34, padR = 14, padT = 26, padB = 24;
var vals = temps.filter(function (v) { return typeof v === "number" && isFinite(v); });
if (!vals.length) return "";
var mn = Math.min.apply(null, vals), mx = Math.max.apply(null, vals);
if (mx - mn < 1) { mx += 0.5; mn -= 0.5; }
var padV = (mx - mn) * 0.18;
var lo = mn - padV, hi = mx + padV;
var n = temps.length;
function X(i) { return padL + (n <= 1 ? 0 : (i * (W - padL - padR)) / (n - 1)); }
function Y(v) { return padT + (hi - v) / (hi - lo) * (H - padT - padB); }
var s = '<svg class="chart" viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none" role="img" aria-label="Hourly temperature">';
s += '<defs>' +
'<linearGradient id="gFill" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0" stop-color="#ff9a5a" stop-opacity="0.28"/>' +
'<stop offset="1" stop-color="#6ea8ff" stop-opacity="0.05"/></linearGradient>' +
'<linearGradient id="gLine" x1="0" y1="0" x2="1" y2="0">' +
'<stop offset="0" stop-color="#3b7ae0"/><stop offset="0.5" stop-color="#7a6ce8"/>' +
'<stop offset="1" stop-color="#f4622d"/></linearGradient></defs>';
var ticks = 4;
for (var g = 0; g <= ticks; g++) {
var tv = lo + (hi - lo) * (g / ticks);
var y = Y(tv);
s += '<line class="grid-line" x1="' + padL + '" y1="' + y.toFixed(1) + '" x2="' + (W - padR) + '" y2="' + y.toFixed(1) + '"/>';
s += '<text class="axis-text" x="' + (padL - 8) + '" y="' + (y + 3.5).toFixed(1) + '" text-anchor="end">' + t0(tv) + '\u00B0</text>';
}
var pts = [], first = null, last = null;
for (var i = 0; i < n; i++) {
var v = temps[i];
if (typeof v !== "number" || !isFinite(v)) continue;
var px = X(i), py = Y(v);
pts.push([px, py]);
if (first === null) first = px;
last = px;
}
if (pts.length < 2) return "";
var line = "M " + pts.map(function (p) { return p[0].toFixed(1) + " " + p[1].toFixed(1); }).join(" L ");
var area = line + " L " + last.toFixed(1) + " " + (H - padB) + " L " + first.toFixed(1) + " " + (H - padB) + " Z";
s += '<path d="' + area + '" fill="url(#gFill)"/>';
s += '<path d="' + line + '" fill="none" stroke="url(#gLine)" stroke-width="2.6" stroke-linejoin="round" stroke-linecap="round"/>';
for (var j = 0; j < n; j++) {
var vv = temps[j];
if (typeof vv !== "number" || !isFinite(vv)) continue;
var cx = X(j), cy = Y(vv);
var every = n > 14 ? 3 : 1;
if (j % every === 0 || j === n - 1) {
s += '<circle cx="' + cx.toFixed(1) + '" cy="' + cy.toFixed(1) + '" r="3.2" fill="#fff" stroke="#5b7fd6" stroke-width="2"/>';
s += '<text class="pt-label" x="' + cx.toFixed(1) + '" y="' + (cy - 10).toFixed(1) + '" text-anchor="middle">' + t0(vv) + '\u00B0</text>';
}
}
s += '</svg>';
return s;
}
function render(data) {
var daily = data.daily || {};
var hourly = data.hourly || {};
var tmax = daily.temperature_2m_max && daily.temperature_2m_max[0];
var tmin = daily.temperature_2m_min && daily.temperature_2m_min[0];
var code = daily.weather_code && daily.weather_code[0];
var htimes = hourly.time || [];
var htemps = hourly.temperature_2m || [];
var times = [], temps = [];
for (var i = 0; i < htimes.length; i++) {
if (String(htimes[i]).slice(0, 10) !== date) continue;
times.push(String(htimes[i]).slice(11, 16));
temps.push(typeof htemps[i] === "number" ? htemps[i] : null);
}
var hasAny = (typeof tmax === "number") || (typeof tmin === "number") || temps.some(function (v) { return v !== null; });
if (!hasAny) { showError("The API responded, but contained no temperature data for this date and location."); return; }
var meta = WMO[code] || ["Unknown conditions", "cloud"];
var condLabel = (typeof code === "number") ? meta[0] : "Condition unavailable";
var iconKey = meta[1];
var hourCells = "";
for (var k = 0; k < times.length; k++) {
hourCells += '<div class="hour"><div class="h">' + esc(times[k]) + '</div><div class="t">' +
(temps[k] === null ? "\u2013" : t0(temps[k]) + "\u00B0") + '</div></div>';
}
var chart = buildChart(times, temps);
card.innerHTML =
'<div class="fade">' +
'<div class="card-head">' +
'<div class="loc">' +
'<div class="eyebrow">' + (isPast ? "Historical observation" : "Forecast") + '</div>' +
'<div class="loc-name">' + esc(name) + '</div>' +
'<div class="loc-date">' + esc(fmtDate(date)) + '</div>' +
'<div class="coords">' + esc(coordStr()) + ' \u00B7 UTC</div>' +
'</div>' +
'<div class="cond">' +
'<svg class="icon" viewBox="0 0 64 64" aria-hidden="true">' + DEFS + (ICONS[iconKey] || ICONS.cloud) + '</svg>' +
'<div class="cond-text">' +
'<div class="cond-label">' + esc(condLabel) + '</div>' +
'<div class="cond-sub">' + (typeof code === "number" ? "WMO code " + esc(code) : "\u2014") + '</div>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="body">' +
'<div class="temps">' +
'<div class="temp-block">' +
'<div class="temp-label"><span class="dot hi"></span>Maximum</div>' +
'<div class="temp-value hi">' + (typeof tmax === "number" ? t1(tmax) + '<sup>\u00B0C</sup>' : "\u2013") + '</div>' +
'</div>' +
'<div class="range-bar"></div>' +
'<div class="temp-block">' +
'<div class="temp-label"><span class="dot lo"></span>Minimum</div>' +
'<div class="temp-value lo">' + (typeof tmin === "number" ? t1(tmin) + '<sup>\u00B0C</sup>' : "\u2013") + '</div>' +
'</div>' +
'</div>' +
'<div class="chart-wrap">' +
'<div class="chart-head">' +
'<div class="chart-title">Hourly temperature</div>' +
'<div class="chart-meta">' + times.length + ' hours \u00B7 \u00B0C</div>' +
'</div>' +
(chart || '<p style="font-size:13px;color:#8c9ab0">No hourly data available.</p>') +
'<div class="hours">' + hourCells + '</div>' +
'</div>' +
'</div>' +
'<div class="foot">' +
'<span>Source: Open-Meteo compatible API \u00B7 ' + esc(isPast ? "/api/om/archive" : "/api/om/forecast") + '</span>' +
'<span>All times and dates in UTC</span>' +
'</div>' +
'</div>';
}
fetch(base + "?" + params.toString(), { headers: { "Accept": "application/json" } })
.then(function (r) {
if (!r.ok) throw new Error("The weather service returned HTTP " + r.status + " " + (r.statusText || "") + ".");
return r.json();
})
.then(function (data) {
if (!data || typeof data !== "object") throw new Error("The weather service returned an unreadable response.");
if (data.error) throw new Error(data.reason || "The weather service reported an error.");
render(data);
})
.catch(function (e) {
showError((e && e.message) ? e.message : "An unknown error occurred while requesting weather data.");
});
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 20,860 | html / css / js | 356 / 6,501 / 14,003 |
|---|---|---|---|
| dom nodes | 12 | dom depth | 5 |
| css rules | 53 | js present | yes |
| brightness | 240.3 | contrast | 13.9 |
| colorfulness | 15.6 | whitespace | 98.1% |
This slot's telemetry
| prompt tokens | 2 | completion tokens | 10,322 |
|---|---|---|---|
| total tokens | 10,324 | wall | 105.5 s |
| cost | — | request id | — |
config.json597 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-opus-5-thinking-eff-low--cli--cursor--dev",
"effort": "low",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-opus-5-thinking",
"protocol": "cli",
"served_model": "claude-opus-5-thinking-low",
"telemetry": {
"completion_tokens": 25421,
"cost_usd": null,
"prompt_tokens": 8,
"total_tokens": 25429,
"wall_ms": 272563
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-s0",
"config_id": "claude-opus-5-thinking-eff-low--cli--cursor--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-12T17:39:58.093672+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:38:12.565462+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:40:44.894944+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:40:01.572605+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:41:40.515931+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:40:48.481953+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-12T17:42:55.404915+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:41:43.721707+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
}
}
}