Clear all generated tokens and start over from your prompt.
Useful after tweaking TEMP or when the model says something cursed.
>}
shortcut="R"
>
{playing ? 'Freeze the animation where it is.' : 'Start the pipeline animating.'}
{playing ? 'Good moment to drag TEMP and watch the probabilities panic.' : 'Or tap → to creep forward one stage at a time.'}
>}
shortcut="SPACE"
>
{playing ? : }
{playing ? 'PAUSE' : 'PLAY'}
Pause and advance exactly one stage forward.
The patient way to actually see what's happening.
>}
shortcut="→"
>
);
}
const TransportBtn = React.forwardRef(function TransportBtn({ children, onClick, primary, playing, onMouseEnter, onMouseLeave, onFocus, onBlur }, ref) {
const [hover, setHover] = React.useState(false);
// Primary (play/pause): outlined-with-glow when playing, filled when paused (invites click).
// The pulse on the whole bar + the stage progress already signal "playing" — keep this quiet during motion.
let bg, color, shadow;
if (primary) {
if (playing) {
bg = hover ? 'color-mix(in oklch, var(--ink) 18%, transparent)' : 'color-mix(in oklch, var(--ink) 10%, transparent)';
color = 'var(--ink)';
shadow = hover ? '0 0 14px color-mix(in oklch, var(--ink) 40%, transparent), inset 0 0 8px color-mix(in oklch, var(--ink) 18%, transparent)' : 'inset 0 0 6px color-mix(in oklch, var(--ink) 14%, transparent)';
} else {
bg = hover ? 'var(--ink)' : 'color-mix(in oklch, var(--ink) 88%, transparent)';
color = 'var(--bg)';
shadow = '0 0 12px color-mix(in oklch, var(--ink) 45%, transparent)';
}
} else {
bg = hover ? 'rgba(140,255,160,0.12)' : 'transparent';
color = 'var(--ink)';
shadow = 'none';
}
return (
);
});
function AutoScrollToggle({ on, onToggle }) {
const [hover, setHover] = React.useState(false);
const active = !!on;
// Follows the same "outlined monospace chip, filled when active" vocabulary as the brand chip / HELP.
return (
Auto-scroll the panel view to the stage that's currently running.
Currently {active ? 'ON' : 'OFF'} — leash is {active ? 'attached' : 'off'}.
>}
shortcut="F"
>
);
}
function StagePath({ stepIdx, progress, onJumpStage }) {
const descriptions = [
'Chop the prompt into token IDs the model can read. Spaces are tokens too. Sorry.',
'Turn each token ID into a high-dimensional vector — coordinates in a meaning-space where similar words sit near each other.',
'Every token looks at every other token. This is where the magic happens, and also most of the compute.',
'Feed-forward layers process each position independently. Nobody really knows what they learn.',
'Turn the final vector into probabilities, roll the dice, pick the next token.',
];
return (