frontend: Claude-style AI chat (tool cards, reasoning, queue, suggestions)

Wire the existing ai-elements into the chat:
- collapsible tool-call cards (name, params, result, status) for native tool
  parts on the streamed path
- a reasoning block (shimmer while thinking, "Thought for Ns") when the model
  emits reasoning; backend forwards it via toUIMessageStream({ sendReasoning })
- a message queue: typing + Enter while the assistant is responding queues the
  message (shown above the input, removable) and auto-sends when it goes idle
- starter suggestion chips on the empty state, each tied to a tool

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalid Abdi
2026-06-14 20:06:57 +03:00
parent d096c4fe9d
commit 9086867782
4 changed files with 134 additions and 5 deletions
@@ -772,6 +772,16 @@
"patientNotFound": "I couldn't find a patient with file number {{fileNumber}}.",
"thinking": "Thinking…",
"steps": "Steps",
"suggestions": {
"schedule": "Show today's schedule",
"tasks": "List open tasks",
"prescriptions": "Show recent prescriptions",
"import": "Import a patient database"
},
"queue": {
"label": "Queued · {{count}}",
"remove": "Remove from queue"
},
"veil": {
"title": "Veil",
"body": "This message will be processed by {{provider}}, an external provider. Veil de-identifies patient information (names, MRNs, providers) before it leaves your infrastructure, and restores it in the answer.",