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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居本 session 没有 similarity 数据 —— 这个 batch 没有计算 pairs。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempambiguous展示值:17max-equals-min
- min tempambiguous展示值:17max-equals-min
- hourlyambiguouscoverage · 0 命中 · 0 不符 · 24 未展示
- 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" />
<title>Weather Card</title>
<style>
:root {
--bg-1: #0b1220;
--bg-2: #121f36;
--bg-3: #1b3157;
--glass: rgba(255, 255, 255, 0.12);
--glass-strong: rgba(255, 255, 255, 0.2);
--line: rgba(255, 255, 255, 0.24);
--text: #eef4ff;
--muted: #b9c6de;
--accent: #7ec8ff;
--hot: #ff8a65;
--cold: #7cb7ff;
--ok: #83ffc6;
--warn: #ffd27d;
--err: #ff9aa7;
}
* {
box-sizing: border-box;
}
html, body {
width: 100%;
height: 100%;
margin: 0;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
color: var(--text);
background: radial-gradient(1200px 600px at 15% 10%, #2a4f85 0%, transparent 50%),
radial-gradient(1100px 700px at 85% 90%, #18325e 0%, transparent 55%),
linear-gradient(145deg, var(--bg-1), var(--bg-2) 45%, var(--bg-3));
overflow: hidden;
}
body::before {
content: "";
position: fixed;
inset: -20%;
background:
linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
background-size: 28px 28px, 28px 28px;
transform: perspective(900px) rotateX(55deg) translateY(180px);
opacity: 0.22;
pointer-events: none;
}
.stage {
width: min(1220px, calc(100vw - 48px));
height: min(760px, calc(100vh - 48px));
margin: 24px auto;
padding: 22px;
border-radius: 28px;
background: linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0.06));
border: 1px solid rgba(255,255,255,0.18);
box-shadow:
0 24px 60px rgba(0, 0, 0, 0.35),
inset 0 1px 0 rgba(255,255,255,0.25);
backdrop-filter: blur(10px);
display: grid;
grid-template-rows: auto auto 1fr;
gap: 18px;
}
.header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 24px;
padding: 10px 14px;
border-radius: 16px;
background: rgba(255,255,255,0.08);
border: 1px solid rgba(255,255,255,0.16);
}
.title-wrap {
min-width: 0;
}
.location {
margin: 0;
font-size: clamp(28px, 3vw, 42px);
letter-spacing: 0.2px;
line-height: 1.05;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.date {
margin: 8px 0 0;
color: var(--muted);
font-size: 16px;
}
.status-pill {
padding: 8px 12px;
border-radius: 999px;
font-size: 13px;
color: #081225;
background: linear-gradient(180deg, #b7e7ff, #7ec8ff);
box-shadow: 0 10px 18px rgba(25, 127, 204, 0.35);
white-space: nowrap;
}
.summary {
display: grid;
grid-template-columns: 1.25fr 0.75fr;
gap: 18px;
min-height: 220px;
}
.panel {
border-radius: 22px;
background: var(--glass);
border: 1px solid var(--line);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
position: relative;
overflow: hidden;
}
.primary {
display: grid;
grid-template-columns: auto 1fr;
align-items: center;
gap: 24px;
padding: 24px 28px;
}
.weather-glyph {
width: 124px;
height: 124px;
border-radius: 28px;
display: grid;
place-items: center;
font-size: 62px;
background: linear-gradient(160deg, rgba(255,255,255,0.32), rgba(255,255,255,0.08));
border: 1px solid rgba(255,255,255,0.28);
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.45),
0 14px 26px rgba(0,0,0,0.25);
text-shadow: 0 6px 16px rgba(0,0,0,0.25);
}
.condition {
margin: 0 0 10px;
font-size: clamp(24px, 2.3vw, 34px);
letter-spacing: 0.15px;
}
.temps {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}
.temp-chip {
padding: 10px 14px;
border-radius: 14px;
border: 1px solid rgba(255,255,255,0.22);
font-size: 18px;
background: rgba(255,255,255,0.08);
white-space: nowrap;
}
.temp-chip strong {
font-size: 26px;
margin-right: 6px;
vertical-align: baseline;
}
.temp-chip.max strong { color: var(--hot); }
.temp-chip.min strong { color: var(--cold); }
.meta {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
padding: 24px;
align-content: center;
}
.meta-row {
padding: 12px 14px;
border-radius: 14px;
background: rgba(255,255,255,0.08);
border: 1px solid rgba(255,255,255,0.14);
display: flex;
justify-content: space-between;
gap: 14px;
color: var(--muted);
font-size: 14px;
}
.meta-row b {
color: var(--text);
font-weight: 600;
}
.hourly {
padding: 18px 18px 16px;
display: grid;
grid-template-rows: auto 1fr;
gap: 12px;
min-height: 0;
}
.hourly-title {
margin: 0;
font-size: 16px;
color: var(--muted);
letter-spacing: 0.3px;
}
.hour-scroll {
min-height: 0;
border-radius: 18px;
background: rgba(255,255,255,0.06);
border: 1px solid rgba(255,255,255,0.14);
padding: 14px;
overflow: auto hidden;
}
.hour-grid {
display: grid;
grid-auto-flow: column;
grid-auto-columns: 62px;
gap: 10px;
align-items: end;
min-height: 238px;
}
.hour-item {
height: 224px;
border-radius: 14px;
border: 1px solid rgba(255,255,255,0.17);
background: linear-gradient(180deg, rgba(255,255,255,0.14), rgba(255,255,255,0.06));
display: grid;
grid-template-rows: auto 1fr auto;
gap: 6px;
padding: 8px 6px;
text-align: center;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
}
.hour-time {
font-size: 12px;
color: var(--muted);
}
.bar-wrap {
display: flex;
align-items: flex-end;
justify-content: center;
padding: 4px 0;
}
.bar {
width: 24px;
border-radius: 10px 10px 7px 7px;
background: linear-gradient(180deg, #b7e7ff, #7ec8ff 45%, #4ea7ff);
border: 1px solid rgba(255,255,255,0.3);
box-shadow: 0 8px 16px rgba(25, 127, 204, 0.35);
min-height: 12px;
transition: height 420ms ease;
}
.hour-temp {
font-weight: 600;
font-size: 13px;
color: #eaf5ff;
letter-spacing: 0.1px;
}
.message {
position: absolute;
inset: 0;
display: none;
place-items: center;
text-align: center;
padding: 24px;
background: linear-gradient(180deg, rgba(9,16,30,0.68), rgba(9,16,30,0.9));
backdrop-filter: blur(4px);
border-radius: inherit;
font-size: 20px;
line-height: 1.4;
color: #e8efff;
}
.message.show {
display: grid;
}
.message small {
display: block;
margin-top: 8px;
color: var(--muted);
font-size: 14px;
}
.ok { color: var(--ok); }
.warn { color: var(--warn); }
.err { color: var(--err); }
.hour-scroll::-webkit-scrollbar {
height: 10px;
}
.hour-scroll::-webkit-scrollbar-track {
background: rgba(255,255,255,0.08);
border-radius: 999px;
}
.hour-scroll::-webkit-scrollbar-thumb {
background: rgba(167, 219, 255, 0.6);
border-radius: 999px;
}
@media (max-width: 980px) {
.summary {
grid-template-columns: 1fr;
}
.meta {
grid-template-columns: repeat(2, 1fr);
}
}
</style>
</head>
<body>
<main class="stage">
<section class="header">
<div class="title-wrap">
<h1 id="location" class="location">Loading...</h1>
<p id="date" class="date">Preparing weather card</p>
</div>
<div id="statusPill" class="status-pill">Loading weather</div>
</section>
<section class="summary">
<article class="panel primary">
<div id="glyph" class="weather-glyph" aria-hidden="true">⛅</div>
<div>
<h2 id="condition" class="condition">Loading condition...</h2>
<div class="temps">
<div class="temp-chip max"><strong id="tmax">--</strong><span>°C max</span></div>
<div class="temp-chip min"><strong id="tmin">--</strong><span>°C min</span></div>
</div>
</div>
</article>
<aside class="panel meta">
<div class="meta-row"><span>Latitude</span><b id="latText">--</b></div>
<div class="meta-row"><span>Longitude</span><b id="lonText">--</b></div>
<div class="meta-row"><span>Source</span><b id="sourceText">--</b></div>
<div class="meta-row"><span>Timezone</span><b>UTC</b></div>
</aside>
</section>
<section class="panel hourly">
<h3 class="hourly-title">Hourly temperatures</h3>
<div class="hour-scroll">
<div id="hourGrid" class="hour-grid"></div>
</div>
<div id="message" class="message" role="status" aria-live="polite"></div>
</section>
</main>
<script>
(function () {
const defaults = {
lat: 52.52,
lon: 13.405,
name: "Berlin"
};
const codeMap = {
0: { label: "Clear sky", glyph: "☀️" },
1: { label: "Mainly clear", glyph: "🌤️" },
2: { label: "Partly cloudy", glyph: "⛅" },
3: { label: "Overcast", glyph: "☁️" },
45: { label: "Fog", glyph: "🌫️" },
48: { label: "Rime fog", glyph: "🌫️" },
51: { label: "Light drizzle", glyph: "🌦️" },
53: { label: "Drizzle", glyph: "🌦️" },
55: { label: "Dense drizzle", glyph: "🌧️" },
56: { label: "Freezing drizzle", glyph: "🌧️" },
57: { label: "Dense freezing drizzle", glyph: "🌧️" },
61: { label: "Slight rain", glyph: "🌧️" },
63: { label: "Rain", glyph: "🌧️" },
65: { label: "Heavy rain", glyph: "🌧️" },
66: { label: "Freezing rain", glyph: "🌧️" },
67: { label: "Heavy freezing rain", glyph: "🌧️" },
71: { label: "Slight snow", glyph: "🌨️" },
73: { label: "Snow", glyph: "🌨️" },
75: { label: "Heavy snow", glyph: "❄️" },
77: { label: "Snow grains", glyph: "❄️" },
80: { label: "Rain showers", glyph: "🌦️" },
81: { label: "Rain showers", glyph: "🌧️" },
82: { label: "Violent rain showers", glyph: "⛈️" },
85: { label: "Snow showers", glyph: "🌨️" },
86: { label: "Heavy snow showers", glyph: "❄️" },
95: { label: "Thunderstorm", glyph: "⛈️" },
96: { label: "Thunderstorm with hail", glyph: "⛈️" },
99: { label: "Severe thunderstorm with hail", glyph: "⛈️" }
};
const $ = (id) => document.getElementById(id);
const ui = {
location: $("location"),
date: $("date"),
statusPill: $("statusPill"),
glyph: $("glyph"),
condition: $("condition"),
tmax: $("tmax"),
tmin: $("tmin"),
latText: $("latText"),
lonText: $("lonText"),
sourceText: $("sourceText"),
hourGrid: $("hourGrid"),
message: $("message")
};
function utcToday() {
return new Date().toISOString().slice(0, 10);
}
function validDateString(s) {
if (!/^\d{4}-\d{2}-\d{2}$/.test(s)) return false;
const d = new Date(s + "T00:00:00Z");
return Number.isFinite(d.getTime()) && d.toISOString().slice(0, 10) === s;
}
function parseInput() {
const q = new URLSearchParams(window.location.search);
const lat = Number.parseFloat(q.get("lat"));
const lon = Number.parseFloat(q.get("lon"));
const nameRaw = q.get("name");
const dateRaw = q.get("date");
const date = validDateString(dateRaw || "") ? dateRaw : utcToday();
return {
latitude: Number.isFinite(lat) ? lat : defaults.lat,
longitude: Number.isFinite(lon) ? lon : defaults.lon,
name: nameRaw && nameRaw.trim() ? nameRaw.trim() : defaults.name,
date
};
}
function formatDateUTC(yyyyMmDd) {
const d = new Date(yyyyMmDd + "T00:00:00Z");
return new Intl.DateTimeFormat("en-US", {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
timeZone: "UTC"
}).format(d);
}
function pickEndpoint(date) {
return date < utcToday() ? "/api/om/archive" : "/api/om/forecast";
}
function weatherInfo(code) {
return codeMap[code] || { label: "Unknown weather", glyph: "❔" };
}
function setMessage(text, detail, isError) {
ui.message.className = "message show";
ui.message.innerHTML = isError
? '<div><span class="err">' + text + "</span>" + (detail ? "<small>" + detail + "</small>" : "") + "</div>"
: "<div>" + text + (detail ? "<small>" + detail + "</small>" : "") + "</div>";
}
function clearMessage() {
ui.message.className = "message";
ui.message.textContent = "";
}
function fmtTemp(v) {
return Number.isFinite(v) ? Math.round(v) : null;
}
function renderHourly(times, temps, date) {
ui.hourGrid.innerHTML = "";
const rows = [];
const n = Math.min(times.length, temps.length);
for (let i = 0; i < n; i++) {
const t = times[i];
if (typeof t === "string" && t.startsWith(date) && Number.isFinite(temps[i])) {
rows.push({ time: t, temp: temps[i] });
}
}
if (!rows.length) {
setMessage("No hourly data available for this date.");
return;
}
clearMessage();
let min = Infinity;
let max = -Infinity;
for (const r of rows) {
if (r.temp < min) min = r.temp;
if (r.temp > max) max = r.temp;
}
const span = Math.max(1, max - min);
for (const r of rows) {
const hour = r.time.slice(11, 16);
const h = 20 + ((r.temp - min) / span) * 128;
const item = document.createElement("div");
item.className = "hour-item";
item.innerHTML =
'<div class="hour-time">' + hour + "</div>" +
'<div class="bar-wrap"><div class="bar" style="height:' + h.toFixed(1) + 'px"></div></div>' +
'<div class="hour-temp">' + Math.round(r.temp) + "°</div>";
ui.hourGrid.appendChild(item);
}
}
async function load() {
const input = parseInput();
ui.location.textContent = input.name;
ui.date.textContent = formatDateUTC(input.date) + " (UTC)";
ui.latText.textContent = input.latitude.toFixed(3);
ui.lonText.textContent = input.longitude.toFixed(3);
ui.statusPill.textContent = "Loading weather";
ui.statusPill.style.background = "linear-gradient(180deg, #b7e7ff, #7ec8ff)";
ui.sourceText.textContent = "Pending";
const endpoint = pickEndpoint(input.date);
ui.sourceText.textContent = endpoint.endsWith("archive") ? "Archive API" : "Forecast API";
const params = new URLSearchParams({
latitude: String(input.latitude),
longitude: String(input.longitude),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: input.date,
end_date: input.date
});
try {
const res = await fetch(endpoint + "?" + params.toString(), { method: "GET" });
if (!res.ok) {
throw new Error("HTTP " + res.status);
}
const data = await res.json();
const daily = data && data.daily ? data.daily : {};
const tMaxRaw = daily.temperature_2m_max && daily.temperature_2m_max[0];
const tMinRaw = daily.temperature_2m_min && daily.temperature_2m_min[0];
const codeRaw = daily.weather_code && daily.weather_code[0];
if (!Number.isFinite(tMaxRaw) || !Number.isFinite(tMinRaw) || !Number.isFinite(codeRaw)) {
throw new Error("Missing daily weather fields");
}
const info = weatherInfo(codeRaw);
const tMax = fmtTemp(tMaxRaw);
const tMin = fmtTemp(tMinRaw);
ui.glyph.textContent = info.glyph;
ui.condition.textContent = info.label;
ui.tmax.textContent = String(tMax);
ui.tmin.textContent = String(tMin);
const hourly = data && data.hourly ? data.hourly : {};
const times = Array.isArray(hourly.time) ? hourly.time : [];
const temps = Array.isArray(hourly.temperature_2m) ? hourly.temperature_2m : [];
renderHourly(times, temps, input.date);
ui.statusPill.textContent = "Weather loaded";
ui.statusPill.style.background = "linear-gradient(180deg, #c6ffe4, #83ffc6)";
} catch (err) {
ui.statusPill.textContent = "Load failed";
ui.statusPill.style.background = "linear-gradient(180deg, #ffd2d9, #ff9aa7)";
ui.condition.textContent = "Weather unavailable";
ui.glyph.textContent = "⚠️";
ui.tmax.textContent = "--";
ui.tmin.textContent = "--";
ui.hourGrid.innerHTML = "";
setMessage("Weather data could not be loaded.", "Please check the API availability or query parameters.", true);
}
}
load();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 18,053 | html / css / js | 1,712 / 7,737 / 8,604 |
|---|---|---|---|
| dom 节点 | 44 | dom 深度 | 9 |
| css 规则 | 44 | 含 js | 是 |
| brightness | 84.0 | contrast | 30.8 |
| colorfulness | 29.2 | 留白 | 45.4% |
该 slot 的 telemetry
| prompt tokens | 1,925 | completion tokens | 6,824 |
|---|---|---|---|
| total tokens | 8,749 | wall | 63.6 s |
| cost | — | request id | — |
config.json576 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.3-codex-eff-high--cli--cursor-xl--dev",
"effort": "high",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.3-codex",
"protocol": "cli",
"served_model": "gpt-5.3-codex-high",
"telemetry": {
"completion_tokens": 23628,
"cost_usd": null,
"prompt_tokens": 7690,
"total_tokens": 31318,
"wall_ms": 241629
},
"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.3-codex-eff-high--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T08:34:41.519402+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:33:56.658022+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:35:49.697320+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:34:46.101763+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:36:58.258239+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:35:53.135663+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:38:10.362889+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:37:02.303484+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
}
}
}