Agentoria

UI components

ChatPanel, the admin dashboard, and an opt-in theme you can override or ignore.

@agentoria/ui is optional, lightly-structured React components. They ship unstyled — structural markup with data-agentoria hooks — and you opt into a default theme, or write your own CSS.

ChatPanel

The full chat experience over useAgentChat — streaming text, markdown, tool traces, a rich composer (attachments · voice · stop · regenerate), and generative UI:

'use client';
import { ChatPanel, AgentoriaStyles } from '@agentoria/ui';

export default function Page() {
  return (
    <>
      <AgentoriaStyles />
      <ChatPanel
        endpoint="/api/agent"
        placeholder="Ask anything…"
        initialHistory={[{ role: 'assistant', content: 'Hi! How can I help?' }]}
        onFeedback={(index, rating) => save(index, rating)}
      />
    </>
  );
}

Slots

Every part is overridable via components — bring your own Message, Composer, ToolTrace, Error, or text renderer while keeping the transport:

<ChatPanel endpoint="/api/agent" components={{ Message: MyBubble, Composer: MyComposer }} />

MetricsDashboard

The admin view from your telemetry stats — stat tiles, a calls/errors trend, outcome pills, and per-model / per-tool tables:

<MetricsDashboard stats={stats} tools={tools} toolOutcomes={outcomes} />

Companions: <TrendChart/> (dual-line SVG), <LlmCallLog/> (expandable per-call debug log), <TraceTimeline/> (span waterfall), <ToolMetricsTable/>.

Theming

Render <AgentoriaStyles/> once for a clean default. Customize by overriding the --ao-* CSS variables — no rebuild, no fork:

[data-agentoria] {
  --ao-accent: #7c3aed;
  --ao-radius: 14px;
}

Or skip the theme entirely and style the data-agentoria / data-role / data-status attributes yourself.

On this page