@accurix/centrinfo-chat-app
v3.0.0
Published
Full-page, authenticated Centrinfo AI chat application SDK.
Downloads
316
Maintainers
Readme
@accurix/centrinfo-chat-app
Full-page, authenticated AI chat application for customer portals. It is a separate UI from the floating messenger and shares the same governed chat runtime, identity, streaming, history, charts, and source permissions.
Most customers should install the unified package and use its chat entry point:
import { createCentrinfo } from '@accurix/centrinfo';
import { chat } from '@accurix/centrinfo/chat';
const centrinfo = createCentrinfo({
publicWidgetToken: 'pub_...',
customerAppId: '...',
getIdentityToken: () =>
fetch('/api/centrinfo/token', { credentials: 'include' }).then((response) => response.json()),
features: [chat()],
});
const application = await centrinfo.chat.mountFullPage('#ai-assistant', {
sidebar: 'collapsed',
userLabel: 'Alex Kim',
userDetail: '[email protected]',
userAvatarUrl: 'https://customer-app.example/alex.png',
assistantAvatarUrl: 'https://customer-app.example/assistant.png',
attachments: true,
});The navigation modes are:
collapsed(default): safe beside the host application's sidebar.expanded: shows searchable conversation history. Authenticated history is restored from the backend; anonymous history remains browser-local.hidden: removes all Centrinfo navigation; the host can callapplication.expandSidebar()when needed.
The application can also be installed directly:
import { createChatApplication } from '@accurix/centrinfo-chat-app';Styling, avatars, and attachments
Full-page chat inherits SDK theme tokens from createCentrinfo and can also
receive session-specific display fields at mount time.
const centrinfo = createCentrinfo({
publicWidgetToken: 'pub_...',
applicationId: '...',
getIdentityToken,
features: [chat()],
theme: {
accent: '#2563eb',
background: '#f8fafc',
surface: '#ffffff',
text: '#101827',
border: '#dbe4ee',
radius: '16px',
fontFamily: 'Avenir Next, sans-serif',
},
});
await centrinfo.chat.mountFullPage('#ai-assistant', {
sidebar: 'collapsed',
userLabel: currentUser.name,
userDetail: currentUser.email,
userAvatarUrl: currentUser.avatarUrl,
assistantAvatarUrl: '/brand/assistant-avatar.png',
attachments: true,
});The assistant avatar normally comes from the SDK application bootstrap after an
admin uploads it in Centrinfo. assistantAvatarUrl is a host fallback. The
customer avatar is optional and comes from the host application. When
attachments are enabled, users can attach supported images, PDFs, text files,
and CSVs; extracted text is sent with the next message.
The signing private key remains on the host backend. Only the short-lived
identity token is returned to the browser. Keep externalUserId stable for a
customer so their retained conversations can be restored in another browser
or device. Call the shared runtime's centrinfo.logout() when the host session
ends; use the mounted application's shutdown() on shared devices to remove
its local cache as well.
