The /ai surface now renders agent-ui primitives instead of homegrown
tool/typing widgets:
- AgentAvatar with activity (thinking / working / waiting / speaking /
idle) replaces TypingIndicator. Pulses while the model is generating,
shows "waiting" while a write is held for confirmation, "working" while
a confirmed write is executing, "speaking" once tokens are streaming.
- ToolCallCard renders each native tool_call with typed status (pending
/ running / success / error). Built from the assistant message's
toolCalls plus the matching tool result message. Tool messages no
longer render standalone — absorbed into their parent assistant turn.
- Empty assistant bubbles (no prose, only tool_calls) collapse so the
ToolCallCards carry the visual weight.
Wiring: add @crema/agent-ui path entry to tsconfig and @source line to
app.css. Sibling lib-agent-ui must be cloned next to arcadia-admin.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>