claude-fable-5-thinking @ xhigh · cursor
cursorxhigh
- config
- claude-fable-5-thinking-eff-xhigh--cli--cursor--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- claude-fable-5-thinking-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 tempambiguousinsufficient-distinct-temperature-nodes
- min tempambiguousinsufficient-distinct-temperature-nodes
- 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">
<link rel="icon" href="data:,">
<title>Weather</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--text: #eaf0fa;
--muted: rgba(234, 240, 250, .62);
--faint: rgba(234, 240, 250, .38);
}
.theme-clear { --a:#fbbf24; --b:#38bdf8; --glow-a:rgba(251,191,36,.26); --glow-b:rgba(56,189,248,.24); }
.theme-cloudy { --a:#8fb6e8; --b:#7c8fb8; --glow-a:rgba(125,155,205,.28); --glow-b:rgba(100,116,160,.26); }
.theme-fog { --a:#a8b6c8; --b:#8494ac; --glow-a:rgba(150,165,190,.22); --glow-b:rgba(120,135,160,.20); }
.theme-rain { --a:#38bdf8; --b:#818cf8; --glow-a:rgba(56,189,248,.24); --glow-b:rgba(99,102,241,.26); }
.theme-snow { --a:#a5f3fc; --b:#818cf8; --glow-a:rgba(165,243,252,.20); --glow-b:rgba(129,140,248,.24); }
.theme-storm { --a:#c4b5fd; --b:#f472b6; --glow-a:rgba(167,139,250,.28); --glow-b:rgba(244,114,182,.20); }
html, body { height: 100%; }
body {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background: linear-gradient(155deg, #0a0f1e 0%, #111a33 55%, #0c1226 100%);
color: var(--text);
overflow: hidden;
position: relative;
-webkit-font-smoothing: antialiased;
}
.glow {
position: absolute;
border-radius: 50%;
filter: blur(90px);
opacity: .6;
pointer-events: none;
transition: background 1s ease;
}
.glow-a { width: 660px; height: 660px; top: -240px; left: -140px; background: var(--glow-a); }
.glow-b { width: 580px; height: 580px; bottom: -220px; right: -120px; background: var(--glow-b); }
.card {
position: relative;
width: 1096px;
max-width: calc(100vw - 80px);
border-radius: 32px;
background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.04));
border: 1px solid rgba(255,255,255,.14);
box-shadow: 0 40px 90px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.12);
backdrop-filter: blur(24px);
-webkit-backdrop-filter: blur(24px);
padding: 40px 48px 34px;
overflow: hidden;
}
.card::before {
content: "";
position: absolute;
inset: 0 0 auto 0;
height: 220px;
background: radial-gradient(600px 200px at 30% -60px, rgba(255,255,255,.10), transparent 70%);
pointer-events: none;
}
.state-loading {
display: flex; flex-direction: column; align-items: center;
gap: 18px; padding: 140px 0; color: var(--muted); font-size: 15px;
}
.spinner {
width: 36px; height: 36px; border-radius: 50%;
border: 3px solid rgba(255,255,255,.14);
border-top-color: var(--a);
animation: spin .9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.head { display: flex; justify-content: space-between; align-items: flex-start; position: relative; }
.loc { font-size: 30px; font-weight: 650; letter-spacing: -.02em; }
.date { margin-top: 7px; color: var(--muted); font-size: 15.5px; }
.meta { display: flex; gap: 8px; }
.pill {
font-size: 12.5px; letter-spacing: .04em; color: var(--muted);
border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05);
padding: 6px 13px; border-radius: 999px; font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.hero { display: flex; align-items: center; justify-content: space-between; margin-top: 30px; position: relative; }
.cond { font-size: 14px; font-weight: 650; letter-spacing: .18em; text-transform: uppercase; color: var(--a); }
.big { display: flex; align-items: flex-start; margin-top: 4px; line-height: 1; }
.big .num { font-size: 126px; font-weight: 200; letter-spacing: -.045em; }
.big .unit { font-size: 34px; font-weight: 300; color: var(--muted); margin-top: 18px; margin-left: 4px; }
.hl { display: flex; gap: 12px; margin-top: 16px; }
.chip {
display: inline-flex; align-items: center; gap: 9px;
padding: 9px 15px; border-radius: 13px;
background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.10);
font-size: 15px; font-variant-numeric: tabular-nums;
}
.chip .k { color: var(--faint); font-size: 11.5px; font-weight: 650; letter-spacing: .12em; }
.chip .arrow-hi { color: var(--a); font-size: 14px; }
.chip .arrow-lo { color: var(--b); font-size: 14px; }
.icon-wrap { width: 188px; height: 188px; filter: drop-shadow(0 14px 30px rgba(0,0,0,.35)); flex: none; }
.icon-wrap svg { width: 100%; height: 100%; display: block; }
.divider {
height: 1px; border: 0;
background: linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
margin: 28px 0 20px;
}
.chart-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 4px; position: relative; }
.chart-title { font-size: 13px; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.chart-sub { font-size: 12.5px; color: var(--faint); font-variant-numeric: tabular-nums; }
svg.chart { width: 100%; height: auto; display: block; }
.gridline { stroke: rgba(255,255,255,.07); stroke-width: 1; }
.baseline { stroke: rgba(255,255,255,.13); stroke-width: 1; }
.chart-line {
stroke: url(#lineGrad); stroke-width: 3; fill: none; stroke-linecap: round;
stroke-dasharray: 1; stroke-dashoffset: 1;
animation: draw 1.5s .35s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes draw { to { stroke-dashoffset: 0; } }
.t-label { font-size: 12px; font-weight: 500; fill: rgba(234,240,250,.72); text-anchor: middle; font-variant-numeric: tabular-nums; }
.t-label.is-max { fill: var(--a); font-weight: 700; }
.t-label.is-min { fill: var(--b); font-weight: 700; }
.h-label { font-size: 11.5px; fill: rgba(234,240,250,.40); text-anchor: middle; font-variant-numeric: tabular-nums; }
.pt { fill: rgba(234,240,250,.35); }
.state-error {
display: flex; flex-direction: column; align-items: center; text-align: center;
padding: 64px 0 78px; gap: 8px; position: relative;
}
.state-error .eicon { width: 74px; height: 74px; margin-bottom: 12px; opacity: .85; }
.state-error h2 { font-size: 22px; font-weight: 650; letter-spacing: -.01em; }
.state-error p { color: var(--muted); font-size: 15px; max-width: 480px; line-height: 1.55; }
.state-error .detail { color: var(--faint); font-size: 13px; margin-top: 6px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.fade { opacity: 0; transform: translateY(14px); animation: fadeUp .7s cubic-bezier(.2,.7,.3,1) forwards; }
.fade.d1 { animation-delay: .05s; }
.fade.d2 { animation-delay: .16s; }
.fade.d3 { animation-delay: .30s; }
@keyframes fadeUp { to { opacity: 1; transform: none; } }
</style>
</head>
<body class="theme-clear">
<div class="glow glow-a"></div>
<div class="glow glow-b"></div>
<main class="card" id="card">
<div class="state-loading">
<div class="spinner"></div>
<p>Loading weather…</p>
</div>
</main>
<script>
(function () {
"use strict";
var card = document.getElementById("card");
var esc = function (s) {
return String(s).replace(/[&<>"']/g, function (c) {
return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c];
});
};
var numOr = function (v, d) { var n = parseFloat(v); return Number.isFinite(n) ? n : d; };
var fmt1 = function (v) { return String(Math.round(v * 10) / 10); };
/* ---------- query parameters ---------- */
var qp = new URLSearchParams(location.search);
var lat = numOr(qp.get("lat"), 52.52);
var lon = numOr(qp.get("lon"), 13.405);
var name = (qp.get("name") || "").trim() || "Berlin";
var todayUTC = new Date().toISOString().slice(0, 10);
var date = qp.get("date") || "";
if (!/^\d{4}-\d{2}-\d{2}$/.test(date)) date = todayUTC;
var isPast = date < todayUTC;
var endpoint = isPast ? "/api/om/archive" : "/api/om/forecast";
document.title = name + " \u2014 Weather";
var dateLabel = (function () {
var dt = new Date(date + "T12:00:00Z");
return dt.toLocaleDateString("en-GB", {
weekday: "long", day: "numeric", month: "long", year: "numeric", timeZone: "UTC"
});
})();
var coordLabel = Math.abs(lat).toFixed(2) + "\u00B0" + (lat >= 0 ? "N" : "S") +
", " + Math.abs(lon).toFixed(2) + "\u00B0" + (lon >= 0 ? "E" : "W");
var srcLabel = isPast ? "Archive" : "Forecast";
/* ---------- weather code metadata ---------- */
var WX = [
{ c: [0], l: "Clear sky", i: "sun", t: "clear" },
{ c: [1], l: "Mainly clear", i: "sun", t: "clear" },
{ c: [2], l: "Partly cloudy", i: "partly", t: "cloudy" },
{ c: [3], l: "Overcast", i: "cloud", t: "cloudy" },
{ c: [45], l: "Fog", i: "fog", t: "fog" },
{ c: [48], l: "Rime fog", i: "fog", t: "fog" },
{ c: [51], l: "Light drizzle", i: "drizzle", t: "rain" },
{ c: [53], l: "Moderate drizzle", i: "drizzle", t: "rain" },
{ c: [55], l: "Dense drizzle", i: "drizzle", t: "rain" },
{ c: [56, 57], l: "Freezing drizzle", i: "drizzle", t: "snow" },
{ c: [61], l: "Slight rain", i: "rain", t: "rain" },
{ c: [63], l: "Moderate rain", i: "rain", t: "rain" },
{ c: [65], l: "Heavy rain", i: "rain", t: "rain" },
{ c: [66, 67], l: "Freezing rain", i: "rain", t: "snow" },
{ c: [71], l: "Slight snowfall", i: "snow", t: "snow" },
{ c: [73], l: "Moderate snowfall", i: "snow", t: "snow" },
{ c: [75], l: "Heavy snowfall", i: "snow", t: "snow" },
{ c: [77], l: "Snow grains", i: "snow", t: "snow" },
{ c: [80], l: "Slight rain showers", i: "rain", t: "rain" },
{ c: [81], l: "Moderate rain showers", i: "rain", t: "rain" },
{ c: [82], l: "Violent rain showers", i: "rain", t: "rain" },
{ c: [85, 86], l: "Snow showers", i: "snow", t: "snow" },
{ c: [95], l: "Thunderstorm", i: "storm", t: "storm" },
{ c: [96, 99], l: "Thunderstorm with hail", i: "storm", t: "storm" }
];
function wx(code) {
for (var k = 0; k < WX.length; k++) if (WX[k].c.indexOf(code) !== -1) return WX[k];
return { l: "Unknown conditions", i: "cloud", t: "cloudy" };
}
/* ---------- icon builders ---------- */
function rays(cx, cy, r1, r2, w) {
var s = "";
for (var k = 0; k < 8; k++) {
var a = k * Math.PI / 4;
s += '<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 '<g stroke="#fbbf24" stroke-width="' + w + '" stroke-linecap="round">' + s + "</g>";
}
function cloudGrad(id, c1, c2) {
return '<linearGradient id="' + id + '" x1="0" y1="22" x2="0" y2="72" gradientUnits="userSpaceOnUse">' +
'<stop offset="0" stop-color="' + c1 + '"/><stop offset="1" stop-color="' + c2 + '"/></linearGradient>';
}
function cloudShape(fill, dx, dy, s) {
return '<g transform="translate(' + dx + " " + dy + ') scale(' + s + ')" fill="' + fill + '">' +
'<circle cx="34" cy="54" r="15"/><circle cx="52" cy="44" r="19"/>' +
'<circle cx="68" cy="56" r="13"/><rect x="34" y="52" width="34" height="17" rx="8.5"/></g>';
}
function flake(cx, cy) {
return '<g stroke="#dbeafe" stroke-width="2.5" stroke-linecap="round">' +
'<line x1="' + (cx - 4.5) + '" y1="' + cy + '" x2="' + (cx + 4.5) + '" y2="' + cy + '"/>' +
'<line x1="' + (cx - 2.25) + '" y1="' + (cy - 3.9) + '" x2="' + (cx + 2.25) + '" y2="' + (cy + 3.9) + '"/>' +
'<line x1="' + (cx - 2.25) + '" y1="' + (cy + 3.9) + '" x2="' + (cx + 2.25) + '" y2="' + (cy - 3.9) + '"/></g>';
}
function svgWrap(inner) { return '<svg viewBox="0 0 96 96" aria-hidden="true">' + inner + "</svg>"; }
var sunDefs = '<radialGradient id="sunG" cx="0.4" cy="0.35" r="0.85">' +
'<stop offset="0" stop-color="#ffedb3"/><stop offset="1" stop-color="#f8b830"/></radialGradient>';
var ICONS = {
sun: svgWrap("<defs>" + sunDefs + "</defs>" + rays(48, 48, 29, 38, 4) +
'<circle cx="48" cy="48" r="20" fill="url(#sunG)"/>'),
partly: svgWrap("<defs>" + sunDefs + cloudGrad("cgP", "#f8fafc", "#c7d2e4") + "</defs>" +
rays(64, 30, 16, 22, 3.5) + '<circle cx="64" cy="30" r="12.5" fill="url(#sunG)"/>' +
cloudShape("url(#cgP)", -4, 8, 0.95)),
cloud: svgWrap("<defs>" + cloudGrad("cgB", "#b6c2d6", "#8fa0bc") + cloudGrad("cgF", "#f8fafc", "#c7d2e4") + "</defs>" +
cloudShape("url(#cgB)", 24, 0, 0.62) + cloudShape("url(#cgF)", -2, 10, 0.98)),
fog: svgWrap("<defs>" + cloudGrad("cgG", "#e2e8f0", "#aab8cc") + "</defs>" +
cloudShape("url(#cgG)", 0, -8, 0.95) +
'<g stroke="rgba(203,213,225,.8)" stroke-width="4" stroke-linecap="round">' +
'<line x1="26" y1="70" x2="70" y2="70"/><line x1="34" y1="79" x2="76" y2="79"/>' +
'<line x1="24" y1="88" x2="58" y2="88"/></g>'),
drizzle: svgWrap("<defs>" + cloudGrad("cgD", "#e8eef6", "#b4c2d8") + "</defs>" +
cloudShape("url(#cgD)", 0, -4, 0.95) +
'<g stroke="#60c6f8" stroke-width="4" stroke-linecap="round">' +
'<line x1="38" y1="72" x2="36" y2="80"/><line x1="52" y1="72" x2="50" y2="80"/>' +
'<line x1="66" y1="72" x2="64" y2="80"/></g>'),
rain: svgWrap("<defs>" + cloudGrad("cgR", "#dfe7f2", "#a8b8d0") + "</defs>" +
cloudShape("url(#cgR)", 0, -4, 0.95) +
'<g stroke="#60c6f8" stroke-width="4.5" stroke-linecap="round">' +
'<line x1="37" y1="71" x2="32" y2="85"/><line x1="51" y1="71" x2="46" y2="85"/>' +
'<line x1="65" y1="71" x2="60" y2="85"/></g>'),
snow: svgWrap("<defs>" + cloudGrad("cgS", "#eef3fa", "#bccadf") + "</defs>" +
cloudShape("url(#cgS)", 0, -4, 0.95) + flake(36, 76) + flake(52, 84) + flake(66, 74)),
storm: svgWrap("<defs>" + cloudGrad("cgT", "#c5cede", "#8593ad") + "</defs>" +
cloudShape("url(#cgT)", 0, -6, 0.95) +
'<polygon points="52,60 38,80 48,80 44,94 62,71 52,71" fill="#fde047"/>')
};
var ERROR_ICON = '<svg class="eicon" viewBox="0 0 96 96" aria-hidden="true">' +
'<circle cx="48" cy="48" r="34" fill="none" stroke="rgba(234,240,250,.30)" stroke-width="4"/>' +
'<line x1="48" y1="30" x2="48" y2="53" stroke="rgba(234,240,250,.75)" stroke-width="5.5" stroke-linecap="round"/>' +
'<circle cx="48" cy="65" r="3.8" fill="rgba(234,240,250,.75)"/></svg>';
/* ---------- shared header ---------- */
function headerHtml() {
return '<header class="head fade d1">' +
"<div><h1 class=\"loc\">" + esc(name) + "</h1><p class=\"date\">" + esc(dateLabel) + "</p></div>" +
'<div class="meta"><span class="pill">' + coordLabel + '</span>' +
'<span class="pill">' + srcLabel + " \u00B7 UTC</span></div></header>";
}
/* ---------- chart ---------- */
function smooth(p) {
var d = "M " + p[0][0].toFixed(1) + " " + p[0][1].toFixed(1);
for (var i = 0; i < p.length - 1; i++) {
var a = p[i - 1] || p[i], b = p[i], c = p[i + 1], e = p[i + 2] || c;
d += " C " + (b[0] + (c[0] - a[0]) / 6).toFixed(1) + " " + (b[1] + (c[1] - a[1]) / 6).toFixed(1) +
" " + (c[0] - (e[0] - b[0]) / 6).toFixed(1) + " " + (c[1] - (e[1] - b[1]) / 6).toFixed(1) +
" " + c[0].toFixed(1) + " " + c[1].toFixed(1);
}
return d;
}
function buildChart(hours) {
var W = 1000, H = 256, L = 36, R = 20, T = 44, B = 38;
var temps = hours.map(function (o) { return o.t; });
var n = temps.length;
var realMax = Math.max.apply(null, temps), realMin = Math.min.apply(null, temps);
var lo = realMin, hi = realMax;
if (hi - lo < 2) { var m = (hi + lo) / 2; lo = m - 1; hi = m + 1; }
var x = function (i) { return n === 1 ? W / 2 : L + i * (W - L - R) / (n - 1); };
var y = function (t) { return T + (hi - t) * (H - T - B) / (hi - lo); };
var pts = temps.map(function (t, i) { return [x(i), y(t)]; });
var line = smooth(pts);
var area = line + " L " + x(n - 1).toFixed(1) + " " + (H - B) + " L " + x(0).toFixed(1) + " " + (H - B) + " Z";
var maxI = temps.indexOf(realMax), minI = temps.indexOf(realMin);
var s = '<svg class="chart" viewBox="0 0 ' + W + " " + H + '" role="img" aria-label="Hourly temperatures">';
s += "<defs>" +
'<linearGradient id="lineGrad" x1="0" y1="0" x2="1" y2="0">' +
'<stop offset="0" style="stop-color:var(--b)"/><stop offset="1" style="stop-color:var(--a)"/></linearGradient>' +
'<linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0" style="stop-color:var(--a)" stop-opacity="0.25"/>' +
'<stop offset="1" style="stop-color:var(--a)" stop-opacity="0"/></linearGradient></defs>';
var mid = (T + H - B) / 2;
s += '<line class="gridline" x1="' + L + '" y1="' + T + '" x2="' + (W - R) + '" y2="' + T + '"/>';
s += '<line class="gridline" x1="' + L + '" y1="' + mid + '" x2="' + (W - R) + '" y2="' + mid + '"/>';
s += '<line class="baseline" x1="' + L + '" y1="' + (H - B) + '" x2="' + (W - R) + '" y2="' + (H - B) + '"/>';
s += '<path d="' + area + '" fill="url(#areaGrad)"/>';
s += '<path class="chart-line" d="' + line + '" pathLength="1"/>';
for (var i = 0; i < n; i++) {
if (i !== maxI && i !== minI) {
s += '<circle class="pt" cx="' + pts[i][0].toFixed(1) + '" cy="' + pts[i][1].toFixed(1) + '" r="2.4"/>';
}
}
s += '<circle cx="' + pts[maxI][0].toFixed(1) + '" cy="' + pts[maxI][1].toFixed(1) + '" r="9" style="fill:var(--a)" opacity="0.18"/>';
s += '<circle cx="' + pts[maxI][0].toFixed(1) + '" cy="' + pts[maxI][1].toFixed(1) + '" r="4.6" style="fill:var(--a)"/>';
s += '<circle cx="' + pts[minI][0].toFixed(1) + '" cy="' + pts[minI][1].toFixed(1) + '" r="9" style="fill:var(--b)" opacity="0.18"/>';
s += '<circle cx="' + pts[minI][0].toFixed(1) + '" cy="' + pts[minI][1].toFixed(1) + '" r="4.6" style="fill:var(--b)"/>';
for (i = 0; i < n; i++) {
var cls = "t-label" + (i === maxI ? " is-max" : i === minI ? " is-min" : "");
s += '<text class="' + cls + '" x="' + pts[i][0].toFixed(1) + '" y="' + (pts[i][1] - 11).toFixed(1) + '">' +
Math.round(temps[i]) + "\u00B0</text>";
}
for (i = 0; i < n; i++) {
if (i % 3 === 0 || i === n - 1) {
s += '<text class="h-label" x="' + pts[i][0].toFixed(1) + '" y="' + (H - 12) + '">' + hours[i].hh + ":00</text>";
}
}
return s + "</svg>";
}
/* ---------- renderers ---------- */
function render(tmax, tmin, code, hours) {
var w = wx(code);
document.body.className = "theme-" + w.t;
card.innerHTML =
headerHtml() +
'<section class="hero fade d2"><div>' +
'<p class="cond">' + esc(w.l) + "</p>" +
'<div class="big"><span class="num">' + Math.round(tmax) + "\u00B0</span><span class=\"unit\">C</span></div>" +
'<div class="hl">' +
'<span class="chip"><span class="arrow-hi">\u2191</span><span class="k">HIGH</span>' + fmt1(tmax) + "\u00B0C</span>" +
'<span class="chip"><span class="arrow-lo">\u2193</span><span class="k">LOW</span>' + fmt1(tmin) + "\u00B0C</span>" +
"</div></div>" +
'<div class="icon-wrap">' + ICONS[w.i] + "</div></section>" +
'<hr class="divider">' +
'<section class="fade d3">' +
'<div class="chart-head"><h2 class="chart-title">Hourly temperature</h2>' +
'<span class="chart-sub">' + hours.length + " hours \u00B7 UTC \u00B7 \u00B0C</span></div>" +
buildChart(hours) +
"</section>";
}
function renderError(detail) {
document.body.className = "theme-cloudy";
card.innerHTML =
headerHtml() +
'<div class="state-error fade d2">' + ERROR_ICON +
"<h2>Weather data could not be loaded</h2>" +
"<p>The weather service could not be reached, or it returned no data for " +
esc(name) + " on " + esc(dateLabel) + ". Please try again later.</p>" +
(detail ? '<p class="detail">' + esc(detail) + "</p>" : "") +
"</div>";
}
/* ---------- fetch & boot ---------- */
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: date,
end_date: date
});
fetch(endpoint + "?" + params.toString())
.then(function (res) {
if (!res.ok) throw new Error("API responded with HTTP " + res.status);
return res.json();
})
.then(function (data) {
var daily = data && data.daily;
var tmax = daily && daily.temperature_2m_max ? daily.temperature_2m_max[0] : null;
var tmin = daily && daily.temperature_2m_min ? daily.temperature_2m_min[0] : null;
var code = daily && daily.weather_code ? daily.weather_code[0] : null;
var hours = [];
if (data && data.hourly && Array.isArray(data.hourly.time)) {
data.hourly.time.forEach(function (tm, i) {
var v = data.hourly.temperature_2m ? data.hourly.temperature_2m[i] : null;
if (typeof tm === "string" && tm.indexOf(date) === 0 && v != null) {
hours.push({ hh: tm.slice(11, 13), t: v });
}
});
}
if (tmax == null || tmin == null || hours.length === 0) {
throw new Error("No data available for the requested date");
}
render(tmax, tmin, code, hours);
})
.catch(function (err) {
renderError(err && err.message ? err.message : "Unknown error");
});
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 21,515 | html / css / js | 456 / 6,679 / 14,380 |
|---|---|---|---|
| dom nodes | 15 | dom depth | 5 |
| css rules | 62 | js present | yes |
| brightness | 42.1 | contrast | 20.7 |
| colorfulness | 19.4 | whitespace | 52.6% |
This slot's telemetry
| prompt tokens | 2 | completion tokens | 30,774 |
|---|---|---|---|
| total tokens | 30,776 | wall | 366.8 s |
| cost | — | request id | — |
config.json606 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-fable-5-thinking-eff-xhigh--cli--cursor--dev",
"effort": "xhigh",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-fable-5-thinking",
"protocol": "cli",
"served_model": "claude-fable-5-thinking-xhigh",
"telemetry": {
"completion_tokens": 77288,
"cost_usd": null,
"prompt_tokens": 8,
"total_tokens": 77296,
"wall_ms": 928614
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-s1",
"config_id": "claude-fable-5-thinking-eff-xhigh--cli--cursor--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-12T17:16:19.714352+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:10:12.914996+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:17:25.149988+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:16:23.476303+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:18:23.214139+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:17:28.527260+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:25:52.237392+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:18:26.819127+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
}
}
}