async function runProfile(version,width,height,theme){
const tabId=load('tab'), label=version+'-'+width+'x'+height+'-'+theme, records=load('records'), artifacts=load('artifacts');
const call=async(name,args)=>{const at=new Date().toISOString();const r=await tools[name]({tabId,...args});records.push({label,action:name,args,at,data:r.structuredContent||r});store('records',records);if(r.isError)throw new Error(JSON.stringify(r));return r.structuredContent||r};
const ev=async(expression)=>call('mcp__t3_code__preview_evaluate',{expression,awaitPromise:true});
const settle=async(ms=300)=>ev('new Promise(r=>setTimeout(()=>requestAnimationFrame(()=>requestAnimationFrame(()=>r(true))),'+ms+'))');
const measure=async(chapter)=>{const r=await ev(load('measure'));records[records.length-1].chapter=chapter;store('records',records);return r.value};
const shot=async(chapter)=>{const r=await call('mcp__t3_code__preview_snapshot',{save:true});artifacts.push({label:label+'-'+chapter,...r});store('artifacts',artifacts)};
const click=async(selector)=>call('mcp__t3_code__preview_click',{locator:selector.includes('data-v2-item-type')?selector+' > div:first-child':selector,timeoutMs:3000});
const ensure=async(sel,open)=>{const r=await ev('document.querySelector('+JSON.stringify(sel)+')?.getAttribute("aria-expanded")');if(r.value!==String(open))await click(sel)};
const position=async(sel,y)=>{await ev('(()=>{const s=document.querySelector(".messages-timeline-scroll"),e=document.querySelector('+JSON.stringify(sel)+');if(!e)throw Error("missing target");s.scrollTop+=e.getBoundingClientRect().top-'+y+';return s.scrollTop})()');await settle()};
const cmd='[data-v2-item-type="command_execution"][aria-expanded]', reason='[data-v2-item-type="reasoning"][aria-expanded]', group='button[aria-label="Ran 1 command"]', fold='[data-timeline-row-kind="turn-fold"] button';
const rec=await call('mcp__t3_code__preview_recording_start',{});
artifacts.push({label,startedAt:rec.startedAt,type:'recording'});store('artifacts',artifacts);
await call('mcp__t3_code__preview_resize',{mode:'freeform',width,height});
await call('mcp__t3_code__preview_set_appearance',{colorScheme:theme});
await ev('(()=>{if(!window.__evidenceDate){window.__evidenceDate=Date;const D=Date;window.Date=class extends D{constructor(...a){super(...(a.length?a:["2026-10-24T12:00:00Z"]))}static now(){return new D("2026-10-24T12:00:00Z").getTime()}}}return new Date().toISOString()})()');
await settle();
const sidebar=await ev('document.querySelector("button[aria-label=\\"Toggle main sidebar\\"]")?.getAttribute("aria-pressed")');if(sidebar.value==='true')await call('mcp__t3_code__preview_click',{locator:'role=button[name="Toggle main sidebar"]'});
await position(fold,120);await ensure(fold,true);await settle();await ensure(group,true);await settle();await ensure(cmd,false);await ensure(reason,false);
await position(cmd,width===1440?600:Math.min(544,height-250));
await measure('F1-nested-command-away-pre');await shot('command-pre');
await click(cmd);await settle(100);await measure('F1-command-two-frames');await settle(3500);await measure('F1-command-after-3s');await shot('command-open');
await click(cmd);await settle();await measure('F1-command-collapse');
await position(reason,width===1440?600:Math.min(544,height-250));
await measure('F2-nested-reasoning-pre');await click(reason);await settle(3500);await measure('F2-nested-reasoning-open');await shot('reasoning-open');
await click(reason);await settle();await measure('F2-collapse');
await position(group,width===1440?620:height-280);await ensure(group,false);await settle();await position(group,width===1440?620:height-280);await measure('F4-group-pre');await click(group);await settle(3500);await measure('F4-group-open');await shot('group-open');
await position(cmd,Math.min(600,height-250));await ev('document.querySelector('+JSON.stringify(cmd)+').focus()');await call('mcp__t3_code__preview_press',{key:'Enter'});await settle();await measure('F1-keyboard-enter');
await call('mcp__t3_code__preview_press',{key:'Space'});await settle();await measure('F1-keyboard-space');
await position(fold,120);await ensure(fold,false);await settle();await measure('F6-fold-collapse');await click(fold);await settle();await measure('F6-fold-reopen');
await ensure(group,true);await ensure(cmd,false);await ensure(reason,false);
await ev('(()=>{const s=document.querySelector(".messages-timeline-scroll");s.scrollTop=s.scrollHeight;return s.scrollTop})()');await settle();await measure('F1-at-end-before-scroll-to-target');
await measure('F1-at-end-pre');await click(cmd);await settle(3500);await measure('F1-at-end-open');await shot('at-end-open');await click(cmd);await settle();await measure('F1-at-end-collapse');await position(cmd,150);await measure('F7-no-overflow-pre');await click(cmd);await settle();await measure('F7-command-already-fits-open');await shot('no-overflow-open');
await call('mcp__t3_code__preview_resize',{mode:'freeform',width,height:320});await settle(3500);await measure('F7-short-viewport-tall-trigger');await shot('short-viewport');
await call('mcp__t3_code__preview_resize',{mode:'freeform',width,height});await settle();await click(cmd);await settle();await measure('F8-resize-recovery');
const stopped=await call('mcp__t3_code__preview_recording_stop',{});artifacts.push({label:label+'-reel',...stopped});store('artifacts',artifacts);
return {label,recording:stopped.path,measurements:records.filter(r=>r.label===label&&r.chapter).length};
}
