Start at the screen, not the model.
What does the user actually need to do faster? Most of the work is deciding where AI belongs, and where a plain button is better. Then a streaming UI with real loading, error and empty states.
// app/assistant/page.tsx
const { messages, sendMessage } = useChat();