gpt-5.6-terra @ low · kiro
kirolow
- config
- gpt-5.6-terra-eff-low--cli--kiro--dev
- batch
- 2026-07-19--unified
- transport
- kiro-cli-isolated-home-github-social
- protocol
- cli · plan
- served model
- gpt-5.6-terra
- 采集于
- 2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-4-7 @low · kiro0.77claude-sonnet-4-6 @max · kiro0.75claude-sonnet-5 @low · CC0.75gpt-5.6-sol @xhigh · codex-oauth0.75qwen3.8-max-preview · qoder0.75最远
gpt-5.6-luna @medium · codex-oauth0.41gpt-5.6-luna @high · kiro0.41claude-haiku-4-5 @xhigh · CC0.42minimax-m2.7 · go0.44claude-haiku-4-5 @high · CC0.45限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlynot-foundcoverage · 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 {
--ink: #f8fbff;
--muted: rgba(239,246,255,.67);
--line: rgba(255,255,255,.16);
--blue: #70c4ff;
--gold: #ffd66b;
}
* { box-sizing: border-box; }
body {
margin: 0; min-width: 1280px; min-height: 800px;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--ink); overflow: hidden;
background:
radial-gradient(ellipse 62% 75% at 86% 4%, rgba(52,126,230,.45), transparent 60%),
radial-gradient(ellipse 44% 65% at 8% 98%, rgba(17,94,137,.5), transparent 64%),
linear-gradient(135deg, #07162e 0%, #0b2850 48%, #123a6c 100%);
}
.grain {
position: fixed; inset: 0; opacity: .14; pointer-events: none;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}
main {
width: 1040px; height: 650px; margin: 75px auto;
padding: 42px 46px 37px; position: relative; overflow: hidden;
border: 1px solid rgba(255,255,255,.18); border-radius: 30px;
background: linear-gradient(120deg, rgba(255,255,255,.14), rgba(255,255,255,.045));
box-shadow: 0 28px 70px rgba(0,8,28,.46), inset 0 1px rgba(255,255,255,.15);
backdrop-filter: blur(18px);
}
main::after {
content: ""; position: absolute; width: 390px; height: 390px; right: -120px; top: -110px;
border-radius: 50%; background: radial-gradient(circle, rgba(255,214,107,.2), transparent 67%);
pointer-events: none;
}
.top { display: flex; justify-content: space-between; align-items: flex-start; position: relative; z-index: 1; }
.eyebrow { margin: 0 0 8px; color: var(--blue); font-size: 11px; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
h1 { margin: 0; font-size: 37px; line-height: 1.08; letter-spacing: -.045em; }
.date { margin: 9px 0 0; color: var(--muted); font-size: 15px; }
.badge { display: flex; align-items: center; gap: 8px; margin-top: 5px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 99px; color: rgba(255,255,255,.8); font-size: 12px; }
.badge i { width: 7px; height: 7px; background: #72e2b4; border-radius: 50%; box-shadow: 0 0 12px #72e2b4; }
.hero { height: 245px; display: flex; align-items: center; position: relative; z-index: 1; }
.weather-icon { width: 155px; height: 140px; margin-right: 26px; flex: 0 0 auto; filter: drop-shadow(0 10px 16px rgba(0,0,0,.18)); }
.reading { display: flex; align-items: center; gap: 20px; }
.temperature { font-size: 112px; font-weight: 250; line-height: .82; letter-spacing: -.085em; }
.unit { font-size: 39px; vertical-align: top; position: relative; top: 4px; margin-left: 5px; color: rgba(255,255,255,.8); font-weight: 300; }
.condition { padding-left: 20px; border-left: 1px solid var(--line); }
.condition strong { display: block; font-size: 20px; font-weight: 650; letter-spacing: -.025em; }
.condition span { display: block; margin-top: 6px; color: var(--muted); font-size: 13px; }
.range { margin-left: auto; display: flex; gap: 26px; padding: 19px 0 19px 31px; border-left: 1px solid var(--line); }
.range-item small { display: block; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.range-item b { display: block; margin-top: 6px; font-size: 25px; font-weight: 500; letter-spacing: -.04em; }
.range-item.min b { color: #9ed9ff; }
.chart-panel { position: relative; z-index: 1; padding-top: 19px; border-top: 1px solid var(--line); }
.chart-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
.chart-head h2 { margin: 0; font-size: 14px; font-weight: 650; letter-spacing: -.015em; }
.chart-head p { margin: 0; color: var(--muted); font-size: 11px; }
#chart { display: block; width: 100%; height: 176px; overflow: visible; }
.loading, .error { height: 450px; display: grid; place-items: center; text-align: center; color: var(--muted); font-size: 17px; }
.error { color: #ffd2d2; }
</style>
</head>
<body>
<div class="grain"></div>
<main id="card"><div class="loading">Loading forecast…</div></main>
<script>
(() => {
const qs = new URLSearchParams(location.search);
const utcToday = new Date().toISOString().slice(0, 10);
const date = /^\d{4}-\d{2}-\d{2}$/.test(qs.get("date") || "") ? qs.get("date") : utcToday;
const lat = qs.get("lat") || "52.52", lon = qs.get("lon") || "13.405";
const name = qs.get("name") || "Berlin";
const isPast = date < utcToday;
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
});
const conditions = {
0:["Clear sky","clear"], 1:["Mainly clear","partly"], 2:["Partly cloudy","partly"], 3:["Overcast","cloud"],
45:["Foggy","fog"], 48:["Rime fog","fog"], 51:["Light drizzle","rain"], 53:["Drizzle","rain"], 55:["Heavy drizzle","rain"],
56:["Freezing drizzle","rain"], 57:["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:["Snowfall","snow"], 75:["Heavy snowfall","snow"],
77:["Snow grains","snow"], 80:["Rain showers","rain"], 81:["Rain showers","rain"], 82:["Heavy showers","rain"],
85:["Snow showers","snow"], 86:["Heavy snow showers","snow"], 95:["Thunderstorm","storm"], 96:["Thunderstorm with hail","storm"], 99:["Thunderstorm with hail","storm"]
};
const icon = type => {
if (type === "rain" || type === "storm") return `<svg class="weather-icon" viewBox="0 0 180 150" aria-hidden="true"><path d="M55 89h72c19 0 31-12 31-28 0-17-13-29-30-29-6-19-21-29-41-29-23 0-41 17-43 39-17 1-29 13-29 28 0 11 7 19 17 19h23" fill="rgba(213,239,255,.87)" stroke="white" stroke-width="5" stroke-linejoin="round"/><path d="M59 106l-7 19m34-19l-7 19m34-19l-7 19m34-19l-7 19" stroke="#72caff" stroke-width="7" stroke-linecap="round"/>${type==="storm"?'<path d="M102 94l-16 28h15l-8 22 28-34h-16l10-16z" fill="#ffd66b"/>':""}</svg>`;
if (type === "cloud" || type === "fog") return `<svg class="weather-icon" viewBox="0 0 180 150"><path d="M37 105h94c19 0 32-13 32-30 0-18-14-31-32-31-6-20-22-32-44-32-25 0-44 18-46 42-17 1-29 13-29 29 0 13 10 22 25 22z" fill="rgba(218,239,255,.78)" stroke="white" stroke-width="5"/><path d="M42 121h91m-73 14h56" stroke="rgba(166,219,255,.8)" stroke-width="5" stroke-linecap="round"/></svg>`;
if (type === "snow") return `<svg class="weather-icon" viewBox="0 0 180 150"><path d="M45 88h83c18 0 30-12 30-28 0-17-13-29-30-29-6-19-21-29-41-29-23 0-41 17-43 39-17 1-29 13-29 28 0 11 8 19 30 19z" fill="rgba(220,242,255,.85)" stroke="white" stroke-width="5"/><g stroke="#d8f2ff" stroke-width="4" stroke-linecap="round"><path d="M57 111v20m-9-10h18m-15-7 12 14m0-14-12 14M92 111v20m-9-10h18m-15-7 12 14m0-14-12 14m64-17v20m-9-10h18m-15-7 12 14m0-14-12 14"/></g></svg>`;
return `<svg class="weather-icon" viewBox="0 0 180 150"><circle cx="84" cy="70" r="38" fill="#ffd66b"/><g stroke="#ffd66b" stroke-width="7" stroke-linecap="round"><path d="M84 12v-10M84 138v-10M26 70H14m140 0h-12M43 29l-9-9m91 100-9-9M125 29l9-9M43 111l-9 9"/></g>${type==="partly"?'<path d="M73 118h62c16 0 27-10 27-25 0-15-12-26-27-26-5-17-18-26-36-26-19 0-34 13-37 31-14 1-24 11-24 24 0 13 10 22 35 22z" fill="rgba(222,241,255,.9)" stroke="white" stroke-width="4"/>':""}</svg>`;
};
const formatDate = d => new Intl.DateTimeFormat("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric",timeZone:"UTC"}).format(new Date(d+"T12:00:00Z"));
const n = v => `${Math.round(v)}°`;
fetch(`${isPast ? "/api/om/archive" : "/api/om/forecast"}?${params}`)
.then(r => { if (!r.ok) throw new Error(); return r.json(); })
.then(data => {
const daily = data.daily;
if (!daily?.temperature_2m_max?.length || !data.hourly?.temperature_2m) throw new Error();
const max = daily.temperature_2m_max[0], min = daily.temperature_2m_min[0];
const code = daily.weather_code[0], [condition,type] = conditions[code] || ["Weather conditions","partly"];
const temps = data.hourly.temperature_2m;
const times = data.hourly.time;
document.getElementById("card").innerHTML = `
<section class="top"><div><p class="eyebrow">Daily weather</p><h1>${escapeHtml(name)}</h1><p class="date">${formatDate(date)}</p></div><div class="badge"><i></i>${isPast ? "Historical observation" : "Forecast"}</div></section>
<section class="hero">${icon(type)}<div class="reading"><div class="temperature">${Math.round(max)}<span class="unit">°C</span></div><div class="condition"><strong>${condition}</strong><span>High for the day</span></div></div><div class="range"><div class="range-item"><small>HIGH</small><b>${n(max)}</b></div><div class="range-item min"><small>LOW</small><b>${n(min)}</b></div></div></section>
<section class="chart-panel"><div class="chart-head"><h2>Hourly temperature</h2><p>UTC · Celsius</p></div><svg id="chart" viewBox="0 0 948 176" preserveAspectRatio="none" aria-label="Hourly temperature chart"></svg></section>`;
drawChart(temps, times);
})
.catch(() => document.getElementById("card").innerHTML = `<div class="error">Weather data could not be loaded.<br><small style="margin-top:9px;color:rgba(255,220,220,.65)">Please try again shortly.</small></div>`);
function drawChart(values, times) {
const svg = document.getElementById("chart"), w=948, h=176, pad={l:4,r:4,t:17,b:28};
const lo=Math.floor(Math.min(...values)/5)*5-1, hi=Math.ceil(Math.max(...values)/5)*5+1;
const x=i => pad.l+i*(w-pad.l-pad.r)/(values.length-1), y=v => pad.t+(hi-v)*(h-pad.t-pad.b)/(hi-lo);
const points=values.map((v,i)=>`${x(i)},${y(v)}`).join(" ");
const area=`${pad.l},${h-pad.b} ${points} ${w-pad.r},${h-pad.b}`;
let labels = "";
[0,6,12,18,23].forEach(i => labels += `<text x="${x(i)}" y="${h-5}" text-anchor="${i===0?"start":i===23?"end":"middle"}" fill="rgba(239,246,255,.54)" font-size="10" font-family="system-ui">${times[i]?.slice(11,16) || String(i).padStart(2,"0")+":00"}</text>`);
svg.innerHTML = `<defs><linearGradient id="area" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#77caff" stop-opacity=".42"/><stop offset="1" stop-color="#77caff" stop-opacity="0"/></linearGradient></defs>
<line x1="0" y1="${y((lo+hi)/2)}" x2="${w}" y2="${y((lo+hi)/2)}" stroke="rgba(255,255,255,.11)" stroke-dasharray="3 5"/>
<polygon points="${area}" fill="url(#area)"/><polyline points="${points}" fill="none" stroke="#91d5ff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="${x(0)}" cy="${y(values[0])}" r="4" fill="#fff" stroke="#70c4ff" stroke-width="3"/>${labels}`;
}
function escapeHtml(value) { const d=document.createElement("div"); d.textContent=value; return d.innerHTML; }
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 11,393 | html / css / js | 320 / 4,218 / 6,855 |
|---|---|---|---|
| dom 节点 | 11 | dom 深度 | 4 |
| css 规则 | 31 | 含 js | 是 |
| brightness | 60.3 | contrast | 23.8 |
| colorfulness | 31.2 | 留白 | 44.3% |
该 slot 的 telemetry
| prompt tokens | 0 | completion tokens | 0 |
|---|---|---|---|
| total tokens | 0 | wall | 30.1 s |
| cost | — | request id | — |
config.json567 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.6-terra-eff-low--cli--kiro--dev",
"effort": "low",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.6-terra",
"protocol": "cli",
"served_model": "gpt-5.6-terra",
"telemetry": {
"completion_tokens": null,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 96787
},
"transport": "kiro-cli-isolated-home-github-social",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-18--kiro-cli",
"config_id": "gpt-5.6-terra-eff-low--cli--kiro--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-18T18:49:42.682681+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T18:49:12.513473+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-18T18:50:07.003398+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T18:49:46.801172+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-18T18:50:33.094526+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T18:50:11.649859+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-07-18T18:51:01.684539+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T18:50:36.549371+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
}
}
}