claude-fable-5-thinking @ xhigh · cursor-xl
cursor-xlxhigh
- config
- claude-fable-5-thinking-eff-xhigh--cli--cursor-xl--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- claude-fable-5-thinking-xhigh
- 采集于
- 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 tempmatch展示值:25
- min tempmatch展示值:16
- 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</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
--bg1:#41566e;--bg2:#8b9bad;
--glow1:rgba(255,255,255,.20);--glow2:rgba(170,195,220,.25);
--accent:#ffd166;--cool:#8fd0ff;
--t1:#f4f8fd;--t2:rgba(233,242,250,.75);--t3:rgba(226,237,248,.52);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
color:var(--t1);
display:grid;place-items:center;
background:
radial-gradient(1100px 750px at 12% -8%, var(--glow1), transparent 60%),
radial-gradient(950px 700px at 108% 108%, var(--glow2), transparent 55%),
linear-gradient(158deg, var(--bg1) 0%, var(--bg2) 100%);
background-attachment:fixed;
-webkit-font-smoothing:antialiased;
}
body::after{content:"";position:fixed;inset:0;pointer-events:none;
background:radial-gradient(140% 115% at 50% 38%, transparent 58%, rgba(8,15,28,.35));}
body[data-theme=clear]{--bg1:#1e6ad1;--bg2:#69c0f7;--glow1:rgba(255,198,88,.60);--glow2:rgba(255,255,255,.30)}
body[data-theme=partly]{--bg1:#2f6fc2;--bg2:#8fb6dd;--glow1:rgba(255,205,110,.45);--glow2:rgba(255,255,255,.25)}
body[data-theme=cloudy]{--bg1:#41566e;--bg2:#8b9bad;--glow1:rgba(255,255,255,.22);--glow2:rgba(170,195,220,.25);--accent:#f6d489}
body[data-theme=fog]{--bg1:#5a6a77;--bg2:#a9b6c0;--glow1:rgba(255,255,255,.26);--glow2:rgba(200,215,228,.30);--accent:#ecdcae}
body[data-theme=rain]{--bg1:#16324f;--bg2:#40719f;--glow1:rgba(96,190,230,.30);--glow2:rgba(140,190,235,.22)}
body[data-theme=snow]{--bg1:#4f7cab;--bg2:#b6d0e8;--glow1:rgba(255,255,255,.42);--glow2:rgba(210,230,250,.35);--accent:#ffe3a3}
body[data-theme=storm]{--bg1:#241f44;--bg2:#5b5187;--glow1:rgba(167,139,250,.38);--glow2:rgba(255,209,102,.18)}
.card{
width:1120px;max-width:calc(100vw - 72px);
position:relative;z-index:1;
border-radius:28px;
padding:44px 52px 34px;
background:linear-gradient(180deg, rgba(12,21,37,.55), rgba(12,21,37,.40));
border:1px solid rgba(255,255,255,.16);
box-shadow:0 34px 90px rgba(4,10,22,.45), inset 0 1px 0 rgba(255,255,255,.14);
backdrop-filter:blur(22px) saturate(150%);
-webkit-backdrop-filter:blur(22px) saturate(150%);
animation:rise .55s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
h1{font-size:34px;font-weight:650;letter-spacing:-.02em;max-width:640px;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meta{display:flex;gap:10px;margin-top:11px;align-items:center}
.chip{display:inline-flex;align-items:center;padding:5px 13px;border-radius:999px;
background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);
font-size:12.5px;color:var(--t2);font-weight:500;letter-spacing:.02em}
.chip.rel{background:rgba(255,209,102,.14);border-color:rgba(255,209,102,.32);color:#ffe4ab}
.when{text-align:right;flex-shrink:0}
.when .d1{font-size:18px;font-weight:560;color:var(--t1)}
.when .d2{margin-top:9px;display:flex;justify-content:flex-end}
.hero{display:flex;align-items:center;gap:32px;margin:32px 0 28px}
.hero .icon{width:116px;height:116px;flex-shrink:0;filter:drop-shadow(0 12px 26px rgba(0,0,0,.28))}
.cond{font-size:27px;font-weight:640;letter-spacing:-.01em}
.csub{margin-top:7px;font-size:14px;color:var(--t3)}
.grow{flex:1}
.temps{display:flex;align-items:center;gap:28px}
.tblock{display:flex;flex-direction:column;align-items:flex-end}
.tl{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--t3);margin-bottom:5px}
.tv-big{font-size:64px;font-weight:250;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.tblock.low .tv-big{color:rgba(238,246,255,.58)}
.tdiv{width:1px;height:60px;background:rgba(255,255,255,.16)}
.sec{border-top:1px solid rgba(255,255,255,.13);padding-top:22px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;
font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);margin-bottom:14px}
.tiles{display:grid;margin-top:8px}
.tile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 7px;border-radius:9px;transition:background .15s}
.tile:hover{background:rgba(255,255,255,.07)}
.tile .t{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.tile .h{font-size:10.5px;color:var(--t3);font-variant-numeric:tabular-nums}
.tile.hot{background:rgba(255,209,102,.11)}
.tile.hot .t{color:var(--accent)}
.tile.cold{background:rgba(124,199,255,.11)}
.tile.cold .t{color:var(--cool)}
.empty-hours{padding:34px 0;text-align:center;color:var(--t3);font-size:14px}
.foot{margin-top:24px;display:flex;justify-content:space-between;font-size:12px;color:var(--t3)}
.state{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}
.state h2{font-size:21px;font-weight:640}
.state p{font-size:14px;color:var(--t2);max-width:420px;line-height:1.55}
.dots{display:flex;gap:8px}
.dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.75);animation:pulse 1.1s ease-in-out infinite}
.dots i:nth-child(2){animation-delay:.15s}
.dots i:nth-child(3){animation-delay:.3s}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
.btn{margin-top:6px;padding:10px 24px;border-radius:999px;border:1px solid rgba(255,255,255,.25);
background:rgba(255,255,255,.12);color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.btn:hover{background:rgba(255,255,255,.2)}
</style>
</head>
<body>
<main class="card" id="app">
<div class="state">
<div class="dots"><i></i><i></i><i></i></div>
<p>Loading weather…</p>
</div>
</main>
<script>
(function(){
const app = document.getElementById('app');
const qs = new URLSearchParams(location.search);
const num = (v,d)=>{ const n=parseFloat(v); return Number.isFinite(n)?n:d; };
const esc = s=>String(s).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
const lat = num(qs.get('lat'), 52.52);
const lon = num(qs.get('lon'), 13.405);
const name = (qs.get('name')||'').trim() || 'Berlin';
const todayUTC = new Date().toISOString().slice(0,10);
let date = qs.get('date') || todayUTC;
if(!/^\d{4}-\d{2}-\d{2}$/.test(date)) date = todayUTC;
const isPast = date < todayUTC;
const base = isPast ? '/api/om/archive' : '/api/om/forecast';
const params = 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:date, end_date:date
});
document.title = 'Weather · ' + name;
const WMO = {
0:['Clear sky','clear'],1:['Mainly clear','clear'],2:['Partly cloudy','partly'],3:['Overcast','cloudy'],
45:['Fog','fog'],48:['Depositing rime fog','fog'],
51:['Light drizzle','rain'],53:['Drizzle','rain'],55:['Dense drizzle','rain'],
56:['Freezing drizzle','rain'],57:['Dense freezing drizzle','rain'],
61:['Slight rain','rain'],63:['Rain','rain'],65:['Heavy rain','rain'],
66:['Freezing rain','rain'],67:['Heavy freezing rain','rain'],
71:['Slight snowfall','snow'],73:['Snowfall','snow'],75:['Heavy snowfall','snow'],77:['Snow grains','snow'],
80:['Slight rain showers','rain'],81:['Rain showers','rain'],82:['Violent rain showers','rain'],
85:['Snow showers','snow'],86:['Heavy snow showers','snow'],
95:['Thunderstorm','storm'],96:['Thunderstorm with hail','storm'],99:['Thunderstorm with heavy hail','storm']
};
function icon(t){
const cloud = f=>`<circle cx="22" cy="38" r="10" fill="${f}"/><circle cx="33" cy="31" r="13" fill="${f}"/><circle cx="44" cy="37" r="10" fill="${f}"/><rect x="22" y="37" width="22" height="11" rx="5" fill="${f}"/>`;
const sunDefs = `<defs><linearGradient id="sg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#ffe9a8"/><stop offset="1" stop-color="#ffb347"/></linearGradient></defs>`;
const C1='#eef4fb', C2='#cfdded';
let b='';
if(t==='clear'){
b=`${sunDefs}<g stroke="#ffd98e" stroke-width="3.6" stroke-linecap="round"><line x1="32" y1="6" x2="32" y2="13"/><line x1="32" y1="51" x2="32" y2="58"/><line x1="6" y1="32" x2="13" y2="32"/><line x1="51" y1="32" x2="58" y2="32"/><line x1="13.6" y1="13.6" x2="18.6" y2="18.6"/><line x1="45.4" y1="45.4" x2="50.4" y2="50.4"/><line x1="13.6" y1="50.4" x2="18.6" y2="45.4"/><line x1="45.4" y1="18.6" x2="50.4" y2="13.6"/></g><circle cx="32" cy="32" r="13.5" fill="url(#sg)"/>`;
}else if(t==='partly'){
b=`${sunDefs}<g stroke="#ffd98e" stroke-width="3" stroke-linecap="round"><line x1="22" y1="4" x2="22" y2="9.5"/><line x1="4" y1="22" x2="9.5" y2="22"/><line x1="34.5" y1="22" x2="40" y2="22"/><line x1="9.3" y1="9.3" x2="13.2" y2="13.2"/><line x1="30.8" y1="13.2" x2="34.7" y2="9.3"/></g><circle cx="22" cy="22" r="9" fill="url(#sg)"/><g transform="translate(2 6)">${cloud(C1)}</g>`;
}else if(t==='fog'){
b=`<g transform="translate(0 -9)">${cloud(C1)}</g><g stroke="#d9e6f4" stroke-width="3.4" stroke-linecap="round"><line x1="16" y1="45" x2="47" y2="45" opacity=".9"/><line x1="21" y1="52" x2="52" y2="52" opacity=".65"/><line x1="17" y1="59" x2="40" y2="59" opacity=".4"/></g>`;
}else if(t==='rain'){
b=`<g transform="translate(0 -7)">${cloud(C1)}</g><g stroke="#8fd0ff" stroke-width="3.4" stroke-linecap="round"><line x1="24" y1="47" x2="21" y2="56"/><line x1="33" y1="47" x2="30" y2="56"/><line x1="42" y1="47" x2="39" y2="56"/></g>`;
}else if(t==='snow'){
b=`<g transform="translate(0 -7)">${cloud(C1)}</g><g fill="#eaf4ff"><circle cx="24" cy="49" r="2.4"/><circle cx="33" cy="55" r="2.4"/><circle cx="42" cy="49" r="2.4"/><circle cx="28" cy="58" r="1.8" opacity=".8"/><circle cx="38" cy="58" r="1.8" opacity=".8"/></g>`;
}else if(t==='storm'){
b=`<g transform="translate(0 -9)">${cloud(C1)}</g><path d="M34 38 L24 52 h7 l-4 12 13 -16 h-7 l7 -10 z" fill="#ffd166"/>`;
}else{
b=`<g transform="translate(22 2) scale(.6)" opacity=".55">${cloud(C2)}</g>${cloud(C1)}`;
}
return `<svg viewBox="0 0 64 64" width="100%" height="100%" aria-hidden="true">${b}</svg>`;
}
function fmtDate(iso){
return new Intl.DateTimeFormat('en-GB',{weekday:'long',day:'numeric',month:'long',year:'numeric',timeZone:'UTC'})
.format(new Date(iso+'T00:00:00Z'));
}
function relLabel(){
const diff = Math.round((Date.parse(date)-Date.parse(todayUTC))/86400000);
if(diff===0) return 'Today';
if(diff===1) return 'Tomorrow';
if(diff===-1) return 'Yesterday';
return diff>0 ? `In ${diff} days` : `${-diff} days ago`;
}
const coords = `${Math.abs(lat).toFixed(2)}° ${lat>=0?'N':'S'}, ${Math.abs(lon).toFixed(2)}° ${lon>=0?'E':'W'}`;
const fmtT = v => v==null ? '—' : Math.round(v)+'°';
function chartSVG(hs){
const N = hs.length;
const pts = hs.map((v,i)=>({i,t:v.t})).filter(p=>p.t!=null);
if(pts.length<2) return '';
const W=960,H=180,TOP=30,BOT=26;
const ts=pts.map(p=>p.t), lo=Math.min(...ts), hi=Math.max(...ts);
const X=i=>+(((i+.5)*(W/N)).toFixed(2));
const Y=t=>+((TOP+(hi===lo?.5:(hi-t)/(hi-lo))*(H-TOP-BOT)).toFixed(2));
const LX=x=>Math.min(W-18,Math.max(18,x));
let line=`M ${X(pts[0].i)} ${Y(pts[0].t)}`;
for(let k=1;k<pts.length;k++){
const a=pts[k-1],b=pts[k],xb=X(b.i),m=((X(a.i)+xb)/2).toFixed(2);
line+=` C ${m} ${Y(a.t)}, ${m} ${Y(b.t)}, ${xb} ${Y(b.t)}`;
}
const x0=X(pts[0].i), x1=X(pts[pts.length-1].i);
const area=`${line} L ${x1} ${H} L ${x0} ${H} Z`;
const pMax=pts.find(p=>p.t===hi), pMin=pts.find(p=>p.t===lo);
const grid=[TOP,(TOP+H-BOT)/2,H-BOT]
.map(y=>`<line x1="${x0}" x2="${x1}" y1="${y}" y2="${y}" stroke="rgba(255,255,255,.09)" stroke-dasharray="3 5"/>`).join('');
return `<svg viewBox="0 0 ${W} ${H}" style="width:100%;height:auto;display:block" aria-hidden="true">
<defs>
<linearGradient id="ag" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" style="stop-color:var(--accent);stop-opacity:.30"/>
<stop offset="1" style="stop-color:var(--accent);stop-opacity:0"/>
</linearGradient>
<linearGradient id="lg" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" style="stop-color:#8fd0ff"/>
<stop offset="1" style="stop-color:var(--accent)"/>
</linearGradient>
</defs>
${grid}
<path d="${area}" fill="url(#ag)"/>
<path d="${line}" fill="none" stroke="url(#lg)" stroke-width="2.6" stroke-linecap="round"/>
<circle cx="${X(pMax.i)}" cy="${Y(pMax.t)}" r="4.4" style="fill:var(--accent)" stroke="rgba(255,255,255,.9)" stroke-width="1.6"/>
<text x="${LX(X(pMax.i))}" y="${Y(pMax.t)-11}" text-anchor="middle" font-size="13" font-weight="600" fill="#fff">${Math.round(hi)}°</text>
<circle cx="${X(pMin.i)}" cy="${Y(pMin.t)}" r="4.4" fill="#8fd0ff" stroke="rgba(255,255,255,.9)" stroke-width="1.6"/>
<text x="${LX(X(pMin.i))}" y="${Y(pMin.t)+21}" text-anchor="middle" font-size="13" font-weight="600" fill="#fff">${Math.round(lo)}°</text>
</svg>`;
}
function render(data){
const d = data.daily || {};
const tmax = d.temperature_2m_max ? d.temperature_2m_max[0] : null;
const tmin = d.temperature_2m_min ? d.temperature_2m_min[0] : null;
const code = d.weather_code ? d.weather_code[0] : null;
const times = (data.hourly && data.hourly.time) || [];
const temps = (data.hourly && data.hourly.temperature_2m) || [];
const hours = [];
times.forEach((t,i)=>{ if(t.startsWith(date)) hours.push({h:t.slice(11,13), t:temps[i]}); });
const hasAny = tmax!=null || tmin!=null || hours.some(h=>h.t!=null);
if(!hasAny){ renderError(new Error('No weather data is available for this date and location.')); return; }
const [condName, theme] = WMO[code] || ['Unknown conditions','cloudy'];
document.body.dataset.theme = theme;
const valid = hours.filter(h=>h.t!=null).map(h=>h.t);
const hHi = valid.length ? Math.max(...valid) : null;
const hLo = valid.length ? Math.min(...valid) : null;
const tiles = hours.map(h=>{
const cls = h.t!=null && h.t===hHi ? ' hot' : h.t!=null && h.t===hLo ? ' cold' : '';
return `<div class="tile${cls}"><span class="t">${h.t==null?'–':Math.round(h.t)+'°'}</span><span class="h">${h.h}</span></div>`;
}).join('');
app.innerHTML = `
<header class="top">
<div>
<h1>${esc(name)}</h1>
<div class="meta"><span class="chip">${coords}</span></div>
</div>
<div class="when">
<div class="d1">${fmtDate(date)}</div>
<div class="d2"><span class="chip rel">${relLabel()}</span></div>
</div>
</header>
<div class="hero">
<div class="icon">${icon(theme)}</div>
<div>
<div class="cond">${condName}</div>
<div class="csub">${isPast ? 'Historical archive' : 'Forecast'} · Open-Meteo data</div>
</div>
<div class="grow"></div>
<div class="temps">
<div class="tblock"><span class="tl">High</span><span class="tv-big">${fmtT(tmax)}</span></div>
<div class="tdiv"></div>
<div class="tblock low"><span class="tl">Low</span><span class="tv-big">${fmtT(tmin)}</span></div>
</div>
</div>
<section class="sec">
<div class="sec-head"><span>Hourly temperature</span><span>°C · UTC</span></div>
${hours.length ? chartSVG(hours) + `<div class="tiles" style="grid-template-columns:repeat(${hours.length},1fr)">${tiles}</div>` : `<div class="empty-hours">No hourly data available for this date.</div>`}
</section>
<footer class="foot">
<span>Temperatures in °C · All times UTC</span>
<span>${lat.toFixed(4)}, ${lon.toFixed(4)}</span>
</footer>`;
}
function renderError(err){
app.innerHTML = `
<div class="state">
<svg viewBox="0 0 64 64" width="60" height="60" aria-hidden="true">
<g fill="none" stroke="rgba(255,255,255,.85)" stroke-width="3" stroke-linecap="round">
<circle cx="32" cy="32" r="24" opacity=".45"/>
<line x1="32" y1="19" x2="32" y2="37"/>
</g>
<circle cx="32" cy="45" r="2.2" fill="rgba(255,255,255,.85)"/>
</svg>
<h2>Weather data couldn’t be loaded</h2>
<p>We couldn’t load the weather for ${esc(name)} on ${fmtDate(date)}.<br>${esc(err && err.message ? err.message : 'Unknown error')}</p>
<button class="btn" onclick="location.reload()">Try again</button>
</div>`;
}
fetch(`${base}?${params.toString()}`)
.then(res=>{
if(!res.ok) throw new Error(`The weather service responded with status ${res.status}.`);
return res.json();
})
.then(render)
.catch(renderError);
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 17,265 | html / css / js | 368 / 5,725 / 11,172 |
|---|---|---|---|
| dom 节点 | 15 | dom 深度 | 6 |
| css 规则 | 59 | 含 js | 是 |
| brightness | 59.6 | contrast | 19.0 |
| colorfulness | 29.9 | 留白 | 49.4% |
该 slot 的 telemetry
| prompt tokens | 2 | completion tokens | 33,489 |
|---|---|---|---|
| total tokens | 33,491 | wall | 430 s |
| cost | — | request id | — |
config.json609 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-fable-5-thinking-eff-xhigh--cli--cursor-xl--dev",
"effort": "xhigh",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-fable-5-thinking",
"protocol": "cli",
"served_model": "claude-fable-5-thinking-xhigh",
"telemetry": {
"completion_tokens": 78766,
"cost_usd": null,
"prompt_tokens": 8,
"total_tokens": 78774,
"wall_ms": 977077
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-xl-s0",
"config_id": "claude-fable-5-thinking-eff-xhigh--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T09:11:54.615135+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T09:04:44.612073+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-13T09:13:48.705650+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T09:11:58.290876+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-13T09:14:50.854198+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T09:13:52.179525+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-13T09:21:12.252578+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T09:14:54.364876+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
}
}
}