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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
qwen3.8-max-preview · qoder0.73claude-opus-4-7 @low · kiro0.72claude-opus-4-8 @medium · kiro0.70grok-4.5 @high · grok-cli0.70qwen3.7-plus · opencode0.70最远
gpt-5.6-luna @high · kiro0.39gpt-5.6-terra @medium · kiro0.41gpt-5.6-luna @low · codex-oauth0.41minimax-m2.7 · go0.42gpt-5.6-sol @ultra · codex-oauth0.42限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlymismatchcoverage 0/24 · 0 命中 · 2 不符 · 22 未展示
- 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 {
--ink: #0f172a;
--muted: #64748b;
--line: #e2e8f0;
--card-bg: rgba(255, 255, 255, 0.72);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
width: 1280px;
height: 800px;
overflow: hidden;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
color: var(--ink);
display: flex;
align-items: center;
justify-content: center;
background: #dbe4ee;
-webkit-font-smoothing: antialiased;
transition: background 0.8s ease;
}
/* Scene gradients keyed by condition group */
body[data-scene="clear"] { background: linear-gradient(140deg, #4a90d9 0%, #6cb2eb 45%, #b8dcf5 100%); }
body[data-scene="cloudy"] { background: linear-gradient(140deg, #6b7b8c 0%, #8ea1b3 50%, #c3ced9 100%); }
body[data-scene="fog"] { background: linear-gradient(140deg, #8a94a0 0%, #aab2bd 50%, #d6dbe1 100%); }
body[data-scene="rain"] { background: linear-gradient(140deg, #3d5568 0%, #5a7489 50%, #92a8bb 100%); }
body[data-scene="snow"] { background: linear-gradient(140deg, #7d93ad 0%, #a9bdd4 50%, #e3ecf5 100%); }
body[data-scene="storm"] { background: linear-gradient(140deg, #2b2f45 0%, #4a4f6e 50%, #7f86a8 100%); }
.card {
width: 980px;
background: var(--card-bg);
backdrop-filter: blur(24px) saturate(140%);
-webkit-backdrop-filter: blur(24px) saturate(140%);
border-radius: 32px;
border: 1px solid rgba(255, 255, 255, 0.55);
box-shadow: 0 40px 90px -30px rgba(15, 23, 42, 0.45),
0 2px 8px rgba(15, 23, 42, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.6);
padding: 44px 52px 40px;
opacity: 0;
transform: translateY(14px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.card.ready { opacity: 1; transform: translateY(0); }
.top {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
}
.place {
display: flex;
flex-direction: column;
gap: 6px;
}
.place .eyebrow {
font-size: 13px;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--muted);
}
.place h1 {
font-size: 40px;
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.05;
}
.place .date {
font-size: 16px;
color: var(--muted);
font-weight: 500;
}
.hero {
display: flex;
align-items: center;
gap: 20px;
margin-top: 34px;
}
.icon-wrap {
width: 108px;
height: 108px;
flex: 0 0 auto;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(160deg, rgba(255,255,255,0.85), rgba(255,255,255,0.35));
border-radius: 26px;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), 0 8px 20px -10px rgba(15,23,42,0.3);
}
.icon-wrap svg { width: 72px; height: 72px; }
.hero-main { display: flex; flex-direction: column; gap: 2px; }
.temp-big {
font-size: 84px;
font-weight: 700;
letter-spacing: -0.04em;
line-height: 0.95;
}
.temp-big .deg { font-weight: 400; color: var(--muted); }
.condition {
font-size: 20px;
font-weight: 600;
color: #334155;
}
.hero-stats {
margin-left: auto;
display: flex;
gap: 14px;
}
.stat {
min-width: 120px;
padding: 16px 20px;
background: rgba(255, 255, 255, 0.55);
border-radius: 18px;
border: 1px solid rgba(255, 255, 255, 0.6);
display: flex;
flex-direction: column;
gap: 8px;
}
.stat .label {
font-size: 12px;
font-weight: 600;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--muted);
display: flex;
align-items: center;
gap: 6px;
}
.stat .value { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; }
.stat.max .dot { color: #e8663b; }
.stat.min .dot { color: #3b82f6; }
.stat .dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; display: inline-block; }
.chart-section {
margin-top: 38px;
padding-top: 28px;
border-top: 1px solid var(--line);
}
.chart-head {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 14px;
}
.chart-head h2 {
font-size: 14px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--muted);
}
.chart-head .range { font-size: 13px; color: var(--muted); font-weight: 500; }
.chart { width: 100%; height: 200px; display: block; }
.chart .grid { stroke: var(--line); stroke-width: 1; }
.chart .area { fill: url(#areaGrad); }
.chart .line { fill: none; stroke: #ef7a4d; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.chart .pt { fill: #fff; stroke: #ef7a4d; stroke-width: 2; }
.chart .pt.hi { stroke: #e8663b; }
.chart .pt.lo { stroke: #3b82f6; }
.chart .xlabel { fill: var(--muted); font-size: 11px; font-weight: 500; text-anchor: middle; }
.chart .vlabel { fill: #475569; font-size: 11px; font-weight: 600; text-anchor: middle; }
.chart .peak { fill: #e8663b; font-size: 11px; font-weight: 700; text-anchor: middle; }
.state {
padding: 60px 20px;
text-align: center;
}
.state .msg { font-size: 22px; font-weight: 600; margin-bottom: 8px; }
.state .sub { font-size: 15px; color: var(--muted); }
.spinner {
width: 42px; height: 42px; margin: 0 auto 22px;
border: 4px solid var(--line);
border-top-color: #6cb2eb;
border-radius: 50%;
animation: spin 0.9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.error-icon {
width: 52px; height: 52px; margin: 0 auto 18px;
color: #dc6a4a;
}
</style>
</head>
<body data-scene="clear">
<div class="card" id="card">
<div class="state" id="loading">
<div class="spinner"></div>
<div class="msg">Loading weather…</div>
<div class="sub" id="loadingSub"></div>
</div>
</div>
<script>
(function () {
"use strict";
// ---- Params ----
var qp = new URLSearchParams(location.search);
var lat = parseFloat(qp.get("lat"));
var lon = parseFloat(qp.get("lon"));
if (!isFinite(lat)) lat = 52.52;
if (!isFinite(lon)) lon = 13.405;
var name = qp.get("name") || "Berlin";
function todayUTC() {
var d = new Date();
return d.getUTCFullYear() + "-" +
String(d.getUTCMonth() + 1).padStart(2, "0") + "-" +
String(d.getUTCDate()).padStart(2, "0");
}
var dateStr = qp.get("date");
if (!dateStr || !/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) dateStr = todayUTC();
// Past dates use the archive API; today & future use the forecast API.
var isPast = dateStr < todayUTC();
var endpoint = isPast ? "/api/om/archive" : "/api/om/forecast";
var apiParams = 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
});
// ---- WMO weather code mapping ----
var WMO = {
0: {t: "Clear sky", g: "clear"},
1: {t: "Mainly clear", g: "clear"},
2: {t: "Partly cloudy", g: "partly"},
3: {t: "Overcast", g: "cloudy"},
45: {t: "Fog", g: "fog"},
48: {t: "Depositing rime fog", g: "fog"},
51: {t: "Light drizzle", g: "rain"},
53: {t: "Moderate drizzle", g: "rain"},
55: {t: "Dense drizzle", g: "rain"},
56: {t: "Freezing drizzle", g: "rain"},
57: {t: "Freezing drizzle", g: "rain"},
61: {t: "Slight rain", g: "rain"},
63: {t: "Moderate rain", g: "rain"},
65: {t: "Heavy rain", g: "rain"},
66: {t: "Freezing rain", g: "rain"},
67: {t: "Heavy freezing rain", g: "rain"},
71: {t: "Slight snowfall", g: "snow"},
73: {t: "Moderate snowfall", g: "snow"},
75: {t: "Heavy snowfall", g: "snow"},
77: {t: "Snow grains", g: "snow"},
80: {t: "Slight rain showers", g: "rain"},
81: {t: "Rain showers", g: "rain"},
82: {t: "Violent rain showers", g: "rain"},
85: {t: "Slight snow showers", g: "snow"},
86: {t: "Heavy snow showers", g: "snow"},
95: {t: "Thunderstorm", g: "storm"},
96: {t: "Thunderstorm w/ hail", g: "storm"},
99: {t: "Thunderstorm w/ hail", g: "storm"}
};
var ICONS = {
clear: '<circle cx="32" cy="32" r="14" fill="#f7b733"/><g stroke="#f7b733" stroke-width="4" stroke-linecap="round"><line x1="32" y1="4" x2="32" y2="12"/><line x1="32" y1="52" x2="32" y2="60"/><line x1="4" y1="32" x2="12" y2="32"/><line x1="52" y1="32" x2="60" y2="32"/><line x1="12" y1="12" x2="18" y2="18"/><line x1="46" y1="46" x2="52" y2="52"/><line x1="52" y1="12" x2="46" y2="18"/><line x1="18" y1="46" x2="12" y2="52"/></g>',
partly: '<circle cx="24" cy="22" r="11" fill="#f7b733"/><g stroke="#f7b733" stroke-width="3.5" stroke-linecap="round"><line x1="24" y1="2" x2="24" y2="8"/><line x1="6" y1="22" x2="12" y2="22"/><line x1="10" y1="8" x2="14" y2="12"/><line x1="38" y1="8" x2="34" y2="12"/></g><path d="M22 50a12 12 0 0 1 1.6-23.9 15 15 0 0 1 28.4 5A10 10 0 0 1 50 50z" fill="#e8eef4" stroke="#c3ced9" stroke-width="2"/>',
cloudy: '<path d="M20 48a13 13 0 0 1 1.7-25.9 16 16 0 0 1 30.6 5.4A11 11 0 0 1 50 48z" fill="#e8eef4" stroke="#b6c2cf" stroke-width="2.5"/>',
fog: '<path d="M20 40a13 13 0 0 1 1.7-25.9 16 16 0 0 1 30.6 5.4A11 11 0 0 1 50 40z" fill="#e8eef4" stroke="#b6c2cf" stroke-width="2.5"/><g stroke="#9aa7b4" stroke-width="4" stroke-linecap="round"><line x1="16" y1="50" x2="48" y2="50"/><line x1="22" y1="58" x2="54" y2="58"/></g>',
rain: '<path d="M20 40a13 13 0 0 1 1.7-25.9 16 16 0 0 1 30.6 5.4A11 11 0 0 1 50 40z" fill="#dfe7ef" stroke="#aab7c4" stroke-width="2.5"/><g stroke="#4a90d9" stroke-width="4" stroke-linecap="round"><line x1="24" y1="46" x2="20" y2="58"/><line x1="34" y1="46" x2="30" y2="58"/><line x1="44" y1="46" x2="40" y2="58"/></g>',
snow: '<path d="M20 38a13 13 0 0 1 1.7-25.9 16 16 0 0 1 30.6 5.4A11 11 0 0 1 50 38z" fill="#eef3f8" stroke="#b6c2cf" stroke-width="2.5"/><g fill="#6ea8e0"><circle cx="24" cy="50" r="3"/><circle cx="36" cy="56" r="3"/><circle cx="44" cy="49" r="3"/></g>',
storm: '<path d="M20 38a13 13 0 0 1 1.7-25.9 16 16 0 0 1 30.6 5.4A11 11 0 0 1 50 38z" fill="#cfd8e2" stroke="#96a3b1" stroke-width="2.5"/><path d="M34 40l-10 14h8l-4 12 14-18h-9l5-8z" fill="#f7b733" stroke="#e0a422" stroke-width="1.5" stroke-linejoin="round"/>'
};
function fmtDate(s) {
var parts = s.split("-");
var d = new Date(Date.UTC(+parts[0], +parts[1] - 1, +parts[2]));
return d.toLocaleDateString("en-US", {
weekday: "long", year: "numeric", month: "long", day: "numeric", timeZone: "UTC"
});
}
var card = document.getElementById("card");
var sub = document.getElementById("loadingSub");
sub.textContent = name + " · " + fmtDate(dateStr);
function showError(detail) {
card.classList.remove("ready");
card.innerHTML =
'<div class="state">' +
'<svg class="error-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' +
'<path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/>' +
'<line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>' +
'</svg>' +
'<div class="msg">Weather data could not be loaded</div>' +
'<div class="sub">' + esc(detail || "Please try again later.") + '</div>' +
'</div>';
requestAnimationFrame(function () { card.classList.add("ready"); });
}
function esc(s) {
return String(s).replace(/[&<>"]/g, function (c) {
return {"&": "&", "<": "<", ">": ">", '"': """}[c];
});
}
function render(data) {
var daily = data.daily || {};
var hourly = data.hourly || {};
var tmax = daily.temperature_2m_max && daily.temperature_2m_max[0];
var tmin = daily.temperature_2m_min && daily.temperature_2m_min[0];
var code = daily.weather_code && daily.weather_code[0];
var temps = hourly.temperature_2m || [];
var times = hourly.time || [];
if (tmax == null || tmin == null || temps.length === 0) {
showError("The API response did not include data for this date.");
return;
}
var info = WMO[code] || {t: "Unknown conditions", g: "cloudy"};
var scene = info.g === "partly" ? "clear" : info.g;
document.body.setAttribute("data-scene", scene);
var iconKey = ICONS[info.g] ? info.g : "cloudy";
card.innerHTML =
'<div class="top">' +
'<div class="place">' +
'<span class="eyebrow">Weather</span>' +
'<h1>' + esc(name) + '</h1>' +
'<span class="date">' + esc(fmtDate(dateStr)) + '</span>' +
'</div>' +
'</div>' +
'<div class="hero">' +
'<div class="icon-wrap"><svg viewBox="0 0 64 64">' + ICONS[iconKey] + '</svg></div>' +
'<div class="hero-main">' +
'<div class="temp-big">' + Math.round(tmax) + '<span class="deg">°C</span></div>' +
'<div class="condition">' + esc(info.t) + '</div>' +
'</div>' +
'<div class="hero-stats">' +
'<div class="stat max"><span class="label"><span class="dot"></span>High</span>' +
'<span class="value">' + Math.round(tmax) + '°</span></div>' +
'<div class="stat min"><span class="label"><span class="dot"></span>Low</span>' +
'<span class="value">' + Math.round(tmin) + '°</span></div>' +
'</div>' +
'</div>' +
'<div class="chart-section">' +
'<div class="chart-head">' +
'<h2>Hourly temperature</h2>' +
'<span class="range">00:00 – 23:00 UTC</span>' +
'</div>' +
buildChart(temps, times) +
'</div>';
requestAnimationFrame(function () { card.classList.add("ready"); });
}
function buildChart(temps, times) {
var W = 876, H = 200;
var padL = 8, padR = 8, padT = 26, padB = 26;
var plotW = W - padL - padR, plotH = H - padT - padB;
var vals = temps.filter(function (v) { return v != null; });
var lo = Math.min.apply(null, vals);
var hi = Math.max.apply(null, vals);
if (hi === lo) { hi += 1; lo -= 1; }
var span = hi - lo;
var n = temps.length;
function x(i) { return padL + (n <= 1 ? plotW / 2 : (i / (n - 1)) * plotW); }
function y(v) { return padT + plotH - ((v - lo) / span) * plotH; }
var hiIdx = 0, loIdx = 0;
for (var k = 0; k < n; k++) {
if (temps[k] != null) {
if (temps[k] > temps[hiIdx]) hiIdx = k;
if (temps[k] < temps[loIdx]) loIdx = k;
}
}
var pts = [];
for (var i = 0; i < n; i++) {
if (temps[i] != null) pts.push([x(i), y(temps[i]), i]);
}
if (!pts.length) return '<div class="sub">No hourly data.</div>';
var linePath = pts.map(function (p, idx) {
return (idx ? "L" : "M") + p[0].toFixed(1) + " " + p[1].toFixed(1);
}).join(" ");
var areaPath = "M" + pts[0][0].toFixed(1) + " " + (padT + plotH) +
" " + linePath.replace(/^M/, "L") +
" L" + pts[pts.length - 1][0].toFixed(1) + " " + (padT + plotH) + " Z";
// gridlines
var grid = "";
for (var g = 0; g <= 2; g++) {
var gy = padT + (plotH / 2) * g;
grid += '<line class="grid" x1="' + padL + '" y1="' + gy.toFixed(1) +
'" x2="' + (W - padR) + '" y2="' + gy.toFixed(1) + '"/>';
}
// x labels every 3 hours
var xlabels = "";
for (var h = 0; h < n; h += 3) {
xlabels += '<text class="xlabel" x="' + x(h).toFixed(1) + '" y="' + (H - 6) + '">' +
String(h).padStart(2, "0") + '</text>';
}
// points + hi/lo callouts
var dots = "";
pts.forEach(function (p) {
var cls = "pt" + (p[2] === hiIdx ? " hi" : p[2] === loIdx ? " lo" : "");
var r = (p[2] === hiIdx || p[2] === loIdx) ? 4 : 2.4;
dots += '<circle class="' + cls + '" cx="' + p[0].toFixed(1) + '" cy="' + p[1].toFixed(1) + '" r="' + r + '"/>';
});
var hx = x(hiIdx), hy = y(temps[hiIdx]);
var lx = x(loIdx), ly = y(temps[loIdx]);
var callouts =
'<text class="peak" x="' + hx.toFixed(1) + '" y="' + (hy - 10).toFixed(1) + '">' + Math.round(temps[hiIdx]) + '°</text>' +
'<text class="vlabel" x="' + lx.toFixed(1) + '" y="' + (ly + 18).toFixed(1) + '">' + Math.round(temps[loIdx]) + '°</text>';
return '<svg class="chart" viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none">' +
'<defs><linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0%" stop-color="#ef7a4d" stop-opacity="0.28"/>' +
'<stop offset="100%" stop-color="#ef7a4d" stop-opacity="0.02"/>' +
'</linearGradient></defs>' +
grid +
'<path class="area" d="' + areaPath + '"/>' +
'<path class="line" d="' + linePath + '"/>' +
dots + callouts + xlabels +
'</svg>';
}
// ---- Fetch ----
fetch(endpoint + "?" + apiParams.toString(), {headers: {"Accept": "application/json"}})
.then(function (res) {
if (!res.ok) throw new Error("Server responded with " + res.status);
return res.json();
})
.then(function (data) {
if (data && data.error) throw new Error(data.reason || "API error");
render(data);
})
.catch(function (err) {
showError(err && err.message ? err.message : "Network request failed.");
});
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 17,780 | html / css / js | 452 / 5,713 / 11,615 |
|---|---|---|---|
| dom 节点 | 13 | dom 深度 | 5 |
| css 规则 | 52 | 含 js | 是 |
| brightness | 171.5 | contrast | 52.4 |
| colorfulness | 22.9 | 留白 | 53.9% |
该 slot 的 telemetry
| prompt tokens | 2 | completion tokens | 9,651 |
|---|---|---|---|
| total tokens | 9,653 | wall | 102.5 s |
| cost | — | request id | — |
config.json574 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-opus-4-8-eff-high--cli--claude-code--dev",
"effort": "high",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-opus-4-8",
"protocol": "cli",
"served_model": "claude-opus-4-8",
"telemetry": {
"completion_tokens": 30117,
"cost_usd": null,
"prompt_tokens": 10,
"total_tokens": 30127,
"wall_ms": 333782
},
"transport": "claude-code-cli-headless",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-17--dev-cc-opus48",
"config_id": "claude-opus-4-8-eff-high--cli--claude-code--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:46:01.522534+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:44:53.109607+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-07-17T13:47:48.653258+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:46:06.106738+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-07-17T13:49:49.277629+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:47:52.197323+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-07-17T13:50:38.574438+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:49:52.826406+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
}
}
}