claude-fable-5-thinking @ low · cursor

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

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

similarity 邻居本 session 没有 similarity 数据 —— 这个 batch 没有计算 pairs。

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

  • namematch
  • conditionmatch
  • datematch
  • max tempmatch展示值:25.3
  • min tempmatch展示值:16
  • 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">
<title>Weather Card</title>
<style>
  :root {
    --bg1: #0e1a2f;
    --bg2: #16294a;
    --card: rgba(255,255,255,0.06);
    --stroke: rgba(255,255,255,0.12);
    --text: #eaf1fb;
    --muted: #93a7c4;
    --accent: #7fc4ff;
    --hot: #ffb36b;
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html, body { height: 100%; }
  body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background:
      radial-gradient(1000px 600px at 20% -10%, #23406e 0%, transparent 60%),
      radial-gradient(900px 500px at 90% 110%, #1b3a5c 0%, transparent 55%),
      linear-gradient(160deg, var(--bg1), var(--bg2));
    color: var(--text);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
  }
  .card {
    width: 880px;
    border-radius: 24px;
    background: var(--card);
    border: 1px solid var(--stroke);
    backdrop-filter: blur(18px);
    box-shadow: 0 30px 80px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08);
    padding: 40px 44px 34px;
    overflow: hidden;
    position: relative;
  }
  .card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(600px 260px at 75% 0%, rgba(127,196,255,0.10), transparent 70%);
    pointer-events: none;
  }
  .top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 32px;
  }
  .loc h1 {
    font-size: 40px;
    font-weight: 700;
    letter-spacing: -0.5px;
  }
  .loc .date {
    margin-top: 6px;
    font-size: 15px;
    color: var(--muted);
    letter-spacing: 0.4px;
  }
  .cond {
    text-align: right;
  }
  .cond .icon { font-size: 64px; line-height: 1; filter: drop-shadow(0 6px 16px rgba(0,0,0,0.35)); }
  .cond .label {
    margin-top: 8px;
    font-size: 16px;
    font-weight: 500;
    color: var(--accent);
    letter-spacing: 0.3px;
  }
  .temps {
    display: flex;
    align-items: baseline;
    gap: 28px;
    margin: 30px 0 8px;
  }
  .temps .max {
    font-size: 88px;
    font-weight: 200;
    letter-spacing: -3px;
    line-height: 1;
  }
  .temps .max sup { font-size: 34px; font-weight: 300; color: var(--muted); }
  .minmax {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 16px;
    color: var(--muted);
  }
  .minmax b { color: var(--text); font-weight: 600; margin-left: 6px; }
  .minmax .dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; }
  .dot.hi { background: var(--hot); }
  .dot.lo { background: var(--accent); }
  .divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--stroke) 15%, var(--stroke) 85%, transparent);
    margin: 26px 0 22px;
  }
  .hourly-title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 16px;
  }
  .hours {
    display: flex;
    gap: 4px;
    align-items: flex-end;
    height: 190px;
  }
  .hour {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
  }
  .hour .t {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
  }
  .hour .bar {
    width: 60%;
    border-radius: 6px 6px 3px 3px;
    background: linear-gradient(180deg, var(--accent), rgba(127,196,255,0.25));
    min-height: 6px;
    transition: height 0.6s cubic-bezier(.2,.8,.2,1);
  }
  .hour.peak .bar { background: linear-gradient(180deg, var(--hot), rgba(255,179,107,0.25)); }
  .hour .h {
    font-size: 10.5px;
    color: var(--muted);
    white-space: nowrap;
  }
  .status {
    text-align: center;
    padding: 80px 20px;
    font-size: 18px;
    color: var(--muted);
  }
  .status.error { color: #ff9c9c; }
  .spinner {
    width: 34px; height: 34px;
    border: 3px solid var(--stroke);
    border-top-color: var(--accent);
    border-radius: 50%;
    margin: 0 auto 18px;
    animation: spin 0.9s linear infinite;
  }
  @keyframes spin { to { transform: rotate(360deg); } }
</style>
</head>
<body>
<div class="card" id="card">
  <div class="status" id="status"><div class="spinner"></div>Loading weather…</div>
</div>
<script>
(function () {
  var params = new URLSearchParams(location.search);
  var lat = parseFloat(params.get("lat")); if (isNaN(lat)) lat = 52.52;
  var lon = parseFloat(params.get("lon")); if (isNaN(lon)) lon = 13.405;
  var name = params.get("name") || "Berlin";
  var todayUTC = new Date().toISOString().slice(0, 10);
  var date = params.get("date");
  if (!date || !/^\d{4}-\d{2}-\d{2}$/.test(date)) date = todayUTC;

  var WMO = {
    0:["Clear sky","☀️"],1:["Mainly clear","🌤️"],2:["Partly cloudy","⛅"],3:["Overcast","☁️"],
    45:["Fog","🌫️"],48:["Depositing rime fog","🌫️"],
    51:["Light drizzle","🌦️"],53:["Drizzle","🌦️"],55:["Dense drizzle","🌧️"],
    56:["Freezing drizzle","🌧️"],57:["Dense freezing drizzle","🌧️"],
    61:["Slight rain","🌦️"],63:["Rain","🌧️"],65:["Heavy rain","🌧️"],
    66:["Freezing rain","🌧️"],67:["Heavy freezing rain","🌧️"],
    71:["Slight snow","🌨️"],73:["Snow","🌨️"],75:["Heavy snow","❄️"],77:["Snow grains","❄️"],
    80:["Rain showers","🌦️"],81:["Rain showers","🌧️"],82:["Violent rain showers","⛈️"],
    85:["Snow showers","🌨️"],86:["Heavy snow showers","❄️"],
    95:["Thunderstorm","⛈️"],96:["Thunderstorm with hail","⛈️"],99:["Thunderstorm with heavy hail","⛈️"]
  };

  function fmtDate(d) {
    var dt = new Date(d + "T00:00:00Z");
    return dt.toLocaleDateString("en-US", { weekday: "long", year: "numeric", month: "long", day: "numeric", timeZone: "UTC" });
  }
  function esc(s) {
    return String(s).replace(/[&<>"']/g, function (c) {
      return { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }[c];
    });
  }
  function showError(msg) {
    document.getElementById("card").innerHTML =
      '<div class="status error">⚠️ ' + esc(msg) + "</div>";
  }

  var base = date < todayUTC ? "/api/om/archive" : "/api/om/forecast";
  var qs = 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
  });

  fetch(base + "?" + qs.toString())
    .then(function (r) {
      if (!r.ok) throw new Error("API responded with status " + r.status);
      return r.json();
    })
    .then(function (data) {
      var d = data.daily, h = data.hourly;
      if (!d || !d.time || !d.time.length || !h || !h.time) throw new Error("No data for this date.");
      var max = d.temperature_2m_max[0], min = d.temperature_2m_min[0];
      var code = d.weather_code[0];
      if (max == null || min == null) throw new Error("No data for this date.");
      var cond = WMO[code] || ["Unknown", "🌡️"];

      var hours = [];
      for (var i = 0; i < h.time.length; i++) {
        if (h.time[i].slice(0, 10) === date && h.temperature_2m[i] != null) {
          hours.push({ hour: parseInt(h.time[i].slice(11, 13), 10), temp: h.temperature_2m[i] });
        }
      }

      var html =
        '<div class="top">' +
          '<div class="loc"><h1>' + esc(name) + '</h1>' +
          '<div class="date">' + esc(fmtDate(date)) + ' · UTC</div></div>' +
          '<div class="cond"><div class="icon">' + cond[1] + '</div>' +
          '<div class="label">' + esc(cond[0]) + '</div></div>' +
        '</div>' +
        '<div class="temps">' +
          '<div class="max">' + Math.round(max) + '<sup>°C</sup></div>' +
          '<div class="minmax">' +
            '<span><span class="dot hi"></span>High<b>' + max.toFixed(1) + '°C</b></span>' +
            '<span><span class="dot lo"></span>Low<b>' + min.toFixed(1) + '°C</b></span>' +
          '</div>' +
        '</div>';

      if (hours.length) {
        var temps = hours.map(function (x) { return x.temp; });
        var lo = Math.min.apply(null, temps), hi = Math.max.apply(null, temps);
        var range = hi - lo || 1;
        html += '<div class="divider"></div>' +
          '<div class="hourly-title">Hourly temperature</div><div class="hours">';
        hours.forEach(function (x) {
          var pct = 18 + ((x.temp - lo) / range) * 82;
          html += '<div class="hour' + (x.temp === hi ? " peak" : "") + '">' +
            '<div class="t">' + Math.round(x.temp) + '°</div>' +
            '<div class="bar" style="height:' + pct.toFixed(1) + 'px"></div>' +
            '<div class="h">' + String(x.hour).padStart(2, "0") + '</div></div>';
        });
        html += '</div>';
      }
      document.getElementById("card").innerHTML = html;
    })
    .catch(function (e) {
      showError("Weather data could not be loaded. " + (e && e.message ? e.message : ""));
    });
})();
</script>
</body>
</html>

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

bytes 总计9,093html / css / js277 / 4,095 / 4,721
dom 节点10dom 深度5
css 规则33含 js
brightness44.0contrast19.4
colorfulness22.2留白63.9%

该 slot 的 telemetry

prompt tokens2completion tokens4,229
total tokens4,231wall50.4 s
costrequest id
config.json600 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "claude-fable-5-thinking-eff-low--cli--cursor--dev",
  "effort": "low",
  "family": "claude",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "claude-fable-5-thinking",
  "protocol": "cli",
  "served_model": "claude-fable-5-thinking-low",
  "telemetry": {
    "completion_tokens": 14581,
    "cost_usd": null,
    "prompt_tokens": 8,
    "total_tokens": 14589,
    "wall_ms": 184088
  },
  "transport": "cursor-agent-cli-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-08-13--cursor-s0",
  "config_id": "claude-fable-5-thinking-eff-low--cli--cursor--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-12T19:28:47.175434+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:28:07.479736+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-12T19:29:41.170732+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:28:50.741106+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-12T19:30:39.749965+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:29:44.688905+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-08-12T19:31:22.145326+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-12T19:30:43.236893+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
    }
  }
}