// Demo: the assistant dock driven by a mock transport. No network — the // mock returns a canned reply with a rich table block so the card/table/ // tile/chart rendering (via @crema/agent-ui) is visible. Also the design- // review surface for the dock. import { AgentDock, type AgentDockTransport } from "../src" const mockTransport: AgentDockTransport = { async chat(_agentId, req) { await new Promise((r) => setTimeout(r, 700)) return { conversation_id: "demo-conversation", message: `You asked: **${req.user_message}**\n\n` + "Here's a rich block rendered inline:\n\n" + '```table { "id": "cities", "columns": [{"key":"city","label":"City"},{"key":"time","label":"Local time"}], "rows": [{"city":"Sydney","time":"09:00"},{"city":"London","time":"23:00"}] }\n```\n\n' + "Buttons inside cards/tiles send their value as your next message.", } }, } export default function AgentDockDemo() { return (
The Sparkles button is fixed bottom-right. Open it and send a message — the mock transport replies with a rich table block.