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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
gemini-3.5-flash @minimal · api0.64gpt-5.6-sol @none · codex-oauth0.64kimi-k3 @high · api0.64claude-opus-4-8 @high · CC0.63deepseek-v4-pro · opencode0.63最远
gpt-5.6-luna @low · codex-oauth0.39gpt-5.5 @medium · codex-oauth0.42qwen3.5-plus · go0.44gpt-5.6-luna @high · kiro0.44mimo-v2.5-pro @medium · api0.45限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempambiguousinsufficient-distinct-temperature-nodes
- min tempambiguousinsufficient-distinct-temperature-nodes
- 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.0">
<title>Weather Card</title>
<style>
:root {
--bg-1: #4a6fa5;
--bg-2: #6b8fc9;
--card-bg: rgba(255, 255, 255, 0.14);
--card-border: rgba(255, 255, 255, 0.28);
--text-primary: #ffffff;
--text-secondary: rgba(255, 255, 255, 0.72);
--accent: #ffd166;
}
* {
box-sizing: border-box;
}
html, body {
margin: 0;
padding: 0;
width: 1280px;
height: 800px;
overflow: hidden;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body {
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #3a5a8c 0%, #6b8fc9 45%, #a7c4e8 100%);
position: relative;
}
body::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 15% 20%, rgba(255,255,255,0.18) 0, transparent 40%),
radial-gradient(circle at 85% 80%, rgba(255,255,255,0.12) 0, transparent 45%);
pointer-events: none;
}
.card {
width: 920px;
height: 640px;
background: var(--card-bg);
border: 1px solid var(--card-border);
border-radius: 28px;
backdrop-filter: blur(18px);
-webkit-backdrop-filter: blur(18px);
box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255,255,255,0.3);
padding: 40px 48px;
display: flex;
flex-direction: column;
color: var(--text-primary);
position: relative;
z-index: 1;
}
.card-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.location-block h1 {
margin: 0;
font-size: 34px;
font-weight: 600;
letter-spacing: 0.2px;
}
.location-block .date {
margin-top: 6px;
font-size: 16px;
color: var(--text-secondary);
font-weight: 400;
}
.location-block .coords {
margin-top: 2px;
font-size: 12px;
color: var(--text-secondary);
opacity: 0.75;
letter-spacing: 0.3px;
}
.condition-icon {
width: 76px;
height: 76px;
flex-shrink: 0;
}
.main-temp-row {
display: flex;
align-items: center;
gap: 28px;
margin-top: 18px;
}
.current-temp {
font-size: 108px;
font-weight: 300;
line-height: 1;
letter-spacing: -2px;
}
.current-temp sup {
font-size: 48px;
font-weight: 300;
top: -0.5em;
}
.condition-text {
font-size: 22px;
font-weight: 500;
}
.minmax-row {
display: flex;
gap: 22px;
margin-top: 6px;
font-size: 16px;
color: var(--text-secondary);
}
.minmax-row span.hi { color: #ffd166; }
.minmax-row span.lo { color: #9ec9ff; }
.divider {
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
margin: 28px 0 20px;
}
.hourly-title {
font-size: 13px;
text-transform: uppercase;
letter-spacing: 1.4px;
color: var(--text-secondary);
margin-bottom: 16px;
font-weight: 600;
}
.hourly-scroll {
flex: 1;
overflow: hidden;
position: relative;
}
.hourly-chart {
display: flex;
align-items: flex-end;
height: 100%;
gap: 6px;
padding-bottom: 34px;
position: relative;
}
.hour-col {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
height: 100%;
position: relative;
min-width: 0;
}
.hour-temp {
font-size: 12px;
color: var(--text-primary);
margin-bottom: 6px;
font-weight: 500;
white-space: nowrap;
}
.hour-bar-wrap {
flex: 1;
display: flex;
align-items: flex-end;
width: 100%;
justify-content: center;
}
.hour-bar {
width: 60%;
max-width: 14px;
background: linear-gradient(180deg, #ffd166, #ff9f6b);
border-radius: 6px 6px 2px 2px;
transition: height 0.3s ease;
}
.hour-label {
position: absolute;
bottom: 0;
font-size: 10.5px;
color: var(--text-secondary);
white-space: nowrap;
}
.status-message {
margin: auto;
text-align: center;
font-size: 18px;
color: var(--text-secondary);
}
.status-message.error {
color: #ffb3b3;
}
.spinner {
width: 34px;
height: 34px;
border: 3px solid rgba(255,255,255,0.25);
border-top-color: #fff;
border-radius: 50%;
margin: 0 auto 16px;
animation: spin 0.9s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.hidden { display: none !important; }
.footer-note {
margin-top: 14px;
font-size: 11px;
color: var(--text-secondary);
opacity: 0.6;
text-align: right;
}
</style>
</head>
<body>
<div class="card" id="card">
<div id="loadingState" class="status-message">
<div class="spinner"></div>
Loading weather data…
</div>
<div id="errorState" class="status-message error hidden">
Unable to load weather data. Please check the location or try again later.
</div>
<div id="contentState" class="hidden" style="display:flex; flex-direction:column; height:100%;">
<div class="card-header">
<div class="location-block">
<h1 id="locationName">—</h1>
<div class="date" id="dateLabel">—</div>
<div class="coords" id="coordsLabel">—</div>
</div>
<svg class="condition-icon" id="conditionIcon" viewBox="0 0 64 64" fill="none"></svg>
</div>
<div class="main-temp-row">
<div class="current-temp" id="avgTemp">—<sup>°C</sup></div>
<div>
<div class="condition-text" id="conditionText">—</div>
<div class="minmax-row">
<span class="hi">H: <span id="tempMax">—</span>°</span>
<span class="lo">L: <span id="tempMin">—</span>°</span>
</div>
</div>
</div>
<div class="divider"></div>
<div class="hourly-title">Hourly Temperature</div>
<div class="hourly-scroll">
<div class="hourly-chart" id="hourlyChart"></div>
</div>
<div class="footer-note">Data via Open-Meteo compatible API</div>
</div>
</div>
<script>
(function () {
'use strict';
var WEATHER_CODE_MAP = {
0: { label: 'Clear sky', icon: 'sun' },
1: { label: 'Mainly clear', icon: 'sun' },
2: { label: 'Partly cloudy', icon: 'cloud-sun' },
3: { label: 'Overcast', icon: 'cloud' },
45: { label: 'Fog', icon: 'fog' },
48: { label: 'Icy fog', icon: 'fog' },
51: { label: 'Light drizzle', icon: 'rain' },
53: { label: 'Drizzle', icon: 'rain' },
55: { label: 'Dense drizzle', icon: 'rain' },
56: { label: 'Freezing drizzle', icon: 'rain' },
57: { label: 'Dense freezing drizzle', icon: 'rain' },
61: { label: 'Light rain', icon: 'rain' },
63: { label: 'Rain', icon: 'rain' },
65: { label: 'Heavy rain', icon: 'rain' },
66: { label: 'Freezing rain', icon: 'rain' },
67: { label: 'Heavy freezing rain', icon: 'rain' },
71: { label: 'Light snow', icon: 'snow' },
73: { label: 'Snow', icon: 'snow' },
75: { label: 'Heavy snow', icon: 'snow' },
77: { label: 'Snow grains', icon: 'snow' },
80: { label: 'Light showers', icon: 'rain' },
81: { label: 'Showers', icon: 'rain' },
82: { label: 'Violent showers', icon: 'rain' },
85: { label: 'Light snow showers', icon: 'snow' },
86: { label: 'Heavy snow showers', icon: 'snow' },
95: { label: 'Thunderstorm', icon: 'storm' },
96: { label: 'Thunderstorm w/ hail', icon: 'storm' },
99: { label: 'Thunderstorm w/ heavy hail', icon: 'storm' }
};
var ICONS = {
sun: '<circle cx="32" cy="32" r="13" fill="#FFD166"/><g stroke="#FFD166" stroke-width="3" 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="12" y1="52" x2="18" y2="46"/><line x1="46" y1="18" x2="52" y2="12"/></g>',
'cloud-sun': '<circle cx="24" cy="26" r="10" fill="#FFD166"/><path d="M14 46a12 12 0 0 1 12-12 13 13 0 0 1 12.5 9.2A10 10 0 0 1 38 46Z" fill="#E8EEF5"/>',
cloud: '<path d="M12 44a13 13 0 0 1 13-13 15 15 0 0 1 14.4 10.6A11 11 0 0 1 40 44Z" fill="#E8EEF5"/>',
fog: '<g stroke="#DCE6F0" stroke-width="4" stroke-linecap="round"><line x1="10" y1="26" x2="54" y2="26"/><line x1="10" y1="36" x2="54" y2="36"/><line x1="10" y1="46" x2="54" y2="46"/></g>',
rain: '<path d="M12 34a13 13 0 0 1 13-13 15 15 0 0 1 14.4 10.6A11 11 0 0 1 40 34Z" fill="#CBD8E8"/><g stroke="#8FB4E3" stroke-width="3" stroke-linecap="round"><line x1="20" y1="44" x2="17" y2="54"/><line x1="32" y1="44" x2="29" y2="54"/><line x1="44" y1="44" x2="41" y2="54"/></g>',
snow: '<path d="M12 32a13 13 0 0 1 13-13 15 15 0 0 1 14.4 10.6A11 11 0 0 1 40 32Z" fill="#DCE6F0"/><g stroke="#FFFFFF" stroke-width="2.5" stroke-linecap="round"><line x1="20" y1="44" x2="20" y2="54"/><line x1="32" y1="44" x2="32" y2="56"/><line x1="44" y1="44" x2="44" y2="54"/><line x1="16" y1="49" x2="24" y2="49"/><line x1="28" y1="50" x2="36" y2="50"/><line x1="40" y1="49" x2="48" y2="49"/></g>',
storm: '<path d="M12 30a13 13 0 0 1 13-13 15 15 0 0 1 14.4 10.6A11 11 0 0 1 40 30Z" fill="#B8C4D4"/><polygon points="30,38 22,50 29,50 24,60 40,44 32,44 37,38" fill="#FFD166"/>'
};
function qp(name, fallback) {
var params = new URLSearchParams(window.location.search);
var v = params.get(name);
return (v === null || v === '') ? fallback : v;
}
function todayUTC() {
var d = new Date();
return d.getUTCFullYear() + '-' +
String(d.getUTCMonth() + 1).padStart(2, '0') + '-' +
String(d.getUTCDate()).padStart(2, '0');
}
function formatDisplayDate(dateStr) {
var parts = dateStr.split('-').map(Number);
var d = new Date(Date.UTC(parts[0], parts[1] - 1, parts[2]));
var opts = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' };
return d.toLocaleDateString('en-US', opts);
}
function formatHourLabel(hour) {
if (hour === 0) return '12a';
if (hour === 12) return '12p';
return hour > 12 ? (hour - 12) + 'p' : hour + 'a';
}
var lat = parseFloat(qp('lat', '52.52'));
var lon = parseFloat(qp('lon', '13.405'));
var name = qp('name', 'Berlin');
var dateStr = qp('date', todayUTC());
if (isNaN(lat)) lat = 52.52;
if (isNaN(lon)) lon = 13.405;
function isPastDate(dStr) {
return dStr < todayUTC();
}
function buildUrl(dStr) {
var base = isPastDate(dStr) ? '/api/om/archive' : '/api/om/forecast';
var params = new URLSearchParams({
latitude: String(lat),
longitude: String(lon),
daily: 'temperature_2m_max,temperature_2m_min,weather_code',
hourly: 'temperature_2m',
timezone: 'UTC',
temperature_unit: 'celsius',
start_date: dStr,
end_date: dStr
});
return base + '?' + params.toString();
}
function showError() {
document.getElementById('loadingState').classList.add('hidden');
document.getElementById('contentState').classList.add('hidden');
document.getElementById('errorState').classList.remove('hidden');
}
function showContent() {
document.getElementById('loadingState').classList.add('hidden');
document.getElementById('errorState').classList.add('hidden');
document.getElementById('contentState').classList.remove('hidden');
document.getElementById('contentState').style.display = 'flex';
}
function renderHourly(hourlyTimes, hourlyTemps, targetDate) {
var container = document.getElementById('hourlyChart');
container.innerHTML = '';
var dayTemps = [];
var dayHours = [];
for (var i = 0; i < hourlyTimes.length; i++) {
if (hourlyTimes[i].indexOf(targetDate) === 0) {
var hour = parseInt(hourlyTimes[i].substring(11, 13), 10);
dayTemps.push(hourlyTemps[i]);
dayHours.push(hour);
}
}
if (dayTemps.length === 0) return;
var minT = Math.min.apply(null, dayTemps);
var maxT = Math.max.apply(null, dayTemps);
var range = Math.max(maxT - minT, 1);
for (var j = 0; j < dayTemps.length; j++) {
var t = dayTemps[j];
var pct = ((t - minT) / range) * 70 + 15;
var col = document.createElement('div');
col.className = 'hour-col';
var showLabel = (dayHours[j] % 3 === 0);
col.innerHTML =
'<div class="hour-temp">' + Math.round(t) + '°</div>' +
'<div class="hour-bar-wrap"><div class="hour-bar" style="height:' + pct.toFixed(1) + '%"></div></div>' +
(showLabel ? '<div class="hour-label">' + formatHourLabel(dayHours[j]) + '</div>' : '');
container.appendChild(col);
}
}
function render(data) {
var daily = data.daily;
var hourly = data.hourly;
if (!daily || !daily.time || daily.time.length === 0) {
showError();
return;
}
var idx = daily.time.indexOf(dateStr);
if (idx === -1) idx = 0;
var tMax = daily.temperature_2m_max[idx];
var tMin = daily.temperature_2m_min[idx];
var code = daily.weather_code[idx];
var info = WEATHER_CODE_MAP[code] || { label: 'Unknown', icon: 'cloud' };
document.getElementById('locationName').textContent = name;
document.getElementById('dateLabel').textContent = formatDisplayDate(dateStr);
document.getElementById('coordsLabel').textContent =
lat.toFixed(2) + '\u00B0, ' + lon.toFixed(2) + '\u00B0';
document.getElementById('tempMax').textContent =
(tMax !== undefined && tMax !== null) ? Math.round(tMax) : '\u2014';
document.getElementById('tempMin').textContent =
(tMin !== undefined && tMin !== null) ? Math.round(tMin) : '\u2014';
var avg = (tMax !== undefined && tMin !== undefined && tMax !== null && tMin !== null)
? Math.round((tMax + tMin) / 2) : null;
document.getElementById('avgTemp').innerHTML =
(avg !== null ? avg : '\u2014') + '<sup>\u00B0C</sup>';
document.getElementById('conditionText').textContent = info.label;
document.getElementById('conditionIcon').innerHTML = ICONS[info.icon] || ICONS.cloud;
if (hourly && hourly.time && hourly.temperature_2m) {
renderHourly(hourly.time, hourly.temperature_2m, dateStr);
}
showContent();
}
function fetchWeather() {
var url = buildUrl(dateStr);
fetch(url)
.then(function (res) {
if (!res.ok) throw new Error('HTTP ' + res.status);
return res.json();
})
.then(function (data) {
if (data.error) throw new Error(data.reason || 'API error');
render(data);
})
.catch(function (err) {
console.error('Weather fetch failed:', err);
showError();
});
}
fetchWeather();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 15,339 | html / css / js | 1,727 / 4,607 / 9,005 |
|---|---|---|---|
| dom 节点 | 34 | dom 深度 | 9 |
| css 规则 | 34 | 含 js | 是 |
| brightness | 157.4 | contrast | 21.9 |
| colorfulness | 51.5 | 留白 | 50.2% |
该 slot 的 telemetry
| prompt tokens | 0 | completion tokens | 0 |
|---|---|---|---|
| total tokens | 0 | wall | 107.2 s |
| cost | — | request id | — |
config.json579 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-sonnet-5-eff-high--cli--kiro--dev",
"effort": "high",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-sonnet-5",
"protocol": "cli",
"served_model": "claude-sonnet-5",
"telemetry": {
"completion_tokens": null,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 467067
},
"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": "claude-sonnet-5-eff-high--cli--kiro--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-18T17:11:44.224352+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T17:10:34.002619+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-18T17:13:35.269362+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T17:11:48.065815+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-18T17:16:59.969661+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T17:13:39.126219+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-18T17:18:33.278492+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T17:17:04.345089+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
}
}
}