mimo-v2.5 · opencode
opencode
- config
- mimo-v2.5--cli--opencode--dev
- batch
- 2026-07-19--unified
- transport
- opencode-cli-isolated-xdg-go-subscription
- protocol
- cli · plan
- served model
- mimo-v2.5
- captured
- Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe

The screenshot is the exact frozen pixels the similarity channels measured. Run live re-executes the raw output in a sandboxed iframe; its rendering depends on your browser and fonts and is not guaranteed to match the measured pixels.
similarity neighbors
nearest
mimo-v2.5 · go0.64claude-sonnet-4-6 @max · kiro0.63claude-sonnet-5 @medium · kiro0.63mimo-v2.5-pro @none · api0.63minimax-m2.7 · opencode0.63farthest
gpt-5.6-luna @medium · codex-oauth0.41gpt-5.6-luna @high · kiro0.42gpt-5.6-sol @max · codex-oauth0.44gpt-5.6-terra @medium · kiro0.45gpt-5.6-sol @ultra · codex-oauth0.45within session 2026-07-19--unified
similarity measures convergence within this session — not quality.
Fidelity — does the card show the right data?
- namematch
- conditionmatch
- datematch
- max tempmatchshown: 25.3
- min tempmatchshown: 16
- hourlymatchcoverage 24/24 · 24 match · 0 mismatch · 0 not shown
- request sidematch0 violation(s)
extractor fidelity-extractor-v1+Berlin-2026-07-15
Source — raw model output, one byte unchanged
download card.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=1280">
<title>Weather Card</title>
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
--bg:#0f172a;--card:#1e293b;--card-accent:#334155;
--text:#f1f5f9;--text-dim:#94a3b8;--text-muted:#64748b;
--accent:#38bdf8;--accent-glow:rgba(56,189,248,.15);
--warm:#fb923c;--cool:#38bdf8;--danger:#f87171;
--radius:20px;--shadow:0 25px 60px -12px rgba(0,0,0,.5);
}
html,body{height:100%;width:100%}
body{
font-family:'SF Pro Display',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
background:var(--bg);color:var(--text);
display:flex;align-items:center;justify-content:center;
overflow:hidden;
}
body::before{
content:'';position:fixed;inset:0;
background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(56,189,248,.08),transparent 70%),
radial-gradient(ellipse 60% 50% at 80% 90%,rgba(251,146,60,.05),transparent 60%);
pointer-events:none;z-index:0;
}
.card{
position:relative;z-index:1;
width:720px;min-height:520px;
background:var(--card);
border-radius:var(--radius);
box-shadow:var(--shadow);
border:1px solid rgba(255,255,255,.06);
overflow:hidden;
display:flex;flex-direction:column;
}
/* top hero */
.hero{
position:relative;padding:40px 44px 32px;
background:linear-gradient(135deg,rgba(56,189,248,.12) 0%,rgba(251,146,60,.08) 100%);
border-bottom:1px solid rgba(255,255,255,.06);
}
.hero::after{
content:'';position:absolute;top:-60px;right:-60px;width:200px;height:200px;
background:radial-gradient(circle,rgba(56,189,248,.15),transparent 70%);
border-radius:50%;pointer-events:none;
}
.location{font-size:28px;font-weight:700;letter-spacing:-.3px;line-height:1.2}
.date-label{
font-size:14px;color:var(--text-dim);margin-top:6px;
font-weight:500;letter-spacing:.3px;text-transform:uppercase;
}
.temp-hero{
display:flex;align-items:flex-end;gap:20px;margin-top:28px;
}
.temp-now{font-size:72px;font-weight:200;line-height:1;letter-spacing:-3px}
.temp-now .unit{font-size:28px;font-weight:400;vertical-align:super;margin-left:2px;color:var(--text-dim)}
.temp-range{padding-bottom:10px;display:flex;flex-direction:column;gap:4px}
.temp-range span{font-size:15px;font-weight:500;display:flex;align-items:center;gap:6px}
.temp-range .hi{color:var(--warm)}
.temp-range .lo{color:var(--cool)}
.temp-range svg{width:16px;height:16px;flex-shrink:0}
/* weather condition */
.condition{
display:flex;align-items:center;gap:10px;margin-top:4px;
}
.condition-icon{font-size:32px;line-height:1}
.condition-text{font-size:15px;color:var(--text-dim);font-weight:500}
/* hourly section */
.hourly{padding:28px 44px 36px;flex:1;display:flex;flex-direction:column}
.hourly-title{
font-size:13px;font-weight:600;text-transform:uppercase;
letter-spacing:1.2px;color:var(--text-muted);margin-bottom:18px;
}
.hourly-scroll{
display:flex;gap:6px;overflow-x:auto;flex:1;align-items:flex-end;
padding-bottom:4px;
scrollbar-width:thin;scrollbar-color:var(--card-accent) transparent;
}
.hourly-scroll::-webkit-scrollbar{height:5px}
.hourly-scroll::-webkit-scrollbar-track{background:transparent}
.hourly-scroll::-webkit-scrollbar-thumb{background:var(--card-accent);border-radius:3px}
.hour-col{
display:flex;flex-direction:column;align-items:center;gap:6px;
min-width:48px;flex-shrink:0;
}
.hour-col .val{font-size:13px;font-weight:600;color:var(--text)}
.hour-col .bar-wrap{
width:6px;border-radius:3px;background:var(--card-accent);
position:relative;overflow:hidden;
min-height:60px;
}
.hour-col .bar{
position:absolute;bottom:0;left:0;right:0;border-radius:3px;
background:linear-gradient(to top,var(--cool),var(--warm));
transition:height .6s cubic-bezier(.22,1,.36,1);
}
.hour-col .lbl{font-size:11px;color:var(--text-muted);font-weight:500}
/* error state */
.error{
display:flex;flex-direction:column;align-items:center;justify-content:center;
padding:80px 44px;text-align:center;flex:1;gap:16px;
}
.error-icon{font-size:48px;opacity:.6}
.error-msg{font-size:18px;font-weight:600;color:var(--text-dim)}
.error-detail{font-size:14px;color:var(--text-muted);max-width:400px;line-height:1.5}
/* loading */
.loading{
display:flex;align-items:center;justify-content:center;flex:1;
gap:12px;padding:80px 0;
}
.spinner{
width:28px;height:28px;border:3px solid var(--card-accent);
border-top-color:var(--accent);border-radius:50%;
animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:15px;color:var(--text-dim);font-weight:500}
/* WMO weather codes */
.wmo-icon{font-size:32px;line-height:1}
</style>
</head>
<body>
<div class="card" id="card">
<div class="loading" id="loading">
<div class="spinner"></div>
<span class="loading-text">Loading weather…</span>
</div>
</div>
<script>
(function(){
var params=new URLSearchParams(window.location.search);
var lat=parseFloat(params.get('lat'))||52.52;
var lon=parseFloat(params.get('lon'))||13.405;
var name=params.get('name')||'Berlin';
var dateParam=params.get('date');
var today=new Date();
var yyyy=today.getUTCFullYear();
var mm=String(today.getUTCMonth()+1).padStart(2,'0');
var dd=String(today.getUTCDate()).padStart(2,'0');
var todayStr=yyyy+'-'+mm+'-'+dd;
var date=dateParam||todayStr;
function isPast(d){return d<todayStr}
function isToday(d){return d===todayStr}
var endpoint=isPast(date)?'/api/om/archive':'/api/om/forecast';
var qs='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 wmoIcons={0:'☀️',1:'🌤️',2:'⛅',3:'☁️',45:'🌫️',48:'🌫️',
51:'🌦️',53:'🌧️',55:'🌧️',56:'🌧️',57:'🌧️',
61:'🌧️',63:'🌧️',65:'🌧️',66:'🌧️',67:'🌧️',
71:'🌨️',73:'🌨️',75:'🌨️',77:'🌨️',
80:'🌦️',81:'🌧️',82:'⛈️',85:'🌨️',86:'🌨️',
95:'⛈️',96:'⛈️',99:'⛈️'};
var wmoDesc={0:'Clear sky',1:'Mainly clear',2:'Partly cloudy',3:'Overcast',
45:'Foggy',48:'Rime fog',51:'Light drizzle',53:'Moderate drizzle',55:'Dense drizzle',
56:'Freezing drizzle',57:'Heavy freezing drizzle',
61:'Light rain',63:'Moderate rain',65:'Heavy rain',
66:'Freezing rain',67:'Heavy freezing rain',
71:'Light snow',73:'Moderate snow',75:'Heavy snow',77:'Snow grains',
80:'Light showers',81:'Moderate showers',82:'Violent showers',
85:'Light snow showers',86:'Heavy snow showers',
95:'Thunderstorm',96:'Thunderstorm w/ hail',99:'Severe thunderstorm w/ hail'};
function fmtDate(d){
var p=d.split('-');
var dt=new Date(Date.UTC(+p[0],+p[1]-1,+p[2]));
var days=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months=['January','February','March','April','May','June','July','August','September','October','November','December'];
return days[dt.getUTCDay()]+', '+months[dt.getUTCMonth()]+' '+dt.getUTCDate()+', '+dt.getUTCFullYear();
}
function render(data){
var card=document.getElementById('card');
var daily=data.daily;
var hourly=data.hourly;
var idx=0;
var hi=daily.temperature_2m_max[idx];
var lo=daily.temperature_2m_min[idx];
var code=daily.weather_code[idx];
var icon=wmoIcons[code]||'🌡️';
var desc=wmoDesc[code]||'Unknown';
var temps=hourly.temperature_2m;
var tMin=Math.min.apply(null,temps);
var tMax=Math.max.apply(null,temps);
var tRange=tMax-tMin||1;
var hourlyHTML='';
for(var i=0;i<temps.length;i++){
var t=temps[i];
var pct=Math.max(8,((t-tMin)/tRange)*100);
var h=i;
var lbl=String(h).padStart(2,'0')+':00';
hourlyHTML+='<div class="hour-col">'
+'<span class="val">'+t.toFixed(1)+'°</span>'
+'<div class="bar-wrap"><div class="bar" style="height:'+pct+'%"></div></div>'
+'<span class="lbl">'+lbl+'</span>'
+'</div>';
}
card.innerHTML=''
+'<div class="hero">'
+ '<div class="location">'+esc(name)+'</div>'
+ '<div class="date-label">'+fmtDate(date)+(isToday(date)?' — Today':'')+'</div>'
+ '<div class="temp-hero">'
+ '<div class="temp-now">'+hi.toFixed(1)+'<span class="unit">°C</span></div>'
+ '<div class="temp-range">'
+ '<span class="hi">'
+ '<svg viewBox="0 0 16 16" fill="none"><path d="M8 3v8M4.5 7.5L8 4l3.5 3.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>'
+ 'High '+hi.toFixed(1)+'°'
+ '</span>'
+ '<span class="lo">'
+ '<svg viewBox="0 0 16 16" fill="none"><path d="M8 11V3M4.5 6.5L8 10l3.5-3.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>'
+ 'Low '+lo.toFixed(1)+'°'
+ '</span>'
+ '</div>'
+ '</div>'
+ '<div class="condition">'
+ '<span class="condition-icon">'+icon+'</span>'
+ '<span class="condition-text">'+desc+'</span>'
+ '</div>'
+'</div>'
+'<div class="hourly">'
+ '<div class="hourly-title">Hourly Temperature</div>'
+ '<div class="hourly-scroll">'+hourlyHTML+'</div>'
+'</div>';
// animate bars
requestAnimationFrame(function(){
var bars=card.querySelectorAll('.bar');
bars.forEach(function(b){
var h=b.style.height;b.style.height='0%';
requestAnimationFrame(function(){b.style.height=h});
});
});
}
function showError(msg,detail){
var card=document.getElementById('card');
card.innerHTML=''
+'<div class="error">'
+ '<div class="error-icon">⚠️</div>'
+ '<div class="error-msg">'+esc(msg)+'</div>'
+ '<div class="error-detail">'+esc(detail||'')+'</div>'
+'</div>';
}
function esc(s){return s.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')}
fetch(endpoint+'?'+qs)
.then(function(r){
if(!r.ok)throw new Error('HTTP '+r.status);
return r.json();
})
.then(function(data){
if(data.error)throw new Error(data.reason||'API error');
render(data);
})
.catch(function(e){
showError('Unable to load weather data',
'Could not fetch weather for '+esc(name)+' on '+date+'. '+esc(e.message));
});
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 10,786 | html / css / js | 371 / 4,772 / 5,643 |
|---|---|---|---|
| dom nodes | 12 | dom depth | 5 |
| css rules | 42 | js present | yes |
| brightness | 33.7 | contrast | 16.2 |
| colorfulness | 13.7 | whitespace | 79.8% |
This slot's telemetry
| prompt tokens | 0 | completion tokens | 0 |
|---|---|---|---|
| total tokens | 0 | wall | 45.5 s |
| cost | — | request id | — |
config.json565 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_OPENCODE_KEY",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "mimo-v2.5--cli--opencode--dev",
"effort": null,
"family": "mimo",
"m": {
"min": 2,
"q": 2
},
"model_id": "mimo-v2.5",
"protocol": "cli",
"served_model": "mimo-v2.5",
"telemetry": {
"completion_tokens": null,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 157483
},
"transport": "opencode-cli-isolated-xdg-go-subscription",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-20--refill2-oc-mimo-v2.5",
"config_id": "mimo-v2.5--cli--opencode--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-20T10:57:07.036246+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-20T10:56:21.494340+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-20T10:57:27.334333+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-20T10:57:11.566062+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-20T10:57:49.990713+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-20T10:57:31.044165+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-20T10:59:11.095795+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-20T10:57:53.865350+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
}
}
}