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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-4-8-thinking @medium · cursor-xl0.73claude-opus-4-8 @high · kiro0.72claude-opus-4-8 @low · cursor-xl0.71claude-opus-5 @medium · cursor0.70claude-fable-5 @high · cursor0.70最远
north-mini-code-free · api0.50claude-sonnet-4 · cursor0.53nemotron-3-ultra-free · api0.53qwen3.6-plus · go0.53claude-sonnet-4 · kiro0.54限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlymatchcoverage 12/24 · 12 命中 · 0 不符 · 12 未展示
- 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=1280, initial-scale=1">
<title>Weather Card</title>
<style>
:root {
--card-w: 960px;
--ease: cubic-bezier(0.4, 0.0, 0.2, 1);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
width: 100%;
min-height: 100vh;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
color: #fff;
background: #0b1026;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
padding: 40px;
background:
radial-gradient(1200px 800px at 80% -10%, rgba(255,255,255,0.10), transparent 60%),
var(--bg, linear-gradient(160deg, #1e3a8a 0%, #0f172a 100%));
transition: background 0.8s var(--ease);
}
.card {
width: var(--card-w);
max-width: 100%;
border-radius: 28px;
padding: 40px 44px;
position: relative;
overflow: hidden;
background: rgba(255, 255, 255, 0.08);
border: 1px solid rgba(255, 255, 255, 0.16);
box-shadow:
0 30px 60px -20px rgba(0, 0, 0, 0.55),
inset 0 1px 0 rgba(255, 255, 255, 0.18);
backdrop-filter: blur(20px) saturate(120%);
-webkit-backdrop-filter: blur(20px) saturate(120%);
animation: rise 0.7s var(--ease) both;
}
@keyframes rise {
from { opacity: 0; transform: translateY(24px) scale(0.98); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
.top {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
}
.loc { min-width: 0; }
.loc h1 {
font-size: 34px;
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.1;
display: flex;
align-items: center;
gap: 10px;
}
.loc h1 .pin { opacity: 0.7; font-size: 26px; }
.loc .date {
margin-top: 8px;
font-size: 16px;
font-weight: 500;
color: rgba(255, 255, 255, 0.72);
letter-spacing: 0.01em;
}
.badge {
flex-shrink: 0;
font-size: 13px;
font-weight: 600;
padding: 7px 14px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.14);
border: 1px solid rgba(255, 255, 255, 0.18);
color: rgba(255, 255, 255, 0.9);
white-space: nowrap;
}
.hero {
display: flex;
align-items: center;
gap: 28px;
margin-top: 34px;
}
.icon-wrap {
width: 128px;
height: 128px;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
filter: drop-shadow(0 12px 22px rgba(0,0,0,0.35));
}
.icon-wrap svg { width: 118px; height: 118px; overflow: visible; }
.temp-block { flex: 1; min-width: 0; }
.temp-now {
font-size: 92px;
font-weight: 700;
line-height: 0.9;
letter-spacing: -0.04em;
display: flex;
align-items: flex-start;
}
.temp-now .deg { font-size: 44px; font-weight: 600; margin-top: 6px; }
.cond {
margin-top: 10px;
font-size: 22px;
font-weight: 600;
color: rgba(255, 255, 255, 0.92);
}
.minmax {
margin-top: 14px;
display: flex;
gap: 22px;
font-size: 16px;
color: rgba(255, 255, 255, 0.8);
}
.minmax .v { color: #fff; font-weight: 700; }
.minmax .hi .dot { color: #ffd27a; }
.minmax .lo .dot { color: #9ec5ff; }
.divider {
height: 1px;
margin: 30px 0 22px;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
}
.section-label {
font-size: 12px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.6);
margin-bottom: 16px;
}
.chart {
width: 100%;
height: 150px;
display: block;
}
.chart .axis { stroke: rgba(255,255,255,0.12); stroke-width: 1; }
.chart .line {
fill: none;
stroke: url(#lineGrad);
stroke-width: 3;
stroke-linecap: round;
stroke-linejoin: round;
}
.chart .pt { fill: #fff; }
.chart .lbl { fill: rgba(255,255,255,0.9); font-size: 11px; font-weight: 600; text-anchor: middle; }
.chart .hr { fill: rgba(255,255,255,0.5); font-size: 10px; text-anchor: middle; }
.hours {
margin-top: 18px;
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 6px;
}
.hours .h {
text-align: center;
padding: 8px 2px;
border-radius: 10px;
background: rgba(255,255,255,0.05);
}
.hours .h .t { font-size: 13px; font-weight: 700; }
.hours .h .c { font-size: 10px; color: rgba(255,255,255,0.55); margin-top: 3px; }
.msg {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 40px 20px;
min-height: 200px;
}
.msg .em { font-size: 46px; margin-bottom: 16px; }
.msg h2 { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.msg p { font-size: 15px; color: rgba(255,255,255,0.7); max-width: 460px; }
.skeleton { color: transparent !important; }
.spin {
width: 44px; height: 44px; border-radius: 50%;
border: 4px solid rgba(255,255,255,0.2);
border-top-color: #fff;
animation: spin 0.9s linear infinite;
margin-bottom: 18px;
}
@keyframes spin { to { transform: rotate(360deg); } }
.foot {
margin-top: 22px;
font-size: 12px;
color: rgba(255,255,255,0.45);
text-align: right;
}
</style>
</head>
<body>
<main class="card" id="card">
<div class="msg" id="loading">
<div class="spin"></div>
<p>Loading weather…</p>
</div>
</main>
<script>
(function () {
"use strict";
var qs = new URLSearchParams(location.search);
function num(v, d) { var n = parseFloat(v); return isFinite(n) ? n : d; }
var lat = num(qs.get("lat"), 52.52);
var lon = num(qs.get("lon"), 13.405);
var name = (qs.get("name") || "Berlin").trim() || "Berlin";
function todayUTC() {
var n = new Date();
return n.getUTCFullYear() + "-" +
String(n.getUTCMonth() + 1).padStart(2, "0") + "-" +
String(n.getUTCDate()).padStart(2, "0");
}
var dateStr = qs.get("date");
if (!dateStr || !/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) dateStr = todayUTC();
// WMO weather code interpretation.
var WMO = {
0: ["Clear sky", "sun"],
1: ["Mainly clear", "sun"],
2: ["Partly cloudy", "partly"],
3: ["Overcast", "cloud"],
45: ["Fog", "fog"],
48: ["Depositing rime fog", "fog"],
51: ["Light drizzle", "drizzle"],
53: ["Moderate drizzle", "drizzle"],
55: ["Dense drizzle", "drizzle"],
56: ["Light freezing drizzle", "drizzle"],
57: ["Dense freezing drizzle", "drizzle"],
61: ["Slight rain", "rain"],
63: ["Moderate rain", "rain"],
65: ["Heavy rain", "rain"],
66: ["Light freezing rain", "rain"],
67: ["Heavy freezing rain", "rain"],
71: ["Slight snow", "snow"],
73: ["Moderate snow", "snow"],
75: ["Heavy snow", "snow"],
77: ["Snow grains", "snow"],
80: ["Slight rain showers", "rain"],
81: ["Moderate rain showers", "rain"],
82: ["Violent rain showers", "rain"],
85: ["Slight snow showers", "snow"],
86: ["Heavy snow showers", "snow"],
95: ["Thunderstorm", "storm"],
96: ["Thunderstorm w/ slight hail", "storm"],
99: ["Thunderstorm w/ heavy hail", "storm"]
};
function wmo(code) { return WMO[code] || ["Unknown", "cloud"]; }
// Background gradient palettes keyed by icon family.
var THEMES = {
sun: "linear-gradient(160deg, #2563eb 0%, #38bdf8 55%, #fcd34d 130%)",
partly: "linear-gradient(160deg, #1e40af 0%, #3b82f6 60%, #93c5fd 120%)",
cloud: "linear-gradient(160deg, #334155 0%, #475569 55%, #64748b 110%)",
fog: "linear-gradient(160deg, #475569 0%, #64748b 55%, #94a3b8 110%)",
drizzle: "linear-gradient(160deg, #1e293b 0%, #334155 55%, #475569 110%)",
rain: "linear-gradient(160deg, #0f172a 0%, #1e3a5f 55%, #3b82f6 120%)",
snow: "linear-gradient(160deg, #334155 0%, #64748b 50%, #cbd5e1 120%)",
storm: "linear-gradient(160deg, #111827 0%, #312e81 60%, #6d28d9 120%)"
};
function icon(kind) {
var s;
switch (kind) {
case "sun":
return '<svg viewBox="0 0 100 100">' +
'<g stroke="#ffe08a" stroke-width="4" stroke-linecap="round">' +
rays() + '</g>' +
'<circle cx="50" cy="50" r="19" fill="#ffd166" stroke="#ffe08a" stroke-width="3"/></svg>';
case "partly":
return '<svg viewBox="0 0 100 100">' +
'<circle cx="38" cy="40" r="15" fill="#ffd166"/>' +
cloud(52, 58, "#e2e8f0") + '</svg>';
case "cloud":
return '<svg viewBox="0 0 100 100">' + cloud(50, 52, "#cbd5e1") + '</svg>';
case "fog":
return '<svg viewBox="0 0 100 100">' + cloud(50, 44, "#cbd5e1") +
'<g stroke="#e2e8f0" stroke-width="4" stroke-linecap="round">' +
'<line x1="24" y1="72" x2="76" y2="72"/><line x1="30" y1="82" x2="70" y2="82"/></g></svg>';
case "drizzle":
return '<svg viewBox="0 0 100 100">' + cloud(50, 42, "#cbd5e1") +
drops("#7dd3fc", [ [38,74],[52,74],[66,74] ]) + '</svg>';
case "rain":
return '<svg viewBox="0 0 100 100">' + cloud(50, 40, "#cbd5e1") +
drops("#38bdf8", [ [34,72],[46,80],[58,72],[70,80] ]) + '</svg>';
case "snow":
return '<svg viewBox="0 0 100 100">' + cloud(50, 40, "#e2e8f0") +
'<g fill="#fff">' +
'<circle cx="36" cy="76" r="4"/><circle cx="52" cy="84" r="4"/><circle cx="68" cy="76" r="4"/></g></svg>';
case "storm":
return '<svg viewBox="0 0 100 100">' + cloud(50, 40, "#94a3b8") +
'<polygon points="50,66 40,84 50,84 44,98 66,76 54,76 62,66" fill="#fcd34d"/></svg>';
default:
return '<svg viewBox="0 0 100 100">' + cloud(50, 52, "#cbd5e1") + '</svg>';
}
function rays() {
var out = "", i, a, x1, y1, x2, y2;
for (i = 0; i < 8; i++) {
a = i * Math.PI / 4;
x1 = 50 + Math.cos(a) * 27; y1 = 50 + Math.sin(a) * 27;
x2 = 50 + Math.cos(a) * 36; y2 = 50 + Math.sin(a) * 36;
out += '<line x1="' + x1.toFixed(1) + '" y1="' + y1.toFixed(1) +
'" x2="' + x2.toFixed(1) + '" y2="' + y2.toFixed(1) + '"/>';
}
return out;
}
function cloud(cx, cy, col) {
return '<g fill="' + col + '">' +
'<circle cx="' + (cx-16) + '" cy="' + cy + '" r="14"/>' +
'<circle cx="' + (cx+16) + '" cy="' + cy + '" r="15"/>' +
'<circle cx="' + cx + '" cy="' + (cy-12) + '" r="17"/>' +
'<rect x="' + (cx-30) + '" y="' + cy + '" width="60" height="16" rx="8"/></g>';
}
function drops(col, pts) {
return '<g fill="' + col + '">' + pts.map(function (p) {
return '<path d="M' + p[0] + ' ' + p[1] + ' q4 6 0 10 q-4 -4 0 -10 z"/>';
}).join("") + '</g>';
}
}
function fmtDate(str) {
var p = str.split("-");
var d = new Date(Date.UTC(+p[0], +p[1] - 1, +p[2]));
return d.toLocaleDateString("en-US", {
weekday: "long", year: "numeric", month: "long", day: "numeric", timeZone: "UTC"
});
}
function isPast(str) { return str < todayUTC(); }
function buildUrl() {
var base = isPast(dateStr) ? "/api/om/archive" : "/api/om/forecast";
var p = 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
});
return base + "?" + p.toString();
}
function esc(s) {
return String(s).replace(/[&<>"']/g, function (c) {
return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c];
});
}
function r0(n) { return Math.round(n); }
function showError(detail) {
document.body.style.setProperty("--bg", "linear-gradient(160deg,#3f1d2b 0%,#111827 100%)");
document.getElementById("card").innerHTML =
'<div class="msg">' +
'<div class="em">⚠️</div>' +
'<h2>Weather data unavailable</h2>' +
'<p>' + esc(detail || "We couldn\u2019t load the forecast for " + name + " on this date. Please try again later.") + '</p>' +
'</div>';
}
function render(data) {
var daily = data && data.daily;
var hourly = data && data.hourly;
if (!daily || !daily.time || !daily.time.length) {
showError("No forecast is available for " + name + " on " + dateStr + ".");
return;
}
var tmax = daily.temperature_2m_max[0];
var tmin = daily.temperature_2m_min[0];
var code = daily.weather_code[0];
var info = wmo(code);
var kind = info[1];
var condition = info[0];
document.body.style.setProperty("--bg", THEMES[kind] || THEMES.cloud);
// Hourly series for the requested date.
var times = (hourly && hourly.time) || [];
var temps = (hourly && hourly.temperature_2m) || [];
var series = [];
for (var i = 0; i < times.length; i++) {
if (String(times[i]).slice(0, 10) === dateStr && temps[i] != null) {
series.push({ hour: parseInt(String(times[i]).slice(11, 13), 10), t: temps[i] });
}
}
// "Now" temperature: current hour if today, else midday-ish average fallback.
var nowTemp;
if (!isPast(dateStr) && dateStr === todayUTC() && series.length) {
var h = new Date().getUTCHours();
var match = series.filter(function (s) { return s.hour <= h; }).pop() || series[series.length - 1];
nowTemp = match.t;
} else if (series.length) {
nowTemp = series.reduce(function (a, s) { return a + s.t; }, 0) / series.length;
} else {
nowTemp = (tmax + tmin) / 2;
}
var html =
'<div class="top">' +
'<div class="loc">' +
'<h1><span class="pin">📍</span>' + esc(name) + '</h1>' +
'<div class="date">' + esc(fmtDate(dateStr)) + '</div>' +
'</div>' +
'<div class="badge">' + (isPast(dateStr) ? "Historical" : "Forecast") + ' · UTC</div>' +
'</div>' +
'<div class="hero">' +
'<div class="icon-wrap">' + icon(kind) + '</div>' +
'<div class="temp-block">' +
'<div class="temp-now">' + r0(nowTemp) + '<span class="deg">°C</span></div>' +
'<div class="cond">' + esc(condition) + '</div>' +
'<div class="minmax">' +
'<span class="hi"><span class="dot">▲</span> High <span class="v">' + r0(tmax) + '°</span></span>' +
'<span class="lo"><span class="dot">▼</span> Low <span class="v">' + r0(tmin) + '°</span></span>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="divider"></div>' +
'<div class="section-label">Hourly temperature</div>' +
chart(series) +
grid(series) +
'<div class="foot">' + esc(lat.toFixed(3)) + ', ' + esc(lon.toFixed(3)) + '</div>';
document.getElementById("card").innerHTML = html;
}
function chart(series) {
if (!series.length) return '<p style="color:rgba(255,255,255,.6)">Hourly data unavailable.</p>';
var W = 872, H = 150, padX = 16, padTop = 26, padBot = 30;
var xs = series.map(function (s) { return s.hour; });
var ys = series.map(function (s) { return s.t; });
var minY = Math.min.apply(null, ys), maxY = Math.max.apply(null, ys);
if (minY === maxY) { minY -= 1; maxY += 1; }
var span = maxY - minY;
var innerW = W - padX * 2, innerH = H - padTop - padBot;
function X(i) { return padX + (series.length === 1 ? innerW / 2 : innerW * i / (series.length - 1)); }
function Y(v) { return padTop + innerH * (1 - (v - minY) / span); }
var pts = series.map(function (s, i) { return [X(i), Y(s.t)]; });
var d = pts.map(function (p, i) { return (i ? "L" : "M") + p[0].toFixed(1) + " " + p[1].toFixed(1); }).join(" ");
var area = "M" + pts[0][0].toFixed(1) + " " + (H - padBot) + " " +
pts.map(function (p) { return "L" + p[0].toFixed(1) + " " + p[1].toFixed(1); }).join(" ") +
" L" + pts[pts.length - 1][0].toFixed(1) + " " + (H - padBot) + " Z";
// Label a subset to avoid clutter.
var step = Math.ceil(series.length / 12);
var labels = "", dots = "", hrs = "";
series.forEach(function (s, i) {
var x = X(i).toFixed(1), y = Y(s.t).toFixed(1);
if (i % step === 0 || i === series.length - 1) {
labels += '<text class="lbl" x="' + x + '" y="' + (Y(s.t) - 10).toFixed(1) + '">' + r0(s.t) + '°</text>';
dots += '<circle class="pt" cx="' + x + '" cy="' + y + '" r="3"/>';
hrs += '<text class="hr" x="' + x + '" y="' + (H - 10) + '">' + String(s.hour).padStart(2, "0") + '</text>';
}
});
return '<svg class="chart" viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none">' +
'<defs>' +
'<linearGradient id="lineGrad" x1="0" y1="0" x2="1" y2="0">' +
'<stop offset="0" stop-color="#9ec5ff"/><stop offset="1" stop-color="#ffd27a"/></linearGradient>' +
'<linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0" stop-color="rgba(255,255,255,0.28)"/><stop offset="1" stop-color="rgba(255,255,255,0)"/></linearGradient>' +
'</defs>' +
'<path d="' + area + '" fill="url(#areaGrad)"/>' +
'<path class="line" d="' + d + '"/>' +
dots + labels + hrs +
'</svg>';
}
function grid(series) {
if (!series.length) return "";
// Show up to 24 hours, condensed to a readable strip.
var out = '<div class="hours">';
var pick = series;
if (series.length > 12) {
// sample every other hour to keep 12 columns
pick = series.filter(function (s, i) { return i % 2 === 0; }).slice(0, 12);
}
pick.forEach(function (s) {
out += '<div class="h"><div class="t">' + r0(s.t) + '°</div>' +
'<div class="c">' + String(s.hour).padStart(2, "0") + ':00</div></div>';
});
out += '</div>';
return out;
}
function load() {
var url = buildUrl();
var done = false;
var timer = setTimeout(function () {
if (!done) showError("The request timed out while contacting the weather service.");
}, 15000);
fetch(url, { headers: { "Accept": "application/json" } })
.then(function (res) {
if (!res.ok) throw new Error("HTTP " + res.status);
return res.json();
})
.then(function (data) {
done = true; clearTimeout(timer);
if (data && data.error) { showError(data.reason || "The weather service returned an error."); return; }
render(data);
})
.catch(function (err) {
done = true; clearTimeout(timer);
showError("We couldn\u2019t reach the weather service (" + (err && err.message ? err.message : "network error") + ").");
});
}
load();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 18,805 | html / css / js | 368 / 5,213 / 13,224 |
|---|---|---|---|
| dom 节点 | 12 | dom 深度 | 5 |
| css 规则 | 46 | 含 js | 是 |
| brightness | 74.2 | contrast | 18.8 |
| colorfulness | 12.8 | 留白 | 40.8% |
该 slot 的 telemetry
| prompt tokens | 6 | completion tokens | 10,398 |
|---|---|---|---|
| total tokens | 10,404 | wall | 117.5 s |
| cost | — | request id | — |
config.json607 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-opus-4-8-thinking-eff-high--cli--cursor--dev",
"effort": "high",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-opus-4-8-thinking",
"protocol": "cli",
"served_model": "claude-opus-4-8-thinking-high",
"telemetry": {
"completion_tokens": 28383,
"cost_usd": null,
"prompt_tokens": 14,
"total_tokens": 28397,
"wall_ms": 318213
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-s0",
"config_id": "claude-opus-4-8-thinking-eff-high--cli--cursor--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-12T17:08:26.751354+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:06:29.242823+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-12T17:09:26.216845+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:08:30.048755+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-12T17:10:12.828092+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:09:29.639295+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-12T17:11:57.618723+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-12T17:10:16.260774+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
}
}
}