{"_id":"@accurix/centrinfo","_rev":"5-943e6d6a7c0a751bc0890e6faac8ab81","name":"@accurix/centrinfo","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.1":{"name":"@accurix/centrinfo","version":"0.1.1","keywords":["centrinfo","chat","analytics","liveboard","embed","sdk"],"license":"SEE LICENSE IN LICENSE.md","_id":"@accurix/centrinfo@0.1.1","maintainers":[{"name":"accurix","email":"accurixtech@gmail.com"}],"homepage":"https://github.com/accurix-tech/accurix-web#readme","bugs":{"url":"https://github.com/accurix-tech/accurix-web/issues"},"dist":{"shasum":"a98c9705aba14513e4ca120ae709c1ebcc103ce2","tarball":"https://registry.npmjs.org/@accurix/centrinfo/-/centrinfo-0.1.1.tgz","fileCount":21,"integrity":"sha512-FtyWoXLAQekrhDzitK9ZMU06GFJYa5WnZe3ULAC9pZeVM6WCjMwMeqCtMrpaXDrOJd0B7LWqaYjDl205xjYW2Q==","signatures":[{"sig":"MEYCIQD7XcuwQ47Zt66fKGZ5aUiGFRVz/YFwGnDDcH5izBO+zQIhAKSidpoW9TpIlMcuYJwWS2IiJ9HhgaocNUKjdnchvB0Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64077},"main":"./dist/index.cjs","type":"module","_from":"file:accurix-centrinfo-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./chat":{"types":"./dist/chat.d.ts","import":"./dist/chat.mjs","require":"./dist/chat.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.cjs"},"./liveboards":{"types":"./dist/liveboards.d.ts","import":"./dist/liveboards.mjs","require":"./dist/liveboards.cjs"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"eslint .","build":"tsdown --config tsdown.config.ts","test-unit":"vitest run","check-types":"tsc --noEmit","verify:release":"pnpm check-types && pnpm lint && pnpm test-unit && pnpm build"},"_npmUser":{"name":"accurix","email":"accurixtech@gmail.com"},"_resolved":"/tmp/74670a2fcc19c376447e86c2219a3812/accurix-centrinfo-0.1.1.tgz","_integrity":"sha512-FtyWoXLAQekrhDzitK9ZMU06GFJYa5WnZe3ULAC9pZeVM6WCjMwMeqCtMrpaXDrOJd0B7LWqaYjDl205xjYW2Q==","repository":{"url":"git+https://github.com/accurix-tech/accurix-web.git","type":"git","directory":"sdk/centrinfo"},"_npmVersion":"11.6.2","description":"Modular Centrinfo customer experience SDK for chat and governed analytics.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@accurix/centrinfo-widget":"^1.0.1","@accurix/centrinfo-chat-app":"^0.1.1","@accurix/centrinfo-analytics":"^0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.0.0","eslint":"^9.27.0","preact":"^10.27.0","tsdown":"^0.18.0","vitest":"^3.2.0","typescript":"^5.8.0","@accurix/web-config-eslint":"^0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/centrinfo_0.1.1_1784679681303_0.7770175709993856","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@accurix/centrinfo","version":"0.1.2","keywords":["centrinfo","chat","analytics","liveboard","embed","sdk"],"license":"SEE LICENSE IN LICENSE.md","_id":"@accurix/centrinfo@0.1.2","maintainers":[{"name":"accurix","email":"accurixtech@gmail.com"}],"homepage":"https://github.com/accurix-tech/accurix-web#readme","bugs":{"url":"https://github.com/accurix-tech/accurix-web/issues"},"dist":{"shasum":"d613a46efba44061f8927532b44599c5229ee707","tarball":"https://registry.npmjs.org/@accurix/centrinfo/-/centrinfo-0.1.2.tgz","fileCount":21,"integrity":"sha512-UstQ53pqaRPTRugRnNZCdj+NDCs3HbkbTA3loW0IQSY6d85sJ2rCZgw96jk+4QQXsuWtYauzpLZZiIC7qOweng==","signatures":[{"sig":"MEQCIFlsNb08zbyXV/Cx0wtH9pRnJisCHnLGyYOcBToO1tQXAiAVUcQix07GfUCaXP9kN3GGuT4PICqjFBsqynY14nmlLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69677},"main":"./dist/index.cjs","type":"module","_from":"file:accurix-centrinfo-0.1.2.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./chat":{"types":"./dist/chat.d.mts","import":"./dist/chat.mjs","require":"./dist/chat.cjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","require":"./dist/server.cjs"},"./liveboards":{"types":"./dist/liveboards.d.mts","import":"./dist/liveboards.mjs","require":"./dist/liveboards.cjs"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"eslint .","build":"tsdown --config tsdown.config.ts","test-unit":"vitest run","check-types":"tsc --noEmit","verify:release":"pnpm check-types && pnpm lint && pnpm test-unit && pnpm build"},"_npmUser":{"name":"accurix","email":"accurixtech@gmail.com"},"_resolved":"/tmp/218065ec606bcddfc20ebac419559906/accurix-centrinfo-0.1.2.tgz","_integrity":"sha512-UstQ53pqaRPTRugRnNZCdj+NDCs3HbkbTA3loW0IQSY6d85sJ2rCZgw96jk+4QQXsuWtYauzpLZZiIC7qOweng==","repository":{"url":"git+https://github.com/accurix-tech/accurix-web.git","type":"git","directory":"sdk/centrinfo"},"_npmVersion":"11.6.2","description":"Modular Centrinfo customer experience SDK for chat and governed analytics.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@accurix/centrinfo-widget":"^1.1.0","@accurix/centrinfo-chat-app":"^0.1.2","@accurix/centrinfo-analytics":"^0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.0.0","eslint":"^9.27.0","preact":"^10.27.0","tsdown":"^0.18.0","vitest":"^3.2.0","typescript":"^5.8.0","@accurix/web-config-eslint":"^0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/centrinfo_0.1.2_1786234703635_0.49155732957402565","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@accurix/centrinfo","version":"0.1.3","keywords":["centrinfo","chat","analytics","liveboard","embed","sdk"],"license":"SEE LICENSE IN LICENSE.md","_id":"@accurix/centrinfo@0.1.3","maintainers":[{"name":"accurix","email":"accurixtech@gmail.com"}],"homepage":"https://github.com/accurix-tech/accurix-web#readme","bugs":{"url":"https://github.com/accurix-tech/accurix-web/issues"},"dist":{"shasum":"d2fe159127f4f2815e6b576ac321b58442232fff","tarball":"https://registry.npmjs.org/@accurix/centrinfo/-/centrinfo-0.1.3.tgz","fileCount":21,"integrity":"sha512-uhDxvDYCoYdiCdA2PGk8FrUP3/fe5p8edKeh17m872wcb0xujqQjlEX1x2KFMu2u+UZvGnkgtDMlKrA8rdrImQ==","signatures":[{"sig":"MEYCIQC71SXT2rcV7lzR0JKqKTAMNguz+Ufb8Fmd/+c5ERcKuAIhANMij9ILMgo4ECxNdJvR+iDkRvMFQFfQVf37mNC19MTy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75047},"main":"./dist/index.cjs","type":"module","_from":"file:accurix-centrinfo-0.1.3.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./chat":{"types":"./dist/chat.d.mts","import":"./dist/chat.mjs","require":"./dist/chat.cjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","require":"./dist/server.cjs"},"./liveboards":{"types":"./dist/liveboards.d.mts","import":"./dist/liveboards.mjs","require":"./dist/liveboards.cjs"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"eslint .","build":"tsdown --config tsdown.config.ts","test-unit":"vitest run","check-types":"tsc --noEmit","verify:release":"pnpm check-types && pnpm lint && pnpm test-unit && pnpm build"},"_npmUser":{"name":"accurix","email":"accurixtech@gmail.com"},"_resolved":"/tmp/ca998eafd296c923066a06127a4c8b87/accurix-centrinfo-0.1.3.tgz","_integrity":"sha512-uhDxvDYCoYdiCdA2PGk8FrUP3/fe5p8edKeh17m872wcb0xujqQjlEX1x2KFMu2u+UZvGnkgtDMlKrA8rdrImQ==","repository":{"url":"git+https://github.com/accurix-tech/accurix-web.git","type":"git","directory":"sdk/centrinfo"},"_npmVersion":"11.6.2","description":"Modular Centrinfo customer experience SDK for chat and governed analytics.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@accurix/centrinfo-widget":"^1.1.0","@accurix/centrinfo-chat-app":"^0.1.2","@accurix/centrinfo-analytics":"^0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.0.0","eslint":"^9.27.0","preact":"^10.27.0","tsdown":"^0.18.0","vitest":"^3.2.0","typescript":"^5.8.0","@accurix/web-config-eslint":"^0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/centrinfo_0.1.3_1787265955711_0.0390081712145276","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@accurix/centrinfo","version":"0.2.0","keywords":["centrinfo","chat","analytics","liveboard","embed","sdk"],"license":"SEE LICENSE IN LICENSE.md","_id":"@accurix/centrinfo@0.2.0","maintainers":[{"name":"accurix","email":"accurixtech@gmail.com"}],"homepage":"https://github.com/accurix-tech/accurix-web#readme","bugs":{"url":"https://github.com/accurix-tech/accurix-web/issues"},"dist":{"shasum":"da20c6156ec8b78db5cf1da54ae979e7b9392618","tarball":"https://registry.npmjs.org/@accurix/centrinfo/-/centrinfo-0.2.0.tgz","fileCount":21,"integrity":"sha512-N6ii203CVt4WSPoeyQg4A3BhVHv8KUtN3s0MO4EA4lH5haxZEqtakVs0Pavs9d0WTUejFfaZEh/f+eOfghyYNA==","signatures":[{"sig":"MEUCIFnhfz4rNcnRnzP1pE9z/XUawBAhRGfIHnDMEHcXCqO1AiEA+vyCFkBD2W/5ZN9HMZ7E0Qgj0Wcwa0NTc7OQTkbiBgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88691},"main":"./dist/index.cjs","type":"module","_from":"file:accurix-centrinfo-0.2.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./chat":{"types":"./dist/chat.d.mts","import":"./dist/chat.mjs","require":"./dist/chat.cjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","require":"./dist/server.cjs"},"./liveboards":{"types":"./dist/liveboards.d.mts","import":"./dist/liveboards.mjs","require":"./dist/liveboards.cjs"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"eslint .","build":"tsdown --config tsdown.config.ts","test-unit":"vitest run","check-types":"tsc --noEmit","verify:release":"pnpm check-types && pnpm lint && pnpm test-unit && pnpm build"},"_npmUser":{"name":"accurix","email":"accurixtech@gmail.com"},"_resolved":"/tmp/f86bcad161a50fb95ef935e67849acfe/accurix-centrinfo-0.2.0.tgz","_integrity":"sha512-N6ii203CVt4WSPoeyQg4A3BhVHv8KUtN3s0MO4EA4lH5haxZEqtakVs0Pavs9d0WTUejFfaZEh/f+eOfghyYNA==","repository":{"url":"git+https://github.com/accurix-tech/accurix-web.git","type":"git","directory":"sdk/centrinfo"},"_npmVersion":"11.6.2","description":"Modular Centrinfo customer experience SDK for chat and governed analytics.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@accurix/centrinfo-widget":"^2.0.0","@accurix/centrinfo-chat-app":"^1.0.0","@accurix/centrinfo-analytics":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.0.0","eslint":"^9.27.0","preact":"^10.27.0","tsdown":"^0.18.0","vitest":"^3.2.0","typescript":"^5.8.0","@accurix/web-config-eslint":"^0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/centrinfo_0.2.0_1788306190134_0.9542806222931186","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@accurix/centrinfo","version":"0.4.0","private":false,"type":"module","sideEffects":false,"main":"./dist/index.cjs","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./chat":{"types":"./dist/chat.d.mts","import":"./dist/chat.mjs","require":"./dist/chat.cjs"},"./liveboards":{"types":"./dist/liveboards.d.mts","import":"./dist/liveboards.mjs","require":"./dist/liveboards.cjs"},"./server":{"types":"./dist/server.d.mts","import":"./dist/server.mjs","require":"./dist/server.cjs"},"./package.json":"./package.json"},"description":"Modular Centrinfo customer experience SDK for chat and governed analytics.","keywords":["centrinfo","chat","analytics","liveboard","embed","sdk"],"license":"SEE LICENSE IN LICENSE.md","repository":{"type":"git","url":"git+https://github.com/accurix-tech/accurix-web.git","directory":"sdk/centrinfo"},"dependencies":{"@accurix/centrinfo-chat-app":"^3.0.0","@accurix/centrinfo-widget":"^4.0.0","@accurix/centrinfo-analytics":"^3.0.0"},"devDependencies":{"eslint":"^9.27.0","jsdom":"^26.0.0","preact":"^10.27.0","tsdown":"^0.18.0","typescript":"^5.8.0","vitest":"^3.2.0","@accurix/web-config-eslint":"^0.0.0"},"module":"./dist/index.mjs","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsdown --config tsdown.config.ts","check-types":"tsc --noEmit","lint":"eslint .","test-unit":"vitest run","verify:release":"pnpm check-types && pnpm lint && pnpm test-unit && pnpm build"},"_id":"@accurix/centrinfo@0.4.0","bugs":{"url":"https://github.com/accurix-tech/accurix-web/issues"},"homepage":"https://github.com/accurix-tech/accurix-web#readme","_integrity":"sha512-4t2YqZzYItpvUjqhXtiAn4/4ZqIzDbbNFpZowh5RfySV9L3E7QPMxfDpJUROR+8Qh6pdi+m8Ug0xgPDpiUtk+A==","_resolved":"/tmp/8ce743b6e64b30a88b61ea2f66964ea6/accurix-centrinfo-0.4.0.tgz","_from":"file:accurix-centrinfo-0.4.0.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-4t2YqZzYItpvUjqhXtiAn4/4ZqIzDbbNFpZowh5RfySV9L3E7QPMxfDpJUROR+8Qh6pdi+m8Ug0xgPDpiUtk+A==","shasum":"8ec3c0639659c6ee26ae1eea79cedcab708cdd55","tarball":"https://registry.npmjs.org/@accurix/centrinfo/-/centrinfo-0.4.0.tgz","fileCount":21,"unpackedSize":88691,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDpxEA1u6UUY8PBzTOG6dkf1PO2MsiZC/3M6BRGsc+YeAiEA6DQrF2hMTVxfyo99D05cs92ov2+tOQyZRBOEXlidZDs="}]},"_npmUser":{"name":"accurix","email":"accurixtech@gmail.com"},"directories":{},"maintainers":[{"name":"accurix","email":"accurixtech@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/centrinfo_0.4.0_1788454554448_0.29936296237762994"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T00:21:21.038Z","modified":"2026-09-03T16:55:54.802Z","0.1.1":"2026-07-22T00:21:21.440Z","0.1.2":"2026-08-09T00:18:23.786Z","0.1.3":"2026-08-20T22:45:55.855Z","0.2.0":"2026-09-01T23:43:10.283Z","0.4.0":"2026-09-03T16:55:54.617Z"},"bugs":{"url":"https://github.com/accurix-tech/accurix-web/issues"},"license":"SEE LICENSE IN LICENSE.md","homepage":"https://github.com/accurix-tech/accurix-web#readme","keywords":["centrinfo","chat","analytics","liveboard","embed","sdk"],"repository":{"type":"git","url":"git+https://github.com/accurix-tech/accurix-web.git","directory":"sdk/centrinfo"},"description":"Modular Centrinfo customer experience SDK for chat and governed analytics.","maintainers":[{"name":"accurix","email":"accurixtech@gmail.com"}],"readme":"# `@accurix/centrinfo`\n\nOne modular SDK for Centrinfo chat and governed customer analytics. Import only\nthe feature entry points used by the host application.\n\n```bash\npnpm add @accurix/centrinfo\n```\n\n```ts\nimport { createCentrinfo } from '@accurix/centrinfo';\nimport { chat } from '@accurix/centrinfo/chat';\nimport { liveboards } from '@accurix/centrinfo/liveboards';\n\nconst centrinfo = createCentrinfo({\n  publicWidgetToken: 'pub_...',\n  applicationId: '...',\n  theme: {\n    accent: '#2563eb',\n    background: '#f8fafc',\n    surface: '#ffffff',\n    text: '#101827',\n    border: '#dbe4ee',\n    radius: '16px',\n    fontFamily: 'Avenir Next, sans-serif',\n  },\n  getIdentityToken: async () => {\n    const response = await fetch('/api/centrinfo/token', {\n      credentials: 'include',\n    });\n    if (!response.ok) throw new Error('Sign in is required.');\n    return response.json();\n  },\n  features: [chat(), liveboards()],\n});\n\nawait centrinfo.chat.mountFloating();\ncentrinfo.liveboards.mount('#customer-dashboard', {\n  liveboardId: '...',\n});\n\n// Or switch between every Liveboard assigned to this SDK application.\ncentrinfo.liveboards.mountCollection('#customer-dashboards', {\n  navigation: 'tabs',\n});\n```\n\nFor a full-page conversation:\n\n```ts\nawait centrinfo.chat.mountFullPage('#support', {\n  persistence: 'session',\n  sidebar: 'collapsed',\n  userLabel: 'Alex Kim',\n  userDetail: 'alex@example.com',\n  userAvatarUrl: 'https://customer-app.example/alex.png',\n  assistantAvatarUrl: 'https://customer-app.example/assistant.png',\n  attachments: true,\n});\n```\n\nFull-page chat is a separate AI workspace UI from the floating messenger. Its\nconversation rail defaults to `collapsed`, so it can sit beside the host\napplication's own sidebar. The returned handle can control it:\n\n```ts\nconst chatApp = await centrinfo.chat.mountFullPage('#support');\n\nchatApp.expandSidebar();\nchatApp.collapseSidebar();\nchatApp.hideSidebar();\n```\n\n## Styling and branding\n\nPass `theme` to `createCentrinfo` when chat and Liveboards should inherit the\nsame customer-portal look. The SDK uses Shadow DOM isolation for embedded\nsurfaces, so host CSS should not be required for normal styling.\n\n```ts\nconst centrinfo = createCentrinfo({\n  publicWidgetToken: 'pub_...',\n  applicationId: '...',\n  getIdentityToken,\n  features: [chat(), liveboards()],\n  theme: {\n    accent: '#2563eb',\n    accentStrong: '#1d4ed8',\n    accentSoft: 'rgba(37, 99, 235, 0.1)',\n    background: '#f8fafc',\n    surface: '#ffffff',\n    surfaceMuted: '#f1f5f9',\n    text: '#101827',\n    mutedText: '#52647a',\n    subtleText: '#7a8da3',\n    border: '#dbe4ee',\n    radius: '16px',\n    fontFamily: 'Avenir Next, sans-serif',\n  },\n});\n```\n\nFull-page chat also accepts customer-session presentation fields:\n\n```ts\nawait centrinfo.chat.mountFullPage('#support', {\n  sidebar: 'collapsed',\n  header: true,\n  userLabel: currentUser.name,\n  userDetail: currentUser.email,\n  userAvatarUrl: currentUser.avatarUrl,\n  assistantAvatarUrl: '/brand/assistant-avatar.png',\n  attachments: true,\n});\n```\n\n`attachments: true` allows image, PDF, text, and CSV attachments where the\nconfigured application and backend permit extraction. The assistant avatar can\nalso come from the SDK application settings in Centrinfo; the explicit\n`assistantAvatarUrl` option is only a host-side fallback.\n\nLiveboard collection navigation shows only the assigned Liveboards by default.\nPass `navigationLabel` only when the host application wants an extra visible\nlabel above those tabs.\n\nThe host backend must create short-lived identity tokens. Private signing keys\nmust never be shipped to the browser.\n\n```ts\nimport { signCentrinfoIdentityToken } from '@accurix/centrinfo/server';\n\nconst token = await signCentrinfoIdentityToken({\n  privateKeyPem: process.env.CENTRINFO_SIGNING_PRIVATE_KEY!,\n  applicationId: '...',\n  subject: session.user.id,\n  accountId: session.user.accountId,\n  context: {\n    businessId: session.user.businessId,\n  },\n  expiresInSeconds: 600,\n});\n```\n\n## Chat history and logout\n\nUse the same stable `externalUserId` every time a customer signs in. Centrinfo\nuses that verified identity to restore retained floating-chat and full-page-chat\nconversations from the backend, including in another browser or device.\n\nAnonymous chat history is browser-local. It is never returned as another\nuser's authenticated history.\n\nCall the unified runtime logout method when the host application signs out:\n\n```ts\ncentrinfo.logout();\n```\n\nThis unmounts authenticated chat surfaces and clears the active identity from\nthe SDK. The user's server-side history remains available for their next\nverified sign-in. Use a chat handle's `shutdown()` only when you also need to\nerase that surface's local cache, such as on a shared or kiosk device.\n\nHistory remains subject to the widget token's configured retention period and\nmessage limit. A different `externalUserId` creates a separate history scope.\n","readmeFilename":"README.md"}