agent ui: terminal-themed live panel; pretty tool calls; collapsed results

- tool_use renders per-tool (Read /path, Bash $ cmd, send → operator: ...)
- tool_result with >120 chars collapses into <details>; short ones inline
- session_init / result / rate_limit dropped from the panel
- thinking content shown inline if present, fallback indicator otherwise
- TurnStart carries unread count → header badge "· 3 unread"
- per-tool [status] line dropped from envelope; lives in wake prompt + UI
- send form moved below the live panel
- live panel themed as a terminal (crust bg, inset shadow, monospace)
This commit is contained in:
müde 2026-05-15 18:20:58 +02:00
parent d8807b8e8c
commit ace13cd785
7 changed files with 191 additions and 87 deletions

View file

@ -113,6 +113,20 @@ pre.diff {
word-break: break-all;
max-height: 30em;
}
/* Terminal-ish look for the live panel. Crust as bg (almost-black),
slightly inset, mauve phosphor glow. */
.live.terminal {
background: #11111b;
border: 1px solid var(--purple-dim);
box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.7);
border-radius: 4px;
padding: 0.8em 1em;
overflow-y: auto;
max-height: 32em;
font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Source Code Pro", monospace;
font-size: 0.92em;
color: #cdd6f4;
}
.live {
background: rgba(255, 255, 255, 0.02);
border: 1px solid var(--purple-dim);
@ -121,6 +135,43 @@ pre.diff {
max-height: 32em;
font-family: inherit;
}
.live .unread-badge {
color: var(--amber);
font-weight: normal;
margin-left: 0.6em;
font-size: 0.85em;
text-shadow: 0 0 6px rgba(250, 179, 135, 0.55);
}
details.row {
white-space: normal;
padding-left: 0.5em;
}
details.row > summary {
cursor: pointer;
color: var(--muted);
list-style: none;
white-space: pre-wrap;
word-break: break-word;
}
details.row > summary::before {
content: '▸ ';
color: var(--muted);
display: inline-block;
width: 1em;
}
details.row[open] > summary::before { content: '▾ '; }
details.row.tool-result-block > summary { color: var(--muted); }
details.row > pre.tool-body {
margin: 0.3em 0 0.4em 1.2em;
padding: 0.4em 0.6em;
background: rgba(255, 255, 255, 0.03);
border-left: 2px solid var(--purple-dim);
color: var(--fg);
white-space: pre-wrap;
word-break: break-word;
max-height: 22em;
overflow-y: auto;
}
.live .row {
white-space: pre-wrap;
word-break: break-word;