gpt-5.6-sol @ medium · cursor
cursormedium
- config
- gpt-5.6-sol-eff-medium--cli--cursor--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- gpt-5.6-sol-medium
- 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 neighbors
nearest
gpt-5.6-sol @low · kiro0.75gpt-5.6-sol @low · cursor0.75gpt-5.6-sol @medium · codex-oauth0.74gpt-5.6-sol @none · cursor-xl0.74gpt-5.6-sol @low · codex-oauth0.74farthest
north-mini-code-free · api0.48minimax-m2.5 · go0.51claude-haiku-4-5 @high · CC0.51qwen3.5-plus · go0.51claude-sonnet-4 · cursor0.51within session 2026-07-19--unified
similarity measures convergence within this session — not quality.
Fidelity — does the card show the right data?
- namematch
- conditionmatch
- datematch
- max tempmatchshown: 25
- min tempmatchshown: 16
- hourlynot-foundcoverage · 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=device-width, initial-scale=1.0">
<title>Weather</title>
<style>
:root {
color-scheme: dark;
--text: #f7fbff;
--muted: rgba(235, 245, 255, 0.68);
--line: rgba(255, 255, 255, 0.12);
--accent: #ffd36a;
--accent-cool: #86d7ff;
}
* {
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
margin: 0;
}
body {
overflow: hidden;
color: var(--text);
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background:
radial-gradient(circle at 15% 10%, rgba(86, 154, 255, 0.42), transparent 34%),
radial-gradient(circle at 88% 18%, rgba(255, 192, 96, 0.24), transparent 29%),
linear-gradient(145deg, #10294a 0%, #0b1b34 47%, #071426 100%);
}
body::before,
body::after {
position: fixed;
content: "";
border-radius: 50%;
filter: blur(2px);
pointer-events: none;
}
body::before {
width: 430px;
height: 430px;
right: -140px;
bottom: -190px;
background: rgba(74, 129, 205, 0.14);
border: 1px solid rgba(255, 255, 255, 0.08);
}
body::after {
width: 210px;
height: 210px;
left: -80px;
bottom: -60px;
background: rgba(255, 211, 106, 0.08);
}
main {
width: 100%;
height: 100%;
padding: 54px 70px;
display: grid;
place-items: center;
}
.weather-card {
position: relative;
width: min(1140px, 100%);
height: min(692px, 100%);
padding: 46px 50px 36px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: 34px;
background:
linear-gradient(135deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.045)),
rgba(7, 25, 48, 0.68);
box-shadow:
0 36px 90px rgba(0, 8, 24, 0.5),
inset 0 1px 0 rgba(255, 255, 255, 0.16);
backdrop-filter: blur(26px);
}
.weather-card::before {
position: absolute;
width: 380px;
height: 380px;
top: -190px;
right: -70px;
content: "";
border-radius: 50%;
background: radial-gradient(circle, rgba(255, 213, 116, 0.17), transparent 68%);
pointer-events: none;
}
.topbar {
position: relative;
z-index: 1;
display: flex;
justify-content: space-between;
align-items: flex-start;
min-height: 62px;
}
.eyebrow {
display: flex;
align-items: center;
gap: 9px;
margin-bottom: 11px;
color: var(--accent-cool);
font-size: 12px;
font-weight: 750;
letter-spacing: 0.17em;
text-transform: uppercase;
}
.eyebrow::before {
width: 7px;
height: 7px;
content: "";
border-radius: 50%;
background: currentColor;
box-shadow: 0 0 14px currentColor;
}
h1 {
max-width: 700px;
margin: 0;
overflow: hidden;
font-size: clamp(30px, 3.2vw, 45px);
font-weight: 680;
letter-spacing: -0.045em;
line-height: 1.04;
text-overflow: ellipsis;
white-space: nowrap;
}
.date-block {
padding-top: 4px;
text-align: right;
}
.date-block time {
display: block;
font-size: 16px;
font-weight: 620;
}
.date-block span {
display: block;
margin-top: 6px;
color: var(--muted);
font-size: 12px;
font-weight: 650;
letter-spacing: 0.11em;
text-transform: uppercase;
}
.loading,
.error {
position: absolute;
inset: 0;
z-index: 5;
display: grid;
place-content: center;
justify-items: center;
gap: 17px;
padding: 40px;
text-align: center;
background: linear-gradient(145deg, rgba(15, 43, 76, 0.96), rgba(7, 22, 42, 0.97));
transition: opacity 300ms ease, visibility 300ms ease;
}
.loading.hidden,
.error.hidden {
visibility: hidden;
opacity: 0;
pointer-events: none;
}
.spinner {
width: 44px;
height: 44px;
border: 3px solid rgba(255, 255, 255, 0.16);
border-top-color: var(--accent);
border-radius: 50%;
animation: spin 0.9s linear infinite;
}
.state-title {
margin: 0;
font-size: 25px;
font-weight: 650;
letter-spacing: -0.025em;
}
.state-copy {
max-width: 440px;
margin: 0;
color: var(--muted);
line-height: 1.6;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.summary {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 1.08fr 0.92fr;
align-items: center;
height: 260px;
margin-top: 10px;
}
.temperature-row {
display: flex;
align-items: center;
gap: 32px;
}
.weather-icon {
width: 148px;
height: 148px;
flex: 0 0 148px;
filter: drop-shadow(0 18px 20px rgba(0, 8, 22, 0.2));
}
.temperature {
display: flex;
align-items: flex-start;
line-height: 0.85;
}
.temperature strong {
font-size: 112px;
font-weight: 300;
letter-spacing: -0.09em;
}
.temperature sup {
margin: 8px 0 0 8px;
color: var(--accent);
font-size: 27px;
font-weight: 600;
letter-spacing: -0.03em;
}
.condition {
margin: 13px 0 0 3px;
color: rgba(247, 251, 255, 0.82);
font-size: 19px;
font-weight: 540;
}
.range {
justify-self: end;
min-width: 290px;
display: grid;
grid-template-columns: 1fr 1fr;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 22px;
background: rgba(255, 255, 255, 0.055);
}
.range-item {
padding: 24px 27px 22px;
}
.range-item + .range-item {
border-left: 1px solid var(--line);
}
.range-label {
display: flex;
align-items: center;
gap: 7px;
color: var(--muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.13em;
text-transform: uppercase;
}
.range-label .arrow {
font-size: 16px;
line-height: 1;
}
.high .arrow {
color: var(--accent);
}
.low .arrow {
color: var(--accent-cool);
}
.range-value {
display: block;
margin-top: 11px;
font-size: 35px;
font-weight: 500;
letter-spacing: -0.05em;
}
.hourly {
position: relative;
z-index: 1;
height: 270px;
padding: 23px 26px 12px;
border: 1px solid var(--line);
border-radius: 25px;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025));
}
.hourly-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 3px;
}
.hourly-header h2 {
margin: 0;
font-size: 15px;
font-weight: 680;
letter-spacing: -0.01em;
}
.unit {
color: var(--muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.13em;
text-transform: uppercase;
}
.chart-wrap {
position: relative;
height: 205px;
margin-top: 10px;
}
#chart {
width: 100%;
height: 100%;
overflow: visible;
}
.grid-line {
stroke: rgba(255, 255, 255, 0.08);
stroke-width: 1;
stroke-dasharray: 3 6;
}
.axis-label {
fill: rgba(235, 245, 255, 0.51);
font-family: inherit;
font-size: 10px;
font-weight: 600;
}
.chart-line {
fill: none;
stroke: url(#lineGradient);
stroke-width: 3;
stroke-linecap: round;
stroke-linejoin: round;
}
.chart-area {
fill: url(#areaGradient);
}
.point {
fill: #fff;
stroke: #63c8ff;
stroke-width: 2;
opacity: 0;
transition: opacity 120ms ease;
}
.hit {
fill: transparent;
cursor: crosshair;
}
.tooltip {
position: absolute;
z-index: 3;
min-width: 76px;
padding: 8px 10px;
pointer-events: none;
opacity: 0;
transform: translate(-50%, -110%);
border: 1px solid rgba(255, 255, 255, 0.17);
border-radius: 11px;
color: #fff;
background: rgba(5, 19, 38, 0.92);
box-shadow: 0 10px 24px rgba(0, 6, 20, 0.3);
text-align: center;
transition: opacity 100ms ease;
}
.tooltip.visible {
opacity: 1;
}
.tooltip strong {
display: block;
font-size: 14px;
}
.tooltip span {
display: block;
margin-top: 2px;
color: var(--muted);
font-size: 10px;
}
.footer-note {
position: absolute;
right: 51px;
bottom: 14px;
color: rgba(235, 245, 255, 0.37);
font-size: 9px;
font-weight: 650;
letter-spacing: 0.1em;
text-transform: uppercase;
}
@media (max-width: 900px) {
main {
padding: 25px;
}
.weather-card {
padding: 35px;
}
.temperature strong {
font-size: 84px;
}
.weather-icon {
width: 110px;
height: 110px;
flex-basis: 110px;
}
.range {
min-width: 240px;
}
}
</style>
</head>
<body>
<main>
<article class="weather-card" aria-live="polite">
<div id="loading" class="loading">
<div class="spinner" aria-hidden="true"></div>
<p class="state-title">Reading the atmosphere</p>
<p class="state-copy">Loading the weather for your selected location.</p>
</div>
<div id="error" class="error hidden" role="alert">
<svg width="58" height="58" viewBox="0 0 58 58" aria-hidden="true">
<circle cx="29" cy="29" r="27" fill="none" stroke="rgba(255,255,255,.18)" stroke-width="2"/>
<path d="M29 15v18" stroke="#ffd36a" stroke-width="4" stroke-linecap="round"/>
<circle cx="29" cy="42" r="2.5" fill="#ffd36a"/>
</svg>
<p class="state-title">Weather data unavailable</p>
<p class="state-copy">The weather for this location and date could not be loaded. Please check the details and try again.</p>
</div>
<header class="topbar">
<div>
<div class="eyebrow">Daily forecast</div>
<h1 id="location">Berlin</h1>
</div>
<div class="date-block">
<time id="date"></time>
<span id="date-kind">UTC</span>
</div>
</header>
<section class="summary">
<div class="temperature-row">
<div id="weather-icon" class="weather-icon" aria-hidden="true"></div>
<div>
<div class="temperature">
<strong id="main-temp">—</strong>
<sup>°C</sup>
</div>
<p id="condition" class="condition">Loading conditions</p>
</div>
</div>
<div class="range" aria-label="Daily temperature range">
<div class="range-item high">
<span class="range-label"><span class="arrow">↑</span>Maximum</span>
<strong id="max-temp" class="range-value">—°</strong>
</div>
<div class="range-item low">
<span class="range-label"><span class="arrow">↓</span>Minimum</span>
<strong id="min-temp" class="range-value">—°</strong>
</div>
</div>
</section>
<section class="hourly">
<div class="hourly-header">
<h2>Hourly temperature</h2>
<span class="unit">00:00–23:00 · UTC</span>
</div>
<div class="chart-wrap">
<svg id="chart" viewBox="0 0 950 205" preserveAspectRatio="none" role="img" aria-label="Hourly temperature chart"></svg>
<div id="tooltip" class="tooltip"></div>
</div>
</section>
<div class="footer-note">Temperature · Celsius</div>
</article>
</main>
<script>
(() => {
const params = new URLSearchParams(location.search);
const utcToday = new Date().toISOString().slice(0, 10);
const validDate = value => /^\d{4}-\d{2}-\d{2}$/.test(value || "") &&
!Number.isNaN(Date.parse(value + "T00:00:00Z"));
const latitude = finiteNumber(params.get("lat"), 52.52);
const longitude = finiteNumber(params.get("lon"), 13.405);
const locationName = (params.get("name") || "Berlin").trim() || "Berlin";
const requestedDate = validDate(params.get("date")) ? params.get("date") : utcToday;
function finiteNumber(value, fallback) {
const number = Number(value);
return Number.isFinite(number) ? number : fallback;
}
function formatDate(dateString) {
return new Intl.DateTimeFormat("en", {
weekday: "long",
day: "numeric",
month: "long",
year: "numeric",
timeZone: "UTC"
}).format(new Date(dateString + "T12:00:00Z"));
}
function conditionFor(code) {
const conditions = {
0: ["Clear sky", "clear"],
1: ["Mainly clear", "clear"],
2: ["Partly cloudy", "cloudy"],
3: ["Overcast", "cloudy"],
45: ["Fog", "fog"],
48: ["Rime fog", "fog"],
51: ["Light drizzle", "rain"],
53: ["Drizzle", "rain"],
55: ["Heavy drizzle", "rain"],
56: ["Freezing drizzle", "rain"],
57: ["Heavy freezing drizzle", "rain"],
61: ["Light rain", "rain"],
63: ["Rain", "rain"],
65: ["Heavy rain", "rain"],
66: ["Freezing rain", "rain"],
67: ["Heavy freezing rain", "rain"],
71: ["Light snow", "snow"],
73: ["Snow", "snow"],
75: ["Heavy snow", "snow"],
77: ["Snow grains", "snow"],
80: ["Light rain showers", "rain"],
81: ["Rain showers", "rain"],
82: ["Heavy rain showers", "rain"],
85: ["Snow showers", "snow"],
86: ["Heavy snow showers", "snow"],
95: ["Thunderstorm", "storm"],
96: ["Thunderstorm with hail", "storm"],
99: ["Severe thunderstorm", "storm"]
};
return conditions[code] || ["Unknown conditions", "cloudy"];
}
function icon(type) {
const sun = `
<circle cx="62" cy="57" r="25" fill="#FFD469"/>
<g stroke="#FFD469" stroke-width="5" stroke-linecap="round">
<path d="M62 15v9M62 90v9M20 57h9M95 57h9M32 27l7 7M85 80l7 7M32 87l7-7M85 34l7-7"/>
</g>`;
const cloud = `
<path d="M39 111h67c17 0 29-11 29-26 0-14-11-25-25-26-5-17-20-28-38-28-21 0-38 15-41 35-14 2-24 11-24 23 0 13 13 22 32 22Z"
fill="url(#cloudFill)" stroke="rgba(255,255,255,.6)" stroke-width="1.5"/>`;
const drops = `
<g stroke="#73D1FF" stroke-width="5" stroke-linecap="round">
<path d="M47 121l-7 13M77 121l-7 13M107 121l-7 13"/>
</g>`;
const snow = `
<g fill="#DFF5FF">
<circle cx="42" cy="130" r="4"/><circle cx="72" cy="126" r="4"/><circle cx="103" cy="132" r="4"/>
</g>`;
const lightning = `<path d="M80 109H64l-7 20h13l-6 19 27-29H77Z" fill="#FFD469"/>`;
const fog = `
<g stroke="rgba(226,243,255,.75)" stroke-width="5" stroke-linecap="round">
<path d="M22 76h90M34 96h96M18 116h86"/>
</g>`;
let content;
if (type === "clear") content = sun;
else if (type === "fog") content = `<g opacity=".45">${sun}</g>${fog}`;
else if (type === "rain") content = `<g transform="translate(8 -8)" opacity=".62">${sun}</g>${cloud}${drops}`;
else if (type === "snow") content = `<g transform="translate(8 -8)" opacity=".45">${sun}</g>${cloud}${snow}`;
else if (type === "storm") content = `${cloud}${lightning}`;
else content = `<g transform="translate(8 -8)">${sun}</g>${cloud}`;
return `
<svg viewBox="0 0 150 150" width="100%" height="100%">
<defs>
<linearGradient id="cloudFill" x1="0" y1="0" x2="0.9" y2="1">
<stop offset="0" stop-color="#F8FCFF"/>
<stop offset="1" stop-color="#A9C8E3"/>
</linearGradient>
</defs>
${content}
</svg>`;
}
function renderChart(times, values) {
const svg = document.getElementById("chart");
const tooltip = document.getElementById("tooltip");
const entries = values
.map((value, index) => ({ value: Number(value), time: times[index] }))
.filter(entry => Number.isFinite(entry.value));
if (!entries.length) throw new Error("Hourly temperatures are missing");
const width = 950;
const height = 205;
const left = 13;
const right = 13;
const top = 18;
const bottom = 32;
const innerWidth = width - left - right;
const innerHeight = height - top - bottom;
const rawMin = Math.min(...entries.map(entry => entry.value));
const rawMax = Math.max(...entries.map(entry => entry.value));
const padding = Math.max((rawMax - rawMin) * 0.3, 2);
const min = rawMin - padding;
const max = rawMax + padding;
const x = index => left + index * innerWidth / Math.max(entries.length - 1, 1);
const y = value => top + (max - value) * innerHeight / (max - min);
const points = entries.map((entry, index) => `${x(index)},${y(entry.value)}`).join(" ");
const area = `${left},${height - bottom} ${points} ${x(entries.length - 1)},${height - bottom}`;
let markup = `
<defs>
<linearGradient id="lineGradient" x1="0" x2="1">
<stop offset="0" stop-color="#71D1FF"/>
<stop offset="1" stop-color="#FFD36A"/>
</linearGradient>
<linearGradient id="areaGradient" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#77D4FF" stop-opacity=".28"/>
<stop offset="1" stop-color="#77D4FF" stop-opacity="0"/>
</linearGradient>
</defs>`;
for (let i = 0; i < 3; i++) {
const gy = top + i * innerHeight / 2;
markup += `<line class="grid-line" x1="${left}" y1="${gy}" x2="${width - right}" y2="${gy}"/>`;
}
markup += `<polygon class="chart-area" points="${area}"/>`;
markup += `<polyline class="chart-line" points="${points}"/>`;
entries.forEach((entry, index) => {
const hour = (entry.time || "").slice(11, 16) || `${String(index).padStart(2, "0")}:00`;
if (index % 3 === 0 || index === entries.length - 1) {
markup += `<text class="axis-label" x="${x(index)}" y="${height - 8}" text-anchor="${index === 0 ? "start" : index === entries.length - 1 ? "end" : "middle"}">${hour}</text>`;
}
markup += `<circle class="point" id="point-${index}" cx="${x(index)}" cy="${y(entry.value)}" r="4"/>`;
markup += `<rect class="hit" data-index="${index}" x="${x(index) - innerWidth / entries.length / 2}" y="${top}" width="${innerWidth / entries.length}" height="${innerHeight + 8}"/>`;
});
svg.innerHTML = markup;
svg.querySelectorAll(".hit").forEach(hit => {
const show = event => {
const index = Number(hit.dataset.index);
const entry = entries[index];
const point = svg.querySelector(`#point-${index}`);
const hour = (entry.time || "").slice(11, 16) || `${String(index).padStart(2, "0")}:00`;
point.style.opacity = "1";
tooltip.innerHTML = `<strong>${Math.round(entry.value)}°C</strong><span>${hour} UTC</span>`;
tooltip.style.left = `${x(index) / width * 100}%`;
tooltip.style.top = `${y(entry.value) / height * 100}%`;
tooltip.classList.add("visible");
};
const hide = () => {
const point = svg.querySelector(`#point-${hit.dataset.index}`);
point.style.opacity = "0";
tooltip.classList.remove("visible");
};
hit.addEventListener("mouseenter", show);
hit.addEventListener("mousemove", show);
hit.addEventListener("mouseleave", hide);
});
}
async function loadWeather() {
document.getElementById("location").textContent = locationName;
document.getElementById("date").textContent = formatDate(requestedDate);
document.getElementById("date-kind").textContent =
requestedDate < utcToday ? "Historical weather · UTC" :
requestedDate === utcToday ? "Today · UTC" : "Forecast · UTC";
const endpoint = requestedDate < utcToday ? "/api/om/archive" : "/api/om/forecast";
const query = new URLSearchParams({
latitude: String(latitude),
longitude: String(longitude),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: requestedDate,
end_date: requestedDate
});
try {
const response = await fetch(`${endpoint}?${query.toString()}`);
if (!response.ok) throw new Error(`Weather request failed: ${response.status}`);
const data = await response.json();
const max = Number(data?.daily?.temperature_2m_max?.[0]);
const min = Number(data?.daily?.temperature_2m_min?.[0]);
const code = Number(data?.daily?.weather_code?.[0]);
const times = data?.hourly?.time;
const hourly = data?.hourly?.temperature_2m;
if (!Number.isFinite(max) || !Number.isFinite(min) || !Array.isArray(times) || !Array.isArray(hourly)) {
throw new Error("Incomplete weather response");
}
const [condition, type] = conditionFor(code);
document.getElementById("main-temp").textContent = Math.round(max);
document.getElementById("max-temp").textContent = `${Math.round(max)}°`;
document.getElementById("min-temp").textContent = `${Math.round(min)}°`;
document.getElementById("condition").textContent = condition;
document.getElementById("weather-icon").innerHTML = icon(type);
renderChart(times, hourly);
document.getElementById("loading").classList.add("hidden");
} catch (error) {
console.error(error);
document.getElementById("loading").classList.add("hidden");
document.getElementById("error").classList.remove("hidden");
}
}
loadWeather();
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 22,967 | html / css / js | 2,875 / 9,334 / 10,758 |
|---|---|---|---|
| dom nodes | 53 | dom depth | 9 |
| css rules | 62 | js present | yes |
| brightness | 52.5 | contrast | 24.4 |
| colorfulness | 22.6 | whitespace | 60.8% |
This slot's telemetry
| prompt tokens | 3 | completion tokens | 6,825 |
|---|---|---|---|
| total tokens | 6,828 | wall | 79.4 s |
| cost | — | request id | — |
config.json571 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.6-sol-eff-medium--cli--cursor--dev",
"effort": "medium",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.6-sol",
"protocol": "cli",
"served_model": "gpt-5.6-sol-medium",
"telemetry": {
"completion_tokens": 21095,
"cost_usd": null,
"prompt_tokens": 12,
"total_tokens": 21107,
"wall_ms": 399447
},
"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": "gpt-5.6-sol-eff-medium--cli--cursor--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-12T20:55:28.525719+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T20:54:27.475960+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-12T20:56:51.510672+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T20:55:32.068680+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-12T21:00:28.013015+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T20:56:55.057020+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-12T21:01:18.075580+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T21:00:32.068155+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
}
}
}