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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
gpt-5.4-mini @low · cursor0.75gpt-5.4-mini @medium · cursor-xl0.75grok-4.5 · opencode0.74grok-4.5 @medium · api0.74gpt-5.4-mini @medium · codex-oauth0.74最远
north-mini-code-free · api0.51claude-sonnet-4 · kiro0.51claude-sonnet-4 · cursor0.51claude-haiku-4-5 @max · CC0.51claude-haiku-4-5 @high · CC0.52限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempambiguousinsufficient-distinct-temperature-nodes
- min tempambiguousinsufficient-distinct-temperature-nodes
- 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 {
color-scheme: dark;
--bg1: #07111f;
--bg2: #0b1b33;
--bg3: #102846;
--card: rgba(9, 18, 34, 0.72);
--card-2: rgba(16, 29, 53, 0.66);
--line: rgba(255, 255, 255, 0.10);
--line-2: rgba(255, 255, 255, 0.14);
--text: #f4f8ff;
--muted: rgba(244, 248, 255, 0.72);
--soft: rgba(244, 248, 255, 0.12);
--accent: #7dd3fc;
--accent2: #a78bfa;
--hot: #fb7185;
--cold: #38bdf8;
--good: #86efac;
--shadow: 0 30px 100px rgba(0, 0, 0, 0.38);
--radius: 28px;
}
* {
box-sizing: border-box;
}
html, body {
width: 100%;
height: 100%;
margin: 0;
}
body {
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--text);
overflow: hidden;
background:
radial-gradient(1200px 700px at 20% 20%, rgba(125, 211, 252, 0.22), transparent 60%),
radial-gradient(900px 600px at 82% 18%, rgba(167, 139, 250, 0.20), transparent 55%),
radial-gradient(1100px 800px at 50% 100%, rgba(56, 189, 248, 0.10), transparent 60%),
linear-gradient(135deg, var(--bg1), var(--bg2) 48%, var(--bg3));
display: grid;
place-items: center;
}
.shell {
width: min(1180px, calc(100vw - 48px));
height: min(720px, calc(100vh - 48px));
position: relative;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 34px;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
rgba(4, 10, 22, 0.35);
box-shadow: var(--shadow);
backdrop-filter: blur(22px);
-webkit-backdrop-filter: blur(22px);
overflow: hidden;
}
.shell::before,
.shell::after {
content: "";
position: absolute;
inset: auto;
pointer-events: none;
filter: blur(30px);
opacity: 0.55;
}
.shell::before {
width: 340px;
height: 340px;
right: -90px;
top: -90px;
background: radial-gradient(circle, rgba(167, 139, 250, 0.36), transparent 68%);
}
.shell::after {
width: 400px;
height: 400px;
left: -120px;
bottom: -140px;
background: radial-gradient(circle, rgba(125, 211, 252, 0.28), transparent 70%);
}
.content {
position: relative;
z-index: 1;
width: 100%;
height: 100%;
padding: 28px;
display: grid;
grid-template-rows: auto 1fr;
gap: 22px;
}
.topbar {
display: flex;
justify-content: space-between;
align-items: center;
gap: 24px;
padding: 6px 2px 0;
}
.brand {
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
width: fit-content;
padding: 8px 12px;
border-radius: 999px;
border: 1px solid var(--line);
background: rgba(255, 255, 255, 0.04);
color: var(--muted);
font-size: 12px;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.eyebrow .dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: linear-gradient(135deg, var(--accent), var(--accent2));
box-shadow: 0 0 18px rgba(125, 211, 252, 0.75);
}
.title {
font-size: clamp(30px, 3vw, 44px);
line-height: 1.02;
letter-spacing: -0.04em;
margin: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.subtitle {
color: var(--muted);
font-size: 15px;
line-height: 1.4;
margin: 0;
}
.meta {
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
justify-content: flex-end;
color: var(--muted);
font-size: 14px;
}
.pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 14px;
border-radius: 999px;
border: 1px solid var(--line);
background: rgba(255, 255, 255, 0.04);
color: var(--text);
backdrop-filter: blur(12px);
}
.pill .tiny {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--good);
box-shadow: 0 0 14px rgba(134, 239, 172, 0.65);
}
.main {
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: 20px;
min-height: 0;
}
.panel {
border-radius: var(--radius);
border: 1px solid var(--line);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.03)),
var(--card);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
overflow: hidden;
position: relative;
min-height: 0;
}
.hero {
padding: 28px;
display: grid;
grid-template-rows: auto auto 1fr;
gap: 22px;
}
.hero-top {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
}
.condition {
display: inline-flex;
align-items: center;
gap: 12px;
padding: 12px 16px;
border-radius: 18px;
border: 1px solid var(--line);
background: rgba(255, 255, 255, 0.04);
max-width: 100%;
}
.condition-icon {
width: 44px;
height: 44px;
border-radius: 14px;
display: grid;
place-items: center;
background: linear-gradient(135deg, rgba(125, 211, 252, 0.18), rgba(167, 139, 250, 0.18));
border: 1px solid rgba(255, 255, 255, 0.08);
font-size: 22px;
flex: none;
}
.condition-text {
display: flex;
flex-direction: column;
gap: 3px;
min-width: 0;
}
.condition-label {
font-size: 12px;
color: var(--muted);
text-transform: uppercase;
letter-spacing: 0.12em;
}
.condition-value {
font-size: 18px;
font-weight: 700;
line-height: 1.1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.temp {
display: flex;
align-items: baseline;
gap: 12px;
}
.temp-main {
font-size: clamp(72px, 8vw, 116px);
line-height: 0.9;
font-weight: 800;
letter-spacing: -0.08em;
margin: 0;
background: linear-gradient(180deg, #ffffff, #b9dfff 72%, #8fd4ff);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
text-shadow: 0 10px 50px rgba(125, 211, 252, 0.08);
}
.temp-sub {
display: flex;
flex-direction: column;
gap: 8px;
padding-bottom: 14px;
}
.temp-range {
font-size: 18px;
color: var(--muted);
}
.temp-range strong {
color: var(--text);
font-weight: 700;
}
.summary {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
align-content: end;
}
.stat {
padding: 16px 16px 15px;
border-radius: 20px;
border: 1px solid var(--line);
background: rgba(255, 255, 255, 0.04);
min-width: 0;
}
.stat-label {
color: var(--muted);
font-size: 12px;
letter-spacing: 0.11em;
text-transform: uppercase;
margin-bottom: 10px;
}
.stat-value {
font-size: 26px;
line-height: 1;
font-weight: 750;
letter-spacing: -0.05em;
}
.stat-note {
margin-top: 7px;
color: var(--muted);
font-size: 13px;
line-height: 1.35;
}
.details {
padding: 24px;
display: grid;
grid-template-rows: auto 1fr;
gap: 18px;
min-height: 0;
}
.section-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.section-title {
margin: 0;
font-size: 15px;
text-transform: uppercase;
letter-spacing: 0.14em;
color: var(--muted);
}
.section-hint {
color: var(--muted);
font-size: 13px;
}
.hourly {
min-height: 0;
overflow: hidden;
display: flex;
flex-direction: column;
gap: 12px;
}
.hourly-track {
display: grid;
grid-auto-flow: column;
grid-auto-columns: minmax(88px, 1fr);
gap: 12px;
overflow-x: auto;
overflow-y: hidden;
padding-bottom: 6px;
scrollbar-width: thin;
scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}
.hour-card {
padding: 14px 12px 12px;
border-radius: 18px;
border: 1px solid var(--line);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03)),
rgba(12, 20, 36, 0.72);
min-width: 0;
text-align: center;
}
.hour-time {
color: var(--muted);
font-size: 12px;
letter-spacing: 0.08em;
text-transform: uppercase;
margin-bottom: 12px;
}
.hour-temp {
font-size: 26px;
font-weight: 800;
letter-spacing: -0.05em;
margin-bottom: 10px;
}
.hour-bar {
height: 10px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.08);
overflow: hidden;
position: relative;
}
.hour-bar > span {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(56, 189, 248, 0.95), rgba(167, 139, 250, 0.95));
box-shadow: 0 0 18px rgba(125, 211, 252, 0.25);
}
.hour-meta {
margin-top: 10px;
color: var(--muted);
font-size: 12px;
line-height: 1.2;
}
.loading,
.error {
position: absolute;
inset: 0;
display: grid;
place-items: center;
background: rgba(4, 10, 22, 0.42);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
z-index: 5;
}
.message {
width: min(520px, calc(100% - 48px));
padding: 26px;
border-radius: 24px;
border: 1px solid var(--line);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.03)),
rgba(8, 14, 28, 0.88);
box-shadow: var(--shadow);
text-align: center;
}
.message h1,
.message h2 {
margin: 0 0 10px;
font-size: 28px;
letter-spacing: -0.04em;
}
.message p {
margin: 0;
color: var(--muted);
line-height: 1.6;
font-size: 15px;
}
.hidden {
display: none !important;
}
.mono {
font-variant-numeric: tabular-nums;
}
@media (max-width: 980px) {
body {
overflow: auto;
}
.shell {
width: calc(100vw - 24px);
height: auto;
min-height: calc(100vh - 24px);
}
.main {
grid-template-columns: 1fr;
}
.summary {
grid-template-columns: 1fr;
}
.topbar,
.hero-top {
flex-direction: column;
align-items: flex-start;
}
.meta {
justify-content: flex-start;
}
}
</style>
</head>
<body>
<div class="shell">
<div class="content">
<header class="topbar">
<div class="brand">
<div class="eyebrow"><span class="dot"></span> Weather Card</div>
<h1 class="title" id="locationName">Loading...</h1>
<p class="subtitle" id="locationSubtitle">Fetching forecast data for the selected day.</p>
</div>
<div class="meta">
<div class="pill"><span class="tiny"></span><span id="apiSource">API</span></div>
<div class="pill mono" id="coords">52.5200, 13.4050</div>
</div>
</header>
<main class="main">
<section class="panel hero">
<div class="hero-top">
<div class="condition">
<div class="condition-icon" id="conditionIcon">--</div>
<div class="condition-text">
<div class="condition-label">Weather condition</div>
<div class="condition-value" id="conditionText">Loading weather...</div>
</div>
</div>
<div class="pill mono" id="dateLabel">--</div>
</div>
<div class="temp">
<div class="temp-main mono" id="maxTemp">--</div>
<div class="temp-sub">
<div class="temp-range mono" id="tempRange">Min --°C</div>
<div class="subtitle" id="daySummary">Preparing your card.</div>
</div>
</div>
<div class="summary">
<div class="stat">
<div class="stat-label">Maximum</div>
<div class="stat-value mono" id="maxStat">--°C</div>
<div class="stat-note" id="maxNote">Daily high for the requested date.</div>
</div>
<div class="stat">
<div class="stat-label">Minimum</div>
<div class="stat-value mono" id="minStat">--°C</div>
<div class="stat-note" id="minNote">Daily low for the requested date.</div>
</div>
<div class="stat">
<div class="stat-label">Location</div>
<div class="stat-value" id="locStat">Berlin</div>
<div class="stat-note" id="locNote">Using UTC day boundaries for hourly values.</div>
</div>
</div>
</section>
<section class="panel details">
<div class="section-head">
<h2 class="section-title">Hourly Temperatures</h2>
<div class="section-hint" id="hourHint">24 hours in UTC</div>
</div>
<div class="hourly">
<div class="hourly-track" id="hourlyTrack"></div>
</div>
</section>
</main>
</div>
<div class="loading" id="loading">
<div class="message">
<h2>Loading weather data</h2>
<p id="loadingText">Please wait while the card fetches temperatures and conditions.</p>
</div>
</div>
<div class="error hidden" id="errorBox">
<div class="message">
<h2>Weather data could not be loaded</h2>
<p id="errorText">The requested data is unavailable right now.</p>
</div>
</div>
</div>
<script>
(() => {
const $ = (id) => document.getElementById(id);
const els = {
loading: $("loading"),
loadingText: $("loadingText"),
errorBox: $("errorBox"),
errorText: $("errorText"),
locationName: $("locationName"),
locationSubtitle: $("locationSubtitle"),
apiSource: $("apiSource"),
coords: $("coords"),
conditionIcon: $("conditionIcon"),
conditionText: $("conditionText"),
dateLabel: $("dateLabel"),
maxTemp: $("maxTemp"),
tempRange: $("tempRange"),
daySummary: $("daySummary"),
maxStat: $("maxStat"),
minStat: $("minStat"),
locStat: $("locStat"),
maxNote: $("maxNote"),
minNote: $("minNote"),
locNote: $("locNote"),
hourlyTrack: $("hourlyTrack"),
hourHint: $("hourHint")
};
const params = new URLSearchParams(location.search);
const todayUTC = new Date().toISOString().slice(0, 10);
const latRaw = params.get("lat");
const lonRaw = params.get("lon");
const nameRaw = params.get("name");
const dateRaw = params.get("date");
const lat = Number.isFinite(Number(latRaw)) ? Number(latRaw) : 52.52;
const lon = Number.isFinite(Number(lonRaw)) ? Number(lonRaw) : 13.405;
const name = (nameRaw && nameRaw.trim()) ? nameRaw.trim() : "Berlin";
const date = /^\d{4}-\d{2}-\d{2}$/.test(dateRaw || "") ? dateRaw : todayUTC;
const isPast = date < todayUTC;
const endpoint = isPast ? "/api/om/archive" : "/api/om/forecast";
const weatherMap = {
0: { label: "Clear sky", icon: "☀" },
1: { label: "Mainly clear", icon: "🌤" },
2: { label: "Partly cloudy", icon: "⛅" },
3: { label: "Overcast", icon: "☁" },
45: { label: "Fog", icon: "🌫" },
48: { label: "Depositing rime fog", icon: "🌫" },
51: { label: "Light drizzle", icon: "🌦" },
53: { label: "Moderate drizzle", icon: "🌦" },
55: { label: "Dense drizzle", icon: "🌧" },
56: { label: "Freezing drizzle", icon: "🌧" },
57: { label: "Freezing drizzle", icon: "🌧" },
61: { label: "Slight rain", icon: "🌧" },
63: { label: "Moderate rain", icon: "🌧" },
65: { label: "Heavy rain", icon: "🌧" },
66: { label: "Freezing rain", icon: "🌧" },
67: { label: "Freezing rain", icon: "🌧" },
71: { label: "Slight snow fall", icon: "🌨" },
73: { label: "Moderate snow fall", icon: "🌨" },
75: { label: "Heavy snow fall", icon: "❄" },
77: { label: "Snow grains", icon: "🌨" },
80: { label: "Slight rain showers", icon: "🌦" },
81: { label: "Moderate rain showers", icon: "🌧" },
82: { label: "Violent rain showers", icon: "⛈" },
85: { label: "Slight snow showers", icon: "🌨" },
86: { label: "Heavy snow showers", icon: "❄" },
95: { label: "Thunderstorm", icon: "⛈" },
96: { label: "Thunderstorm with hail", icon: "⛈" },
99: { label: "Thunderstorm with hail", icon: "⛈" }
};
const formatTemp = (n) => `${Math.round(Number(n))}°C`;
const formatHour = (iso) => {
const d = new Date(iso);
return new Intl.DateTimeFormat("en", {
timeZone: "UTC",
hour: "numeric",
hour12: false
}).format(d).padStart(2, "0") + ":00";
};
const formatDateHuman = (isoDate) => {
const d = new Date(`${isoDate}T00:00:00Z`);
return new Intl.DateTimeFormat("en", {
timeZone: "UTC",
weekday: "long",
year: "numeric",
month: "long",
day: "numeric"
}).format(d);
};
const prettyLatLon = (x) => Number(x).toFixed(4);
function showError(msg) {
els.loading.classList.add("hidden");
els.errorText.textContent = msg || "The requested data is unavailable right now.";
els.errorBox.classList.remove("hidden");
}
function setLoading(text) {
els.loadingText.textContent = text;
els.loading.classList.remove("hidden");
els.errorBox.classList.add("hidden");
}
function weatherInfo(code) {
return weatherMap[code] || { label: `Weather code ${code}`, icon: "◌" };
}
function buildUrl() {
const url = new URL(endpoint, location.origin);
url.searchParams.set("latitude", String(lat));
url.searchParams.set("longitude", String(lon));
url.searchParams.set("daily", "temperature_2m_max,temperature_2m_min,weather_code");
url.searchParams.set("hourly", "temperature_2m");
url.searchParams.set("timezone", "UTC");
url.searchParams.set("temperature_unit", "celsius");
url.searchParams.set("start_date", date);
url.searchParams.set("end_date", date);
return url.toString();
}
function renderHourly(times, temps) {
els.hourlyTrack.innerHTML = "";
const nums = temps.map((v) => Number(v)).filter((v) => Number.isFinite(v));
const min = Math.min(...nums);
const max = Math.max(...nums);
const span = Math.max(1, max - min);
for (let i = 0; i < times.length && i < temps.length; i++) {
const t = Number(temps[i]);
if (!Number.isFinite(t)) continue;
const w = ((t - min) / span) * 100;
const card = document.createElement("div");
card.className = "hour-card";
card.innerHTML = `
<div class="hour-time">${formatHour(times[i])}</div>
<div class="hour-temp mono">${Math.round(t)}°C</div>
<div class="hour-bar"><span style="width:${Math.max(8, w)}%"></span></div>
<div class="hour-meta">UTC</div>
`;
els.hourlyTrack.appendChild(card);
}
}
async function load() {
els.locationName.textContent = name;
els.locationSubtitle.textContent = `Coordinates ${prettyLatLon(lat)}, ${prettyLatLon(lon)}. Showing data for ${formatDateHuman(date)}.`;
els.apiSource.textContent = isPast ? "Archive" : "Forecast";
els.coords.textContent = `${prettyLatLon(lat)}, ${prettyLatLon(lon)}`;
els.dateLabel.textContent = date;
els.locStat.textContent = name;
els.hourHint.textContent = `${date} in UTC`;
setLoading("Fetching weather data for the selected day.");
try {
const res = await fetch(buildUrl(), {
headers: { "Accept": "application/json" }
});
if (!res.ok) {
throw new Error(`Request failed with status ${res.status}`);
}
const data = await res.json();
const daily = data && data.daily;
const hourly = data && data.hourly;
const dayIndex = daily && Array.isArray(daily.time)
? daily.time.findIndex((t) => t === date)
: -1;
const hourlyTimes = hourly && Array.isArray(hourly.time) ? hourly.time : [];
const hourlyTemps = hourly && Array.isArray(hourly.temperature_2m) ? hourly.temperature_2m : [];
const filteredTimes = [];
const filteredTemps = [];
for (let i = 0; i < hourlyTimes.length && i < hourlyTemps.length; i++) {
if (String(hourlyTimes[i]).slice(0, 10) === date) {
filteredTimes.push(hourlyTimes[i]);
filteredTemps.push(hourlyTemps[i]);
}
}
if (dayIndex === -1 || !daily.temperature_2m_max || !daily.temperature_2m_min || !filteredTimes.length) {
throw new Error("Requested date is missing from the returned weather data.");
}
const max = daily.temperature_2m_max[dayIndex];
const min = daily.temperature_2m_min[dayIndex];
const code = daily.weather_code ? daily.weather_code[dayIndex] : undefined;
const info = weatherInfo(code);
els.conditionIcon.textContent = info.icon;
els.conditionText.textContent = info.label;
els.maxTemp.innerHTML = formatTemp(max);
els.tempRange.innerHTML = `Min <strong>${Math.round(min)}°C</strong>`;
els.daySummary.textContent = `${info.label} expected on ${formatDateHuman(date)}. Hourly values are shown below in UTC.`;
els.maxStat.innerHTML = formatTemp(max);
els.minStat.innerHTML = formatTemp(min);
els.maxNote.textContent = `Daily high on ${formatDateHuman(date)}.`;
els.minNote.textContent = `Daily low on ${formatDateHuman(date)}.`;
els.locNote.textContent = `Querying ${endpoint} with latitude and longitude parameters.`;
renderHourly(filteredTimes, filteredTemps);
els.loading.classList.add("hidden");
} catch (err) {
showError("The page could not load weather data for the requested location and date.");
}
}
load();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 23,518 | html / css / js | 3,359 / 11,135 / 9,024 |
|---|---|---|---|
| dom 节点 | 62 | dom 深度 | 10 |
| css 规则 | 62 | 含 js | 是 |
| brightness | 42.6 | contrast | 23.3 |
| colorfulness | 16.1 | 留白 | 66.8% |
该 slot 的 telemetry
| prompt tokens | 8,449 | completion tokens | 7,199 |
|---|---|---|---|
| total tokens | 15,648 | wall | 45.2 s |
| cost | — | request id | — |
config.json577 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.4-mini-eff-medium--cli--cursor--dev",
"effort": "medium",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.4-mini",
"protocol": "cli",
"served_model": "gpt-5.4-mini-medium",
"telemetry": {
"completion_tokens": 28873,
"cost_usd": null,
"prompt_tokens": 33771,
"total_tokens": 62644,
"wall_ms": 204769
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-s2",
"config_id": "gpt-5.4-mini-eff-medium--cli--cursor--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-12T22:25:05.418977+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T22:24:25.240797+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-12T22:25:54.127776+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T22:25:08.953809+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-12T22:26:42.846060+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T22:25:57.569610+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-12T22:28:00.673606+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T22:26:46.527007+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
}
}
}