claude-fable-5-thinking @ low · cursor-xl
cursor-xllow
- config
- claude-fable-5-thinking-eff-low--cli--cursor-xl--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- claude-fable-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 neighborsNo similarity data for this session — this batch has no computed pairs.
Fidelity — does the card show the right data?
- namematch
- conditionmatch
- datematch
- max tempambiguousshown: 16max-equals-min
- min tempambiguousshown: 16max-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">
<title>Weather Card</title>
<style>
:root {
--card-bg: rgba(255,255,255,0.08);
--border: rgba(255,255,255,0.14);
--text: #f2f5fa;
--muted: rgba(242,245,250,0.62);
--accent: #ffd166;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { height: 100%; }
body {
font-family: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;
background: radial-gradient(1200px 700px at 15% -10%, #3d5a94 0%, transparent 55%),
radial-gradient(1000px 800px at 110% 110%, #2a4b6e 0%, transparent 60%),
linear-gradient(160deg, #101a2e 0%, #17263e 50%, #0c1424 100%);
color: var(--text);
display: flex; align-items: center; justify-content: center;
min-height: 100vh; overflow: hidden;
}
.stars {
position: fixed; inset: 0; pointer-events: none;
background-image:
radial-gradient(1.5px 1.5px at 12% 22%, rgba(255,255,255,.5), transparent),
radial-gradient(1px 1px at 32% 68%, rgba(255,255,255,.35), transparent),
radial-gradient(1.5px 1.5px at 58% 14%, rgba(255,255,255,.4), transparent),
radial-gradient(1px 1px at 74% 48%, rgba(255,255,255,.3), transparent),
radial-gradient(1.5px 1.5px at 88% 78%, rgba(255,255,255,.45), transparent),
radial-gradient(1px 1px at 44% 88%, rgba(255,255,255,.3), transparent);
}
.card {
position: relative;
width: 880px;
border-radius: 28px;
background: var(--card-bg);
border: 1px solid var(--border);
backdrop-filter: blur(24px);
box-shadow: 0 30px 80px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.12);
padding: 44px 48px 40px;
}
.top {
display: flex; justify-content: space-between; align-items: flex-start;
margin-bottom: 8px;
}
.location {
font-size: 34px; font-weight: 600; letter-spacing: 0.3px;
}
.date {
color: var(--muted); font-size: 15px; margin-top: 6px;
text-transform: uppercase; letter-spacing: 2px;
}
.icon { font-size: 76px; line-height: 1; filter: drop-shadow(0 6px 18px rgba(0,0,0,0.35)); }
.main {
display: flex; align-items: baseline; gap: 28px; margin: 18px 0 6px;
}
.temp-max {
font-size: 96px; font-weight: 200; letter-spacing: -3px;
}
.temp-max sup { font-size: 36px; font-weight: 300; color: var(--muted); }
.temp-min {
font-size: 30px; font-weight: 400; color: var(--muted);
}
.condition {
font-size: 20px; color: var(--accent); font-weight: 500;
letter-spacing: 0.5px; margin-bottom: 30px;
}
.divider {
height: 1px; background: linear-gradient(90deg, transparent, var(--border), transparent);
margin-bottom: 26px;
}
.hourly-title {
font-size: 12px; text-transform: uppercase; letter-spacing: 2.5px;
color: var(--muted); margin-bottom: 16px;
}
.hourly {
display: flex; gap: 4px; overflow-x: auto; padding-bottom: 8px;
scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.25) transparent;
}
.hour {
flex: 0 0 62px; display: flex; flex-direction: column; align-items: center;
gap: 8px; padding: 12px 4px; border-radius: 14px;
transition: background 0.2s;
}
.hour:hover { background: rgba(255,255,255,0.07); }
.hour .h-time { font-size: 12px; color: var(--muted); }
.hour .h-bar-wrap {
height: 70px; width: 6px; background: rgba(255,255,255,0.08);
border-radius: 3px; display: flex; align-items: flex-end;
}
.hour .h-bar {
width: 100%; border-radius: 3px;
background: linear-gradient(180deg, #ffd166, #ef8354);
}
.hour .h-temp { font-size: 14px; font-weight: 600; }
.status {
text-align: center; padding: 80px 20px; font-size: 20px; color: var(--muted);
}
.status.error { color: #ff9b9b; }
.spinner {
width: 34px; height: 34px; margin: 0 auto 18px;
border: 3px solid rgba(255,255,255,0.15); border-top-color: var(--accent);
border-radius: 50%; animation: spin 0.9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
</style>
</head>
<body>
<div class="stars"></div>
<div class="card" id="card">
<div class="status" id="status"><div class="spinner"></div>Loading weather…</div>
</div>
<script>
(function () {
const params = new URLSearchParams(location.search);
const lat = parseFloat(params.get("lat")) || 52.52;
const lon = parseFloat(params.get("lon")) || 13.405;
const name = params.get("name") || "Berlin";
const todayUTC = new Date().toISOString().slice(0, 10);
const dateStr = /^\d{4}-\d{2}-\d{2}$/.test(params.get("date") || "") ? params.get("date") : todayUTC;
const WMO = {
0: ["Clear sky", "☀️"], 1: ["Mainly clear", "🌤️"], 2: ["Partly cloudy", "⛅"],
3: ["Overcast", "☁️"], 45: ["Fog", "🌫️"], 48: ["Depositing rime fog", "🌫️"],
51: ["Light drizzle", "🌦️"], 53: ["Moderate drizzle", "🌦️"], 55: ["Dense drizzle", "🌧️"],
56: ["Light freezing drizzle", "🌧️"], 57: ["Dense freezing drizzle", "🌧️"],
61: ["Slight rain", "🌦️"], 63: ["Moderate rain", "🌧️"], 65: ["Heavy rain", "🌧️"],
66: ["Light freezing rain", "🌧️"], 67: ["Heavy freezing rain", "🌧️"],
71: ["Slight snowfall", "🌨️"], 73: ["Moderate snowfall", "🌨️"], 75: ["Heavy snowfall", "❄️"],
77: ["Snow grains", "❄️"], 80: ["Slight rain showers", "🌦️"], 81: ["Moderate rain showers", "🌧️"],
82: ["Violent rain showers", "⛈️"], 85: ["Slight snow showers", "🌨️"], 86: ["Heavy snow showers", "❄️"],
95: ["Thunderstorm", "⛈️"], 96: ["Thunderstorm with hail", "⛈️"], 99: ["Thunderstorm with heavy hail", "⛈️"]
};
function fmtDate(d) {
return new Date(d + "T00:00:00Z").toLocaleDateString("en-GB", {
weekday: "long", day: "numeric", month: "long", year: "numeric", timeZone: "UTC"
});
}
function showError(msg) {
document.getElementById("card").innerHTML =
'<div class="status error">⚠️ ' + msg + "</div>";
}
const base = dateStr < todayUTC ? "/api/om/archive" : "/api/om/forecast";
const qs = 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 + "?" + qs)
.then(r => { if (!r.ok) throw new Error("HTTP " + r.status); return r.json(); })
.then(data => {
const d = data.daily, h = data.hourly;
if (!d || !d.time || !d.time.length) throw new Error("No data");
const max = d.temperature_2m_max[0], min = d.temperature_2m_min[0];
const code = d.weather_code[0];
if (max == null || min == null) throw new Error("No data");
const [condText, icon] = WMO[code] || ["Unknown conditions", "❔"];
const hours = [];
if (h && h.time) {
for (let i = 0; i < h.time.length; i++) {
if (h.time[i].startsWith(dateStr) && h.temperature_2m[i] != null)
hours.push({ t: h.time[i].slice(11, 16), v: h.temperature_2m[i] });
}
}
let hourlyHtml = "";
if (hours.length) {
const vs = hours.map(x => x.v);
const lo = Math.min(...vs), hi = Math.max(...vs), span = hi - lo || 1;
hourlyHtml = hours.map(x => {
const pct = 25 + 75 * (x.v - lo) / span;
return '<div class="hour"><div class="h-time">' + x.t +
'</div><div class="h-bar-wrap"><div class="h-bar" style="height:' + pct.toFixed(0) +
'%"></div></div><div class="h-temp">' + Math.round(x.v) + '°</div></div>';
}).join("");
} else {
hourlyHtml = '<div class="status">No hourly data available.</div>';
}
const esc = s => String(s).replace(/[&<>"]/g, c => ({ "&": "&", "<": "<", ">": ">", '"': """ }[c]));
document.getElementById("card").innerHTML =
'<div class="top"><div><div class="location">' + esc(name) +
'</div><div class="date">' + fmtDate(dateStr) + ' · UTC</div></div>' +
'<div class="icon">' + icon + '</div></div>' +
'<div class="main"><div class="temp-max">' + Math.round(max) + '<sup>°C</sup></div>' +
'<div class="temp-min">↓ ' + Math.round(min) + '°C</div></div>' +
'<div class="condition">' + condText + '</div>' +
'<div class="divider"></div>' +
'<div class="hourly-title">Hourly temperature</div>' +
'<div class="hourly">' + hourlyHtml + '</div>';
})
.catch(err => showError("Weather data could not be loaded. (" + err.message + ")"));
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 8,640 | html / css / js | 303 / 3,928 / 4,409 |
|---|---|---|---|
| dom nodes | 11 | dom depth | 5 |
| css rules | 29 | js present | yes |
| brightness | 46.2 | contrast | 16.9 |
| colorfulness | 20.5 | whitespace | 55.0% |
This slot's telemetry
| prompt tokens | 2 | completion tokens | 4,088 |
|---|---|---|---|
| total tokens | 4,090 | wall | 47 s |
| cost | — | request id | — |
config.json603 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-fable-5-thinking-eff-low--cli--cursor-xl--dev",
"effort": "low",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-fable-5-thinking",
"protocol": "cli",
"served_model": "claude-fable-5-thinking-low",
"telemetry": {
"completion_tokens": 14901,
"cost_usd": null,
"prompt_tokens": 8,
"total_tokens": 14909,
"wall_ms": 185232
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-xl-s1",
"config_id": "claude-fable-5-thinking-eff-low--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T11:47:14.472727+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T11:46:27.473206+00:00"
}
],
"block_index": 0,
"model_reaching_attempt_index": 0,
"slot_index": 0,
"terminal_state": "valid",
"variant": "P-q"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T11:47:57.904420+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T11:47:18.273078+00:00"
}
],
"block_index": 0,
"model_reaching_attempt_index": 0,
"slot_index": 0,
"terminal_state": "valid",
"variant": "P-min"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T11:48:44.327101+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T11:48:01.879722+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-min"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T11:49:44.069780+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T11:48:47.910670+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
}
}
}