Skip to content

Core Concepts ​

This page explains the domain model behind @cognipeer/chat-ui.

Chat session ​

A session represents one conversational thread between user and assistant. Session metadata is used by the history sidebar and backend APIs.

Message model ​

Each message has a role and content. Common roles:

  • user
  • assistant
  • system (optional, backend-oriented)
  • tool-related metadata for visualization

Messages can include:

  • plain text content
  • markdown-formatted content
  • optional attachments
  • optional tool call traces

Streaming lifecycle ​

For streamed responses, one assistant message is usually created and continuously appended as chunks arrive.

  • Initial placeholder message is inserted.
  • Stream chunks append to existing assistant content.
  • Completion event finalizes message state.
  • Error event updates UI with retry-safe state.

UI variants ​

  • Chat: full-featured UI with history and richer controls.
  • ChatMinimal: compact embedding with core chat loop only.

Choose based on your product surface and available screen space.

Theming model ​

The library uses preset theme modes (dark, light) plus token overrides via themeColors.

  • Prefer token overrides for brand adaptation.
  • Avoid per-component ad-hoc styling unless doing advanced customization.

Integration boundary ​

The UI library expects a compatible backend contract (typically @cognipeer/agent-server).

UI responsibilities:

  • display conversation state
  • collect user input
  • render streaming/tool updates

Backend responsibilities:

  • persistence
  • model execution
  • authorization and business logic

Studio · Pulse · Console · Agent SDK and more — the Cognipeer documentation hub