claude-sonnet-5 @ high · cursor

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

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。

similarity 邻居

限于 session 2026-07-19--unified

similarity 衡量本 session 内的趋同程度 —— 不是质量。

Fidelity —— 卡片展示的数据对不对?

  • namematch
  • conditionmatch
  • datematch
  • max tempmismatch展示值:13.4
  • min tempmismatch展示值:52.52
  • hourlymatchcoverage 24/24 · 24 命中 · 0 不符 · 0 未展示
  • 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">
<link rel="icon" href="data:,">
<title>Weather</title>
<style>
  :root{
    --grad-a:#7ec8f2;
    --grad-b:#3f8efc;
    --accent:#2f6fed;
    --card-bg: rgba(255,255,255,0.62);
    --card-border: rgba(255,255,255,0.85);
    --text-primary:#1b2333;
    --text-secondary:#5b6478;
  }
  *{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;
    -webkit-font-smoothing:antialiased;
  }
  body{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
      radial-gradient(circle at 12% 15%, var(--grad-a), transparent 55%),
      radial-gradient(circle at 88% 85%, var(--grad-b), transparent 55%),
      linear-gradient(135deg, var(--grad-a), var(--grad-b));
    transition: background 0.9s ease;
  }
  .blob{
    position:absolute;
    border-radius:50%;
    filter:blur(80px);
    transition:background 0.9s ease;
    pointer-events:none;
  }
  .blob1{width:460px;height:460px;top:-140px;left:-120px;background:var(--grad-a);opacity:0.55;}
  .blob2{width:560px;height:560px;bottom:-180px;right:-160px;background:var(--grad-b);opacity:0.55;}
  .blob3{width:260px;height:260px;top:60%;left:78%;background:#ffffff;opacity:0.18;}

  .card{
    position:relative;
    width:1100px;
    min-height:600px;
    background:var(--card-bg);
    border:1px solid var(--card-border);
    border-radius:32px;
    box-shadow:0 30px 90px rgba(20,30,60,0.28), inset 0 1px 0 rgba(255,255,255,0.6);
    backdrop-filter: blur(26px) saturate(160%);
    -webkit-backdrop-filter: blur(26px) saturate(160%);
    padding:44px 52px 36px;
    color:var(--text-primary);
    display:flex;
    flex-direction:column;
    gap:26px;
    animation: rise 0.6s cubic-bezier(.2,.8,.2,1);
  }
  @keyframes rise{
    from{opacity:0; transform:translateY(18px);}
    to{opacity:1; transform:translateY(0);}
  }

  .header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
  }
  .location{
    font-size:36px;
    font-weight:700;
    letter-spacing:-0.02em;
    line-height:1.1;
  }
  .date{
    font-size:16px;
    color:var(--text-secondary);
    margin-top:8px;
    font-weight:500;
  }
  .coords{
    font-size:13px;
    color:var(--text-secondary);
    opacity:0.75;
    text-align:right;
    font-variant-numeric:tabular-nums;
    margin-top:4px;
  }

  .hero{
    display:flex;
    align-items:center;
    gap:34px;
    padding:6px 0;
  }
  .hero-icon{
    width:140px;
    height:140px;
    flex-shrink:0;
    filter:drop-shadow(0 12px 18px rgba(20,30,60,0.18));
  }
  .hero-icon svg{width:100%;height:100%;display:block;}
  .hero-info{
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .condition{
    font-size:23px;
    font-weight:600;
  }
  .temps{
    display:flex;
    gap:40px;
    margin-top:10px;
  }
  .temp-block{
    display:flex;
    flex-direction:column;
  }
  .temp-label{
    font-size:12.5px;
    text-transform:uppercase;
    letter-spacing:0.09em;
    color:var(--text-secondary);
    font-weight:700;
  }
  .temp-value{
    font-size:54px;
    font-weight:700;
    letter-spacing:-0.03em;
    line-height:1;
    margin-top:6px;
    font-variant-numeric:tabular-nums;
  }
  .temp-value.high{color:var(--accent);}
  .temp-value small{
    font-size:24px;
    font-weight:600;
    margin-left:2px;
  }

  .hourly{
    margin-top:auto;
    padding-top:18px;
    border-top:1px solid rgba(110,120,150,0.2);
  }
  .hourly-title{
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.09em;
    color:var(--text-secondary);
    margin-bottom:14px;
  }
  .hour-strip{
    display:flex;
    align-items:stretch;
    gap:2px;
    height:170px;
  }
  .hour-item{
    flex:1 1 0;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .hour-temp{
    font-size:12px;
    font-weight:700;
    color:var(--text-primary);
    height:16px;
    white-space:nowrap;
  }
  .hour-item.now .hour-temp{color:var(--accent);}
  .hour-bar-wrap{
    flex:1;
    width:100%;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:6px 0;
  }
  .hour-bar{
    width:60%;
    max-width:14px;
    min-height:5px;
    border-radius:5px;
    background:linear-gradient(180deg, var(--accent) 0%, rgba(140,160,200,0.35) 100%);
    opacity:0.55;
    transition:height 0.4s ease;
  }
  .hour-item.now .hour-bar{
    opacity:1;
    background:var(--accent);
  }
  .hour-time{
    font-size:10px;
    color:var(--text-secondary);
    height:14px;
    white-space:nowrap;
  }
  .hour-time.ghost{visibility:hidden;}

  .source-note{
    text-align:right;
    font-size:11px;
    color:var(--text-secondary);
    opacity:0.6;
    margin-top:12px;
  }

  .center-msg{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    color:var(--text-secondary);
    text-align:center;
  }
  .spinner{
    width:38px;
    height:38px;
    border-radius:50%;
    border:3px solid rgba(120,130,160,0.25);
    border-top-color:var(--accent);
    animation:spin 0.8s linear infinite;
  }
  @keyframes spin{to{transform:rotate(360deg);}}
  .error-icon{font-size:40px;}
  .error-title{
    font-size:19px;
    font-weight:700;
    color:var(--text-primary);
  }
  .error-detail{font-size:14px; max-width:440px;}
  .no-data{
    color:var(--text-secondary);
    font-size:14px;
    padding:40px 0;
    text-align:center;
    width:100%;
  }
</style>
</head>
<body>
  <div class="blob blob1"></div>
  <div class="blob blob2"></div>
  <div class="blob blob3"></div>
  <div class="card" id="card">
    <div class="center-msg">
      <div class="spinner"></div>
      <div>Loading weather…</div>
    </div>
  </div>

<script>
(function(){
  function qp(key, def){
    var usp = new URLSearchParams(window.location.search);
    var v = usp.get(key);
    return (v === null || v === '') ? def : v;
  }
  function esc(s){
    return String(s).replace(/[&<>"']/g, function(c){
      return ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'})[c];
    });
  }
  function round(n){ return Math.round(n); }
  function todayUTC(){
    return new Date().toISOString().slice(0,10);
  }

  var lat = qp('lat', '52.52');
  var lon = qp('lon', '13.405');
  var name = qp('name', 'Berlin');
  var date = qp('date', todayUTC());

  var root = document.documentElement;
  var card = document.getElementById('card');

  var WEATHER_MAP = {
    0:  ['clear',  'Clear sky'],
    1:  ['partly', 'Mainly clear'],
    2:  ['partly', 'Partly cloudy'],
    3:  ['cloudy', 'Overcast'],
    45: ['fog',    'Fog'],
    48: ['fog',    'Depositing rime fog'],
    51: ['rain',   'Light drizzle'],
    53: ['rain',   'Moderate drizzle'],
    55: ['rain',   'Dense drizzle'],
    56: ['rain',   'Light freezing drizzle'],
    57: ['rain',   'Dense freezing drizzle'],
    61: ['rain',   'Slight rain'],
    63: ['rain',   'Moderate rain'],
    65: ['rain',   'Heavy rain'],
    66: ['rain',   'Light freezing rain'],
    67: ['rain',   'Heavy freezing rain'],
    71: ['snow',   'Slight snow fall'],
    73: ['snow',   'Moderate snow fall'],
    75: ['snow',   'Heavy snow fall'],
    77: ['snow',   'Snow grains'],
    80: ['rain',   'Slight rain showers'],
    81: ['rain',   'Moderate rain showers'],
    82: ['rain',   'Violent rain showers'],
    85: ['snow',   'Slight snow showers'],
    86: ['snow',   'Heavy snow showers'],
    95: ['storm',  'Thunderstorm'],
    96: ['storm',  'Thunderstorm with slight hail'],
    99: ['storm',  'Thunderstorm with heavy hail']
  };
  function weatherInfo(code){
    return WEATHER_MAP.hasOwnProperty(code) ? WEATHER_MAP[code] : ['cloudy', 'Unknown conditions'];
  }

  var THEMES = {
    clear:  { a:'#8fd3fe', b:'#3f8efc', accent:'#2f6fed', icon:'sun' },
    partly: { a:'#a7e6ff', b:'#6fa8ff', accent:'#2f80ed', icon:'cloudSun' },
    cloudy: { a:'#c7cfdd', b:'#8a94aa', accent:'#5b6478', icon:'cloud' },
    fog:    { a:'#dde3ea', b:'#b3bcc9', accent:'#7b8494', icon:'fog' },
    rain:   { a:'#9cc0ea', b:'#3a5f8a', accent:'#3568b3', icon:'rain' },
    snow:   { a:'#eaf6ff', b:'#bcd9ee', accent:'#4a90c2', icon:'snow' },
    storm:  { a:'#9099ab', b:'#3a3f4b', accent:'#565c6b', icon:'storm' }
  };

  var ICONS = {
    sun: '<svg viewBox="0 0 100 100"><circle cx="50" cy="50" r="22" fill="#FFB020"/><g stroke="#FFB020" stroke-width="6" stroke-linecap="round"><line x1="50" y1="6" x2="50" y2="18"/><line x1="50" y1="82" x2="50" y2="94"/><line x1="6" y1="50" x2="18" y2="50"/><line x1="82" y1="50" x2="94" y2="50"/><line x1="17" y1="17" x2="25" y2="25"/><line x1="75" y1="75" x2="83" y2="83"/><line x1="17" y1="83" x2="25" y2="75"/><line x1="75" y1="25" x2="83" y2="17"/></g></svg>',
    cloud: '<svg viewBox="0 0 100 100"><g fill="#9AA8C2"><ellipse cx="38" cy="58" rx="22" ry="18"/><ellipse cx="58" cy="46" rx="26" ry="24"/><ellipse cx="76" cy="58" rx="16" ry="15"/><rect x="26" y="54" width="56" height="27" rx="13.5"/></g></svg>',
    cloudSun: '<svg viewBox="0 0 100 100"><circle cx="38" cy="36" r="17" fill="#FFB020"/><g stroke="#FFB020" stroke-width="5" stroke-linecap="round"><line x1="38" y1="8" x2="38" y2="16"/><line x1="10" y1="36" x2="18" y2="36"/><line x1="17" y1="15" x2="23" y2="21"/><line x1="59" y1="15" x2="53" y2="21"/></g><g fill="#AEB9CF"><ellipse cx="46" cy="66" rx="20" ry="16"/><ellipse cx="64" cy="56" rx="24" ry="22"/><ellipse cx="81" cy="66" rx="14" ry="13"/><rect x="34" y="63" width="56" height="24" rx="12"/></g></svg>',
    fog: '<svg viewBox="0 0 100 100"><g fill="#B7BFCC"><ellipse cx="40" cy="40" rx="20" ry="14"/><ellipse cx="60" cy="32" rx="22" ry="18"/><rect x="28" y="36" width="50" height="18" rx="9"/></g><g stroke="#9AA6B8" stroke-width="5" stroke-linecap="round"><line x1="16" y1="66" x2="84" y2="66"/><line x1="24" y1="79" x2="76" y2="79"/><line x1="30" y1="92" x2="70" y2="92"/></g></svg>',
    rain: '<svg viewBox="0 0 100 100"><g fill="#8FA6C7"><ellipse cx="38" cy="40" rx="20" ry="16"/><ellipse cx="58" cy="30" rx="24" ry="22"/><ellipse cx="77" cy="42" rx="14" ry="13"/><rect x="26" y="38" width="57" height="22" rx="11"/></g><g stroke="#4C7CC7" stroke-width="6" stroke-linecap="round"><line x1="35" y1="72" x2="29" y2="90"/><line x1="54" y1="72" x2="48" y2="90"/><line x1="73" y1="72" x2="67" y2="90"/></g></svg>',
    snow: '<svg viewBox="0 0 100 100"><g fill="#C7D3E6"><ellipse cx="38" cy="40" rx="20" ry="16"/><ellipse cx="58" cy="30" rx="24" ry="22"/><ellipse cx="77" cy="42" rx="14" ry="13"/><rect x="26" y="38" width="57" height="22" rx="11"/></g><g fill="#6FA8DC"><circle cx="34" cy="80" r="4.5"/><circle cx="54" cy="88" r="4.5"/><circle cx="72" cy="78" r="4.5"/><circle cx="50" cy="70" r="4.5"/></g></svg>',
    storm: '<svg viewBox="0 0 100 100"><g fill="#6B7280"><ellipse cx="38" cy="36" rx="20" ry="15"/><ellipse cx="58" cy="28" rx="24" ry="20"/><ellipse cx="77" cy="38" rx="14" ry="12"/><rect x="26" y="34" width="57" height="20" rx="10"/></g><polygon points="58,54 44,78 54,78 46,96 72,66 60,66 68,54" fill="#F5C518"/></svg>'
  };

  function setTheme(key){
    var t = THEMES[key] || THEMES.cloudy;
    root.style.setProperty('--grad-a', t.a);
    root.style.setProperty('--grad-b', t.b);
    root.style.setProperty('--accent', t.accent);
    return t;
  }

  function formatDateLong(dateStr){
    var d = new Date(dateStr + 'T00:00:00Z');
    if (isNaN(d.getTime())) return dateStr;
    return d.toLocaleDateString('en-US', { weekday:'long', month:'long', day:'numeric', year:'numeric', timeZone:'UTC' });
  }

  function formatHourShort(isoTime){
    var hh = parseInt(isoTime.slice(11,13), 10);
    var ap = hh >= 12 ? 'p' : 'a';
    var h12 = hh % 12; if (h12 === 0) h12 = 12;
    return h12 + ap;
  }

  function buildHourStrip(times, temps){
    if (!temps || !temps.length){
      return '<div class="no-data">No hourly data available</div>';
    }
    var min = Math.min.apply(null, temps);
    var max = Math.max.apply(null, temps);
    var span = max - min;
    var nowKey = new Date().toISOString().slice(0,13);
    var html = '<div class="hour-strip">';
    for (var i = 0; i < temps.length; i++){
      var t = temps[i];
      var pct = span > 0 ? ((t - min) / span) * 88 + 10 : 55;
      var isNow = times[i] && times[i].slice(0,13) === nowKey;
      var showLabel = (i % 3 === 0) || i === temps.length - 1;
      html += '<div class="hour-item' + (isNow ? ' now' : '') + '">';
      html += '<div class="hour-temp">' + round(t) + '\u00B0</div>';
      html += '<div class="hour-bar-wrap"><div class="hour-bar" style="height:' + pct.toFixed(1) + '%"></div></div>';
      html += '<div class="hour-time' + (showLabel ? '' : ' ghost') + '">' + (times[i] ? formatHourShort(times[i]) : '') + '</div>';
      html += '</div>';
    }
    html += '</div>';
    return html;
  }

  function render(data){
    var daily = data.daily || {};
    var hourly = data.hourly || {};
    var code = daily.weather_code ? daily.weather_code[0] : null;
    var tmax = daily.temperature_2m_max ? daily.temperature_2m_max[0] : null;
    var tmin = daily.temperature_2m_min ? daily.temperature_2m_min[0] : null;
    var info = weatherInfo(code);
    var themeKey = info[0], desc = info[1];
    var theme = setTheme(themeKey);
    var icon = ICONS[theme.icon] || ICONS.cloud;

    var times = hourly.time || [];
    var temps = hourly.temperature_2m || [];

    var maxHtml = (tmax === null || tmax === undefined) ? '--' : round(tmax);
    var minHtml = (tmin === null || tmin === undefined) ? '--' : round(tmin);

    card.innerHTML =
      '<div class="header">' +
        '<div>' +
          '<div class="location">' + esc(name) + '</div>' +
          '<div class="date">' + esc(formatDateLong(date)) + '</div>' +
        '</div>' +
        '<div class="coords">' + parseFloat(lat).toFixed(2) + '\u00B0, ' + parseFloat(lon).toFixed(2) + '\u00B0</div>' +
      '</div>' +
      '<div class="hero">' +
        '<div class="hero-icon">' + icon + '</div>' +
        '<div class="hero-info">' +
          '<div class="condition">' + esc(desc) + '</div>' +
          '<div class="temps">' +
            '<div class="temp-block">' +
              '<div class="temp-label">High</div>' +
              '<div class="temp-value high">' + maxHtml + '<small>\u00B0C</small></div>' +
            '</div>' +
            '<div class="temp-block">' +
              '<div class="temp-label">Low</div>' +
              '<div class="temp-value">' + minHtml + '<small>\u00B0C</small></div>' +
            '</div>' +
          '</div>' +
        '</div>' +
      '</div>' +
      '<div class="hourly">' +
        '<div class="hourly-title">Hourly Temperature</div>' +
        buildHourStrip(times, temps) +
      '</div>' +
      '<div class="source-note">Data via Open-Meteo</div>';
  }

  function showError(msg){
    card.innerHTML =
      '<div class="center-msg">' +
        '<div class="error-icon">\u26A0\uFE0F</div>' +
        '<div class="error-title">Unable to load weather data</div>' +
        '<div class="error-detail">' + esc(msg) + '</div>' +
      '</div>';
  }

  function main(){
    var isPast = date < todayUTC();
    var base = isPast ? '/api/om/archive' : '/api/om/forecast';
    var 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
    });
    var url = base + '?' + params.toString();

    fetch(url)
      .then(function(res){
        if (!res.ok){
          throw new Error('Request failed with status ' + res.status);
        }
        return res.json();
      })
      .then(function(data){
        if (data && data.error){
          throw new Error(data.reason || 'The weather service returned an error.');
        }
        if (!data || !data.daily || !data.hourly ||
            !Array.isArray(data.daily.temperature_2m_max) || data.daily.temperature_2m_max.length === 0){
          throw new Error('No weather data was returned for this date.');
        }
        render(data);
      })
      .catch(function(err){
        showError(err && err.message ? err.message : 'Something went wrong while fetching weather data.');
      });
  }

  main();
})();
</script>
</body>
</html>

L1 —— 廉价的确定性描述量

bytes 总计16,590html / css / js493 / 5,548 / 10,549
dom 节点16dom 深度5
css 规则47含 js是
brightness182.3contrast41.4
colorfulness28.1留白32.0%

该 slot 的 telemetry

prompt tokens2completion tokens33,182
total tokens33,184wall320.3 s
cost—request id—
config.json583 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "claude-sonnet-5-eff-high--cli--cursor--dev",
  "effort": "high",
  "family": "claude",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "claude-sonnet-5",
  "protocol": "cli",
  "served_model": "claude-sonnet-5-high",
  "telemetry": {
    "completion_tokens": 104782,
    "cost_usd": null,
    "prompt_tokens": 80,
    "total_tokens": 104862,
    "wall_ms": 1108525
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s2",
  "config_id": "claude-sonnet-5-eff-high--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T20:25:26.613545+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:20:06.401185+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-12T20:27:32.734428+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:25:30.214342+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-12T20:28:47.775798+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:27:36.298959+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-12T20:38:45.263360+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T20:28:50.990682+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
    }
  }
}