Lets the host app feed a small list of click-to-send prompts that the
dock shows above the empty composer on first chat. Solves the
"users don't know what to ask it" problem without baking the curation
into the lib — the app picks what to suggest (e.g. derived from the
agent's focus areas).
Changes:
- AgentRef gains optional starter_suggestions?: string[].
- Empty-bubbles render: when present, shows a "Try saying" header +
bulleted list of clickable rows (capped at 4 — more makes the
panel feel heavy). Click sends the prompt verbatim via the same
sendMessage path as the composer.
- Falls back to the existing "Ask anything." line when none provided.
- Subtle hint "Click any to send — or write your own." nudges
toward custom prompts.
Suggestions disappear naturally after the first message — the panel
only renders when bubbles is empty.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
resolveAgents() throwing once (e.g. tenant id not ready on the first
render) latched resolveFailed=true, and nothing ever cleared it — so
the FAB stayed hidden permanently even after a later retry succeeded.
Reset the flag at the start of each resolution attempt.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drives the dock with a mock transport that returns a canned reply
containing a rich table block — no network. Doubles as the design-
review surface and satisfies the crema-manifest demo requirement.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@crema/agent-dock-ui — a floating Sparkles FAB that opens a right-side
slide-over chat with an agents-platform agent. Extracted from
skyai-finance (the canonical dock) and made app-agnostic.
The shell, threading, compose box, and rich-block rendering (via
@crema/agent-ui's MessageBody) live here; the app injects identity
(resolveAgents), context (getPageContext → structured PageContext),
and transport (auth closed over inside it — the dock never sees a
token). Self-contained: raw slide-over + buttons styled with theme
tokens, no app-local shadcn dependency. Page context travels as a
structured field, never concatenated into the message.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>