/** * Persona — display identity attached to messages and config. * * Used by `ChatMessage.sender`, `ChatConfig.user`, `ChatConfig.assistant`. */ export type ChatRole = 'user' | 'assistant' | 'system'; export interface ChatPersona { /** Display name. */ name?: string; /** Avatar image URL. */ avatarUrl?: string; /** Initials fallback when no avatar. Auto-derived from `name` if absent. */ initials?: string; /** Tooltip / aria description. */ description?: string; } export interface ChatUserContext extends ChatPersona { email?: string; language?: string; role?: string; /** Free-form custom data forwarded to transport metadata. */ custom?: Record; } export interface ChatAssistantContext extends ChatPersona { /** Model identifier (gpt-4o, claude-opus, …). */ model?: string; }