gpt-5.6-sol @ low · kiro

kirolow
config
gpt-5.6-sol-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-sol
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe
gpt-5.6-sol @low · kiro P-q slot 0 截图

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

similarity 邻居

限于 session 2026-07-19--unified

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

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.0">
<title>Weather</title>
<style>
  :root {
    color-scheme: dark;
    --text: #f8fbff;
    --muted: rgba(231, 241, 255, .66);
    --line: rgba(255, 255, 255, .12);
    --glass: rgba(15, 28, 49, .58);
    --accent: #ffc966;
    --blue: #73c9ff;
  }

  * { box-sizing: border-box; }

  html, body {
    width: 100%;
    min-height: 100%;
    margin: 0;
  }

  body {
    min-width: 900px;
    min-height: 700px;
    overflow: hidden;
    color: var(--text);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:
      radial-gradient(circle at 15% 5%, rgba(101, 190, 255, .38), transparent 30%),
      radial-gradient(circle at 85% 95%, rgba(116, 88, 214, .32), transparent 34%),
      linear-gradient(135deg, #102b45 0%, #15233b 44%, #20203a 100%);
  }

  body::before,
  body::after {
    content: "";
    position: fixed;
    border-radius: 50%;
    filter: blur(2px);
    pointer-events: none;
  }

  body::before {
    width: 440px;
    height: 440px;
    top: -230px;
    right: 80px;
    background: rgba(255, 202, 105, .12);
  }

  body::after {
    width: 360px;
    height: 360px;
    bottom: -190px;
    left: 80px;
    background: rgba(91, 191, 255, .12);
  }

  .page {
    width: 100vw;
    height: 100vh;
    padding: 38px;
    display: grid;
    place-items: center;
  }

  .weather-card {
    position: relative;
    width: min(1180px, calc(100vw - 76px));
    height: min(724px, calc(100vh - 76px));
    min-height: 620px;
    padding: 38px 42px 30px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 34px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .025)),
      var(--glass);
    box-shadow:
      0 35px 80px rgba(2, 10, 25, .42),
      inset 0 1px 0 rgba(255, 255, 255, .16);
    backdrop-filter: blur(28px);
  }

  .weather-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, rgba(255,255,255,.08), transparent 28%);
    pointer-events: none;
  }

  header {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
  }

  .eyebrow {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
    color: var(--blue);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .17em;
    text-transform: uppercase;
  }

  .eyebrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 14px currentColor;
  }

  h1 {
    max-width: 650px;
    margin: 0;
    overflow: hidden;
    font-size: clamp(36px, 4vw, 54px);
    font-weight: 650;
    line-height: 1.03;
    letter-spacing: -.045em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .date {
    margin-top: 10px;
    color: var(--muted);
    font-size: 16px;
    font-weight: 450;
  }

  .utc-badge {
    flex: none;
    margin-top: 2px;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    color: rgba(240,247,255,.72);
    background: rgba(255,255,255,.055);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
  }

  .summary {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(340px, .92fr) minmax(380px, 1.08fr);
    gap: 34px;
    align-items: center;
    min-height: 246px;
    margin-top: 16px;
  }

  .current {
    display: flex;
    align-items: center;
    gap: 25px;
  }

  .weather-icon {
    position: relative;
    flex: 0 0 126px;
    width: 126px;
    height: 126px;
    filter: drop-shadow(0 13px 20px rgba(0,0,0,.2));
  }

  .weather-icon svg {
    width: 100%;
    height: 100%;
    overflow: visible;
  }

  .condition {
    margin-bottom: 10px;
    color: rgba(247,250,255,.94);
    font-size: 21px;
    font-weight: 540;
  }

  .temperature-row {
    display: flex;
    align-items: baseline;
    gap: 18px;
  }

  .high {
    font-size: clamp(66px, 7vw, 91px);
    font-weight: 300;
    line-height: .92;
    letter-spacing: -.075em;
  }

  .high .unit {
    position: relative;
    top: -27px;
    margin-left: 6px;
    font-size: 24px;
    font-weight: 550;
    letter-spacing: -.03em;
  }

  .low-block {
    padding-left: 17px;
    border-left: 1px solid rgba(255,255,255,.16);
  }

  .label {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .13em;
    text-transform: uppercase;
  }

  .low {
    color: #cfeeff;
    font-size: 28px;
    font-weight: 540;
  }

  .range-panel {
    padding: 25px 26px 23px;
    border: 1px solid rgba(255,255,255,.105);
    border-radius: 24px;
    background: rgba(5, 16, 33, .2);
  }

  .range-title {
    display: flex;
    justify-content: space-between;
    margin-bottom: 18px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .range-values {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 650;
  }

  .range-track {
    position: relative;
    height: 9px;
    overflow: hidden;
    border-radius: 20px;
    background: rgba(255,255,255,.085);
  }

  .range-fill {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #68c6ff, #aae3e7 45%, #ffd16e 100%);
    box-shadow: 0 0 20px rgba(106,197,255,.25);
  }

  .range-note {
    margin-top: 16px;
    color: rgba(225,237,251,.52);
    font-size: 13px;
    line-height: 1.5;
  }

  .hourly {
    position: relative;
    z-index: 1;
    padding-top: 22px;
    border-top: 1px solid var(--line);
  }

  .section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 14px;
  }

  h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 650;
    letter-spacing: -.01em;
  }

  .section-subtitle {
    color: var(--muted);
    font-size: 12px;
  }

  .chart-wrap {
    position: relative;
    height: 194px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 22px;
    background:
      repeating-linear-gradient(to bottom, transparent 0, transparent 48px, rgba(255,255,255,.055) 49px),
      rgba(4, 14, 29, .18);
  }

  #chart {
    display: block;
    width: 100%;
    height: 100%;
  }

  .chart-empty {
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: 14px;
  }

  .loading,
  .error-state {
    position: absolute;
    z-index: 5;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 50px;
    text-align: center;
    background: rgba(11, 24, 42, .82);
    backdrop-filter: blur(18px);
  }

  .loading-inner,
  .error-inner {
    max-width: 460px;
  }

  .spinner {
    width: 42px;
    height: 42px;
    margin: 0 auto 20px;
    border: 3px solid rgba(255,255,255,.14);
    border-top-color: var(--blue);
    border-radius: 50%;
    animation: spin .8s linear infinite;
  }

  .state-title {
    margin: 0 0 9px;
    font-size: 24px;
    font-weight: 620;
  }

  .state-copy {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.6;
  }

  .error-state { display: none; }

  @keyframes spin { to { transform: rotate(360deg); } }

  @media (max-height: 730px) {
    .page { padding: 24px; }
    .weather-card {
      height: calc(100vh - 48px);
      min-height: 0;
      padding-top: 28px;
    }
    .summary { min-height: 215px; }
    .chart-wrap { height: 165px; }
  }
</style>
</head>
<body>
<main class="page">
  <article class="weather-card" aria-live="polite">
    <header>
      <div>
        <div class="eyebrow">Daily forecast</div>
        <h1 id="location">Berlin</h1>
        <div class="date" id="displayDate">—</div>
      </div>
      <div class="utc-badge">UTC · CELSIUS</div>
    </header>

    <section class="summary">
      <div class="current">
        <div class="weather-icon" id="weatherIcon" aria-hidden="true"></div>
        <div>
          <div class="condition" id="condition">—</div>
          <div class="temperature-row">
            <div class="high"><span id="maxTemp">—</span><span class="unit">°C</span></div>
            <div class="low-block">
              <div class="label">Low</div>
              <div class="low"><span id="minTemp">—</span>°</div>
            </div>
          </div>
        </div>
      </div>

      <div class="range-panel">
        <div class="range-title"><span>Daily range</span><span id="rangeAmount">—</span></div>
        <div class="range-values">
          <span id="rangeLow">—°</span>
          <span id="rangeHigh">—°</span>
        </div>
        <div class="range-track"><div class="range-fill"></div></div>
        <div class="range-note" id="rangeNote">Hourly temperatures are shown below in Coordinated Universal Time.</div>
      </div>
    </section>

    <section class="hourly">
      <div class="section-header">
        <h2>Hourly temperature</h2>
        <div class="section-subtitle">00:00–23:00 UTC</div>
      </div>
      <div class="chart-wrap" id="chartWrap">
        <svg id="chart" role="img" aria-label="Hourly temperature chart"></svg>
      </div>
    </section>

    <div class="loading" id="loading">
      <div class="loading-inner">
        <div class="spinner"></div>
        <h2 class="state-title">Loading weather</h2>
        <p class="state-copy">Preparing the daily outlook and hourly temperatures.</p>
      </div>
    </div>

    <div class="error-state" id="error">
      <div class="error-inner">
        <h2 class="state-title">Weather data could not be loaded</h2>
        <p class="state-copy" id="errorMessage">Please check the requested location and date, then try again.</p>
      </div>
    </div>
  </article>
</main>

<script>
(() => {
  "use strict";

  const params = new URLSearchParams(location.search);
  const now = new Date();
  const todayUTC = [
    now.getUTCFullYear(),
    String(now.getUTCMonth() + 1).padStart(2, "0"),
    String(now.getUTCDate()).padStart(2, "0")
  ].join("-");

  const rawLat = Number(params.get("lat"));
  const rawLon = Number(params.get("lon"));
  const latitude = Number.isFinite(rawLat) && rawLat >= -90 && rawLat <= 90 ? rawLat : 52.52;
  const longitude = Number.isFinite(rawLon) && rawLon >= -180 && rawLon <= 180 ? rawLon : 13.405;
  const name = (params.get("name") || "Berlin").trim().slice(0, 100) || "Berlin";
  const requestedDate = /^\d{4}-\d{2}-\d{2}$/.test(params.get("date") || "")
    ? params.get("date")
    : todayUTC;

  const parseDateUTC = value => {
    const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
    if (!match) return null;
    const date = new Date(Date.UTC(+match[1], +match[2] - 1, +match[3]));
    return date.getUTCFullYear() === +match[1] &&
      date.getUTCMonth() === +match[2] - 1 &&
      date.getUTCDate() === +match[3] ? date : null;
  };

  const requestedDateObject = parseDateUTC(requestedDate);
  const effectiveDate = requestedDateObject ? requestedDate : todayUTC;
  const endpoint = effectiveDate < todayUTC ? "/api/om/archive" : "/api/om/forecast";

  const query = new URLSearchParams({
    latitude: String(latitude),
    longitude: String(longitude),
    daily: "temperature_2m_max,temperature_2m_min,weather_code",
    hourly: "temperature_2m",
    timezone: "UTC",
    temperature_unit: "celsius",
    start_date: effectiveDate,
    end_date: effectiveDate
  });

  const $ = id => document.getElementById(id);
  $("location").textContent = name;
  document.title = `${name} · Weather`;

  const dateObject = parseDateUTC(effectiveDate);
  $("displayDate").textContent = dateObject
    ? new Intl.DateTimeFormat("en-US", {
        weekday: "long", month: "long", day: "numeric", year: "numeric", timeZone: "UTC"
      }).format(dateObject)
    : effectiveDate;

  const conditions = {
    0: ["Clear sky", "sun"],
    1: ["Mainly clear", "partly"],
    2: ["Partly cloudy", "partly"],
    3: ["Overcast", "cloud"],
    45: ["Fog", "fog"],
    48: ["Depositing rime fog", "fog"],
    51: ["Light drizzle", "rain"],
    53: ["Moderate drizzle", "rain"],
    55: ["Dense drizzle", "rain"],
    56: ["Freezing drizzle", "sleet"],
    57: ["Dense freezing drizzle", "sleet"],
    61: ["Slight rain", "rain"],
    63: ["Moderate rain", "rain"],
    65: ["Heavy rain", "rain"],
    66: ["Freezing rain", "sleet"],
    67: ["Heavy freezing rain", "sleet"],
    71: ["Slight snowfall", "snow"],
    73: ["Moderate snowfall", "snow"],
    75: ["Heavy snowfall", "snow"],
    77: ["Snow grains", "snow"],
    80: ["Slight rain showers", "rain"],
    81: ["Moderate rain showers", "rain"],
    82: ["Violent rain showers", "rain"],
    85: ["Slight snow showers", "snow"],
    86: ["Heavy snow showers", "snow"],
    95: ["Thunderstorm", "storm"],
    96: ["Thunderstorm with hail", "storm"],
    99: ["Severe thunderstorm with hail", "storm"]
  };

  const iconSVG = type => {
    const sun = `<circle cx="46" cy="45" r="19" fill="#FFD36B"/>
      <g stroke="#FFD36B" stroke-width="5" stroke-linecap="round">
        <path d="M46 8v9M46 73v9M9 45h9M74 45h9M20 19l7 7M65 64l7 7M72 19l-7 7M27 64l-7 7"/>
      </g>`;
    const cloud = `<path d="M34 89h55c16 0 27-10 27-24 0-13-10-23-23-24C89 25 76 15 59 15 38 15 23 31 22 51 9 54 2 62 2 71c0 10 9 18 32 18Z"
      fill="url(#cloudGradient)" stroke="rgba(255,255,255,.34)" stroke-width="1.5"/>`;
    const defs = `<defs>
      <linearGradient id="cloudGradient" x1="18" y1="18" x2="91" y2="92" gradientUnits="userSpaceOnUse">
        <stop stop-color="#F4FAFF"/><stop offset="1" stop-color="#A9C9E3"/>
      </linearGradient>
      <linearGradient id="rainGradient" x1="0" y1="0" x2="0" y2="1">
        <stop stop-color="#78D5FF"/><stop offset="1" stop-color="#438DFF"/>
      </linearGradient>
    </defs>`;

    let content = "";
    if (type === "sun") content = sun;
    else if (type === "partly") content = `<g transform="translate(3 0)">${sun}</g><g transform="translate(10 26) scale(.86)">${cloud}</g>`;
    else if (type === "cloud") content = `<g transform="translate(4 16)">${cloud}</g>`;
    else if (type === "fog") content = `<g transform="translate(5 5) scale(.92)">${cloud}</g>
      <g stroke="#B9D8E9" stroke-width="6" stroke-linecap="round" opacity=".9">
        <path d="M13 96h76"/><path d="M27 111h77"/>
      </g>`;
    else if (type === "rain" || type === "sleet") content = `<g transform="translate(5 0) scale(.92)">${cloud}</g>
      <g stroke="url(#rainGradient)" stroke-width="6" stroke-linecap="round">
        <path d="M34 92l-7 13M61 92l-7 13M88 92l-7 13"/>
      </g>${type === "sleet" ? `<g fill="#EAF8FF"><circle cx="34" cy="114" r="3"/><circle cx="67" cy="113" r="3"/></g>` : ""}`;
    else if (type === "snow") content = `<g transform="translate(5 0) scale(.92)">${cloud}</g>
      <g fill="#E5F7FF"><circle cx="27" cy="99" r="4"/><circle cx="54" cy="108" r="4"/><circle cx="84" cy="99" r="4"/></g>`;
    else if (type === "storm") content = `<g transform="translate(5 0) scale(.92)">${cloud}</g>
      <path d="M66 85H49l-9 22h14l-5 17 28-29H62Z" fill="#FFD05C"/>`;
    else content = `<g transform="translate(4 16)">${cloud}</g>`;

    return `<svg viewBox="0 0 126 126" xmlns="http://www.w3.org/2000/svg">${defs}${content}</svg>`;
  };

  const formatTemp = value => Number.isFinite(Number(value)) ? Math.round(Number(value)) : "—";

  function renderChart(times, values) {
    const points = values.map((value, index) => ({
      value: Number(value),
      time: times[index] || "",
      index
    })).filter(point => Number.isFinite(point.value));

    if (!points.length) {
      $("chartWrap").innerHTML = '<div class="chart-empty">Hourly temperatures are unavailable.</div>';
      return;
    }

    const svg = $("chart");
    const width = 1060;
    const height = 194;
    const pad = { left: 30, right: 30, top: 25, bottom: 38 };
    const minValue = Math.floor(Math.min(...points.map(p => p.value)) - 2);
    const maxValue = Math.ceil(Math.max(...points.map(p => p.value)) + 2);
    const span = Math.max(4, maxValue - minValue);
    const x = index => pad.left + (index / Math.max(1, values.length - 1)) * (width - pad.left - pad.right);
    const y = value => pad.top + ((maxValue - value) / span) * (height - pad.top - pad.bottom);

    const line = points.map((p, i) => `${i ? "L" : "M"}${x(p.index).toFixed(1)},${y(p.value).toFixed(1)}`).join(" ");
    const area = `${line} L${x(points[points.length - 1].index).toFixed(1)},${height - pad.bottom} L${x(points[0].index).toFixed(1)},${height - pad.bottom} Z`;

    const tickIndexes = [0, 3, 6, 9, 12, 15, 18, 21, 23].filter(i => i < values.length);
    const ticks = tickIndexes.map(i => {
      const value = Number(values[i]);
      const hour = (times[i] && times[i].includes("T")) ? times[i].split("T")[1].slice(0, 5) : `${String(i).padStart(2, "0")}:00`;
      return `<g>
        <line x1="${x(i)}" y1="${height - pad.bottom}" x2="${x(i)}" y2="${height - pad.bottom + 5}" stroke="rgba(255,255,255,.22)"/>
        <text x="${x(i)}" y="${height - 13}" text-anchor="middle" fill="rgba(231,241,255,.56)" font-size="10">${hour}</text>
        ${Number.isFinite(value) ? `<circle cx="${x(i)}" cy="${y(value)}" r="4" fill="#EAF8FF" stroke="#68C6FF" stroke-width="2"/>
        <text x="${x(i)}" y="${Math.max(12, y(value) - 11)}" text-anchor="middle" fill="rgba(248,251,255,.88)" font-size="11" font-weight="650">${Math.round(value)}°</text>` : ""}
      </g>`;
    }).join("");

    svg.setAttribute("viewBox", `0 0 ${width} ${height}`);
    svg.setAttribute("preserveAspectRatio", "none");
    svg.innerHTML = `
      <defs>
        <linearGradient id="areaGradient" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0" stop-color="#67C9FF" stop-opacity=".35"/>
          <stop offset="1" stop-color="#67C9FF" stop-opacity="0"/>
        </linearGradient>
        <linearGradient id="lineGradient" x1="0" y1="0" x2="1" y2="0">
          <stop stop-color="#62C7FF"/><stop offset=".58" stop-color="#A7E3E6"/><stop offset="1" stop-color="#FFD06A"/>
        </linearGradient>
      </defs>
      <path d="${area}" fill="url(#areaGradient)"/>
      <path d="${line}" fill="none" stroke="url(#lineGradient)" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"/>
      ${ticks}`;
  }

  async function loadWeather() {
    try {
      if (!requestedDateObject && params.has("date")) throw new Error("The requested date is invalid. Use the format YYYY-MM-DD.");

      const response = await fetch(`${endpoint}?${query}`, {
        method: "GET",
        headers: { "Accept": "application/json" }
      });
      if (!response.ok) throw new Error(`The weather service returned an error (${response.status}).`);

      const data = await response.json();
      if (data.error) throw new Error(data.reason || "The weather service could not process this request.");

      const max = Number(data?.daily?.temperature_2m_max?.[0]);
      const min = Number(data?.daily?.temperature_2m_min?.[0]);
      const code = Number(data?.daily?.weather_code?.[0]);
      const times = Array.isArray(data?.hourly?.time) ? data.hourly.time : [];
      const temperatures = Array.isArray(data?.hourly?.temperature_2m) ? data.hourly.temperature_2m : [];

      if (!Number.isFinite(max) || !Number.isFinite(min)) {
        throw new Error("No daily weather data is available for this date.");
      }

      const condition = conditions[code] || ["Weather conditions unavailable", "cloud"];
      $("condition").textContent = condition[0];
      $("weatherIcon").innerHTML = iconSVG(condition[1]);
      $("maxTemp").textContent = formatTemp(max);
      $("minTemp").textContent = formatTemp(min);
      $("rangeLow").textContent = `${formatTemp(min)}°`;
      $("rangeHigh").textContent = `${formatTemp(max)}°`;
      $("rangeAmount").textContent = `${Math.round((max - min) * 10) / 10}° span`;
      $("rangeNote").textContent = max - min >= 10
        ? "A broad temperature swing is expected across the day."
        : "Temperatures are expected to remain relatively steady through the day.";

      renderChart(times, temperatures);
      $("loading").style.display = "none";
    } catch (error) {
      $("loading").style.display = "none";
      $("error").style.display = "grid";
      $("errorMessage").textContent = error?.message || "Please check the requested location and date, then try again.";
    }
  }

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

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

bytes 总计20,747html / css / js2,484 / 7,607 / 10,656
dom 节点54dom 深度11
css 规则53含 js
brightness51.7contrast23.3
colorfulness21.4留白57.1%

该 slot 的 telemetry

prompt tokens0completion tokens0
total tokens0wall48.1 s
costrequest id
config.json562 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "gpt-5.6-sol-eff-low--cli--kiro--dev",
  "effort": "low",
  "family": "gpt",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "gpt-5.6-sol",
  "protocol": "cli",
  "served_model": "gpt-5.6-sol",
  "telemetry": {
    "completion_tokens": null,
    "cost_usd": null,
    "prompt_tokens": null,
    "total_tokens": null,
    "wall_ms": 169853
  },
  "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-sol-eff-low--cli--kiro--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-18T18:29:16.600033+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:28:36.703697+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:30:09.257316+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:29:21.094320+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:30:57.197621+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:30:12.968704+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-18T18:31:38.851179+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-18T18:31:00.999328+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
    }
  }
}