gpt-5.6-sol @ high · cursor-xl
cursor-xlhigh
- config
- gpt-5.6-sol-eff-high--cli--cursor-xl--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- gpt-5.6-sol-high
- 采集于
- 2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
gpt-5.6-sol @medium · codex-oauth0.74gpt-5.6-sol @low · cursor-xl0.74gpt-5.6-sol @low · kiro0.74gpt-5.6-sol @low · codex-oauth0.73gpt-5.6-sol @low · cursor0.73最远
north-mini-code-free · api0.49qwen3.6-plus · go0.51claude-sonnet-4 · cursor0.51claude-haiku-4-5 @max · CC0.52claude-sonnet-4 · kiro0.52限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlymatchcoverage 9/24 · 9 命中 · 0 不符 · 15 未展示
- request sidematch0 处违规
extractor fidelity-extractor-v1+Berlin-2026-07-15
源码 —— 原始模型输出,一字节未改
下载 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</title>
<style>
:root {
color-scheme: dark;
--ink: #f8fbff;
--muted: rgba(235, 244, 255, 0.64);
--line: rgba(255, 255, 255, 0.12);
--glass: rgba(17, 38, 67, 0.54);
--accent: #ffcb73;
--cool: #85d7ff;
}
* {
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
margin: 0;
}
body {
min-width: 1000px;
min-height: 700px;
overflow: hidden;
color: var(--ink);
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background:
radial-gradient(circle at 76% 14%, rgba(255, 202, 113, 0.32), transparent 20%),
radial-gradient(circle at 12% 88%, rgba(75, 168, 218, 0.28), transparent 28%),
linear-gradient(135deg, #0b1a30 0%, #173e65 51%, #2a5b75 100%);
}
body::before,
body::after {
position: fixed;
content: "";
border-radius: 999px;
filter: blur(2px);
pointer-events: none;
}
body::before {
top: -160px;
right: -90px;
width: 520px;
height: 520px;
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow:
0 0 0 70px rgba(255, 255, 255, 0.018),
0 0 0 150px rgba(255, 255, 255, 0.014);
}
body::after {
bottom: -240px;
left: -150px;
width: 580px;
height: 580px;
background: rgba(50, 144, 194, 0.12);
filter: blur(60px);
}
main {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 330px 1fr;
width: calc(100% - 96px);
max-width: 1184px;
height: calc(100% - 80px);
max-height: 720px;
margin: 40px auto;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.15);
border-radius: 32px;
background: rgba(9, 25, 46, 0.38);
box-shadow: 0 34px 90px rgba(3, 12, 25, 0.38);
backdrop-filter: blur(28px);
-webkit-backdrop-filter: blur(28px);
}
aside {
position: relative;
display: flex;
flex-direction: column;
padding: 38px 34px 34px;
overflow: hidden;
border-right: 1px solid var(--line);
background:
radial-gradient(circle at 25% 16%, rgba(255, 209, 127, 0.2), transparent 25%),
linear-gradient(180deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.012));
}
.brand {
display: flex;
align-items: center;
gap: 11px;
color: rgba(255, 255, 255, 0.76);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.brand-mark {
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 22px rgba(255, 203, 115, 0.85);
}
.weather-art {
position: relative;
width: 190px;
height: 170px;
margin: 52px auto 24px;
}
.sun {
position: absolute;
top: 5px;
right: 9px;
width: 94px;
height: 94px;
border-radius: 50%;
background: linear-gradient(145deg, #fff1bc, #ffb653);
box-shadow: 0 0 55px rgba(255, 193, 91, 0.44);
}
.cloud {
position: absolute;
right: 23px;
bottom: 27px;
width: 145px;
height: 66px;
border-radius: 40px;
background: linear-gradient(155deg, rgba(255,255,255,0.98), rgba(198,225,241,0.88));
box-shadow: 0 18px 35px rgba(4, 22, 41, 0.2);
}
.cloud::before,
.cloud::after {
position: absolute;
content: "";
border-radius: 50%;
background: inherit;
}
.cloud::before {
left: 24px;
bottom: 22px;
width: 70px;
height: 70px;
}
.cloud::after {
right: 20px;
bottom: 25px;
width: 51px;
height: 51px;
}
.location-label {
margin-top: 2px;
color: var(--muted);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
}
h1 {
margin: 9px 0 7px;
font-size: clamp(30px, 3vw, 43px);
font-weight: 580;
line-height: 1.06;
letter-spacing: -0.045em;
overflow-wrap: anywhere;
}
.date {
color: var(--muted);
font-size: 15px;
}
.aside-bottom {
margin-top: auto;
padding-top: 26px;
border-top: 1px solid var(--line);
}
.condition {
margin-bottom: 8px;
font-size: 20px;
font-weight: 600;
}
.coordinates {
color: rgba(235, 244, 255, 0.48);
font-size: 12px;
letter-spacing: 0.04em;
}
.content {
display: flex;
min-width: 0;
flex-direction: column;
padding: 44px 48px 38px;
}
.overview {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 28px;
}
.eyebrow {
margin: 4px 0 15px;
color: var(--muted);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.17em;
text-transform: uppercase;
}
.temperature {
display: flex;
align-items: flex-start;
min-height: 120px;
font-size: clamp(82px, 9vw, 118px);
font-weight: 250;
line-height: 0.84;
letter-spacing: -0.075em;
}
.temperature .degree {
margin: 3px 0 0 7px;
color: var(--accent);
font-size: 29px;
font-weight: 500;
letter-spacing: -0.02em;
}
.metrics {
display: grid;
grid-template-columns: repeat(2, 128px);
gap: 12px;
}
.metric {
padding: 18px 18px 16px;
border: 1px solid var(--line);
border-radius: 19px;
background: rgba(255, 255, 255, 0.045);
}
.metric-name {
display: flex;
align-items: center;
gap: 7px;
margin-bottom: 15px;
color: var(--muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.13em;
text-transform: uppercase;
}
.metric-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--accent);
}
.metric:last-child .metric-dot {
background: var(--cool);
}
.metric-value {
font-size: 29px;
font-weight: 500;
letter-spacing: -0.035em;
}
.chart-panel {
display: flex;
min-height: 0;
flex: 1;
flex-direction: column;
margin-top: 34px;
padding-top: 28px;
border-top: 1px solid var(--line);
}
.chart-heading {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 7px;
}
.chart-heading h2 {
margin: 0;
font-size: 17px;
font-weight: 600;
letter-spacing: -0.02em;
}
.chart-heading span {
color: var(--muted);
font-size: 12px;
}
#chart {
width: 100%;
min-height: 230px;
flex: 1;
}
.loading {
display: flex;
height: 100%;
align-items: center;
justify-content: center;
color: var(--muted);
font-size: 14px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.loading::before {
width: 9px;
height: 9px;
margin-right: 12px;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 16px var(--accent);
content: "";
animation: pulse 1.3s ease-in-out infinite;
}
.error {
display: none;
height: 100%;
align-items: center;
justify-content: center;
flex-direction: column;
text-align: center;
}
.error strong {
margin-bottom: 9px;
font-size: 24px;
font-weight: 600;
}
.error span {
max-width: 360px;
color: var(--muted);
font-size: 14px;
line-height: 1.6;
}
@keyframes pulse {
50% { opacity: 0.32; transform: scale(0.72); }
}
@media (max-height: 730px) {
main { height: calc(100% - 40px); margin: 20px auto; }
.weather-art { margin-top: 28px; transform: scale(0.86); }
.content { padding-top: 32px; }
.chart-panel { margin-top: 22px; }
}
</style>
</head>
<body>
<main aria-live="polite">
<aside>
<div class="brand"><span class="brand-mark"></span>Atmosphere</div>
<div class="weather-art" aria-hidden="true">
<div class="sun"></div>
<div class="cloud"></div>
</div>
<div class="location-label">Weather in</div>
<h1 id="location">Berlin</h1>
<div class="date" id="dateLabel">—</div>
<div class="aside-bottom">
<div class="condition" id="condition">Loading weather…</div>
<div class="coordinates" id="coordinates">52.520° N · 13.405° E</div>
</div>
</aside>
<section class="content">
<div id="weatherContent">
<div class="overview">
<div>
<div class="eyebrow">Daily high</div>
<div class="temperature">
<span id="highMain">—</span><span class="degree">°C</span>
</div>
</div>
<div class="metrics">
<div class="metric">
<div class="metric-name"><span class="metric-dot"></span>High</div>
<div class="metric-value" id="highMetric">—°</div>
</div>
<div class="metric">
<div class="metric-name"><span class="metric-dot"></span>Low</div>
<div class="metric-value" id="lowMetric">—°</div>
</div>
</div>
</div>
<div class="chart-panel">
<div class="chart-heading">
<h2>Temperature by hour</h2>
<span>UTC · Celsius</span>
</div>
<div id="chart">
<div class="loading">Loading forecast</div>
</div>
</div>
</div>
<div class="error" id="error">
<strong>Weather unavailable</strong>
<span>We couldn’t load the weather data for this date. Please check the location and try again.</span>
</div>
</section>
</main>
<script>
(() => {
const params = new URLSearchParams(location.search);
const today = new Date().toISOString().slice(0, 10);
const datePattern = /^\d{4}-\d{2}-\d{2}$/;
const isValidDate = value => {
if (!datePattern.test(value || "")) return false;
const parsed = new Date(value + "T00:00:00Z");
return !Number.isNaN(parsed.getTime()) && parsed.toISOString().slice(0, 10) === value;
};
const numberParam = (key, fallback, min, max) => {
const value = Number(params.get(key));
return Number.isFinite(value) && value >= min && value <= max ? value : fallback;
};
const lat = numberParam("lat", 52.52, -90, 90);
const lon = numberParam("lon", 13.405, -180, 180);
const requestedName = (params.get("name") || "").trim();
const name = requestedName || "Berlin";
const requestedDate = params.get("date");
const date = isValidDate(requestedDate) ? requestedDate : today;
const conditions = {
0: "Clear sky",
1: "Mainly clear",
2: "Partly cloudy",
3: "Overcast",
45: "Foggy",
48: "Rime fog",
51: "Light drizzle",
53: "Drizzle",
55: "Heavy drizzle",
56: "Freezing drizzle",
57: "Heavy freezing drizzle",
61: "Light rain",
63: "Rain",
65: "Heavy rain",
66: "Freezing rain",
67: "Heavy freezing rain",
71: "Light snow",
73: "Snow",
75: "Heavy snow",
77: "Snow grains",
80: "Light showers",
81: "Rain showers",
82: "Heavy showers",
85: "Snow showers",
86: "Heavy snow showers",
95: "Thunderstorm",
96: "Thunderstorm with hail",
99: "Severe thunderstorm"
};
const formatDate = iso => new Intl.DateTimeFormat("en-US", {
weekday: "long",
month: "long",
day: "numeric",
year: "numeric",
timeZone: "UTC"
}).format(new Date(iso + "T00:00:00Z"));
const coordinateText = (value, positive, negative) =>
`${Math.abs(value).toFixed(3)}° ${value >= 0 ? positive : negative}`;
document.getElementById("location").textContent = name;
document.getElementById("dateLabel").textContent = formatDate(date);
document.getElementById("coordinates").textContent =
`${coordinateText(lat, "N", "S")} · ${coordinateText(lon, "E", "W")}`;
const round = value => Math.round(Number(value));
const svgNS = "http://www.w3.org/2000/svg";
function renderChart(times, temperatures) {
const valid = temperatures
.map((temperature, index) => ({
temperature: Number(temperature),
time: times[index]
}))
.filter(item => Number.isFinite(item.temperature) && item.time);
if (!valid.length) throw new Error("No hourly temperatures");
const width = 820;
const height = 260;
const padding = { top: 35, right: 18, bottom: 42, left: 18 };
const innerWidth = width - padding.left - padding.right;
const innerHeight = height - padding.top - padding.bottom;
const values = valid.map(item => item.temperature);
const rawMin = Math.min(...values);
const rawMax = Math.max(...values);
const spread = Math.max(rawMax - rawMin, 4);
const min = rawMin - spread * 0.18;
const max = rawMax + spread * 0.2;
const x = index => padding.left + (index / Math.max(valid.length - 1, 1)) * innerWidth;
const y = value => padding.top + ((max - value) / (max - min)) * innerHeight;
const points = valid.map((item, index) => `${x(index)},${y(item.temperature)}`).join(" ");
const areaPoints = `${padding.left},${height - padding.bottom} ${points} ${padding.left + innerWidth},${height - padding.bottom}`;
const svg = document.createElementNS(svgNS, "svg");
svg.setAttribute("viewBox", `0 0 ${width} ${height}`);
svg.setAttribute("role", "img");
svg.setAttribute("aria-label", "Hourly temperature chart");
svg.style.width = "100%";
svg.style.height = "100%";
svg.innerHTML = `
<defs>
<linearGradient id="areaFill" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#ffcb73" stop-opacity=".34"/>
<stop offset="100%" stop-color="#ffcb73" stop-opacity="0"/>
</linearGradient>
<linearGradient id="lineStroke" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#85d7ff"/>
<stop offset="55%" stop-color="#f6e4ae"/>
<stop offset="100%" stop-color="#ffbd5b"/>
</linearGradient>
<filter id="glow">
<feGaussianBlur stdDeviation="3.5" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
`;
[0, 0.5, 1].forEach(fraction => {
const line = document.createElementNS(svgNS, "line");
const lineY = padding.top + innerHeight * fraction;
line.setAttribute("x1", padding.left);
line.setAttribute("x2", width - padding.right);
line.setAttribute("y1", lineY);
line.setAttribute("y2", lineY);
line.setAttribute("stroke", "rgba(255,255,255,.09)");
line.setAttribute("stroke-dasharray", "3 7");
svg.appendChild(line);
});
const area = document.createElementNS(svgNS, "polygon");
area.setAttribute("points", areaPoints);
area.setAttribute("fill", "url(#areaFill)");
svg.appendChild(area);
const line = document.createElementNS(svgNS, "polyline");
line.setAttribute("points", points);
line.setAttribute("fill", "none");
line.setAttribute("stroke", "url(#lineStroke)");
line.setAttribute("stroke-width", "3");
line.setAttribute("stroke-linecap", "round");
line.setAttribute("stroke-linejoin", "round");
line.setAttribute("filter", "url(#glow)");
svg.appendChild(line);
valid.forEach((item, index) => {
const showLabel = index % 3 === 0 || index === valid.length - 1;
if (!showLabel) return;
const group = document.createElementNS(svgNS, "g");
const cx = x(index);
const cy = y(item.temperature);
const dot = document.createElementNS(svgNS, "circle");
dot.setAttribute("cx", cx);
dot.setAttribute("cy", cy);
dot.setAttribute("r", "4");
dot.setAttribute("fill", "#fff4d6");
dot.setAttribute("stroke", "#dca954");
dot.setAttribute("stroke-width", "2");
group.appendChild(dot);
const valueLabel = document.createElementNS(svgNS, "text");
valueLabel.setAttribute("x", cx);
valueLabel.setAttribute("y", cy - 14);
valueLabel.setAttribute("text-anchor", "middle");
valueLabel.setAttribute("fill", "rgba(255,255,255,.88)");
valueLabel.setAttribute("font-size", "12");
valueLabel.setAttribute("font-weight", "600");
valueLabel.textContent = `${round(item.temperature)}°`;
group.appendChild(valueLabel);
const timeLabel = document.createElementNS(svgNS, "text");
timeLabel.setAttribute("x", cx);
timeLabel.setAttribute("y", height - 13);
timeLabel.setAttribute("text-anchor", "middle");
timeLabel.setAttribute("fill", "rgba(235,244,255,.54)");
timeLabel.setAttribute("font-size", "11");
timeLabel.textContent = item.time.slice(11, 16);
group.appendChild(timeLabel);
svg.appendChild(group);
});
document.getElementById("chart").replaceChildren(svg);
}
function showError() {
document.getElementById("weatherContent").style.display = "none";
document.getElementById("error").style.display = "flex";
document.getElementById("condition").textContent = "Data unavailable";
}
async function loadWeather() {
const endpoint = date < today ? "/api/om/archive" : "/api/om/forecast";
const query = 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
});
try {
const response = await fetch(`${endpoint}?${query}`);
if (!response.ok) throw new Error(`Weather request failed: ${response.status}`);
const data = await response.json();
const high = Number(data?.daily?.temperature_2m_max?.[0]);
const low = Number(data?.daily?.temperature_2m_min?.[0]);
const code = Number(data?.daily?.weather_code?.[0]);
const times = data?.hourly?.time;
const temperatures = data?.hourly?.temperature_2m;
if (!Number.isFinite(high) || !Number.isFinite(low) ||
!Array.isArray(times) || !Array.isArray(temperatures)) {
throw new Error("Incomplete weather data");
}
document.getElementById("highMain").textContent = round(high);
document.getElementById("highMetric").textContent = `${round(high)}°`;
document.getElementById("lowMetric").textContent = `${round(low)}°`;
document.getElementById("condition").textContent = conditions[code] || "Unknown conditions";
renderChart(times, temperatures);
} catch (error) {
showError();
}
}
loadWeather();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 20,084 | html / css / js | 2,136 / 8,127 / 9,821 |
|---|---|---|---|
| dom 节点 | 47 | dom 深度 | 10 |
| css 规则 | 51 | 含 js | 是 |
| brightness | 56.6 | contrast | 27.1 |
| colorfulness | 32.2 | 留白 | 64.1% |
该 slot 的 telemetry
| prompt tokens | 3 | completion tokens | 5,803 |
|---|---|---|---|
| total tokens | 5,806 | wall | 75.5 s |
| cost | — | request id | — |
config.json568 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.6-sol-eff-high--cli--cursor-xl--dev",
"effort": "high",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.6-sol",
"protocol": "cli",
"served_model": "gpt-5.6-sol-high",
"telemetry": {
"completion_tokens": 22298,
"cost_usd": null,
"prompt_tokens": 12,
"total_tokens": 22310,
"wall_ms": 293572
},
"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": "gpt-5.6-sol-eff-high--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T08:46:13.240649+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:44:57.906380+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-13T08:47:32.743327+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:46:17.262439+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-13T08:49:01.451340+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:47:36.170697+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-13T08:50:02.358186+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:49:04.872803+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
}
}
}