diff --git a/client/dist/chatbot-sdk.js b/client/dist/chatbot-sdk.js
index 53d86b2..5851f46 100644
--- a/client/dist/chatbot-sdk.js
+++ b/client/dist/chatbot-sdk.js
@@ -96,24 +96,8 @@ var ChatbotSDK = (function () {
},
};
- /** 默认悬浮按钮 SVG 图标(赛博机器人:对话气泡 + 机器人面孔 + 天线能量灯 + 眨眼动效) */
- const DEFAULT_LAUNCHER_ICON = ``;
+ /** 默认悬浮按钮图标 — C3 三点脉冲序列:极光旋转渐变底 + 三颗顺序脉冲白点 */
+ const DEFAULT_LAUNCHER_ICON = ``;
// ==================== 马卡龙色系玻璃质感图标 ====================
/**
* 生成玻璃质感机器人 SVG 图标
@@ -186,7 +170,7 @@ var ChatbotSDK = (function () {
* 解析并校验用户传入的配置,填充默认值
*/
function parseConfig(raw) {
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
// 校验必传参数:integrateId(对应后端 roleId)
if (!raw.integrateId || (typeof raw.integrateId !== 'string' && typeof raw.integrateId !== 'number')
|| (typeof raw.integrateId === 'string' && raw.integrateId.trim() === '')) {
@@ -202,7 +186,7 @@ var ChatbotSDK = (function () {
try {
new URL(raw.requestDomain);
}
- catch (_m) {
+ catch (_o) {
logger.error(`requestDomain 不是合法的 URL 格式:${raw.requestDomain}。请提供完整的域名,如 https://api.example.com`);
return null;
}
@@ -248,13 +232,14 @@ var ChatbotSDK = (function () {
theme: raw.theme === 'dark' ? 'dark' : 'light',
showTeaser: (_f = raw.showTeaser) !== null && _f !== void 0 ? _f : true,
teaserText: (typeof raw.teaserText === 'string' && raw.teaserText.trim()) || '',
- streaming: (_g = raw.streaming) !== null && _g !== void 0 ? _g : true,
- enableRag: (_h = raw.enableRag) !== null && _h !== void 0 ? _h : true,
+ resizable: (_g = raw.resizable) !== null && _g !== void 0 ? _g : true,
+ streaming: (_h = raw.streaming) !== null && _h !== void 0 ? _h : true,
+ enableRag: (_j = raw.enableRag) !== null && _j !== void 0 ? _j : true,
rewriteStrategy: raw.rewriteStrategy || 'REWRITE',
locale: raw.locale || 'zh-CN',
- debug: (_j = raw.debug) !== null && _j !== void 0 ? _j : true,
- sound: (_k = raw.sound) !== null && _k !== void 0 ? _k : false,
- notification: (_l = raw.notification) !== null && _l !== void 0 ? _l : false,
+ debug: (_k = raw.debug) !== null && _k !== void 0 ? _k : true,
+ sound: (_l = raw.sound) !== null && _l !== void 0 ? _l : false,
+ notification: (_m = raw.notification) !== null && _m !== void 0 ? _m : false,
onError: typeof raw.onError === 'function' ? raw.onError : undefined,
onReady: typeof raw.onReady === 'function' ? raw.onReady : undefined,
onMessage: typeof raw.onMessage === 'function' ? raw.onMessage : undefined,
@@ -322,6 +307,7 @@ var ChatbotSDK = (function () {
// 提示气泡
teaser_text: '有什么可以帮你的吗?',
new_msg_announce: '收到新消息',
+ resize: '拖拽缩放窗口',
// 错误提示
error_network: '网络连接失败,请检查网络',
error_timeout: '请求超时,请稍后重试',
@@ -387,6 +373,7 @@ var ChatbotSDK = (function () {
// Teaser
teaser_text: 'How can I help you?',
new_msg_announce: 'New message received',
+ resize: 'Resize window',
// Errors
error_network: 'Network connection failed',
error_timeout: 'Request timed out, please try again',
@@ -1063,7 +1050,13 @@ var ChatbotSDK = (function () {
width: 60px;
height: 60px;
border-radius: 50%;
- background: var(--csk-bg-user);
+ /* 极光旋转渐变底 — 默认蓝紫系,由 primaryColor 驱动的 conic-gradient */
+ background: conic-gradient(from 0deg,
+ var(--csk-primary-light, #06b6d4),
+ var(--csk-primary, #3b82f6),
+ var(--csk-primary-hover, #8b5cf6),
+ var(--csk-primary-light, #06b6d4)
+ );
display: flex;
align-items: center;
justify-content: center;
@@ -1083,7 +1076,9 @@ var ChatbotSDK = (function () {
transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 0.25s ease,
border-color 0.25s ease;
- animation: csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
+ animation:
+ csk-aurora-spin 4s linear infinite,
+ csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.csk-launcher--right { right: 24px; }
.csk-launcher--left { left: 24px; }
@@ -1147,6 +1142,64 @@ var ChatbotSDK = (function () {
60% { transform: scale(1.06) translateY(-2px); }
100% { opacity: 1; transform: scale(1) translateY(0); }
}
+
+/* ========== 三点脉冲序列图标 ========== */
+/* 极光旋转 */
+@keyframes csk-aurora-spin {
+ to { transform: rotate(360deg); }
+}
+/* 脉冲点 */
+.csk-ico-pulse-dot {
+ position: absolute;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: #fff;
+ z-index: 5;
+ animation: csk-seq-pulse 1.2s ease-in-out infinite;
+ box-shadow: 0 0 6px 1px rgba(255, 255, 255, 0.5);
+}
+.csk-ico-pulse-dot--1 { top: 4px; left: 50%; margin-left: -3px; }
+.csk-ico-pulse-dot--2 { top: 50%; right: 5px; margin-top: -3px; animation-delay: 0.3s; }
+.csk-ico-pulse-dot--3 { bottom: 5px; left: 50%; margin-left: -3px; animation-delay: 0.6s; }
+@keyframes csk-seq-pulse {
+ 0%, 100% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }
+ 35% { transform: scale(1.8); opacity: 1; box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.8); }
+ 70% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }
+}
+
+/* 移除旧的 SVG 图标相关样式(已不再使用) */
+
+/* ========== 高光扫过动效 ========== */
+.csk-launcher::before {
+ content: '';
+ position: absolute;
+ top: -50%;
+ left: -50%;
+ width: 40%;
+ height: 200%;
+ border-radius: 50%;
+ background: linear-gradient(
+ 105deg,
+ transparent 30%,
+ rgba(255, 255, 255, 0.28) 48%,
+ rgba(255, 255, 255, 0.1) 52%,
+ transparent 70%
+ );
+ transform: rotate(25deg);
+ animation: csk-shimmer 4s ease-in-out infinite;
+ pointer-events: none;
+}
+/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */
+.csk-launcher::after {
+ content: '';
+ position: absolute;
+ inset: -18px;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);
+ animation: csk-breathe 3.5s ease-in-out infinite;
+ pointer-events: none;
+}
@keyframes csk-shimmer {
0%, 100% { left: -60%; opacity: 0; }
20% { opacity: 1; }
@@ -1158,25 +1211,11 @@ var ChatbotSDK = (function () {
50% { transform: scale(1.15); opacity: 0.35; }
}
-/* SVG 图标内部动效:眨眼 */
-.csk-launcher .csk-ico-eye {
- animation: csk-eye-blink 4s ease-in-out infinite;
-}
-@keyframes csk-eye-blink {
- 0%, 42%, 48%, 100% { opacity: 1; }
- 45% { opacity: 0.1; }
-}
-/* SVG 图标内部动效:天线能量闪烁 */
-.csk-launcher .csk-ico-antenna {
- animation: csk-antenna-glow 2s ease-in-out infinite;
-}
-@keyframes csk-antenna-glow {
- 0%, 100% { opacity: 0.5; }
- 50% { opacity: 1; }
-}
-
/* ========== 磨砂玻璃质感悬浮按钮 ========== */
.csk-launcher--glass {
+ /* 覆盖旋转动画为静止渐变 */
+ animation:
+ csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both !important;
background: linear-gradient(
135deg,
var(--csk-launcher-grad-1, var(--csk-primary)) 0%,
@@ -1237,18 +1276,7 @@ var ChatbotSDK = (function () {
70% { left: 130%; opacity: 0; }
}
-/* SVG 内部动效:跳动气泡(3 个小圆点交错弹跳) */
-.csk-launcher .csk-ico-bubble {
- animation: csk-bubble-jump 1.4s ease-in-out infinite;
-}
-.csk-launcher .csk-ico-bubble--1 { animation-delay: 0s; }
-.csk-launcher .csk-ico-bubble--2 { animation-delay: 0.18s; }
-.csk-launcher .csk-ico-bubble--3 { animation-delay: 0.36s; }
-@keyframes csk-bubble-jump {
- 0%, 100% { transform: translateY(0); }
- 40% { transform: translateY(-3.5px); }
- 60% { transform: translateY(-1px); }
-}
+/* 三点脉冲图标在玻璃主题下保持可见 */
/* ========== 聊天弹窗 ========== */
.csk-window {
@@ -2105,6 +2133,94 @@ var ChatbotSDK = (function () {
box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;
}
+/* ========== 窗口缩放拖拽手柄 ========== */
+.csk-resize-handle {
+ position: absolute;
+ right: 4px;
+ bottom: 4px;
+ width: 20px;
+ height: 20px;
+ display: flex;
+ align-items: flex-end;
+ justify-content: flex-end;
+ cursor: nwse-resize;
+ z-index: 5;
+ user-select: none;
+ -webkit-user-select: none;
+ /* 圆形半透明背景,与整体圆润风格一致 */
+ border-radius: 50%;
+ background: transparent;
+ transition: background 0.2s ease;
+}
+.csk-resize-handle:hover {
+ background: rgba(var(--csk-primary-rgb), 0.08);
+}
+
+/* 三斜线抓手 — 纯 CSS 绘制,用两条间距微调的线,视觉上是三条 */
+.csk-resize-grip {
+ display: block;
+ width: 10px;
+ height: 10px;
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ #C8CCD2 38%, #C8CCD2 42%,
+ transparent 42%, transparent 54%,
+ #C8CCD2 54%, #C8CCD2 58%,
+ transparent 58%, transparent 70%,
+ #C8CCD2 70%, #C8CCD2 74%,
+ transparent 74%
+ );
+ transition: background 0.2s ease;
+ border-radius: 2px;
+}
+/* hover 时线条变为主色 */
+.csk-resize-handle:hover .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ var(--csk-primary) 38%, var(--csk-primary) 42%,
+ transparent 42%, transparent 54%,
+ var(--csk-primary) 54%, var(--csk-primary) 58%,
+ transparent 58%, transparent 70%,
+ var(--csk-primary) 70%, var(--csk-primary) 74%,
+ transparent 74%
+ );
+}
+
+/* 暗色模式 */
+.csk-dark .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ #5B6070 38%, #5B6070 42%,
+ transparent 42%, transparent 54%,
+ #5B6070 54%, #5B6070 58%,
+ transparent 58%, transparent 70%,
+ #5B6070 70%, #5B6070 74%,
+ transparent 74%
+ );
+}
+.csk-dark .csk-resize-handle:hover .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ var(--csk-primary-light) 38%, var(--csk-primary-light) 42%,
+ transparent 42%, transparent 54%,
+ var(--csk-primary-light) 54%, var(--csk-primary-light) 58%,
+ transparent 58%, transparent 70%,
+ var(--csk-primary-light) 70%, var(--csk-primary-light) 74%,
+ transparent 74%
+ );
+}
+
+/* 缩放拖拽中:禁用过渡动画 + 全局光标 */
+.csk-window--resizing {
+ transition: none !important;
+ user-select: none;
+}
+.csk-window--resizing * { cursor: nwse-resize !important; }
+
/* ========== 暗色模式 ========== */
.csk-root.csk-dark {
--csk-bg-ai: #1E1E2E;
@@ -2372,6 +2488,7 @@ var ChatbotSDK = (function () {
left: 0 !important;
border-radius: 0;
}
+ .csk-resize-handle { display: none !important; }
.csk-window--hidden { transform: translateY(100%); }
/* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */
.csk-launcher:not([style*="bottom"]) { bottom: 20px; }
@@ -2719,6 +2836,13 @@ var ChatbotSDK = (function () {
${config.teaserText || t('teaser_text')}
`;
+ // === 缩放拖拽手柄(右下角) ===
+ const resizeHandle = document.createElement('div');
+ resizeHandle.className = 'csk-resize-handle';
+ resizeHandle.setAttribute('aria-label', t('resize'));
+ // 纯 CSS 渲染三条斜线,无需 SVG
+ resizeHandle.innerHTML = '';
+ windowEl.appendChild(resizeHandle);
return {
window: windowEl,
messagesContainer,
@@ -2730,6 +2854,7 @@ var ChatbotSDK = (function () {
welcomeEl,
newMsgBtn,
teaserEl,
+ resizeHandle,
searchInput,
ariaLiveEl,
showLoading,
@@ -2939,6 +3064,100 @@ var ChatbotSDK = (function () {
document.removeEventListener('touchend', onTouchEnd);
};
}
+ // ==================== 窗口缩放支持 ====================
+ /** 窗口最小尺寸 */
+ const MIN_WIDTH = 300;
+ const MIN_HEIGHT = 300;
+ /**
+ * 启用窗口右下角拖拽缩放
+ * @param handleEl 缩放手柄元素
+ * @param windowEl 聊天窗口元素
+ * @param onResizeEnd 缩放结束回调,返回最终宽高用于持久化
+ * @returns 清理函数
+ */
+ function enableResize(handleEl, windowEl, onResizeEnd) {
+ let resizing = false;
+ let startX = 0;
+ let startY = 0;
+ let startWidth = 0;
+ let startHeight = 0;
+ const onPointerDown = (clientX, clientY) => {
+ resizing = true;
+ startX = clientX;
+ startY = clientY;
+ const rect = windowEl.getBoundingClientRect();
+ startWidth = rect.width;
+ startHeight = rect.height;
+ windowEl.classList.add('csk-window--resizing');
+ document.addEventListener('mousemove', onMouseMove);
+ document.addEventListener('mouseup', onMouseUp);
+ document.addEventListener('touchmove', onTouchMove, { passive: false });
+ document.addEventListener('touchend', onTouchEnd);
+ };
+ const onPointerMove = (clientX, clientY, e) => {
+ if (!resizing)
+ return;
+ if (e)
+ e.preventDefault();
+ const dx = clientX - startX;
+ const dy = clientY - startY;
+ const newWidth = Math.max(MIN_WIDTH, Math.min(startWidth + dx, window.innerWidth - 24));
+ const newHeight = Math.max(MIN_HEIGHT, Math.min(startHeight + dy, window.innerHeight - 24));
+ windowEl.style.width = `${newWidth}px`;
+ windowEl.style.height = `${newHeight}px`;
+ // 同步更新 CSS 变量(供内部布局使用)
+ windowEl.style.setProperty('--csk-window-width', `${newWidth}px`);
+ windowEl.style.setProperty('--csk-window-height', `${newHeight}px`);
+ // 拖拽缩放后清除 bottom/right 定位,避免与固定定位冲突
+ windowEl.style.bottom = '';
+ windowEl.style.right = '';
+ };
+ const onPointerUp = () => {
+ if (!resizing)
+ return;
+ resizing = false;
+ windowEl.classList.remove('csk-window--resizing');
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ document.removeEventListener('touchmove', onTouchMove);
+ document.removeEventListener('touchend', onTouchEnd);
+ const rect = windowEl.getBoundingClientRect();
+ if (onResizeEnd) {
+ onResizeEnd({ width: rect.width, height: rect.height });
+ }
+ };
+ // 鼠标事件(DOM 事件监听器包装)
+ function onMouseMove(e) { onPointerMove(e.clientX, e.clientY, e); }
+ function onMouseUp() { onPointerUp(); }
+ // 鼠标事件
+ function onMouseDown(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ onPointerDown(e.clientX, e.clientY);
+ }
+ // 触摸事件
+ function onTouchStart(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ if (e.touches.length === 1)
+ onPointerDown(e.touches[0].clientX, e.touches[0].clientY);
+ }
+ function onTouchMove(e) {
+ if (e.touches.length === 1)
+ onPointerMove(e.touches[0].clientX, e.touches[0].clientY, e);
+ }
+ function onTouchEnd() { onPointerUp(); }
+ handleEl.addEventListener('mousedown', onMouseDown);
+ handleEl.addEventListener('touchstart', onTouchStart, { passive: false });
+ return () => {
+ handleEl.removeEventListener('mousedown', onMouseDown);
+ handleEl.removeEventListener('touchstart', onTouchStart);
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ document.removeEventListener('touchmove', onTouchMove);
+ document.removeEventListener('touchend', onTouchEnd);
+ };
+ }
// ==================== 消息渲染 ====================
/** 渲染用户消息气泡 */
function renderUserBubble(container, text, timestamp) {
@@ -4388,6 +4607,7 @@ var ChatbotSDK = (function () {
let hideLoadingFn = null;
let dragCleanup = null;
let launcherDragCleanup = null;
+ let resizeCleanup = null;
/** Launcher 位置记忆状态(拖拽后更新) */
let launcherPos = null;
/** 提示气泡元素 */
@@ -4468,6 +4688,15 @@ var ChatbotSDK = (function () {
}
// 9.1 恢复上次拖拽位置
restoreWindowPosition(config.integrateId, windowEl);
+ // 9.2 启用缩放(resizable 配置控制)
+ if (config.resizable) {
+ const resizeHandle = dom.resizeHandle;
+ resizeCleanup = enableResize(resizeHandle, windowEl, (size) => {
+ saveWindowSize(config.integrateId, size);
+ });
+ // 恢复上次缩放的尺寸
+ restoreWindowSize(config.integrateId, windowEl);
+ }
// 10. 初始化对话模块
initChat(config, {
messagesContainer,
@@ -4686,6 +4915,10 @@ var ChatbotSDK = (function () {
launcherDragCleanup();
launcherDragCleanup = null;
}
+ if (resizeCleanup) {
+ resizeCleanup();
+ resizeCleanup = null;
+ }
launcherPos = null;
removeStyles();
document.removeEventListener('keydown', onKeyDown);
@@ -4741,6 +4974,36 @@ var ChatbotSDK = (function () {
clearMessages(config.integrateId);
}
}
+ // ==================== 窗口尺寸记忆 ====================
+ /** localStorage key:窗口尺寸 */
+ function sizeKey(integrateId) {
+ return `csk_size_${integrateId}`;
+ }
+ /** 保存窗口缩放的尺寸到 localStorage */
+ function saveWindowSize(integrateId, size) {
+ try {
+ localStorage.setItem(sizeKey(integrateId), JSON.stringify(size));
+ }
+ catch ( /* 忽略 */_a) { /* 忽略 */ }
+ }
+ /** 恢复窗口缩放尺寸 */
+ function restoreWindowSize(integrateId, winEl) {
+ try {
+ const raw = localStorage.getItem(sizeKey(integrateId));
+ if (!raw)
+ return;
+ const size = JSON.parse(raw);
+ if (typeof size.width !== 'number' || typeof size.height !== 'number')
+ return;
+ const w = Math.max(300, Math.min(size.width, window.innerWidth - 24));
+ const h = Math.max(300, Math.min(size.height, window.innerHeight - 24));
+ winEl.style.width = `${w}px`;
+ winEl.style.height = `${h}px`;
+ winEl.style.setProperty('--csk-window-width', `${w}px`);
+ winEl.style.setProperty('--csk-window-height', `${h}px`);
+ }
+ catch ( /* 忽略 */_a) { /* 忽略 */ }
+ }
// ==================== 窗口位置记忆 ====================
/** localStorage key:窗口位置 */
function positionKey(integrateId) {
diff --git a/client/dist/chatbot-sdk.js.map b/client/dist/chatbot-sdk.js.map
index d756f6b..e04008e 100644
--- a/client/dist/chatbot-sdk.js.map
+++ b/client/dist/chatbot-sdk.js.map
@@ -1 +1 @@
-{"version":3,"file":"chatbot-sdk.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["config","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"chatbot-sdk.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["config","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAw7ClB;IACD;IAEA;;IAEG;IACG,SAAU,YAAY,CAAC,MAAsB,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"}
\ No newline at end of file
diff --git a/client/dist/chatbot-sdk.min.js b/client/dist/chatbot-sdk.min.js
index d79ae17..19c2e96 100644
--- a/client/dist/chatbot-sdk.min.js
+++ b/client/dist/chatbot-sdk.min.js
@@ -1,2 +1,2 @@
-var ChatbotSDK=function(){"use strict";const e="[ChatbotSDK]";let n=!0,t=null;function r(e){t=e||null}const s={},o={info(t,r){n&&console.log(e,t,void 0!==r?r:"")},warn(t,r){n&&console.warn(e,t,void 0!==r?r:"")},error(n,r){if(console.error(e,n,void 0!==r?r:""),t)try{const e=r instanceof Error&&r.type||"error";t({message:n,code:String(e),detail:r})}catch(e){}},time(e){s[e]=Date.now()},timeEnd(t,r){const o=s[t];if(void 0!==o){const a=Date.now()-o;if(delete s[t],n){const n=r?`${r} ${a}ms`:`${t} ${a}ms`;console.log(e,n)}return a}return 0},lifecycleInit(e,n){this.info(`初始化完成 integrateId=${e} requestDomain=${n}`)},lifecycleDestroy(e){this.info(`销毁实例 integrateId=${e}`)},lifecycleSend(e,n){this.info(`发送消息 integrateId=${e} length=${n}`),this.time(`send_${e}`)},lifecycleReply(e,n){const t=this.timeEnd(`send_${e}`,"AI 回复");this.info(`AI 回复 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleError(e,n,t){this.timeEnd(`send_${e}`),this.error(`请求失败 integrateId=${e} status=${n} message=${t}`)},lifecycleClear(e){this.info(`清空会话 integrateId=${e}`)},lifecycleStreamDone(e,n){const t=this.timeEnd(`send_${e}`,"流式回复");this.info(`流式回复完成 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleCategoryChange(e){this.info(`切换知识库分类 categoryId=${e}`)}},a='';function i(e,n,t){return``}const c=i("rgba(139,92,246,0.6)","rgba(139,92,246,0.45)","rgba(240,171,252,0.85)"),l=i("rgba(16,185,129,0.6)","rgba(16,185,129,0.45)","rgba(110,231,183,0.85)"),d=i("rgba(244,63,94,0.55)","rgba(244,63,94,0.4)","rgba(253,186,116,0.85)"),p=i("rgba(56,189,248,0.6)","rgba(56,189,248,0.45)","rgba(167,139,250,0.85)"),u={"dream-purple":"#A78BFA","mint-tech":"#34D399","coral-peach":"#FB7185","sky-blue":"#7DD3FC"};const g={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",status_online:"在线",welcome_title:"你好,我是 AI 智能助手",welcome_desc:"有什么可以帮你的吗?在下方输入框开始提问吧~",placeholder:"输入您的问题...",send:"发送",stop:"停止生成",new_message:"新消息",copy:"复制",copied:"已复制",retry:"重新生成",retrying:"重新生成中...",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",history_search:"搜索会话...",history_group_today:"今天",history_group_yesterday:"昨天",history_group_week:"本周",history_group_earlier:"更早",feedback_up:"有帮助",feedback_down:"没帮助",teaser_text:"有什么可以帮你的吗?",new_msg_announce:"收到新消息",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",status_online:"Online",welcome_title:"Hi, I am your AI assistant",welcome_desc:"How can I help you? Type your question below to get started.",placeholder:"Type your question...",send:"Send",stop:"Stop generating",new_message:"New message",copy:"Copy",copied:"Copied",retry:"Regenerate",retrying:"Regenerating...",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",history_search:"Search conversations...",history_group_today:"Today",history_group_yesterday:"Yesterday",history_group_week:"This Week",history_group_earlier:"Earlier",feedback_up:"Helpful",feedback_down:"Not helpful",teaser_text:"How can I help you?",new_msg_announce:"New message received",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let k="zh-CN";function m(e,n){let t=(g[k]||g["zh-CN"])[e]||g["zh-CN"][e]||e;if(n)for(const[e,r]of Object.entries(n))t=t.replace(`{${e}}`,String(r));return t}let h=null;function b(e){h&&(h.chatId=e)}function f(){return(null==h?void 0:h.chatId)||""}function y(e){if(!h)throw new Error("API 配置未初始化");return`${h.requestDomain.replace(/\/+$/,"")}${e.startsWith("/")?e:`/${e}`}`}function x(e,n,t){null!=t&&("string"==typeof t&&""===t.trim()||e.set(n,String(t)))}async function v(e,n={},t=3e4,r){const s=new AbortController,a=setTimeout(()=>s.abort(),t);r&&(r.aborted?s.abort():r.addEventListener("abort",()=>s.abort(),{once:!0}));try{const t={};n.headers&&(n.headers instanceof Headers?n.headers.forEach((e,n)=>{t[n]=e}):Array.isArray(n.headers)?n.headers.forEach(([e,n])=>{t[e]=n}):Object.assign(t,n.headers)),(null==h?void 0:h.token)&&e.includes("/ai/")&&(t.Authorization=`Bearer ${h.token}`);const r=await fetch(e,Object.assign(Object.assign({},n),{headers:t,signal:s.signal,mode:"cors",credentials:"include"}));return 401===r.status&&e.includes("/ai/")&&o.error("SDK 认证失败:Token 缺失或已过期,请重新调用 /open-api/auth/token 换取 Token"),r}catch(e){if(null==r?void 0:r.aborted)throw new w("aborted","aborted");if(e instanceof DOMException&&"AbortError"===e.name)throw new w(m("error_timeout"),"timeout");if(e instanceof TypeError&&e.message.includes("Failed to fetch"))throw new w(m("error_cors"),"cors");throw new w(m("error_network"),"network")}finally{clearTimeout(a)}}class w extends Error{constructor(e,n){super(e),this.name="CskError",this.type=n}}function _(e){switch(e){case 401:return m("error_auth");case 403:return m("error_forbidden");case 404:return m("error_not_found");case 429:return m("error_rate_limit");case 500:return m("error_server");case 502:case 503:return m("error_unavailable");default:return`${m("error_unknown")}(${e})`}}async function E(e){const n=function(e){const n=new URLSearchParams;return n.set("message",e),n.set("chatId",h.chatId),x(n,"roleId",h.integrateId),x(n,"accountId",h.userId),y(`/ai/assistant_app/chat/sync?${n.toString()}`)}(e);o.lifecycleSend(h.integrateId,e.length);try{const e=await v(n);if(!e.ok){const n=_(e.status);throw o.lifecycleError(h.integrateId,String(e.status),n),new w(n,`http_${e.status}`)}const t=await e.text();return o.lifecycleReply(h.integrateId,t.length),t}catch(e){if(e instanceof w)throw e;throw o.lifecycleError(h.integrateId,"unknown",String(e)),new w(m("error_unknown"),"unknown")}}async function C(e,n,t,r,s,a,i){var c;const l=a?function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",h.chatId),t.set("rewriteStrategy",h.rewriteStrategy||"REWRITE"),x(t,"roleId",h.integrateId),x(t,"accountId",h.userId),x(t,"categoryId",null!=n?n:h.categoryId),y(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(e,s):function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",h.chatId),x(t,"roleId",h.integrateId),x(t,"accountId",h.userId),x(t,"categoryId",null!=n?n:h.categoryId),y(`/ai/assistant_app/chat/sse?${t.toString()}`)}(e,s);let d="";o.lifecycleSend(h.integrateId,e.length);try{const e=await v(l,{},6e4,i);if(!e.ok){const n=_(e.status);return o.lifecycleError(h.integrateId,String(e.status),n),void r(new w(n,`http_${e.status}`))}const s=null===(c=e.body)||void 0===c?void 0:c.getReader();if(!s)return void r(new w(m("error_stream_unsupported"),"stream_unsupported"));const a=new TextDecoder("utf-8",{stream:!0});let p="";try{for(;;){const{done:e,value:t}=await s.read();if(e)break;p+=a.decode(t,{stream:!0});const r=p.split("\n");p=r.pop()||"";for(const e of r){const t=e.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const e=t.substring(5).trim();e&&(d+=e,n(e))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(d+=t,n(t))}}}if(p.trim()){const e=p.trim();if(e.startsWith("data:")){const t=e.substring(5).trim();t&&(d+=t,n(t))}else"[DONE]"!==e&&(d+=e,n(e))}}catch(e){if(null==i?void 0:i.aborted)o.info(`流式被用户中断,保留已生成内容 length=${d.length}`);else{if(!(d.length>0))throw e;n("\n\n"+m("stream_unstable"))}}finally{s.releaseLock()}o.lifecycleStreamDone(h.integrateId,d.length),t()}catch(e){if((null==i?void 0:i.aborted)||e instanceof w&&"aborted"===e.type)return void t();e instanceof w?r(e):(o.lifecycleError(h.integrateId,"unknown",String(e)),r(new w(m("error_network"),"network")))}}async function I(e,n){const t=function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",h.chatId),t.set("rewriteStrategy",h.rewriteStrategy||"REWRITE"),x(t,"roleId",h.integrateId),x(t,"accountId",h.userId),x(t,"categoryId",null!=n?n:h.categoryId),y(`/ai/assistant_app/rag/sources?${t.toString()}`)}(e,n);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return n.success&&Array.isArray(n.data)?(o.info(`获取引用来源 count=${n.data.length}`),n.data):[]}catch(e){return o.error("获取引用来源失败",e),[]}}async function $(e=1,n=20,t,r){const s=new URLSearchParams;s.set("page",String(e)),s.set("size",String(n)),t&&s.set("accountId",t),r&&s.set("roleId",r);const a=y(`/ai/sdk/conversation/list?${s.toString()}`);try{const e=await v(a);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{list:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0,pages:n.pages||0}}catch(e){return o.error("加载会话列表失败",e),{list:[],total:0,pages:0}}}async function L(e){const n=new URLSearchParams;(null==h?void 0:h.userId)&&n.set("accountId",h.userId),(null==h?void 0:h.integrateId)&&n.set("roleId",h.integrateId);const t=y(`/ai/sdk/conversation/${e}/messages?${n.toString()}`);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{messages:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0}}catch(e){return o.error("加载会话消息失败",e),{messages:[],total:0}}}async function A(e){const n=new URLSearchParams;(null==h?void 0:h.userId)&&n.set("accountId",h.userId),(null==h?void 0:h.integrateId)&&n.set("roleId",h.integrateId);const t=y(`/ai/sdk/conversation/${e}?${n.toString()}`);try{const n=await v(t,{method:"DELETE"});if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const r=await n.json();return o.info(`删除会话 id=${e} success=${r.success}`),r.success||!1}catch(e){return o.error("删除会话失败",e),!1}}function S(e){const n=new URLSearchParams;return(null==h?void 0:h.userId)&&n.set("accountId",h.userId),(null==h?void 0:h.integrateId)&&n.set("roleId",h.integrateId),y(`/ai/sdk/conversation/${e}/export?${n.toString()}`)}async function N(){if(!h)return"";const e=function(e,n){try{return localStorage.getItem(F(e,n))||""}catch(e){return""}}(h.integrateId,h.userId);if(e)return h.chatId=e,o.info(`从缓存恢复 chatId=${e}`),e;try{const e=await $(1,5,h.userId,h.integrateId);if(e.list.length>0){const n=e.list[0],t=n.conversationId||n.chatId||"";if(t)return h.chatId=t,M(h.integrateId,h.userId,t),o.info(`从后端恢复会话 chatId=${t} messageCount=${n.messageCount}`),t}}catch(e){o.warn("查询后端会话列表失败,将生成新 chatId",e)}const n=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();return h.chatId=n,M(h.integrateId,h.userId,n),o.info(`生成新 chatId=${n}`),n}function F(e,n){return`csk_chatId_${e}${n?"_"+n:""}`}function M(e,n,t){try{t?localStorage.setItem(F(e,n),t):localStorage.removeItem(F(e,n))}catch(e){}}let T=null;function D(e){const n=B(e.primaryColor,-15),t=B(e.primaryColor,18),r=function(e){const n=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);return n?`${parseInt(n[1],16)}, ${parseInt(n[2],16)}, ${parseInt(n[3],16)}`:"79, 70, 229"}(e.primaryColor),s=e.launcherTheme?{"dream-purple":{grad1:"#A78BFA",grad2:"#F0ABFC",glow:"167, 139, 250"},"mint-tech":{grad1:"#6EE7B7",grad2:"#34D399",glow:"52, 211, 153"},"coral-peach":{grad1:"#FB7185",grad2:"#FDBA74",glow:"251, 113, 133"},"sky-blue":{grad1:"#7DD3FC",grad2:"#A78BFA",glow:"125, 211, 252"}}[e.launcherTheme]:null;return`\n --csk-primary: ${e.primaryColor};\n --csk-primary-hover: ${n};\n --csk-primary-light: ${t};\n --csk-primary-rgb: ${r};\n --csk-bg-user: linear-gradient(135deg, ${e.primaryColor}, ${n});\n --csk-bg-ai: #ffffff;\n --csk-text-user: #ffffff;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${e.width}px;\n --csk-window-height: ${e.height}px;\n --csk-radius: 16px;\n --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);\n --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06);\n --csk-border: #ECEEF2;\n --csk-bg-app: #F6F7F9;\n ${s?`\n --csk-launcher-grad-1: ${s.grad1};\n --csk-launcher-grad-2: ${s.grad2};\n --csk-launcher-glow: ${s.glow};\n `:""}\n `}function B(e,n){const t=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return e;const r=e=>Math.max(0,Math.min(255,e)),s=r(parseInt(t[1],16)+n),o=r(parseInt(t[2],16)+n),a=r(parseInt(t[3],16)+n);return`#${s.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}`}function q(e){document.querySelector("style[data-csk-sdk]")||(T=document.createElement("style"),T.setAttribute("data-csk-sdk",""),T.textContent=function(e){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${D(e)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;\n font-size: 14px;\n line-height: 1.55;\n color: #1F2937;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; }\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 24px;\n z-index: 9998;\n width: 60px;\n height: 60px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n user-select: none;\n overflow: visible;\n /* 半透明白色光环边框,在白色页面上清晰分离按钮与背景 */\n border: 2.5px solid rgba(255, 255, 255, 0.55);\n /* 三层投影:接地阴影 + 彩色光晕,把按钮从白底「托」出来 */\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12);\n transition:\n transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),\n box-shadow 0.25s ease,\n border-color 0.25s ease;\n animation: csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n.csk-launcher--right { right: 24px; }\n.csk-launcher--left { left: 24px; }\n\n/* 高光扫过动效 */\n.csk-launcher::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 40%;\n height: 200%;\n border-radius: 50%;\n background: linear-gradient(\n 105deg,\n transparent 30%,\n rgba(255, 255, 255, 0.28) 48%,\n rgba(255, 255, 255, 0.1) 52%,\n transparent 70%\n );\n transform: rotate(25deg);\n animation: csk-shimmer 4s ease-in-out infinite;\n pointer-events: none;\n}\n/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -18px;\n border-radius: 50%;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);\n animation: csk-breathe 3.5s ease-in-out infinite;\n pointer-events: none;\n}\n.csk-launcher:hover {\n transform: translateY(-3px) scale(1.08);\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.10),\n 0 8px 24px rgba(0, 0, 0, 0.14),\n 0 10px 36px rgba(var(--csk-primary-rgb), 0.32),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.14);\n}\n.csk-launcher:hover::before { animation-play-state: paused; }\n.csk-launcher:hover::after {\n animation: none;\n inset: -22px;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.22) 0%, rgba(var(--csk-primary-rgb), 0.06) 45%, transparent 68%);\n}\n.csk-launcher:active { transform: scale(0.93); }\n.csk-launcher svg {\n width: 30px;\n height: 30px;\n position: relative;\n z-index: 1;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));\n}\n\n@keyframes csk-launcher-in {\n 0% { opacity: 0; transform: scale(0.5) translateY(16px); }\n 60% { transform: scale(1.06) translateY(-2px); }\n 100% { opacity: 1; transform: scale(1) translateY(0); }\n}\n@keyframes csk-shimmer {\n 0%, 100% { left: -60%; opacity: 0; }\n 20% { opacity: 1; }\n 60% { opacity: 1; }\n 80% { left: 120%; opacity: 0; }\n}\n@keyframes csk-breathe {\n 0%, 100% { transform: scale(1); opacity: 1; }\n 50% { transform: scale(1.15); opacity: 0.35; }\n}\n\n/* SVG 图标内部动效:眨眼 */\n.csk-launcher .csk-ico-eye {\n animation: csk-eye-blink 4s ease-in-out infinite;\n}\n@keyframes csk-eye-blink {\n 0%, 42%, 48%, 100% { opacity: 1; }\n 45% { opacity: 0.1; }\n}\n/* SVG 图标内部动效:天线能量闪烁 */\n.csk-launcher .csk-ico-antenna {\n animation: csk-antenna-glow 2s ease-in-out infinite;\n}\n@keyframes csk-antenna-glow {\n 0%, 100% { opacity: 0.5; }\n 50% { opacity: 1; }\n}\n\n/* ========== 磨砂玻璃质感悬浮按钮 ========== */\n.csk-launcher--glass {\n background: linear-gradient(\n 135deg,\n var(--csk-launcher-grad-1, var(--csk-primary)) 0%,\n var(--csk-launcher-grad-2, var(--csk-primary-light)) 100%\n ) !important;\n backdrop-filter: blur(12px) saturate(180%);\n -webkit-backdrop-filter: blur(12px) saturate(180%);\n border: 1.5px solid rgba(255, 255, 255, 0.55) !important;\n /* 多层阴影:接地 + 彩色光晕 + 内阴影立体感 */\n box-shadow:\n 0 2px 4px rgba(0, 0, 0, 0.04),\n 0 6px 20px rgba(0, 0, 0, 0.08),\n 0 8px 32px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.30),\n inset 0 1px 1px rgba(255, 255, 255, 0.35),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n.csk-launcher--glass:hover {\n border-color: rgba(255, 255, 255, 0.75) !important;\n box-shadow:\n 0 4px 8px rgba(0, 0, 0, 0.06),\n 0 10px 28px rgba(0, 0, 0, 0.10),\n 0 12px 40px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.38),\n inset 0 1px 2px rgba(255, 255, 255, 0.45),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n\n/* 玻璃按钮的呼吸色晕 — 更鲜艳、更醒目 */\n.csk-launcher--glass::after {\n background: radial-gradient(\n circle,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.28) 0%,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.10) 40%,\n transparent 65%\n ) !important;\n animation: csk-breathe-glow 3.5s ease-in-out infinite;\n}\n@keyframes csk-breathe-glow {\n 0%, 100% { transform: scale(1); opacity: 0.8; }\n 50% { transform: scale(1.22); opacity: 0.25; }\n}\n\n/* 玻璃按钮的高光扫过 — 更柔和的玻璃质感 */\n.csk-launcher--glass::before {\n background: linear-gradient(\n 115deg,\n transparent 25%,\n rgba(255, 255, 255, 0.35) 45%,\n rgba(255, 255, 255, 0.15) 55%,\n transparent 75%\n ) !important;\n width: 50%;\n animation: csk-shimmer-glass 5s ease-in-out infinite;\n}\n@keyframes csk-shimmer-glass {\n 0%, 100% { left: -70%; opacity: 0; }\n 15% { opacity: 1; }\n 55% { opacity: 1; }\n 70% { left: 130%; opacity: 0; }\n}\n\n/* SVG 内部动效:跳动气泡(3 个小圆点交错弹跳) */\n.csk-launcher .csk-ico-bubble {\n animation: csk-bubble-jump 1.4s ease-in-out infinite;\n}\n.csk-launcher .csk-ico-bubble--1 { animation-delay: 0s; }\n.csk-launcher .csk-ico-bubble--2 { animation-delay: 0.18s; }\n.csk-launcher .csk-ico-bubble--3 { animation-delay: 0.36s; }\n@keyframes csk-bubble-jump {\n 0%, 100% { transform: translateY(0); }\n 40% { transform: translateY(-3.5px); }\n 60% { transform: translateY(-1px); }\n}\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 24px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: var(--csk-window-height);\n max-height: calc(100vh - 48px);\n background: #fff;\n border-radius: var(--csk-radius);\n box-shadow: var(--csk-shadow-window);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform-origin: bottom right;\n transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s;\n opacity: 1;\n transform: translateY(0) scale(1);\n visibility: visible;\n pointer-events: auto;\n}\n.csk-window--right { right: 24px; transform-origin: bottom right; }\n.csk-window--left { left: 24px; transform-origin: bottom left; }\n.csk-window--hidden {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n min-height: 60px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: move;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n}\n.csk-header::after {\n content: '';\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 24px;\n background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent);\n pointer-events: none;\n}\n.csk-header__left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n}\n.csk-header__avatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.22);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);\n}\n.csk-header__avatar svg { width: 22px; height: 22px; }\n.csk-header__info {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n letter-spacing: 0.2px;\n}\n.csk-header__status {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11.5px;\n opacity: 0.9;\n margin-top: 2px;\n}\n.csk-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #6EE7B7;\n box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7);\n animation: csk-status-pulse 2s infinite;\n}\n@keyframes csk-status-pulse {\n 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); }\n 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); }\n 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); }\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n.csk-header__btn,\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 8px;\n transition: background 0.15s, transform 0.15s;\n}\n.csk-header__btn:hover,\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-header__btn:active,\n.csk-history-btn:active { transform: scale(0.92); }\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 20px 16px 12px;\n background: var(--csk-bg-app);\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar { width: 6px; }\n.csk-messages::-webkit-scrollbar-track { background: transparent; }\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D8DCE3;\n border-radius: 3px;\n}\n.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; }\n\n/* 欢迎空状态 */\n.csk-welcome {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 32px;\n color: #6B7280;\n animation: csk-fade-in 0.3s ease;\n}\n.csk-welcome__avatar {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 14px;\n box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-welcome__avatar svg { width: 30px; height: 30px; }\n.csk-welcome__title {\n font-size: 15px;\n font-weight: 600;\n color: #1F2937;\n margin-bottom: 4px;\n}\n.csk-welcome__desc {\n font-size: 13px;\n color: #9CA3AF;\n line-height: 1.6;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n margin-bottom: 18px;\n max-width: 100%;\n word-break: break-word;\n animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.csk-msg--user {\n flex-direction: row-reverse;\n align-items: flex-end;\n}\n.csk-msg--ai {\n flex-direction: row;\n align-items: flex-start;\n}\n.csk-msg__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg__avatar svg { width: 18px; height: 18px; }\n.csk-msg__avatar--ai {\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n}\n.csk-msg__avatar--user {\n background: var(--csk-bg-user);\n color: #fff;\n}\n.csk-msg__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: calc(100% - 46px);\n}\n.csk-msg--user .csk-msg__content { align-items: flex-end; }\n.csk-msg--ai .csk-msg__content { align-items: flex-start; }\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 16px;\n font-size: 14px;\n line-height: 1.6;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 16px 16px 4px 16px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 16px 16px 16px 4px;\n border: 1px solid var(--csk-border);\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 5px;\n padding: 0 4px;\n}\n\n@keyframes csk-msg-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes csk-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n margin-bottom: 18px;\n animation: csk-msg-in 0.28s ease;\n}\n.csk-loading__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-loading__avatar svg { width: 18px; height: 18px; }\n.csk-loading__bubble {\n background: #fff;\n border: 1px solid var(--csk-border);\n border-radius: 16px 16px 16px 4px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.csk-loading__dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #B4B9C2;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n padding: 10px 12px 14px;\n background: #fff;\n border-top: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-input-wrap {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--csk-bg-app);\n border: 1px solid var(--csk-border);\n border-radius: 14px;\n padding: 6px 6px 6px 14px;\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n}\n.csk-input-wrap--focus {\n border-color: var(--csk-primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n.csk-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 8px 0;\n font-size: 14px;\n outline: none;\n font-family: inherit;\n resize: none;\n min-height: 22px;\n max-height: 120px;\n line-height: 1.5;\n color: #1F2937;\n}\n.csk-input::placeholder { color: #9CA3AF; }\n.csk-root .csk-input:focus-visible { outline: none; }\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border: none;\n border-radius: 10px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: pointer;\n transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s;\n box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-send-btn:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4);\n}\n.csk-send-btn:active:not(:disabled) { transform: scale(0.92); }\n.csk-send-btn:disabled {\n background: #D1D5DB;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 0.7;\n}\n.csk-send-btn svg { width: 18px; height: 18px; }\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 999px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-clear-btn:hover {\n background: #FEF2F2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-top: 1px solid var(--csk-border);\n background: #FBFBFC;\n gap: 8px;\n flex-shrink: 0;\n}\n.csk-category-bar__label {\n font-size: 13px;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 6px 28px 6px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n color: #374151;\n background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center;\n appearance: none;\n -webkit-appearance: none;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s, box-shadow 0.2s;\n max-width: 220px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid var(--csk-border);\n border-radius: 12px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n background: #FAFBFC;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F3F4F7;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover { background: #ECEEF2; }\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 5px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n font-size: 10px;\n}\n.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); }\n.csk-sources__body {\n border-top: 1px solid var(--csk-border);\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body { display: none; }\n.csk-source-item {\n padding: 9px 12px;\n border-bottom: 1px solid #F0F1F4;\n transition: background 0.15s;\n}\n.csk-source-item:last-child { border-bottom: none; }\n.csk-source-item:hover { background: #fff; }\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 3px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 14px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n color: #111827;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 10px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.55;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: rgba(var(--csk-primary-rgb), 0.1);\n color: var(--csk-primary);\n padding: 1px 6px;\n border-radius: 5px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 22px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; }\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding: 2px 12px;\n margin: 8px 0;\n color: #6B7280;\n background: rgba(var(--csk-primary-rgb), 0.05);\n border-radius: 0 6px 6px 0;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3);\n transition: border-color 0.15s;\n}\n.csk-md-link:hover { border-bottom-color: var(--csk-primary); }\n.csk-md-hr {\n border: none;\n border-top: 1px solid var(--csk-border);\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-panel {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: csk-slide-in 0.24s ease;\n}\n.csk-history-panel--hidden { display: none; }\n@keyframes csk-slide-in {\n from { transform: translateX(100%); opacity: 0.4; }\n to { transform: translateX(0); opacity: 1; }\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--csk-border);\n background: var(--csk-bg-app);\n flex-shrink: 0;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-history-panel__back:hover { background: #F3F4F6; }\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n}\n.csk-history-panel__list::-webkit-scrollbar { width: 5px; }\n.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; }\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 11px 12px;\n border-radius: 10px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 5px;\n border: 1px solid transparent;\n}\n.csk-history-item:hover { background: #F3F4F6; }\n.csk-history-item--active {\n background: rgba(var(--csk-primary-rgb), 0.08);\n border-color: rgba(var(--csk-primary-rgb), 0.2);\n}\n.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); }\n.csk-history-item__info { flex: 1; min-width: 0; }\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 3px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions { opacity: 1; }\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 7px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export { background: #EFF6FF; color: #2563EB; }\n.csk-history-action--export:hover { background: #DBEAFE; }\n.csk-history-action--delete { background: #FEF2F2; color: #DC2626; }\n.csk-history-action--delete:hover { background: #FEE2E2; }\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 34px;\n margin-bottom: 10px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover { background: #F3F4F6; }\n\n/* ========== 快捷问题芯片 ========== */\n.csk-quick-replies {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: center;\n margin-top: 18px;\n max-width: 320px;\n}\n.csk-quick-reply {\n border: 1px solid var(--csk-border);\n background: #fff;\n color: #374151;\n font-size: 12.5px;\n padding: 7px 13px;\n border-radius: 999px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1.3;\n transition: all 0.18s ease;\n max-width: 100%;\n}\n.csk-quick-reply:hover {\n border-color: var(--csk-primary);\n color: var(--csk-primary);\n background: rgba(var(--csk-primary-rgb), 0.06);\n transform: translateY(-1px);\n}\n.csk-quick-reply:active { transform: scale(0.96); }\n\n/* ========== AI 消息操作条 ========== */\n.csk-msg__actions {\n display: flex;\n gap: 2px;\n margin-top: 5px;\n padding: 0 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n.csk-msg--ai:hover .csk-msg__actions { opacity: 1; }\n.csk-msg--streaming .csk-msg__actions { display: none; }\n.csk-action-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n.csk-action-btn:hover {\n background: #F3F4F6;\n color: #374151;\n}\n.csk-action-btn--done { color: #10B981; }\n.csk-action-btn:active { transform: scale(0.9); }\n\n/* ========== 流式打字光标 ========== */\n.csk-caret {\n display: inline-block;\n width: 7px;\n height: 15px;\n margin-left: 2px;\n vertical-align: text-bottom;\n background: var(--csk-primary);\n border-radius: 1px;\n animation: csk-caret-blink 1s step-end infinite;\n}\n@keyframes csk-caret-blink {\n 0%, 50% { opacity: 1; }\n 51%, 100% { opacity: 0; }\n}\n\n/* ========== 代码块复制按钮 ========== */\n.csk-md-code-block { position: relative; }\n.csk-md-code-copy {\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(255, 255, 255, 0.12);\n color: #CBD5E1;\n border-radius: 6px;\n cursor: pointer;\n opacity: 0;\n transition: all 0.15s ease;\n}\n.csk-md-code-block:hover .csk-md-code-copy { opacity: 1; }\n.csk-md-code-copy:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }\n.csk-md-code-copy:active { transform: scale(0.9); }\n\n/* ========== 新消息提示按钮 ========== */\n.csk-newmsg {\n position: absolute;\n bottom: 82px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 5;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 7px 14px;\n border: none;\n background: var(--csk-primary);\n color: #fff;\n font-size: 12px;\n font-family: inherit;\n border-radius: 999px;\n cursor: pointer;\n box-shadow: 0 4px 14px rgba(var(--csk-primary-rgb), 0.38);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n animation: csk-msg-in 0.25s ease;\n white-space: nowrap;\n}\n.csk-newmsg:hover { transform: translateX(-50%) translateY(-1px); box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.48); }\n.csk-newmsg:active { transform: translateX(-50%) scale(0.95); }\n.csk-newmsg--hidden { display: none; }\n\n/* ========== 发送按钮停止态 ========== */\n.csk-send-btn--stop {\n background: #EF4444 !important;\n box-shadow: 0 3px 10px rgba(239, 68, 68, 0.35) !important;\n}\n.csk-send-btn--stop:hover:not(:disabled) {\n box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;\n}\n\n/* ========== 暗色模式 ========== */\n.csk-root.csk-dark {\n --csk-bg-ai: #1E1E2E;\n --csk-text-ai: #E2E8F0;\n --csk-border: #3B3B52;\n --csk-bg-app: #141421;\n color: #E2E8F0;\n}\n.csk-dark .csk-window {\n background: #1A1A2E;\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n.csk-dark .csk-header::after { background: linear-gradient(to bottom, rgba(0,0,0,0.12), transparent); }\n.csk-dark .csk-msg__avatar--ai {\n background: var(--csk-bg-ai);\n color: var(--csk-primary);\n border-color: var(--csk-border);\n}\n.csk-dark .csk-input-area { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-input-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-input-wrap--focus { background: #1A1A2E; border-color: var(--csk-primary); }\n.csk-dark .csk-input { color: #E2E8F0; }\n.csk-dark .csk-loading__avatar { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__bubble { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__dot { background: #6B7280; }\n.csk-dark .csk-category-bar { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-category-select { background-color: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-sources { background: #1E1E2E; border-color: var(--csk-border); }\n.csk-dark .csk-sources__header { background: #25253A; }\n.csk-dark .csk-sources__header:hover { background: #2D2D48; }\n.csk-dark .csk-source-item:hover { background: var(--csk-bg-ai); }\n.csk-dark .csk-source-item__name { color: #E2E8F0; }\n.csk-dark .csk-source-item__meta { color: #6B7280; }\n.csk-dark .csk-history-panel { background: #1A1A2E; }\n.csk-dark .csk-history-panel__header { background: var(--csk-bg-app); border-bottom-color: var(--csk-border); }\n.csk-dark .csk-history-panel__back { background: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-history-panel__back:hover { background: #2D2D48; }\n.csk-dark .csk-history-item:hover { background: #25253A; }\n.csk-dark .csk-history-item__id { color: #E2E8F0; }\n.csk-dark .csk-history-item__meta { color: #6B7280; }\n.csk-dark .csk-history-item--active { background: rgba(var(--csk-primary-rgb), 0.15); }\n.csk-dark .csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.22); }\n.csk-dark .csk-action-btn:hover { background: #2D2D48; color: #E2E8F0; }\n.csk-dark .csk-clear-btn { background: var(--csk-bg-app); border-color: var(--csk-border); color: #9CA3AF; }\n.csk-dark .csk-clear-btn:hover { background: #3B1A1A; border-color: #7F1D1D; color: #FCA5A5; }\n.csk-dark .csk-md-code-block { background: #0F0F1A; }\n.csk-dark .csk-md-blockquote { background: rgba(var(--csk-primary-rgb), 0.08); }\n.csk-dark .csk-md-link { color: var(--csk-primary-light); }\n.csk-dark .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); border-color: var(--csk-border); }\n.csk-dark .csk-welcome__title { color: #E2E8F0; }\n.csk-dark .csk-welcome__desc { color: #6B7280; }\n.csk-dark .csk-quick-reply { background: var(--csk-bg-app); border-color: var(--csk-border); color: #CBD5E1; }\n.csk-dark .csk-quick-reply:hover { background: rgba(var(--csk-primary-rgb), 0.12); border-color: var(--csk-primary); color: var(--csk-primary-light); }\n.csk-dark .csk-teaser { background: #2D2D48; color: #E2E8F0; box-shadow: 0 4px 20px rgba(0,0,0,0.35); }\n.csk-dark .csk-teaser::after { border-top-color: #2D2D48; }\n.csk-dark .csk-teaser__close { color: #6B7280; }\n.csk-dark .csk-teaser__close:hover { color: #9CA3AF; }\n.csk-dark .csk-feedback-btn { background: rgba(var(--csk-primary-rgb), 0.1); color: #9CA3AF; }\n.csk-dark .csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.2); color: var(--csk-primary-light); }\n.csk-dark .csk-feedback-btn--active { background: rgba(var(--csk-primary-rgb), 0.28); color: var(--csk-primary-light); }\n.csk-dark .csk-history-panel__search-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-history-panel__search-wrap:focus-within { border-color: var(--csk-primary); }\n.csk-dark .csk-history-panel__search { color: #E2E8F0; }\n.csk-dark .csk-launcher__badge { box-shadow: 0 0 0 2px #1A1A2E; }\n.csk-dark .csk-welcome__avatar { box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.25); }\n.csk-dark .csk-header__avatar { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.1); }\n\n/* Launcher 拖拽态:微放大 + 阴影加深 */\n.csk-launcher--dragging {\n cursor: grabbing !important;\n transform: scale(1.1) !important;\n box-shadow:\n 0 4px 12px rgba(0, 0, 0, 0.14),\n 0 12px 32px rgba(0, 0, 0, 0.18),\n 0 14px 40px rgba(var(--csk-primary-rgb), 0.36),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.18) !important;\n}\n.csk-launcher--dragging::before,\n.csk-launcher--dragging::after { animation-play-state: paused !important; }\n/* 拖拽中隐藏未读徽章 */\n.csk-launcher--dragging .csk-launcher__badge { display: none !important; }\n/* 吸附过渡动画(释放时的缓动) */\n.csk-launcher--snap {\n transition: left 0.3s ease-out, right 0.3s ease-out, bottom 0.3s ease-out !important;\n}\n\n/* ========== Launcher 未读徽章 ========== */\n.csk-launcher__badge {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: #EF4444;\n border: 2px solid #fff;\n box-shadow: 0 0 0 2px #fff;\n animation: csk-badge-in 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);\n pointer-events: none;\n}\n.csk-launcher__badge--hidden { display: none; }\n@keyframes csk-badge-in {\n from { transform: scale(0); }\n to { transform: scale(1); }\n}\n\n/* ========== Launcher 提示气泡 ========== */\n.csk-teaser {\n position: fixed;\n bottom: 90px;\n z-index: 9997;\n max-width: 240px;\n padding: 10px 14px;\n background: #fff;\n color: #1F2937;\n font-size: 13px;\n line-height: 1.5;\n border-radius: 12px;\n box-shadow: 0 4px 20px rgba(15, 23, 42, 0.15);\n animation: csk-teaser-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n cursor: pointer;\n user-select: none;\n}\n.csk-teaser--right { right: 24px; }\n.csk-teaser--left { left: 24px; }\n.csk-teaser::after {\n content: '';\n position: absolute;\n bottom: -6px;\n right: 28px;\n width: 12px;\n height: 12px;\n background: inherit;\n border-radius: 2px;\n transform: rotate(45deg);\n box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.08);\n}\n.csk-teaser--left::after { right: auto; left: 28px; }\n.csk-teaser__close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n padding: 2px 4px;\n line-height: 1;\n border-radius: 4px;\n}\n.csk-teaser__close:hover { color: #374151; }\n.csk-teaser--hidden { display: none; }\n@keyframes csk-teaser-in {\n from { opacity: 0; transform: translateY(8px) scale(0.95); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n/* ========== 消息反馈按钮(👍 / 👎) ========== */\n.csk-feedback-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(var(--csk-primary-rgb), 0.08);\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n}\n.csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.18); color: var(--csk-primary); }\n.csk-feedback-btn--active {\n background: rgba(var(--csk-primary-rgb), 0.28);\n color: var(--csk-primary);\n}\n.csk-feedback-btn--active.down { background: #FEF2F2; color: #EF4444; }\n.csk-feedback-btn:active { transform: scale(0.9); }\n.csk-msg--streaming .csk-feedback-btn { display: none; }\n\n/* ========== 历史会话搜索框 ========== */\n.csk-history-panel__search-wrap {\n padding: 8px 10px;\n border-bottom: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-history-panel__search-wrap:focus-within {\n border-bottom-color: var(--csk-primary);\n}\n.csk-history-panel__search {\n width: 100%;\n padding: 7px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n font-family: inherit;\n color: #1F2937;\n background: var(--csk-bg-app);\n outline: none;\n transition: border-color 0.2s;\n}\n.csk-history-panel__search:focus { border-color: var(--csk-primary); }\n.csk-history-panel__search::placeholder { color: #9CA3AF; }\n\n/* ========== a11y 焦点指示 ========== */\n.csk-root :focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n}\n.csk-root button:focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n border-radius: inherit;\n}\n/* 弹窗打开时隐藏 launcher 上的焦点环 */\n.csk-launcher:focus-visible {\n outline: none;\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12),\n 0 0 0 4px rgba(var(--csk-primary-rgb), 0.3);\n}\n\n/* ========== a11y aria-live 播报区(视觉隐藏) ========== */\n.csk-sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0,0,0,0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n/* ========== 会话分组标题 ========== */\n.csk-history-group {\n margin-bottom: 4px;\n}\n.csk-history-group__label {\n font-size: 11px;\n font-weight: 600;\n color: #9CA3AF;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px 4px;\n user-select: none;\n}\n.csk-dark .csk-history-group__label { color: #6B7280; }\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-window--hidden { transform: translateY(100%); }\n /* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */\n .csk-launcher:not([style*="bottom"]) { bottom: 20px; }\n .csk-launcher--right:not([style*="bottom"]) { right: 20px; }\n .csk-launcher--left:not([style*="bottom"]) { left: 20px; }\n}\n`}(e),document.head.appendChild(T))}function z(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)})}function H(e){const n={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>n[e]||e)}function j(){return Date.now()}const R='';function P(e,n){const t=document.createElement("div");t.id="csk-launcher";const r=e.launcherTheme?" csk-launcher--glass":"";t.className=`csk-launcher csk-launcher--${"left-bottom"===e.position?"left":"right"}${r}`,t.setAttribute("title",e.title),t.setAttribute("aria-label",e.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=e.launcherIcon;const s=document.createElement("div");s.className="csk-launcher__badge csk-launcher__badge--hidden",t.appendChild(s);const o=function(e,n){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},n)}}(n,300);return t.addEventListener("click",o),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),o())}),t}function U(){return window.innerHeight-76}function Y(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--user",s.innerHTML='';const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.textContent=n;const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(t),o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),r}function O(e,n,t,r,s){const o=document.createElement("div");o.className="csk-msg csk-msg--ai",s&&(o.dataset.cskMsgId=s);const a=document.createElement("div");a.className="csk-msg__avatar csk-msg__avatar--ai",a.innerHTML=R;const i=document.createElement("div");i.className="csk-msg__content";const c=document.createElement("div");c.className="csk-msg__bubble",r?c.innerHTML=r(n):c.textContent=n;const l=document.createElement("div");return l.className="csk-msg__time",l.textContent=te(t),i.appendChild(c),i.appendChild(K(c,o)),i.appendChild(l),o.appendChild(a),o.appendChild(i),e.appendChild(o),J(c),o}const W='',G='';function K(e,n){const t=document.createElement("div");t.className="csk-msg__actions";const r=document.createElement("button");r.type="button",r.className="csk-action-btn",r.setAttribute("title",m("copy")),r.setAttribute("aria-label",m("copy")),r.innerHTML=W,r.addEventListener("click",async n=>{n.stopPropagation();const t=e.textContent||"";await X(t,r)});const s=document.createElement("button");s.type="button",s.className="csk-action-btn",s.setAttribute("title",m("retry")),s.setAttribute("aria-label",m("retry")),s.innerHTML=G,s.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:retry",{detail:{msgId:n.dataset.cskMsgId||""}}))});const o=document.createElement("button");o.type="button",o.className="csk-feedback-btn",o.setAttribute("title",m("feedback_up")),o.setAttribute("aria-label",m("feedback_up")),o.innerHTML='',o.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"up"}}))});const a=document.createElement("button");return a.type="button",a.className="csk-feedback-btn",a.setAttribute("title",m("feedback_down")),a.setAttribute("aria-label",m("feedback_down")),a.innerHTML='',a.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"down"}}))}),t.appendChild(r),t.appendChild(s),t.appendChild(o),t.appendChild(a),t}function V(e,n){const t=e.querySelectorAll(".csk-feedback-btn");t.length<2||(t.forEach(e=>e.classList.remove("csk-feedback-btn--active","down")),"up"===n&&t[0]&&t[0].classList.add("csk-feedback-btn--active"),"down"===n&&t[1]&&t[1].classList.add("csk-feedback-btn--active","down"))}async function X(e,n){const t=n.innerHTML;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}n.innerHTML='',n.classList.add("csk-action-btn--done"),setTimeout(()=>{n.innerHTML=t,n.classList.remove("csk-action-btn--done")},1500)}catch(e){}}function J(e){e.querySelectorAll(".csk-md-code-block").forEach(e=>{if(e.querySelector(".csk-md-code-copy"))return;const n=e.querySelector("code"),t=document.createElement("button");t.type="button",t.className="csk-md-code-copy",t.setAttribute("title",m("copy")),t.setAttribute("aria-label",m("copy")),t.innerHTML=W,t.addEventListener("click",async e=>{e.stopPropagation(),await X((null==n?void 0:n.textContent)||"",t)}),e.appendChild(t)})}function Q(e,n){e.classList.remove("csk-msg--streaming");const t=n.querySelector(".csk-caret");t&&t.remove(),J(n)}function Z(e,n){const t=e.querySelector(".csk-sources");if(t&&t.remove(),!n||0===n.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const s=document.createElement("div");s.className="csk-sources__header";const o=document.createElement("span");o.className="csk-sources__title",o.textContent=`📚 ${m("source_count",{n:n.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",s.appendChild(o),s.appendChild(a),s.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const i=document.createElement("div");i.className="csk-sources__body";for(const e of n){const n=document.createElement("div");n.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=e.title||e.sourceName||"未知文档",e.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=e.snippet,n.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const s=[];e.sourceName&&s.push(e.sourceName),void 0!==e.chunkIndex&&s.push(`分块 #${e.chunkIndex}`),void 0!==e.score&&s.push(`相关度 ${(100*e.score).toFixed(0)}%`),r.textContent=s.join(" · "),n.appendChild(t),n.appendChild(r),i.appendChild(n)}r.appendChild(s),r.appendChild(i);const c=e.querySelector(".csk-msg__time");c&&c.parentNode?c.parentNode.insertBefore(r,c):e.appendChild(r)}function ee(e,n,t,r,s,o,a){if(e.innerHTML="",0===n.length){const n=document.createElement("div");return n.className="csk-history-panel__empty",n.innerHTML=`\n
💬
\n ${m("history_empty")}
\n `,void e.appendChild(n)}const i=function(e){const n=new Date,t=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),r=t-864e5,s=t-864e5*(n.getDay()||7)+864e5,o={today:[],yesterday:[],week:[],earlier:[]};for(const n of e){const e=n.lastMessageTime||n.createdAt,a=e?new Date(e).getTime():0;a>=t?o.today.push(n):a>=r?o.yesterday.push(n):a>=s?o.week.push(n):o.earlier.push(n)}const a=[];return o.today.length&&a.push({label:m("history_group_today"),items:o.today}),o.yesterday.length&&a.push({label:m("history_group_yesterday"),items:o.yesterday}),o.week.length&&a.push({label:m("history_group_week"),items:o.week}),o.earlier.length&&a.push({label:m("history_group_earlier"),items:o.earlier}),a}(n);for(const n of i){if(i.length>1){const t=document.createElement("div");t.className="csk-history-group";const r=document.createElement("div");r.className="csk-history-group__label",r.textContent=n.label,t.appendChild(r),e.appendChild(t)}for(const a of n.items){const n=document.createElement("div");n.className="csk-history-item";const i=a.chatId||a.id;o&&i===o&&n.classList.add("csk-history-item--active");const c=document.createElement("div");c.className="csk-history-item__info";const l=document.createElement("div");l.className="csk-history-item__id",a.lastMessagePreview?l.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:l.textContent=i;const d=document.createElement("div");d.className="csk-history-item__meta";const p=[];void 0!==a.messageCount&&p.push(`${a.messageCount} 条消息`),a.lastMessageTime?p.push(a.lastMessageTime):a.createdAt&&p.push(a.createdAt),d.textContent=p.join(" · "),c.appendChild(l),c.appendChild(d);const u=document.createElement("div");u.className="csk-history-item__actions";const g=document.createElement("button");g.className="csk-history-action csk-history-action--export",g.setAttribute("title",m("history_export")),g.innerHTML='',g.addEventListener("click",e=>{e.stopPropagation(),r(a.id)});const k=document.createElement("button");k.className="csk-history-action csk-history-action--delete",k.setAttribute("title",m("history_delete")),k.innerHTML='',k.addEventListener("click",e=>{e.stopPropagation(),s(a.id)}),u.appendChild(g),u.appendChild(k),n.appendChild(c),n.appendChild(u),n.addEventListener("click",()=>{t(i)}),e.appendChild(n)}}}function ne(e){e.scrollTop=e.scrollHeight}function te(e){const n=new Date(e);return`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function re(e){return`csk_history_${e}`}function se(e,n){try{let t=n;t.length>200&&(t=t.slice(50),o.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const r={messages:t,updatedAt:Date.now()};localStorage.setItem(re(e),JSON.stringify(r))}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?o.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):o.error("保存会话历史失败",e)}}function oe(e){try{localStorage.removeItem(re(e))}catch(e){o.warn("清空会话历史失败",e)}}const ae="\0CODEBLOCK_",ie="\0INLINECODE_";function ce(e){if(!e||"string"!=typeof e)return"";const n=[];let t=e;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>{const s=n.length,o=H(r.trimEnd()),a=t?` class="language-${H(t)}"`:"";return n.push(`${o}
`),`${ae}${s}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(e,n)=>{const t=r.length;return r.push(`${H(n)}`),`${ie}${t}\0`}),t=H(t),t=le(t,ae,n),t=le(t,ie,r);const s=t.split("\n"),o=[];let a=!1,i="",c=!1,l=[];for(let e=0;e')){p(),u(),g(),o.push(n);continue}const t=n.match(/^(#{1,6})\s+(.+)/);if(t){p(),u(),g();const e=t[1].length;o.push(`${t[2]}`);continue}const r=n.match(/^>\s?(.*)/);if(r){p(),u(),c||(c=!0,o.push('')),o.push(`${d(r[1])}
`);continue}c&&g();const k=n.match(/^[\-\*]\s+(.+)/);if(k){p(),g(),a&&"ul"===i||(u(),a=!0,i="ul",o.push('')),o.push(`- ${d(k[1])}
`);continue}const m=n.match(/^\d+\.\s+(.+)/);m?(p(),g(),a&&"ol"===i||(u(),a=!0,i="ol",o.push('')),o.push(`- ${d(m[1])}
`)):""!==n.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(n.trim())?(p(),u(),g(),o.push('
')):(u(),g(),l.push(d(n))):(p(),u())}return p(),u(),g(),o.join("\n");function d(e){return e=(e=(e=(e=(e=(e=e.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,n,t)=>`${n}`)}function p(){l.length>0&&(o.push(`${l.join("
")}
`),l=[])}function u(){a&&(o.push("ul"===i?"
":""),a=!1,i="")}function g(){c&&(o.push("
"),c=!1)}}function le(e,n,t){return e.replace(new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(e,n)=>t[parseInt(n)]||"")}let de,pe=null,ue=[],ge=null,ke=null,me=null,he=null,be=null,fe=null,ye=null,xe=null,ve=null,we=null,_e=null,Ee=null,Ce=null,Ie=!1,$e=null,Le=!0,Ae=[],Se="",Ne=!1;function Fe(e,n){pe=e,ge=n.messagesContainer,ke=n.inputEl,me=n.inputEl.parentElement,he=n.sendBtn,be=n.clearBtn,fe=n.categorySelect,ye=n.historyPanel,xe=n.welcomeEl,ve=n.newMsgBtn,we=n.searchInput,_e=n.ariaLiveEl,Ee=n.showLoading,Ce=n.hideLoading,de=e.categoryId,Ne=e.enableRag,function(){if(!ke||!he)return;he.addEventListener("click",()=>{Ie&&$e?$e.abort():Re()}),ke.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||e.isComposing||(e.preventDefault(),Re())}),ke.addEventListener("input",()=>{je(),function(){if(!ke)return;ke.style.height="auto",ke.style.height=`${Math.min(ke.scrollHeight,120)}px`}()}),ke.addEventListener("focus",()=>{me&&me.classList.add("csk-input-wrap--focus")}),ke.addEventListener("blur",()=>{me&&me.classList.remove("csk-input-wrap--focus")}),be&&be.addEventListener("click",()=>function(){if(!pe)return;if(!confirm(m("clear_confirm")))return;if(ue=[],ge){ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}be&&(be.style.display="none");He(),oe(pe.integrateId);const e=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();b(e),M(pe.integrateId,pe.userId,e),o.lifecycleClear(pe.integrateId),o.info(`新 chatId=${e}`)}())}(),function(){if(!ge)return;ge.addEventListener("scroll",()=>{if(!ge)return;const{scrollTop:e,scrollHeight:n,clientHeight:t}=ge;Le=n-e-t<80,Le&&Te()}),ve&&ve.addEventListener("click",()=>{ge&&ne(ge),Le=!0,Te()})}(),function(){if(!we)return;we.addEventListener("input",()=>{Se=we.value.trim().toLowerCase(),qe()})}(),e.showCategorySwitch&&fe&&async function(){if(!fe)return;try{const e=await async function(){const e=y("/category/tree");try{const n=await v(e);if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const t=await n.json();return t.success&&Array.isArray(t.data)?(o.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(e){return e instanceof w?o.error(`加载分类树失败: ${e.message}`):o.error("加载分类树失败",e),[]}}();if(0===e.length)return;fe.innerHTML=``;const n=(e,t=0)=>{for(const r of e){const e=document.createElement("option");e.value=String(r.id),e.textContent=`${" ".repeat(t)}${r.name}`,void 0!==de&&String(r.id)===String(de)&&(e.selected=!0),fe.appendChild(e),r.children&&r.children.length>0&&n(r.children,t+1)}};n(e),o.info(`知识库分类加载成功 count=${e.length}`)}catch(e){o.error(m("category_load_error"),e)}}()}async function Me(){if(pe&&ge&&(await N(),await async function(){if(!pe||!ge)return;const e=f();if(!e)return;try{const n=await L(e);n.messages.length>0&&(ue=n.messages.map((e,n)=>({id:z(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`从后端加载 ${ue.length} 条历史消息`),se(pe.integrateId,ue))}catch(e){o.warn("从后端加载历史消息失败",e)}}(),0===ue.length)){const e=function(e){try{const n=localStorage.getItem(re(e));if(!n)return[];const t=JSON.parse(n);return t&&Array.isArray(t.messages)?(o.info(`加载历史消息 integrateId=${e} count=${t.messages.length}`),t.messages):[]}catch(e){return o.warn("加载会话历史失败",e),[]}}(pe.integrateId);e.length>0&&(ue=e,Ue(),o.info(`从本地缓存恢复 ${e.length} 条消息`))}}function Te(){ve&&ve.classList.add("csk-newmsg--hidden")}function De(){ge&&(Le?ne(ge):ve&&ve.classList.remove("csk-newmsg--hidden"))}function Be(e){he&&("stop"===e?(he.classList.add("csk-send-btn--stop"),he.removeAttribute("disabled"),he.setAttribute("title",m("stop")),he.setAttribute("aria-label",m("stop")),he.innerHTML=''):(he.classList.remove("csk-send-btn--stop"),he.setAttribute("title",m("send")),he.setAttribute("aria-label",m("send")),he.innerHTML='',je()))}function qe(){const e=null==ye?void 0:ye.querySelector("#csk-history-list");if(!e||!pe)return;ee(e,Se?Ae.filter(e=>(e.lastMessagePreview||e.chatId||e.id||"").toLowerCase().includes(Se)):Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{if(!confirm(m("history_delete_confirm")))return;await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),qe())},f())}function ze(e,n){if(!ge)return;const t=ue.find(n=>n.id===e&&"ai"===n.role);if(!t)return;const r=t.feedback===n?void 0:n;t.feedback=r;const s=ge.querySelector(`[data-csk-msg-id="${e}"]`);if(s&&V(s,r),pe&&se(pe.integrateId,ue),r){const n="up"===r?"THUMBS_UP":"THUMBS_DOWN";(async function(e,n){if(!h)return!1;const t=y("/feedback");try{const r=await v(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:String(e),conversationId:h.chatId,feedbackType:n})});return r.ok?(await r.json()).success||!1:(o.error(`反馈提交失败 status=${r.status}`),!1)}catch(e){return o.error("反馈提交异常",e),!1}})(String(e),n).then(n=>{n?o.info(`消息反馈已提交 msgId=${e} value=${r}`):o.warn(`消息反馈提交失败 msgId=${e}(本地状态已更新)`)})}else o.info(`消息反馈已取消 msgId=${e}`)}function He(){if(!xe)return;const e=ue.length>0||ge&&ge.querySelector(".csk-msg");xe.style.display=e?"none":""}function je(){if(!he||!ke)return;ke.value.trim().length>0&&!Ie?he.removeAttribute("disabled"):he.setAttribute("disabled","true")}async function Re(){if(!ke||!pe||Ie)return;const e=ke.value.trim();if(""===e)return;ke.value="",je(),ke.style.height="auto";const n=j(),t={id:z(),role:"user",content:e,timestamp:n};ge&&Y(ge,e,n),ue.push(t),He(),be&&ue.length>0&&(be.style.display="inline-flex"),ge&&De(),await Pe(e)}async function Pe(e){if(!pe||!ge)return;Ie=!0,Be("stop"),pe.chatId||await N();const n=j(),t=Ne;Ee&&Ee(),ge&&De();const r=z();let s="";try{pe.streaming?s=await async function(e,n,t,r){$e=new AbortController;const s=$e.signal;return new Promise((o,a)=>{let i=null,c=null,l="",d=!1;C(e,e=>{if(l+=e,!d&&ge){Ce&&Ce();const{wrapper:e,bubble:t}=function(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--ai csk-msg--streaming",t&&(r.dataset.cskMsgId=t);const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--ai",s.innerHTML=R;const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.innerHTML="";const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(n),o.appendChild(a),o.appendChild(K(a,r)),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),{wrapper:r,bubble:a}}(ge,n,r);c=e,i=t,d=!0}i&&(i.textContent=l,function(e){if(e.querySelector(".csk-caret"))return;const n=document.createElement("span");n.className="csk-caret",n.setAttribute("aria-hidden","true"),e.appendChild(n)}(i)),ge&&De()},()=>{if(c&&i){if(!d&&""===l)return void E(e).then(o).catch(a);l&&(i.innerHTML=ce(l)),Q(c,i)}o(l)},e=>{l.length>0?(i&&(i.innerHTML=ce(l+"\n\n"+m("stream_interrupted")),c&&Q(c,i)),o(l)):a(e)},de,t,s)})}(e,n,t,r):(s=await E(e),Ce&&Ce(),ge&&O(ge,s,n,ce,r));const a={id:r,role:"ai",content:s,timestamp:n};ue.push(a),se(pe.integrateId,ue),ge&&De(),function(e){if(!_e)return;const n=e.length>120?e.substring(0,120)+"...":e;_e.textContent=m("new_msg_announce")+":"+n}(s),ge&&ge.dispatchEvent(new CustomEvent("csk:newMessage",{bubbles:!0,detail:{msg:a}})),t&&async function(e,n){try{const t=await I(e,de);if(t.length>0){const e=t.map(e=>{var n,t;return{documentId:e.documentId||"",title:e.title||"",sourceName:e.sourceName||"",chunkIndex:null!==(n=e.chunkIndex)&&void 0!==n?n:0,score:null!==(t=e.score)&&void 0!==t?t:0,snippet:e.snippet||""}});if(n.sources=e,ge){const n=ge.querySelector(".csk-msg--ai:last-of-type");n&&Z(n,e)}pe&&se(pe.integrateId,ue)}}catch(e){o.warn("获取引用来源失败",e)}}(e,a)}catch(e){Ce&&Ce();const n=e instanceof w?e.message:m("error_send");if(ge){const e=document.createElement("div");e.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${n}`,e.appendChild(t),ge.appendChild(e)}o.error(`发送失败 integrateId=${pe.integrateId}`,e)}finally{Ie=!1,$e=null,Be("send"),je()}}function Ue(){if(!ge)return;const e=ge.querySelector(".csk-history-panel");ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());for(const e of ue)if("user"===e.role)Y(ge,e.content,e.timestamp);else{const n=O(ge,e.content,e.timestamp,ce,e.id);e.sources&&e.sources.length>0&&Z(n,e.sources),e.feedback&&V(n,e.feedback)}Le=!0,ne(ge),be&&ue.length>0&&(be.style.display="inline-flex"),He(),e&&!ge.contains(e)&&ge.appendChild(e)}async function Ye(e){if(!pe||!ge)return;o.info(`切换到会话 conversationId=${e}`),b(e),M(pe.integrateId,pe.userId,e),ye&&ye.classList.add("csk-history-panel--hidden"),ue=[];ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());try{const n=await L(e);n.messages.length>0&&(ue=n.messages.map(e=>({id:z(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`加载会话 ${e} 的 ${ue.length} 条消息`),se(pe.integrateId,ue))}catch(n){o.warn(`加载会话消息失败 conversationId=${e}`,n)}be&&ue.length>0&&(be.style.display="inline-flex"),He()}let Oe=null,We=!1,Ge=null,Ke=null,Ve=null,Xe=null,Je=null,Qe=null,Ze=null,en=null,nn=null,tn=null,rn=null,sn=null,on=null,an=null,cn=null,ln=null,dn=null;function pn(){if(!an||!Ge)return;const e=Ge.getBoundingClientRect(),n=on?"left"===on.side:"left-bottom"===(null==Oe?void 0:Oe.position);n?(an.style.left=`${e.left}px`,an.style.right="auto"):(an.style.right=window.innerWidth-e.right+"px",an.style.left="auto"),an.style.bottom=window.innerHeight-e.top+8+"px",an.classList.toggle("csk-teaser--left",!!n),an.classList.toggle("csk-teaser--right",!n)}function un(){if(!an)return;an.classList.add("csk-teaser--hidden"),an.removeEventListener("click",gn);const e=an.querySelector(".csk-teaser__close");e&&e.removeEventListener("click",kn)}function gn(e){e.target.closest(".csk-teaser__close")||(un(),fn())}function kn(e){e.stopPropagation(),un()}function mn(){an&&!an.classList.contains("csk-teaser--hidden")&&pn()}const hn='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';function bn(e){"Escape"===e.key&&Ke&&!Ke.classList.contains("csk-window--hidden")&&yn(),function(e){if(!Ke||Ke.classList.contains("csk-window--hidden"))return;if("Tab"!==e.key)return;const n=Array.from(Ke.querySelectorAll(hn));if(0===n.length)return;const t=n[0],r=n[n.length-1];e.shiftKey?document.activeElement===t&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),t.focus())}(e)}function fn(){Ke&&(Ke.classList.remove("csk-window--hidden"),un(),ln&&ln.classList.add("csk-launcher__badge--hidden"),setTimeout(()=>{Xe&&Xe.focus()},80))}function yn(){Ke&&Ke.classList.add("csk-window--hidden")}function xn(){Ke&&(Ke.classList.contains("csk-window--hidden")?fn():yn())}function vn(e){return`csk_position_${e}`}function wn(e){return`csk_launcher_pos_${e}`}function _n(e){Ke&&(Ke.classList.remove("csk-window--right","csk-window--left"),Ke.classList.add(`csk-window--${e}`),an&&(an.classList.remove("csk-teaser--right","csk-teaser--left"),an.classList.add(`csk-teaser--${e}`)))}const En={init:function(e){if(We)return void o.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(e){var n,t,r,s,i,g,k,m,h,b,f;if(!e.integrateId||"string"!=typeof e.integrateId&&"number"!=typeof e.integrateId||"string"==typeof e.integrateId&&""===e.integrateId.trim())return o.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!e.requestDomain||"string"!=typeof e.requestDomain||""===e.requestDomain.trim())return o.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(e.requestDomain)}catch(n){return o.error(`requestDomain 不是合法的 URL 格式:${e.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const y=String(e.integrateId).trim(),x=e.launcherTheme||void 0;let v=e.launcherIcon||a,w=e.primaryColor||"#4F46E5";x&&!e.launcherIcon&&(v={"dream-purple":c,"mint-tech":l,"coral-peach":d,"sky-blue":p}[x]||a,e.primaryColor||(w=u[x]||"#4F46E5"));const _={integrateId:y,requestDomain:e.requestDomain.replace(/\/+$/,""),userId:e.userId,categoryId:e.categoryId,showCategorySwitch:null!==(n=e.showCategorySwitch)&&void 0!==n&&n,title:e.title||"AI 智能助手",width:null!==(t=e.width)&&void 0!==t?t:380,height:Math.max(300,null!==(r=e.height)&&void 0!==r?r:520),position:"left-bottom"===e.position?"left-bottom":"right-bottom",primaryColor:w,launcherTheme:x,launcherIcon:v,showClear:null===(s=e.showClear)||void 0===s||s,showAdminPanel:null!==(i=e.showAdminPanel)&&void 0!==i&&i,quickReplies:Array.isArray(e.quickReplies)?e.quickReplies.map(e=>String(e).trim()).filter(Boolean):[],theme:"dark"===e.theme?"dark":"light",showTeaser:null===(g=e.showTeaser)||void 0===g||g,teaserText:"string"==typeof e.teaserText&&e.teaserText.trim()||"",streaming:null===(k=e.streaming)||void 0===k||k,enableRag:null===(m=e.enableRag)||void 0===m||m,rewriteStrategy:e.rewriteStrategy||"REWRITE",locale:e.locale||"zh-CN",debug:null===(h=e.debug)||void 0===h||h,sound:null!==(b=e.sound)&&void 0!==b&&b,notification:null!==(f=e.notification)&&void 0!==f&&f,onError:"function"==typeof e.onError?e.onError:void 0,onReady:"function"==typeof e.onReady?e.onReady:void 0,onMessage:"function"==typeof e.onMessage?e.onMessage:void 0,token:e.token,roles:e.roles,chatId:""};return o.info(`配置解析完成 integrateId(=roleId)=${_.integrateId} userId(=accountId)=${_.userId||"(未设置)"} requestDomain=${_.requestDomain}`),_}(e);if(!t)return;var s;Oe=t,function(e){if(g[e])k=e;else{const n=e.split("-")[0],t=Object.keys(g).find(e=>e.startsWith(n));t&&(k=t)}}(Oe.locale),s=Oe.debug,n=s,r(Oe.onError),function(e){h=e}(Oe),q(Oe),Ge=P(Oe,xn),document.body.appendChild(Ge),ln=Ge.querySelector(".csk-launcher__badge"),function(e,n){try{const t=localStorage.getItem(wn(e));if(!t)return;const r=JSON.parse(t);if("left"!==r.side&&"right"!==r.side||"number"!=typeof r.bottom)return;const s=window.innerHeight-76,o=Math.max(16,Math.min(r.bottom,s));n.classList.remove("csk-launcher--right","csk-launcher--left"),n.classList.add(`csk-launcher--${r.side}`),n.style.bottom=`${o}px`,on={side:r.side,bottom:o}}catch(e){}}(Oe.integrateId,Ge),sn=function(e,n,t){let r=!1,s=0,o=0,a=!1,i=0,c=0,l=0,d=!1;function p(){const n=parseFloat(getComputedStyle(e).bottom);return isNaN(n)?24:n}function u(n,t){if(d)return;r=!0,a=!1,s=n,o=t,i=p();const u=e.style,g=getComputedStyle(e);c=u.right?parseFloat(u.right):parseFloat(g.right),l=u.left?parseFloat(u.left):parseFloat(g.left)}function g(n,t,d){if(!r)return;const p=n-s,u=t-o;if(!a){if(Math.abs(p)<5&&Math.abs(u)<5)return;a=!0,e.classList.add("csk-launcher--dragging"),e.classList.remove("csk-launcher--right","csk-launcher--left"),e.style.transition="none",!isNaN(c)&&c>=0&&isNaN(l)?(e.style.right=`${c}px`,e.style.left="auto"):!isNaN(l)&&l>=0&&(e.style.left=`${l}px`,e.style.right="auto")}if(a){d.preventDefault();const n=Math.max(16,Math.min(i-u,U()));e.style.bottom=`${n}px`}}function k(){if(!r)return;if(r=!1,!a)return;const n=parseFloat(e.style.bottom)||p(),s=Math.max(16,Math.min(n,U())),o=e.getBoundingClientRect(),i=o.left+o.width/2<=window.innerWidth/2?"left":"right";e.classList.remove("csk-launcher--dragging"),e.classList.add(`csk-launcher--${i}`,"csk-launcher--snap"),e.style.left="",e.style.right="",e.style.bottom=`${s}px`,d=!0;const c=()=>{e.removeEventListener("transitionend",c),e.classList.remove("csk-launcher--snap"),e.style.transition="",d=!1};e.addEventListener("transitionend",c),setTimeout(()=>{d&&c()},350);const l=n=>{n.stopPropagation(),e.removeEventListener("click",l,!0)};e.addEventListener("click",l,!0);const u=e.querySelector(".csk-launcher__badge");u&&(u.style.display=""),t&&t({side:i,bottom:s})}function m(e){u(e.clientX,e.clientY)}function h(e){g(e.clientX,e.clientY,e)}function b(){k()}function f(e){1===e.touches.length&&u(e.touches[0].clientX,e.touches[0].clientY)}function y(e){1===e.touches.length&&g(e.touches[0].clientX,e.touches[0].clientY,e)}function x(){k()}return e.addEventListener("mousedown",m),document.addEventListener("mousemove",h),document.addEventListener("mouseup",b),e.addEventListener("touchstart",f,{passive:!0}),document.addEventListener("touchmove",y,{passive:!1}),document.addEventListener("touchend",x),()=>{e.removeEventListener("mousedown",m),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",b),e.removeEventListener("touchstart",f),document.removeEventListener("touchmove",y),document.removeEventListener("touchend",x)}}(Ge,0,e=>{on=e,function(e,n){try{localStorage.setItem(wn(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e),function(){if(!Ke)return;Ke.style.left="",Ke.style.top="",Ke.style.right="",Ke.style.bottom=""}(),_n(e.side),an&&!an.classList.contains("csk-teaser--hidden")&&pn()}),on&&_n(on.side);const i=function(e){const n=document.createElement("div");n.id="csk-window",n.className=`csk-root csk-window csk-window--${"left-bottom"===e.position?"left":"right"} csk-window--hidden${"dark"===e.theme?" csk-dark":""}`,n.setAttribute("role","dialog"),n.setAttribute("aria-label",e.title),n.setAttribute("aria-modal","false");const t=document.createElement("div");t.className="csk-header";const r=document.createElement("div");r.className="csk-header__left";const s=document.createElement("div");s.className="csk-header__avatar",s.innerHTML=R;const o=document.createElement("div");o.className="csk-header__info";const a=document.createElement("span");a.className="csk-header__title",a.textContent=e.title;const i=document.createElement("span");i.className="csk-header__status",i.innerHTML=`${m("status_online")}`,o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o);const c=document.createElement("div");c.className="csk-header__actions";const l=document.createElement("button");l.className="csk-history-btn",l.setAttribute("title",m("history_title")),l.innerHTML='';const d=document.createElement("button");d.className="csk-header__btn csk-header__btn--minimize",d.setAttribute("title",m("minimize")),d.innerHTML='',d.addEventListener("click",()=>{n.classList.add("csk-window--hidden")});const p=document.createElement("button");p.className="csk-header__btn csk-header__btn--close",p.setAttribute("title",m("close")),p.innerHTML='',p.addEventListener("click",()=>{n.classList.add("csk-window--hidden")}),c.appendChild(l),c.appendChild(d),c.appendChild(p),t.appendChild(r),t.appendChild(c);const u=document.createElement("div");u.id="csk-messages",u.className="csk-messages";const g=document.createElement("div");if(g.className="csk-welcome",g.innerHTML=`\n ${R}
\n ${m("welcome_title")}
\n ${m("welcome_desc")}
\n `,e.quickReplies.length>0){const t=document.createElement("div");t.className="csk-quick-replies";for(const r of e.quickReplies){const e=document.createElement("button");e.type="button",e.className="csk-quick-reply",e.textContent=r,e.addEventListener("click",()=>{n.dispatchEvent(new CustomEvent("csk:quickReply",{detail:{text:r}}))}),t.appendChild(e)}g.appendChild(t)}u.appendChild(g);const k=document.createElement("button");k.type="button",k.className="csk-newmsg csk-newmsg--hidden",k.innerHTML=`\n \n ${m("new_message")}\n `,n.appendChild(k);const h=document.createElement("div");h.className="csk-history-panel csk-history-panel--hidden",h.innerHTML=`\n \n \n \n
\n \n `,u.appendChild(h);const b=h.querySelector("#csk-history-back");b&&b.addEventListener("click",()=>{h.classList.add("csk-history-panel--hidden")}),l.addEventListener("click",e=>{e.stopPropagation();const t=h.classList.contains("csk-history-panel--hidden");h.classList.toggle("csk-history-panel--hidden"),t&&n.dispatchEvent(new CustomEvent("csk:loadHistory"))});let f=null;if(e.showCategorySwitch){const e=document.createElement("div");e.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",f=document.createElement("select"),f.id="csk-category-select",f.className="csk-category-select",f.innerHTML=``,f.addEventListener("change",()=>{const e=f.value;n.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:e?Number(e):void 0}}))}),e.appendChild(r),e.appendChild(f),n.appendChild(t),n.appendChild(u),n.appendChild(e)}else n.appendChild(t),n.appendChild(u);const y=document.createElement("div");y.className="csk-input-area";const x=document.createElement("div");x.className="csk-input-wrap";const v=document.createElement("textarea");v.id="csk-input",v.className="csk-input",v.setAttribute("placeholder",m("placeholder")),v.setAttribute("rows","1"),v.setAttribute("autofocus","");const w=document.createElement("button");w.id="csk-send-btn",w.className="csk-send-btn",w.setAttribute("title",m("send")),w.setAttribute("disabled","true"),w.innerHTML='',x.appendChild(v),x.appendChild(w),y.appendChild(x),n.appendChild(y);let _=null;e.showClear&&(_=document.createElement("button"),_.className="csk-clear-btn",_.textContent=m("clear"),_.style.display="none",n.insertBefore(_,y));let E=null;const C=document.createElement("div");C.className="csk-sr-only",C.setAttribute("aria-live","polite"),C.setAttribute("aria-atomic","true"),n.appendChild(C);const I=h.querySelector("#csk-history-search"),$=document.createElement("div");return $.className=`csk-teaser csk-teaser--${"left-bottom"===e.position?"left":"right"} csk-teaser--hidden`,$.setAttribute("role","status"),$.innerHTML=`\n \n ${e.teaserText||m("teaser_text")}\n `,{window:n,messagesContainer:u,inputEl:v,sendBtn:w,clearBtn:_,categorySelect:f,historyPanel:h,welcomeEl:g,newMsgBtn:k,teaserEl:$,searchInput:I,ariaLiveEl:C,showLoading:function(){if(E)return E.style.display="flex",E;const e=document.createElement("div");return e.className="csk-loading",e.innerHTML=`\n ${R}
\n \n `,u.appendChild(e),E=e,e},hideLoading:function(){E&&E.parentNode&&(E.parentNode.removeChild(E),E=null)}}}(Oe);Ke=i.window,Ve=i.messagesContainer,Xe=i.inputEl,Je=i.sendBtn,Qe=i.clearBtn,Ze=i.categorySelect,en=i.historyPanel,nn=i.showLoading,tn=i.hideLoading,document.body.appendChild(Ke),an=i.teaserEl,document.body.appendChild(an),pn();const b=Ke.querySelector(".csk-header");if(b&&(rn=function(e,n,t){let r=!1,s=0,o=0,a=0,i=0;const c=e=>{if(e.target.closest("button"))return;r=!0,s=e.clientX,o=e.clientY;const t=n.getBoundingClientRect();a=s-t.left,i=o-t.top,document.addEventListener("mousemove",l),document.addEventListener("mouseup",d)},l=e=>{if(!r)return;const t=e.clientX-a,s=e.clientY-i,o=window.innerWidth-n.offsetWidth,c=window.innerHeight-n.offsetHeight;n.style.right="auto",n.style.bottom="auto",n.style.left=`${Math.max(0,Math.min(t,o))}px`,n.style.top=`${Math.max(0,Math.min(s,c))}px`},d=()=>{if(r=!1,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d),t){const e=n.getBoundingClientRect();t({x:e.left,y:e.top})}};return e.addEventListener("mousedown",c),()=>{e.removeEventListener("mousedown",c),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d)}}(b,Ke,e=>{!function(e,n){try{localStorage.setItem(vn(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e)})),function(e,n){try{const t=localStorage.getItem(vn(e));if(!t)return;const r=JSON.parse(t);if("number"!=typeof r.x||"number"!=typeof r.y)return;const s=window.innerWidth-n.offsetWidth,o=window.innerHeight-n.offsetHeight,a=Math.max(0,Math.min(r.x,s)),i=Math.max(0,Math.min(r.y,o));n.style.right="auto",n.style.bottom="auto",n.style.left=`${a}px`,n.style.top=`${i}px`}catch(e){}}(Oe.integrateId,Ke),Fe(Oe,{messagesContainer:Ve,inputEl:Xe,sendBtn:Je,clearBtn:Qe,categorySelect:Ze,historyPanel:en,welcomeEl:i.welcomeEl,newMsgBtn:i.newMsgBtn,searchInput:i.searchInput,ariaLiveEl:i.ariaLiveEl,showLoading:nn,hideLoading:tn}),Ke.addEventListener("csk:categoryChange",e=>{var n,t;n=e.detail.categoryId,de=n,Ne=null===(t=null==pe?void 0:pe.enableRag)||void 0===t||t,o.lifecycleCategoryChange(null!=n?n:"全部")}),Ke.addEventListener("csk:loadHistory",()=>{!async function(){if(!ye||!pe)return;const e=ye.querySelector("#csk-history-list");if(e){e.innerHTML='加载中...
';try{const n=await $(1,50,pe.userId,pe.integrateId);Ae=n.list.map(e=>({id:e.conversationId||"",chatId:e.conversationId||"",messageCount:e.messageCount,lastMessageTime:e.lastMessageTime,lastMessagePreview:e.lastMessagePreview,createdAt:e.firstMessageTime||e.createdAt})),Se="",we&&(we.value=""),ee(e,Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{confirm(m("history_delete_confirm"))&&await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),qe())},f())}catch(n){o.error(m("history_load_error"),n),e.innerHTML=`⚠
${m("history_load_error")}
`}}}()}),Ke.addEventListener("csk:quickReply",e=>{var n;n=e.detail.text,!ke||Ie?Promise.resolve():(ke.value=n,je(),Re())}),Ke.addEventListener("csk:retry",e=>{!async function(e){if(!pe||!ge||Ie)return;const n=ue.findIndex(n=>n.id===e&&"ai"===n.role);if(n<0)return;let t="";for(let e=n-1;e>=0;e--)if("user"===ue[e].role){t=ue[e].content;break}if(!t)return;const r=ue.splice(n),s=new Set(r.map(e=>e.id));ge.querySelectorAll(".csk-msg").forEach(e=>{const n=e.dataset.cskMsgId;n&&s.has(n)&&e.remove()}),se(pe.integrateId,ue),He(),await Pe(t)}(e.detail.msgId)}),Ke.addEventListener("csk:feedback",e=>{ze(e.detail.msgId,e.detail.value)}),Ke.addEventListener("csk:newMessage",e=>{var n;if(Ke&&Ke.classList.contains("csk-window--hidden")&&(ln&&ln.classList.remove("csk-launcher__badge--hidden"),(null==Oe?void 0:Oe.sound)&&function(){try{dn||(dn=new(window.AudioContext||window.webkitAudioContext));const e=dn;if("suspended"===e.state)return void e.resume();const n=e.currentTime;[0,.15].forEach((t,r)=>{const s=e.createOscillator(),o=e.createGain();s.type="sine",s.frequency.value=0===r?880:1100,o.gain.setValueAtTime(.15,n+t),o.gain.exponentialRampToValueAtTime(.001,n+t+.12),s.connect(o),o.connect(e.destination),s.start(n+t),s.stop(n+t+.12)})}catch(e){}}(),(null==Oe?void 0:Oe.notification)&&function(){try{if(!("Notification"in window))return;"granted"===Notification.permission?new Notification((null==Oe?void 0:Oe.title)||"AI 智能助手",{body:"收到新消息",icon:void 0,silent:!0}):"denied"!==Notification.permission&&Notification.requestPermission()}catch(e){}}()),(null==Oe?void 0:Oe.onMessage)&&(null===(n=e.detail)||void 0===n?void 0:n.msg))try{Oe.onMessage(e.detail.msg)}catch(e){}}),document.addEventListener("keydown",bn),window.addEventListener("resize",mn),We=!0,o.lifecycleInit(Oe.integrateId,Oe.requestDomain),Oe.onReady)try{Oe.onReady()}catch(e){}Oe.showTeaser&&(cn=setTimeout(()=>{Ke&&Ke.classList.contains("csk-window--hidden")&&function(){if(!an)return;pn(),an.classList.remove("csk-teaser--hidden"),an.addEventListener("click",gn);const e=an.querySelector(".csk-teaser__close");e&&e.addEventListener("click",kn)}()},1500)),Me().catch(e=>{o.warn("chatId 初始化失败,将在发送消息时重试",e)})},destroy:function(){if(!We)return;cn&&(clearTimeout(cn),cn=null),un(),an&&an.parentNode&&(an.parentNode.removeChild(an),an=null),Ge&&Ge.parentNode&&(Ge.parentNode.removeChild(Ge),Ge=null),Ke&&Ke.parentNode&&(Ke.parentNode.removeChild(Ke),Ke=null),rn&&(rn(),rn=null),sn&&(sn(),sn=null),on=null,T&&T.parentNode&&(T.parentNode.removeChild(T),T=null),document.querySelectorAll("style[data-csk-sdk]").forEach(e=>e.remove()),document.removeEventListener("keydown",bn),window.removeEventListener("resize",mn),r(void 0);const e=null==Oe?void 0:Oe.integrateId;Oe=null,We=!1,Ve=null,Xe=null,Je=null,Qe=null,Ze=null,en=null,nn=null,tn=null,ln=null,dn=null,h=null,o.lifecycleDestroy(e||"")},open:fn,close:yn,toggle:xn,clearHistory:function(){Oe&&(Qe?Qe.click():confirm("确定清空所有对话记录?")&&oe(Oe.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=En),En}();
+var ChatbotSDK=function(){"use strict";const e="[ChatbotSDK]";let n=!0,t=null;function r(e){t=e||null}const s={},o={info(t,r){n&&console.log(e,t,void 0!==r?r:"")},warn(t,r){n&&console.warn(e,t,void 0!==r?r:"")},error(n,r){if(console.error(e,n,void 0!==r?r:""),t)try{const e=r instanceof Error&&r.type||"error";t({message:n,code:String(e),detail:r})}catch(e){}},time(e){s[e]=Date.now()},timeEnd(t,r){const o=s[t];if(void 0!==o){const a=Date.now()-o;if(delete s[t],n){const n=r?`${r} ${a}ms`:`${t} ${a}ms`;console.log(e,n)}return a}return 0},lifecycleInit(e,n){this.info(`初始化完成 integrateId=${e} requestDomain=${n}`)},lifecycleDestroy(e){this.info(`销毁实例 integrateId=${e}`)},lifecycleSend(e,n){this.info(`发送消息 integrateId=${e} length=${n}`),this.time(`send_${e}`)},lifecycleReply(e,n){const t=this.timeEnd(`send_${e}`,"AI 回复");this.info(`AI 回复 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleError(e,n,t){this.timeEnd(`send_${e}`),this.error(`请求失败 integrateId=${e} status=${n} message=${t}`)},lifecycleClear(e){this.info(`清空会话 integrateId=${e}`)},lifecycleStreamDone(e,n){const t=this.timeEnd(`send_${e}`,"流式回复");this.info(`流式回复完成 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleCategoryChange(e){this.info(`切换知识库分类 categoryId=${e}`)}},a='';function i(e,n,t){return``}const c=i("rgba(139,92,246,0.6)","rgba(139,92,246,0.45)","rgba(240,171,252,0.85)"),l=i("rgba(16,185,129,0.6)","rgba(16,185,129,0.45)","rgba(110,231,183,0.85)"),d=i("rgba(244,63,94,0.55)","rgba(244,63,94,0.4)","rgba(253,186,116,0.85)"),p=i("rgba(56,189,248,0.6)","rgba(56,189,248,0.45)","rgba(167,139,250,0.85)"),u={"dream-purple":"#A78BFA","mint-tech":"#34D399","coral-peach":"#FB7185","sky-blue":"#7DD3FC"};const g={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",status_online:"在线",welcome_title:"你好,我是 AI 智能助手",welcome_desc:"有什么可以帮你的吗?在下方输入框开始提问吧~",placeholder:"输入您的问题...",send:"发送",stop:"停止生成",new_message:"新消息",copy:"复制",copied:"已复制",retry:"重新生成",retrying:"重新生成中...",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",history_search:"搜索会话...",history_group_today:"今天",history_group_yesterday:"昨天",history_group_week:"本周",history_group_earlier:"更早",feedback_up:"有帮助",feedback_down:"没帮助",teaser_text:"有什么可以帮你的吗?",new_msg_announce:"收到新消息",resize:"拖拽缩放窗口",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",status_online:"Online",welcome_title:"Hi, I am your AI assistant",welcome_desc:"How can I help you? Type your question below to get started.",placeholder:"Type your question...",send:"Send",stop:"Stop generating",new_message:"New message",copy:"Copy",copied:"Copied",retry:"Regenerate",retrying:"Regenerating...",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",history_search:"Search conversations...",history_group_today:"Today",history_group_yesterday:"Yesterday",history_group_week:"This Week",history_group_earlier:"Earlier",feedback_up:"Helpful",feedback_down:"Not helpful",teaser_text:"How can I help you?",new_msg_announce:"New message received",resize:"Resize window",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let m="zh-CN";function h(e,n){let t=(g[m]||g["zh-CN"])[e]||g["zh-CN"][e]||e;if(n)for(const[e,r]of Object.entries(n))t=t.replace(`{${e}}`,String(r));return t}let k=null;function b(e){k&&(k.chatId=e)}function f(){return(null==k?void 0:k.chatId)||""}function y(e){if(!k)throw new Error("API 配置未初始化");return`${k.requestDomain.replace(/\/+$/,"")}${e.startsWith("/")?e:`/${e}`}`}function x(e,n,t){null!=t&&("string"==typeof t&&""===t.trim()||e.set(n,String(t)))}async function v(e,n={},t=3e4,r){const s=new AbortController,a=setTimeout(()=>s.abort(),t);r&&(r.aborted?s.abort():r.addEventListener("abort",()=>s.abort(),{once:!0}));try{const t={};n.headers&&(n.headers instanceof Headers?n.headers.forEach((e,n)=>{t[n]=e}):Array.isArray(n.headers)?n.headers.forEach(([e,n])=>{t[e]=n}):Object.assign(t,n.headers)),(null==k?void 0:k.token)&&e.includes("/ai/")&&(t.Authorization=`Bearer ${k.token}`);const r=await fetch(e,Object.assign(Object.assign({},n),{headers:t,signal:s.signal,mode:"cors",credentials:"include"}));return 401===r.status&&e.includes("/ai/")&&o.error("SDK 认证失败:Token 缺失或已过期,请重新调用 /open-api/auth/token 换取 Token"),r}catch(e){if(null==r?void 0:r.aborted)throw new w("aborted","aborted");if(e instanceof DOMException&&"AbortError"===e.name)throw new w(h("error_timeout"),"timeout");if(e instanceof TypeError&&e.message.includes("Failed to fetch"))throw new w(h("error_cors"),"cors");throw new w(h("error_network"),"network")}finally{clearTimeout(a)}}class w extends Error{constructor(e,n){super(e),this.name="CskError",this.type=n}}function _(e){switch(e){case 401:return h("error_auth");case 403:return h("error_forbidden");case 404:return h("error_not_found");case 429:return h("error_rate_limit");case 500:return h("error_server");case 502:case 503:return h("error_unavailable");default:return`${h("error_unknown")}(${e})`}}async function E(e){const n=function(e){const n=new URLSearchParams;return n.set("message",e),n.set("chatId",k.chatId),x(n,"roleId",k.integrateId),x(n,"accountId",k.userId),y(`/ai/assistant_app/chat/sync?${n.toString()}`)}(e);o.lifecycleSend(k.integrateId,e.length);try{const e=await v(n);if(!e.ok){const n=_(e.status);throw o.lifecycleError(k.integrateId,String(e.status),n),new w(n,`http_${e.status}`)}const t=await e.text();return o.lifecycleReply(k.integrateId,t.length),t}catch(e){if(e instanceof w)throw e;throw o.lifecycleError(k.integrateId,"unknown",String(e)),new w(h("error_unknown"),"unknown")}}async function C(e,n,t,r,s,a,i){var c;const l=a?function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",k.chatId),t.set("rewriteStrategy",k.rewriteStrategy||"REWRITE"),x(t,"roleId",k.integrateId),x(t,"accountId",k.userId),x(t,"categoryId",null!=n?n:k.categoryId),y(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(e,s):function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",k.chatId),x(t,"roleId",k.integrateId),x(t,"accountId",k.userId),x(t,"categoryId",null!=n?n:k.categoryId),y(`/ai/assistant_app/chat/sse?${t.toString()}`)}(e,s);let d="";o.lifecycleSend(k.integrateId,e.length);try{const e=await v(l,{},6e4,i);if(!e.ok){const n=_(e.status);return o.lifecycleError(k.integrateId,String(e.status),n),void r(new w(n,`http_${e.status}`))}const s=null===(c=e.body)||void 0===c?void 0:c.getReader();if(!s)return void r(new w(h("error_stream_unsupported"),"stream_unsupported"));const a=new TextDecoder("utf-8",{stream:!0});let p="";try{for(;;){const{done:e,value:t}=await s.read();if(e)break;p+=a.decode(t,{stream:!0});const r=p.split("\n");p=r.pop()||"";for(const e of r){const t=e.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const e=t.substring(5).trim();e&&(d+=e,n(e))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(d+=t,n(t))}}}if(p.trim()){const e=p.trim();if(e.startsWith("data:")){const t=e.substring(5).trim();t&&(d+=t,n(t))}else"[DONE]"!==e&&(d+=e,n(e))}}catch(e){if(null==i?void 0:i.aborted)o.info(`流式被用户中断,保留已生成内容 length=${d.length}`);else{if(!(d.length>0))throw e;n("\n\n"+h("stream_unstable"))}}finally{s.releaseLock()}o.lifecycleStreamDone(k.integrateId,d.length),t()}catch(e){if((null==i?void 0:i.aborted)||e instanceof w&&"aborted"===e.type)return void t();e instanceof w?r(e):(o.lifecycleError(k.integrateId,"unknown",String(e)),r(new w(h("error_network"),"network")))}}async function I(e,n){const t=function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",k.chatId),t.set("rewriteStrategy",k.rewriteStrategy||"REWRITE"),x(t,"roleId",k.integrateId),x(t,"accountId",k.userId),x(t,"categoryId",null!=n?n:k.categoryId),y(`/ai/assistant_app/rag/sources?${t.toString()}`)}(e,n);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return n.success&&Array.isArray(n.data)?(o.info(`获取引用来源 count=${n.data.length}`),n.data):[]}catch(e){return o.error("获取引用来源失败",e),[]}}async function L(e=1,n=20,t,r){const s=new URLSearchParams;s.set("page",String(e)),s.set("size",String(n)),t&&s.set("accountId",t),r&&s.set("roleId",r);const a=y(`/ai/sdk/conversation/list?${s.toString()}`);try{const e=await v(a);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{list:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0,pages:n.pages||0}}catch(e){return o.error("加载会话列表失败",e),{list:[],total:0,pages:0}}}async function $(e){const n=new URLSearchParams;(null==k?void 0:k.userId)&&n.set("accountId",k.userId),(null==k?void 0:k.integrateId)&&n.set("roleId",k.integrateId);const t=y(`/ai/sdk/conversation/${e}/messages?${n.toString()}`);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{messages:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0}}catch(e){return o.error("加载会话消息失败",e),{messages:[],total:0}}}async function A(e){const n=new URLSearchParams;(null==k?void 0:k.userId)&&n.set("accountId",k.userId),(null==k?void 0:k.integrateId)&&n.set("roleId",k.integrateId);const t=y(`/ai/sdk/conversation/${e}?${n.toString()}`);try{const n=await v(t,{method:"DELETE"});if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const r=await n.json();return o.info(`删除会话 id=${e} success=${r.success}`),r.success||!1}catch(e){return o.error("删除会话失败",e),!1}}function S(e){const n=new URLSearchParams;return(null==k?void 0:k.userId)&&n.set("accountId",k.userId),(null==k?void 0:k.integrateId)&&n.set("roleId",k.integrateId),y(`/ai/sdk/conversation/${e}/export?${n.toString()}`)}async function N(){if(!k)return"";const e=function(e,n){try{return localStorage.getItem(M(e,n))||""}catch(e){return""}}(k.integrateId,k.userId);if(e)return k.chatId=e,o.info(`从缓存恢复 chatId=${e}`),e;try{const e=await L(1,5,k.userId,k.integrateId);if(e.list.length>0){const n=e.list[0],t=n.conversationId||n.chatId||"";if(t)return k.chatId=t,F(k.integrateId,k.userId,t),o.info(`从后端恢复会话 chatId=${t} messageCount=${n.messageCount}`),t}}catch(e){o.warn("查询后端会话列表失败,将生成新 chatId",e)}const n=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();return k.chatId=n,F(k.integrateId,k.userId,n),o.info(`生成新 chatId=${n}`),n}function M(e,n){return`csk_chatId_${e}${n?"_"+n:""}`}function F(e,n,t){try{t?localStorage.setItem(M(e,n),t):localStorage.removeItem(M(e,n))}catch(e){}}let D=null;function T(e){const n=z(e.primaryColor,-15),t=z(e.primaryColor,18),r=function(e){const n=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);return n?`${parseInt(n[1],16)}, ${parseInt(n[2],16)}, ${parseInt(n[3],16)}`:"79, 70, 229"}(e.primaryColor),s=e.launcherTheme?{"dream-purple":{grad1:"#A78BFA",grad2:"#F0ABFC",glow:"167, 139, 250"},"mint-tech":{grad1:"#6EE7B7",grad2:"#34D399",glow:"52, 211, 153"},"coral-peach":{grad1:"#FB7185",grad2:"#FDBA74",glow:"251, 113, 133"},"sky-blue":{grad1:"#7DD3FC",grad2:"#A78BFA",glow:"125, 211, 252"}}[e.launcherTheme]:null;return`\n --csk-primary: ${e.primaryColor};\n --csk-primary-hover: ${n};\n --csk-primary-light: ${t};\n --csk-primary-rgb: ${r};\n --csk-bg-user: linear-gradient(135deg, ${e.primaryColor}, ${n});\n --csk-bg-ai: #ffffff;\n --csk-text-user: #ffffff;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${e.width}px;\n --csk-window-height: ${e.height}px;\n --csk-radius: 16px;\n --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);\n --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06);\n --csk-border: #ECEEF2;\n --csk-bg-app: #F6F7F9;\n ${s?`\n --csk-launcher-grad-1: ${s.grad1};\n --csk-launcher-grad-2: ${s.grad2};\n --csk-launcher-glow: ${s.glow};\n `:""}\n `}function z(e,n){const t=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return e;const r=e=>Math.max(0,Math.min(255,e)),s=r(parseInt(t[1],16)+n),o=r(parseInt(t[2],16)+n),a=r(parseInt(t[3],16)+n);return`#${s.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}`}function B(e){document.querySelector("style[data-csk-sdk]")||(D=document.createElement("style"),D.setAttribute("data-csk-sdk",""),D.textContent=function(e){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${T(e)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;\n font-size: 14px;\n line-height: 1.55;\n color: #1F2937;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; }\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 24px;\n z-index: 9998;\n width: 60px;\n height: 60px;\n border-radius: 50%;\n /* 极光旋转渐变底 — 默认蓝紫系,由 primaryColor 驱动的 conic-gradient */\n background: conic-gradient(from 0deg,\n var(--csk-primary-light, #06b6d4),\n var(--csk-primary, #3b82f6),\n var(--csk-primary-hover, #8b5cf6),\n var(--csk-primary-light, #06b6d4)\n );\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n user-select: none;\n overflow: visible;\n /* 半透明白色光环边框,在白色页面上清晰分离按钮与背景 */\n border: 2.5px solid rgba(255, 255, 255, 0.55);\n /* 三层投影:接地阴影 + 彩色光晕,把按钮从白底「托」出来 */\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12);\n transition:\n transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),\n box-shadow 0.25s ease,\n border-color 0.25s ease;\n animation:\n csk-aurora-spin 4s linear infinite,\n csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n.csk-launcher--right { right: 24px; }\n.csk-launcher--left { left: 24px; }\n\n/* 高光扫过动效 */\n.csk-launcher::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 40%;\n height: 200%;\n border-radius: 50%;\n background: linear-gradient(\n 105deg,\n transparent 30%,\n rgba(255, 255, 255, 0.28) 48%,\n rgba(255, 255, 255, 0.1) 52%,\n transparent 70%\n );\n transform: rotate(25deg);\n animation: csk-shimmer 4s ease-in-out infinite;\n pointer-events: none;\n}\n/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -18px;\n border-radius: 50%;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);\n animation: csk-breathe 3.5s ease-in-out infinite;\n pointer-events: none;\n}\n.csk-launcher:hover {\n transform: translateY(-3px) scale(1.08);\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.10),\n 0 8px 24px rgba(0, 0, 0, 0.14),\n 0 10px 36px rgba(var(--csk-primary-rgb), 0.32),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.14);\n}\n.csk-launcher:hover::before { animation-play-state: paused; }\n.csk-launcher:hover::after {\n animation: none;\n inset: -22px;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.22) 0%, rgba(var(--csk-primary-rgb), 0.06) 45%, transparent 68%);\n}\n.csk-launcher:active { transform: scale(0.93); }\n.csk-launcher svg {\n width: 30px;\n height: 30px;\n position: relative;\n z-index: 1;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));\n}\n\n@keyframes csk-launcher-in {\n 0% { opacity: 0; transform: scale(0.5) translateY(16px); }\n 60% { transform: scale(1.06) translateY(-2px); }\n 100% { opacity: 1; transform: scale(1) translateY(0); }\n}\n\n/* ========== 三点脉冲序列图标 ========== */\n/* 极光旋转 */\n@keyframes csk-aurora-spin {\n to { transform: rotate(360deg); }\n}\n/* 脉冲点 */\n.csk-ico-pulse-dot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: #fff;\n z-index: 5;\n animation: csk-seq-pulse 1.2s ease-in-out infinite;\n box-shadow: 0 0 6px 1px rgba(255, 255, 255, 0.5);\n}\n.csk-ico-pulse-dot--1 { top: 4px; left: 50%; margin-left: -3px; }\n.csk-ico-pulse-dot--2 { top: 50%; right: 5px; margin-top: -3px; animation-delay: 0.3s; }\n.csk-ico-pulse-dot--3 { bottom: 5px; left: 50%; margin-left: -3px; animation-delay: 0.6s; }\n@keyframes csk-seq-pulse {\n 0%, 100% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }\n 35% { transform: scale(1.8); opacity: 1; box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.8); }\n 70% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }\n}\n\n/* 移除旧的 SVG 图标相关样式(已不再使用) */\n\n/* ========== 高光扫过动效 ========== */\n.csk-launcher::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 40%;\n height: 200%;\n border-radius: 50%;\n background: linear-gradient(\n 105deg,\n transparent 30%,\n rgba(255, 255, 255, 0.28) 48%,\n rgba(255, 255, 255, 0.1) 52%,\n transparent 70%\n );\n transform: rotate(25deg);\n animation: csk-shimmer 4s ease-in-out infinite;\n pointer-events: none;\n}\n/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -18px;\n border-radius: 50%;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);\n animation: csk-breathe 3.5s ease-in-out infinite;\n pointer-events: none;\n}\n@keyframes csk-shimmer {\n 0%, 100% { left: -60%; opacity: 0; }\n 20% { opacity: 1; }\n 60% { opacity: 1; }\n 80% { left: 120%; opacity: 0; }\n}\n@keyframes csk-breathe {\n 0%, 100% { transform: scale(1); opacity: 1; }\n 50% { transform: scale(1.15); opacity: 0.35; }\n}\n\n/* ========== 磨砂玻璃质感悬浮按钮 ========== */\n.csk-launcher--glass {\n /* 覆盖旋转动画为静止渐变 */\n animation:\n csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both !important;\n background: linear-gradient(\n 135deg,\n var(--csk-launcher-grad-1, var(--csk-primary)) 0%,\n var(--csk-launcher-grad-2, var(--csk-primary-light)) 100%\n ) !important;\n backdrop-filter: blur(12px) saturate(180%);\n -webkit-backdrop-filter: blur(12px) saturate(180%);\n border: 1.5px solid rgba(255, 255, 255, 0.55) !important;\n /* 多层阴影:接地 + 彩色光晕 + 内阴影立体感 */\n box-shadow:\n 0 2px 4px rgba(0, 0, 0, 0.04),\n 0 6px 20px rgba(0, 0, 0, 0.08),\n 0 8px 32px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.30),\n inset 0 1px 1px rgba(255, 255, 255, 0.35),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n.csk-launcher--glass:hover {\n border-color: rgba(255, 255, 255, 0.75) !important;\n box-shadow:\n 0 4px 8px rgba(0, 0, 0, 0.06),\n 0 10px 28px rgba(0, 0, 0, 0.10),\n 0 12px 40px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.38),\n inset 0 1px 2px rgba(255, 255, 255, 0.45),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n\n/* 玻璃按钮的呼吸色晕 — 更鲜艳、更醒目 */\n.csk-launcher--glass::after {\n background: radial-gradient(\n circle,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.28) 0%,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.10) 40%,\n transparent 65%\n ) !important;\n animation: csk-breathe-glow 3.5s ease-in-out infinite;\n}\n@keyframes csk-breathe-glow {\n 0%, 100% { transform: scale(1); opacity: 0.8; }\n 50% { transform: scale(1.22); opacity: 0.25; }\n}\n\n/* 玻璃按钮的高光扫过 — 更柔和的玻璃质感 */\n.csk-launcher--glass::before {\n background: linear-gradient(\n 115deg,\n transparent 25%,\n rgba(255, 255, 255, 0.35) 45%,\n rgba(255, 255, 255, 0.15) 55%,\n transparent 75%\n ) !important;\n width: 50%;\n animation: csk-shimmer-glass 5s ease-in-out infinite;\n}\n@keyframes csk-shimmer-glass {\n 0%, 100% { left: -70%; opacity: 0; }\n 15% { opacity: 1; }\n 55% { opacity: 1; }\n 70% { left: 130%; opacity: 0; }\n}\n\n/* 三点脉冲图标在玻璃主题下保持可见 */\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 24px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: var(--csk-window-height);\n max-height: calc(100vh - 48px);\n background: #fff;\n border-radius: var(--csk-radius);\n box-shadow: var(--csk-shadow-window);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform-origin: bottom right;\n transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s;\n opacity: 1;\n transform: translateY(0) scale(1);\n visibility: visible;\n pointer-events: auto;\n}\n.csk-window--right { right: 24px; transform-origin: bottom right; }\n.csk-window--left { left: 24px; transform-origin: bottom left; }\n.csk-window--hidden {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n min-height: 60px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: move;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n}\n.csk-header::after {\n content: '';\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 24px;\n background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent);\n pointer-events: none;\n}\n.csk-header__left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n}\n.csk-header__avatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.22);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);\n}\n.csk-header__avatar svg { width: 22px; height: 22px; }\n.csk-header__info {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n letter-spacing: 0.2px;\n}\n.csk-header__status {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11.5px;\n opacity: 0.9;\n margin-top: 2px;\n}\n.csk-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #6EE7B7;\n box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7);\n animation: csk-status-pulse 2s infinite;\n}\n@keyframes csk-status-pulse {\n 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); }\n 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); }\n 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); }\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n.csk-header__btn,\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 8px;\n transition: background 0.15s, transform 0.15s;\n}\n.csk-header__btn:hover,\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-header__btn:active,\n.csk-history-btn:active { transform: scale(0.92); }\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 20px 16px 12px;\n background: var(--csk-bg-app);\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar { width: 6px; }\n.csk-messages::-webkit-scrollbar-track { background: transparent; }\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D8DCE3;\n border-radius: 3px;\n}\n.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; }\n\n/* 欢迎空状态 */\n.csk-welcome {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 32px;\n color: #6B7280;\n animation: csk-fade-in 0.3s ease;\n}\n.csk-welcome__avatar {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 14px;\n box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-welcome__avatar svg { width: 30px; height: 30px; }\n.csk-welcome__title {\n font-size: 15px;\n font-weight: 600;\n color: #1F2937;\n margin-bottom: 4px;\n}\n.csk-welcome__desc {\n font-size: 13px;\n color: #9CA3AF;\n line-height: 1.6;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n margin-bottom: 18px;\n max-width: 100%;\n word-break: break-word;\n animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.csk-msg--user {\n flex-direction: row-reverse;\n align-items: flex-end;\n}\n.csk-msg--ai {\n flex-direction: row;\n align-items: flex-start;\n}\n.csk-msg__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg__avatar svg { width: 18px; height: 18px; }\n.csk-msg__avatar--ai {\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n}\n.csk-msg__avatar--user {\n background: var(--csk-bg-user);\n color: #fff;\n}\n.csk-msg__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: calc(100% - 46px);\n}\n.csk-msg--user .csk-msg__content { align-items: flex-end; }\n.csk-msg--ai .csk-msg__content { align-items: flex-start; }\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 16px;\n font-size: 14px;\n line-height: 1.6;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 16px 16px 4px 16px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 16px 16px 16px 4px;\n border: 1px solid var(--csk-border);\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 5px;\n padding: 0 4px;\n}\n\n@keyframes csk-msg-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes csk-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n margin-bottom: 18px;\n animation: csk-msg-in 0.28s ease;\n}\n.csk-loading__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-loading__avatar svg { width: 18px; height: 18px; }\n.csk-loading__bubble {\n background: #fff;\n border: 1px solid var(--csk-border);\n border-radius: 16px 16px 16px 4px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.csk-loading__dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #B4B9C2;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n padding: 10px 12px 14px;\n background: #fff;\n border-top: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-input-wrap {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--csk-bg-app);\n border: 1px solid var(--csk-border);\n border-radius: 14px;\n padding: 6px 6px 6px 14px;\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n}\n.csk-input-wrap--focus {\n border-color: var(--csk-primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n.csk-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 8px 0;\n font-size: 14px;\n outline: none;\n font-family: inherit;\n resize: none;\n min-height: 22px;\n max-height: 120px;\n line-height: 1.5;\n color: #1F2937;\n}\n.csk-input::placeholder { color: #9CA3AF; }\n.csk-root .csk-input:focus-visible { outline: none; }\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border: none;\n border-radius: 10px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: pointer;\n transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s;\n box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-send-btn:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4);\n}\n.csk-send-btn:active:not(:disabled) { transform: scale(0.92); }\n.csk-send-btn:disabled {\n background: #D1D5DB;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 0.7;\n}\n.csk-send-btn svg { width: 18px; height: 18px; }\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 999px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-clear-btn:hover {\n background: #FEF2F2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-top: 1px solid var(--csk-border);\n background: #FBFBFC;\n gap: 8px;\n flex-shrink: 0;\n}\n.csk-category-bar__label {\n font-size: 13px;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 6px 28px 6px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n color: #374151;\n background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center;\n appearance: none;\n -webkit-appearance: none;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s, box-shadow 0.2s;\n max-width: 220px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid var(--csk-border);\n border-radius: 12px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n background: #FAFBFC;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F3F4F7;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover { background: #ECEEF2; }\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 5px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n font-size: 10px;\n}\n.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); }\n.csk-sources__body {\n border-top: 1px solid var(--csk-border);\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body { display: none; }\n.csk-source-item {\n padding: 9px 12px;\n border-bottom: 1px solid #F0F1F4;\n transition: background 0.15s;\n}\n.csk-source-item:last-child { border-bottom: none; }\n.csk-source-item:hover { background: #fff; }\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 3px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 14px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n color: #111827;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 10px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.55;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: rgba(var(--csk-primary-rgb), 0.1);\n color: var(--csk-primary);\n padding: 1px 6px;\n border-radius: 5px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 22px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; }\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding: 2px 12px;\n margin: 8px 0;\n color: #6B7280;\n background: rgba(var(--csk-primary-rgb), 0.05);\n border-radius: 0 6px 6px 0;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3);\n transition: border-color 0.15s;\n}\n.csk-md-link:hover { border-bottom-color: var(--csk-primary); }\n.csk-md-hr {\n border: none;\n border-top: 1px solid var(--csk-border);\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-panel {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: csk-slide-in 0.24s ease;\n}\n.csk-history-panel--hidden { display: none; }\n@keyframes csk-slide-in {\n from { transform: translateX(100%); opacity: 0.4; }\n to { transform: translateX(0); opacity: 1; }\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--csk-border);\n background: var(--csk-bg-app);\n flex-shrink: 0;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-history-panel__back:hover { background: #F3F4F6; }\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n}\n.csk-history-panel__list::-webkit-scrollbar { width: 5px; }\n.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; }\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 11px 12px;\n border-radius: 10px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 5px;\n border: 1px solid transparent;\n}\n.csk-history-item:hover { background: #F3F4F6; }\n.csk-history-item--active {\n background: rgba(var(--csk-primary-rgb), 0.08);\n border-color: rgba(var(--csk-primary-rgb), 0.2);\n}\n.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); }\n.csk-history-item__info { flex: 1; min-width: 0; }\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 3px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions { opacity: 1; }\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 7px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export { background: #EFF6FF; color: #2563EB; }\n.csk-history-action--export:hover { background: #DBEAFE; }\n.csk-history-action--delete { background: #FEF2F2; color: #DC2626; }\n.csk-history-action--delete:hover { background: #FEE2E2; }\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 34px;\n margin-bottom: 10px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover { background: #F3F4F6; }\n\n/* ========== 快捷问题芯片 ========== */\n.csk-quick-replies {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: center;\n margin-top: 18px;\n max-width: 320px;\n}\n.csk-quick-reply {\n border: 1px solid var(--csk-border);\n background: #fff;\n color: #374151;\n font-size: 12.5px;\n padding: 7px 13px;\n border-radius: 999px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1.3;\n transition: all 0.18s ease;\n max-width: 100%;\n}\n.csk-quick-reply:hover {\n border-color: var(--csk-primary);\n color: var(--csk-primary);\n background: rgba(var(--csk-primary-rgb), 0.06);\n transform: translateY(-1px);\n}\n.csk-quick-reply:active { transform: scale(0.96); }\n\n/* ========== AI 消息操作条 ========== */\n.csk-msg__actions {\n display: flex;\n gap: 2px;\n margin-top: 5px;\n padding: 0 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n.csk-msg--ai:hover .csk-msg__actions { opacity: 1; }\n.csk-msg--streaming .csk-msg__actions { display: none; }\n.csk-action-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n.csk-action-btn:hover {\n background: #F3F4F6;\n color: #374151;\n}\n.csk-action-btn--done { color: #10B981; }\n.csk-action-btn:active { transform: scale(0.9); }\n\n/* ========== 流式打字光标 ========== */\n.csk-caret {\n display: inline-block;\n width: 7px;\n height: 15px;\n margin-left: 2px;\n vertical-align: text-bottom;\n background: var(--csk-primary);\n border-radius: 1px;\n animation: csk-caret-blink 1s step-end infinite;\n}\n@keyframes csk-caret-blink {\n 0%, 50% { opacity: 1; }\n 51%, 100% { opacity: 0; }\n}\n\n/* ========== 代码块复制按钮 ========== */\n.csk-md-code-block { position: relative; }\n.csk-md-code-copy {\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(255, 255, 255, 0.12);\n color: #CBD5E1;\n border-radius: 6px;\n cursor: pointer;\n opacity: 0;\n transition: all 0.15s ease;\n}\n.csk-md-code-block:hover .csk-md-code-copy { opacity: 1; }\n.csk-md-code-copy:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }\n.csk-md-code-copy:active { transform: scale(0.9); }\n\n/* ========== 新消息提示按钮 ========== */\n.csk-newmsg {\n position: absolute;\n bottom: 82px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 5;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 7px 14px;\n border: none;\n background: var(--csk-primary);\n color: #fff;\n font-size: 12px;\n font-family: inherit;\n border-radius: 999px;\n cursor: pointer;\n box-shadow: 0 4px 14px rgba(var(--csk-primary-rgb), 0.38);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n animation: csk-msg-in 0.25s ease;\n white-space: nowrap;\n}\n.csk-newmsg:hover { transform: translateX(-50%) translateY(-1px); box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.48); }\n.csk-newmsg:active { transform: translateX(-50%) scale(0.95); }\n.csk-newmsg--hidden { display: none; }\n\n/* ========== 发送按钮停止态 ========== */\n.csk-send-btn--stop {\n background: #EF4444 !important;\n box-shadow: 0 3px 10px rgba(239, 68, 68, 0.35) !important;\n}\n.csk-send-btn--stop:hover:not(:disabled) {\n box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;\n}\n\n/* ========== 窗口缩放拖拽手柄 ========== */\n.csk-resize-handle {\n position: absolute;\n right: 4px;\n bottom: 4px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n cursor: nwse-resize;\n z-index: 5;\n user-select: none;\n -webkit-user-select: none;\n /* 圆形半透明背景,与整体圆润风格一致 */\n border-radius: 50%;\n background: transparent;\n transition: background 0.2s ease;\n}\n.csk-resize-handle:hover {\n background: rgba(var(--csk-primary-rgb), 0.08);\n}\n\n/* 三斜线抓手 — 纯 CSS 绘制,用两条间距微调的线,视觉上是三条 */\n.csk-resize-grip {\n display: block;\n width: 10px;\n height: 10px;\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n #C8CCD2 38%, #C8CCD2 42%,\n transparent 42%, transparent 54%,\n #C8CCD2 54%, #C8CCD2 58%,\n transparent 58%, transparent 70%,\n #C8CCD2 70%, #C8CCD2 74%,\n transparent 74%\n );\n transition: background 0.2s ease;\n border-radius: 2px;\n}\n/* hover 时线条变为主色 */\n.csk-resize-handle:hover .csk-resize-grip {\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n var(--csk-primary) 38%, var(--csk-primary) 42%,\n transparent 42%, transparent 54%,\n var(--csk-primary) 54%, var(--csk-primary) 58%,\n transparent 58%, transparent 70%,\n var(--csk-primary) 70%, var(--csk-primary) 74%,\n transparent 74%\n );\n}\n\n/* 暗色模式 */\n.csk-dark .csk-resize-grip {\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n #5B6070 38%, #5B6070 42%,\n transparent 42%, transparent 54%,\n #5B6070 54%, #5B6070 58%,\n transparent 58%, transparent 70%,\n #5B6070 70%, #5B6070 74%,\n transparent 74%\n );\n}\n.csk-dark .csk-resize-handle:hover .csk-resize-grip {\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n var(--csk-primary-light) 38%, var(--csk-primary-light) 42%,\n transparent 42%, transparent 54%,\n var(--csk-primary-light) 54%, var(--csk-primary-light) 58%,\n transparent 58%, transparent 70%,\n var(--csk-primary-light) 70%, var(--csk-primary-light) 74%,\n transparent 74%\n );\n}\n\n/* 缩放拖拽中:禁用过渡动画 + 全局光标 */\n.csk-window--resizing {\n transition: none !important;\n user-select: none;\n}\n.csk-window--resizing * { cursor: nwse-resize !important; }\n\n/* ========== 暗色模式 ========== */\n.csk-root.csk-dark {\n --csk-bg-ai: #1E1E2E;\n --csk-text-ai: #E2E8F0;\n --csk-border: #3B3B52;\n --csk-bg-app: #141421;\n color: #E2E8F0;\n}\n.csk-dark .csk-window {\n background: #1A1A2E;\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n.csk-dark .csk-header::after { background: linear-gradient(to bottom, rgba(0,0,0,0.12), transparent); }\n.csk-dark .csk-msg__avatar--ai {\n background: var(--csk-bg-ai);\n color: var(--csk-primary);\n border-color: var(--csk-border);\n}\n.csk-dark .csk-input-area { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-input-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-input-wrap--focus { background: #1A1A2E; border-color: var(--csk-primary); }\n.csk-dark .csk-input { color: #E2E8F0; }\n.csk-dark .csk-loading__avatar { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__bubble { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__dot { background: #6B7280; }\n.csk-dark .csk-category-bar { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-category-select { background-color: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-sources { background: #1E1E2E; border-color: var(--csk-border); }\n.csk-dark .csk-sources__header { background: #25253A; }\n.csk-dark .csk-sources__header:hover { background: #2D2D48; }\n.csk-dark .csk-source-item:hover { background: var(--csk-bg-ai); }\n.csk-dark .csk-source-item__name { color: #E2E8F0; }\n.csk-dark .csk-source-item__meta { color: #6B7280; }\n.csk-dark .csk-history-panel { background: #1A1A2E; }\n.csk-dark .csk-history-panel__header { background: var(--csk-bg-app); border-bottom-color: var(--csk-border); }\n.csk-dark .csk-history-panel__back { background: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-history-panel__back:hover { background: #2D2D48; }\n.csk-dark .csk-history-item:hover { background: #25253A; }\n.csk-dark .csk-history-item__id { color: #E2E8F0; }\n.csk-dark .csk-history-item__meta { color: #6B7280; }\n.csk-dark .csk-history-item--active { background: rgba(var(--csk-primary-rgb), 0.15); }\n.csk-dark .csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.22); }\n.csk-dark .csk-action-btn:hover { background: #2D2D48; color: #E2E8F0; }\n.csk-dark .csk-clear-btn { background: var(--csk-bg-app); border-color: var(--csk-border); color: #9CA3AF; }\n.csk-dark .csk-clear-btn:hover { background: #3B1A1A; border-color: #7F1D1D; color: #FCA5A5; }\n.csk-dark .csk-md-code-block { background: #0F0F1A; }\n.csk-dark .csk-md-blockquote { background: rgba(var(--csk-primary-rgb), 0.08); }\n.csk-dark .csk-md-link { color: var(--csk-primary-light); }\n.csk-dark .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); border-color: var(--csk-border); }\n.csk-dark .csk-welcome__title { color: #E2E8F0; }\n.csk-dark .csk-welcome__desc { color: #6B7280; }\n.csk-dark .csk-quick-reply { background: var(--csk-bg-app); border-color: var(--csk-border); color: #CBD5E1; }\n.csk-dark .csk-quick-reply:hover { background: rgba(var(--csk-primary-rgb), 0.12); border-color: var(--csk-primary); color: var(--csk-primary-light); }\n.csk-dark .csk-teaser { background: #2D2D48; color: #E2E8F0; box-shadow: 0 4px 20px rgba(0,0,0,0.35); }\n.csk-dark .csk-teaser::after { border-top-color: #2D2D48; }\n.csk-dark .csk-teaser__close { color: #6B7280; }\n.csk-dark .csk-teaser__close:hover { color: #9CA3AF; }\n.csk-dark .csk-feedback-btn { background: rgba(var(--csk-primary-rgb), 0.1); color: #9CA3AF; }\n.csk-dark .csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.2); color: var(--csk-primary-light); }\n.csk-dark .csk-feedback-btn--active { background: rgba(var(--csk-primary-rgb), 0.28); color: var(--csk-primary-light); }\n.csk-dark .csk-history-panel__search-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-history-panel__search-wrap:focus-within { border-color: var(--csk-primary); }\n.csk-dark .csk-history-panel__search { color: #E2E8F0; }\n.csk-dark .csk-launcher__badge { box-shadow: 0 0 0 2px #1A1A2E; }\n.csk-dark .csk-welcome__avatar { box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.25); }\n.csk-dark .csk-header__avatar { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.1); }\n\n/* Launcher 拖拽态:微放大 + 阴影加深 */\n.csk-launcher--dragging {\n cursor: grabbing !important;\n transform: scale(1.1) !important;\n box-shadow:\n 0 4px 12px rgba(0, 0, 0, 0.14),\n 0 12px 32px rgba(0, 0, 0, 0.18),\n 0 14px 40px rgba(var(--csk-primary-rgb), 0.36),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.18) !important;\n}\n.csk-launcher--dragging::before,\n.csk-launcher--dragging::after { animation-play-state: paused !important; }\n/* 拖拽中隐藏未读徽章 */\n.csk-launcher--dragging .csk-launcher__badge { display: none !important; }\n/* 吸附过渡动画(释放时的缓动) */\n.csk-launcher--snap {\n transition: left 0.3s ease-out, right 0.3s ease-out, bottom 0.3s ease-out !important;\n}\n\n/* ========== Launcher 未读徽章 ========== */\n.csk-launcher__badge {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: #EF4444;\n border: 2px solid #fff;\n box-shadow: 0 0 0 2px #fff;\n animation: csk-badge-in 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);\n pointer-events: none;\n}\n.csk-launcher__badge--hidden { display: none; }\n@keyframes csk-badge-in {\n from { transform: scale(0); }\n to { transform: scale(1); }\n}\n\n/* ========== Launcher 提示气泡 ========== */\n.csk-teaser {\n position: fixed;\n bottom: 90px;\n z-index: 9997;\n max-width: 240px;\n padding: 10px 14px;\n background: #fff;\n color: #1F2937;\n font-size: 13px;\n line-height: 1.5;\n border-radius: 12px;\n box-shadow: 0 4px 20px rgba(15, 23, 42, 0.15);\n animation: csk-teaser-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n cursor: pointer;\n user-select: none;\n}\n.csk-teaser--right { right: 24px; }\n.csk-teaser--left { left: 24px; }\n.csk-teaser::after {\n content: '';\n position: absolute;\n bottom: -6px;\n right: 28px;\n width: 12px;\n height: 12px;\n background: inherit;\n border-radius: 2px;\n transform: rotate(45deg);\n box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.08);\n}\n.csk-teaser--left::after { right: auto; left: 28px; }\n.csk-teaser__close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n padding: 2px 4px;\n line-height: 1;\n border-radius: 4px;\n}\n.csk-teaser__close:hover { color: #374151; }\n.csk-teaser--hidden { display: none; }\n@keyframes csk-teaser-in {\n from { opacity: 0; transform: translateY(8px) scale(0.95); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n/* ========== 消息反馈按钮(👍 / 👎) ========== */\n.csk-feedback-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(var(--csk-primary-rgb), 0.08);\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n}\n.csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.18); color: var(--csk-primary); }\n.csk-feedback-btn--active {\n background: rgba(var(--csk-primary-rgb), 0.28);\n color: var(--csk-primary);\n}\n.csk-feedback-btn--active.down { background: #FEF2F2; color: #EF4444; }\n.csk-feedback-btn:active { transform: scale(0.9); }\n.csk-msg--streaming .csk-feedback-btn { display: none; }\n\n/* ========== 历史会话搜索框 ========== */\n.csk-history-panel__search-wrap {\n padding: 8px 10px;\n border-bottom: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-history-panel__search-wrap:focus-within {\n border-bottom-color: var(--csk-primary);\n}\n.csk-history-panel__search {\n width: 100%;\n padding: 7px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n font-family: inherit;\n color: #1F2937;\n background: var(--csk-bg-app);\n outline: none;\n transition: border-color 0.2s;\n}\n.csk-history-panel__search:focus { border-color: var(--csk-primary); }\n.csk-history-panel__search::placeholder { color: #9CA3AF; }\n\n/* ========== a11y 焦点指示 ========== */\n.csk-root :focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n}\n.csk-root button:focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n border-radius: inherit;\n}\n/* 弹窗打开时隐藏 launcher 上的焦点环 */\n.csk-launcher:focus-visible {\n outline: none;\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12),\n 0 0 0 4px rgba(var(--csk-primary-rgb), 0.3);\n}\n\n/* ========== a11y aria-live 播报区(视觉隐藏) ========== */\n.csk-sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0,0,0,0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n/* ========== 会话分组标题 ========== */\n.csk-history-group {\n margin-bottom: 4px;\n}\n.csk-history-group__label {\n font-size: 11px;\n font-weight: 600;\n color: #9CA3AF;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px 4px;\n user-select: none;\n}\n.csk-dark .csk-history-group__label { color: #6B7280; }\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-resize-handle { display: none !important; }\n .csk-window--hidden { transform: translateY(100%); }\n /* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */\n .csk-launcher:not([style*="bottom"]) { bottom: 20px; }\n .csk-launcher--right:not([style*="bottom"]) { right: 20px; }\n .csk-launcher--left:not([style*="bottom"]) { left: 20px; }\n}\n`}(e),document.head.appendChild(D))}function q(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)})}function H(e){const n={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>n[e]||e)}function j(){return Date.now()}const R='';function P(e,n){const t=document.createElement("div");t.id="csk-launcher";const r=e.launcherTheme?" csk-launcher--glass":"";t.className=`csk-launcher csk-launcher--${"left-bottom"===e.position?"left":"right"}${r}`,t.setAttribute("title",e.title),t.setAttribute("aria-label",e.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=e.launcherIcon;const s=document.createElement("div");s.className="csk-launcher__badge csk-launcher__badge--hidden",t.appendChild(s);const o=function(e,n){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},n)}}(n,300);return t.addEventListener("click",o),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),o())}),t}function U(){return window.innerHeight-76}function Y(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--user",s.innerHTML='';const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.textContent=n;const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(t),o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),r}function O(e,n,t,r,s){const o=document.createElement("div");o.className="csk-msg csk-msg--ai",s&&(o.dataset.cskMsgId=s);const a=document.createElement("div");a.className="csk-msg__avatar csk-msg__avatar--ai",a.innerHTML=R;const i=document.createElement("div");i.className="csk-msg__content";const c=document.createElement("div");c.className="csk-msg__bubble",r?c.innerHTML=r(n):c.textContent=n;const l=document.createElement("div");return l.className="csk-msg__time",l.textContent=te(t),i.appendChild(c),i.appendChild(K(c,o)),i.appendChild(l),o.appendChild(a),o.appendChild(i),e.appendChild(o),G(c),o}const W='',X='';function K(e,n){const t=document.createElement("div");t.className="csk-msg__actions";const r=document.createElement("button");r.type="button",r.className="csk-action-btn",r.setAttribute("title",h("copy")),r.setAttribute("aria-label",h("copy")),r.innerHTML=W,r.addEventListener("click",async n=>{n.stopPropagation();const t=e.textContent||"";await V(t,r)});const s=document.createElement("button");s.type="button",s.className="csk-action-btn",s.setAttribute("title",h("retry")),s.setAttribute("aria-label",h("retry")),s.innerHTML=X,s.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:retry",{detail:{msgId:n.dataset.cskMsgId||""}}))});const o=document.createElement("button");o.type="button",o.className="csk-feedback-btn",o.setAttribute("title",h("feedback_up")),o.setAttribute("aria-label",h("feedback_up")),o.innerHTML='',o.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"up"}}))});const a=document.createElement("button");return a.type="button",a.className="csk-feedback-btn",a.setAttribute("title",h("feedback_down")),a.setAttribute("aria-label",h("feedback_down")),a.innerHTML='',a.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"down"}}))}),t.appendChild(r),t.appendChild(s),t.appendChild(o),t.appendChild(a),t}function J(e,n){const t=e.querySelectorAll(".csk-feedback-btn");t.length<2||(t.forEach(e=>e.classList.remove("csk-feedback-btn--active","down")),"up"===n&&t[0]&&t[0].classList.add("csk-feedback-btn--active"),"down"===n&&t[1]&&t[1].classList.add("csk-feedback-btn--active","down"))}async function V(e,n){const t=n.innerHTML;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}n.innerHTML='',n.classList.add("csk-action-btn--done"),setTimeout(()=>{n.innerHTML=t,n.classList.remove("csk-action-btn--done")},1500)}catch(e){}}function G(e){e.querySelectorAll(".csk-md-code-block").forEach(e=>{if(e.querySelector(".csk-md-code-copy"))return;const n=e.querySelector("code"),t=document.createElement("button");t.type="button",t.className="csk-md-code-copy",t.setAttribute("title",h("copy")),t.setAttribute("aria-label",h("copy")),t.innerHTML=W,t.addEventListener("click",async e=>{e.stopPropagation(),await V((null==n?void 0:n.textContent)||"",t)}),e.appendChild(t)})}function Q(e,n){e.classList.remove("csk-msg--streaming");const t=n.querySelector(".csk-caret");t&&t.remove(),G(n)}function Z(e,n){const t=e.querySelector(".csk-sources");if(t&&t.remove(),!n||0===n.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const s=document.createElement("div");s.className="csk-sources__header";const o=document.createElement("span");o.className="csk-sources__title",o.textContent=`📚 ${h("source_count",{n:n.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",s.appendChild(o),s.appendChild(a),s.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const i=document.createElement("div");i.className="csk-sources__body";for(const e of n){const n=document.createElement("div");n.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=e.title||e.sourceName||"未知文档",e.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=e.snippet,n.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const s=[];e.sourceName&&s.push(e.sourceName),void 0!==e.chunkIndex&&s.push(`分块 #${e.chunkIndex}`),void 0!==e.score&&s.push(`相关度 ${(100*e.score).toFixed(0)}%`),r.textContent=s.join(" · "),n.appendChild(t),n.appendChild(r),i.appendChild(n)}r.appendChild(s),r.appendChild(i);const c=e.querySelector(".csk-msg__time");c&&c.parentNode?c.parentNode.insertBefore(r,c):e.appendChild(r)}function ee(e,n,t,r,s,o,a){if(e.innerHTML="",0===n.length){const n=document.createElement("div");return n.className="csk-history-panel__empty",n.innerHTML=`\n 💬
\n ${h("history_empty")}
\n `,void e.appendChild(n)}const i=function(e){const n=new Date,t=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),r=t-864e5,s=t-864e5*(n.getDay()||7)+864e5,o={today:[],yesterday:[],week:[],earlier:[]};for(const n of e){const e=n.lastMessageTime||n.createdAt,a=e?new Date(e).getTime():0;a>=t?o.today.push(n):a>=r?o.yesterday.push(n):a>=s?o.week.push(n):o.earlier.push(n)}const a=[];return o.today.length&&a.push({label:h("history_group_today"),items:o.today}),o.yesterday.length&&a.push({label:h("history_group_yesterday"),items:o.yesterday}),o.week.length&&a.push({label:h("history_group_week"),items:o.week}),o.earlier.length&&a.push({label:h("history_group_earlier"),items:o.earlier}),a}(n);for(const n of i){if(i.length>1){const t=document.createElement("div");t.className="csk-history-group";const r=document.createElement("div");r.className="csk-history-group__label",r.textContent=n.label,t.appendChild(r),e.appendChild(t)}for(const a of n.items){const n=document.createElement("div");n.className="csk-history-item";const i=a.chatId||a.id;o&&i===o&&n.classList.add("csk-history-item--active");const c=document.createElement("div");c.className="csk-history-item__info";const l=document.createElement("div");l.className="csk-history-item__id",a.lastMessagePreview?l.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:l.textContent=i;const d=document.createElement("div");d.className="csk-history-item__meta";const p=[];void 0!==a.messageCount&&p.push(`${a.messageCount} 条消息`),a.lastMessageTime?p.push(a.lastMessageTime):a.createdAt&&p.push(a.createdAt),d.textContent=p.join(" · "),c.appendChild(l),c.appendChild(d);const u=document.createElement("div");u.className="csk-history-item__actions";const g=document.createElement("button");g.className="csk-history-action csk-history-action--export",g.setAttribute("title",h("history_export")),g.innerHTML='',g.addEventListener("click",e=>{e.stopPropagation(),r(a.id)});const m=document.createElement("button");m.className="csk-history-action csk-history-action--delete",m.setAttribute("title",h("history_delete")),m.innerHTML='',m.addEventListener("click",e=>{e.stopPropagation(),s(a.id)}),u.appendChild(g),u.appendChild(m),n.appendChild(c),n.appendChild(u),n.addEventListener("click",()=>{t(i)}),e.appendChild(n)}}}function ne(e){e.scrollTop=e.scrollHeight}function te(e){const n=new Date(e);return`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function re(e){return`csk_history_${e}`}function se(e,n){try{let t=n;t.length>200&&(t=t.slice(50),o.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const r={messages:t,updatedAt:Date.now()};localStorage.setItem(re(e),JSON.stringify(r))}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?o.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):o.error("保存会话历史失败",e)}}function oe(e){try{localStorage.removeItem(re(e))}catch(e){o.warn("清空会话历史失败",e)}}const ae="\0CODEBLOCK_",ie="\0INLINECODE_";function ce(e){if(!e||"string"!=typeof e)return"";const n=[];let t=e;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>{const s=n.length,o=H(r.trimEnd()),a=t?` class="language-${H(t)}"`:"";return n.push(`${o}
`),`${ae}${s}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(e,n)=>{const t=r.length;return r.push(`${H(n)}`),`${ie}${t}\0`}),t=H(t),t=le(t,ae,n),t=le(t,ie,r);const s=t.split("\n"),o=[];let a=!1,i="",c=!1,l=[];for(let e=0;e')){p(),u(),g(),o.push(n);continue}const t=n.match(/^(#{1,6})\s+(.+)/);if(t){p(),u(),g();const e=t[1].length;o.push(`${t[2]}`);continue}const r=n.match(/^>\s?(.*)/);if(r){p(),u(),c||(c=!0,o.push('')),o.push(`${d(r[1])}
`);continue}c&&g();const m=n.match(/^[\-\*]\s+(.+)/);if(m){p(),g(),a&&"ul"===i||(u(),a=!0,i="ul",o.push('')),o.push(`- ${d(m[1])}
`);continue}const h=n.match(/^\d+\.\s+(.+)/);h?(p(),g(),a&&"ol"===i||(u(),a=!0,i="ol",o.push('')),o.push(`- ${d(h[1])}
`)):""!==n.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(n.trim())?(p(),u(),g(),o.push('
')):(u(),g(),l.push(d(n))):(p(),u())}return p(),u(),g(),o.join("\n");function d(e){return e=(e=(e=(e=(e=(e=e.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,n,t)=>`${n}`)}function p(){l.length>0&&(o.push(`${l.join("
")}
`),l=[])}function u(){a&&(o.push("ul"===i?"
":""),a=!1,i="")}function g(){c&&(o.push("
"),c=!1)}}function le(e,n,t){return e.replace(new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(e,n)=>t[parseInt(n)]||"")}let de,pe=null,ue=[],ge=null,me=null,he=null,ke=null,be=null,fe=null,ye=null,xe=null,ve=null,we=null,_e=null,Ee=null,Ce=null,Ie=!1,Le=null,$e=!0,Ae=[],Se="",Ne=!1;function Me(e,n){pe=e,ge=n.messagesContainer,me=n.inputEl,he=n.inputEl.parentElement,ke=n.sendBtn,be=n.clearBtn,fe=n.categorySelect,ye=n.historyPanel,xe=n.welcomeEl,ve=n.newMsgBtn,we=n.searchInput,_e=n.ariaLiveEl,Ee=n.showLoading,Ce=n.hideLoading,de=e.categoryId,Ne=e.enableRag,function(){if(!me||!ke)return;ke.addEventListener("click",()=>{Ie&&Le?Le.abort():Re()}),me.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||e.isComposing||(e.preventDefault(),Re())}),me.addEventListener("input",()=>{je(),function(){if(!me)return;me.style.height="auto",me.style.height=`${Math.min(me.scrollHeight,120)}px`}()}),me.addEventListener("focus",()=>{he&&he.classList.add("csk-input-wrap--focus")}),me.addEventListener("blur",()=>{he&&he.classList.remove("csk-input-wrap--focus")}),be&&be.addEventListener("click",()=>function(){if(!pe)return;if(!confirm(h("clear_confirm")))return;if(ue=[],ge){ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}be&&(be.style.display="none");He(),oe(pe.integrateId);const e=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();b(e),F(pe.integrateId,pe.userId,e),o.lifecycleClear(pe.integrateId),o.info(`新 chatId=${e}`)}())}(),function(){if(!ge)return;ge.addEventListener("scroll",()=>{if(!ge)return;const{scrollTop:e,scrollHeight:n,clientHeight:t}=ge;$e=n-e-t<80,$e&&De()}),ve&&ve.addEventListener("click",()=>{ge&&ne(ge),$e=!0,De()})}(),function(){if(!we)return;we.addEventListener("input",()=>{Se=we.value.trim().toLowerCase(),Be()})}(),e.showCategorySwitch&&fe&&async function(){if(!fe)return;try{const e=await async function(){const e=y("/category/tree");try{const n=await v(e);if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const t=await n.json();return t.success&&Array.isArray(t.data)?(o.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(e){return e instanceof w?o.error(`加载分类树失败: ${e.message}`):o.error("加载分类树失败",e),[]}}();if(0===e.length)return;fe.innerHTML=``;const n=(e,t=0)=>{for(const r of e){const e=document.createElement("option");e.value=String(r.id),e.textContent=`${" ".repeat(t)}${r.name}`,void 0!==de&&String(r.id)===String(de)&&(e.selected=!0),fe.appendChild(e),r.children&&r.children.length>0&&n(r.children,t+1)}};n(e),o.info(`知识库分类加载成功 count=${e.length}`)}catch(e){o.error(h("category_load_error"),e)}}()}async function Fe(){if(pe&&ge&&(await N(),await async function(){if(!pe||!ge)return;const e=f();if(!e)return;try{const n=await $(e);n.messages.length>0&&(ue=n.messages.map((e,n)=>({id:q(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`从后端加载 ${ue.length} 条历史消息`),se(pe.integrateId,ue))}catch(e){o.warn("从后端加载历史消息失败",e)}}(),0===ue.length)){const e=function(e){try{const n=localStorage.getItem(re(e));if(!n)return[];const t=JSON.parse(n);return t&&Array.isArray(t.messages)?(o.info(`加载历史消息 integrateId=${e} count=${t.messages.length}`),t.messages):[]}catch(e){return o.warn("加载会话历史失败",e),[]}}(pe.integrateId);e.length>0&&(ue=e,Ue(),o.info(`从本地缓存恢复 ${e.length} 条消息`))}}function De(){ve&&ve.classList.add("csk-newmsg--hidden")}function Te(){ge&&($e?ne(ge):ve&&ve.classList.remove("csk-newmsg--hidden"))}function ze(e){ke&&("stop"===e?(ke.classList.add("csk-send-btn--stop"),ke.removeAttribute("disabled"),ke.setAttribute("title",h("stop")),ke.setAttribute("aria-label",h("stop")),ke.innerHTML=''):(ke.classList.remove("csk-send-btn--stop"),ke.setAttribute("title",h("send")),ke.setAttribute("aria-label",h("send")),ke.innerHTML='',je()))}function Be(){const e=null==ye?void 0:ye.querySelector("#csk-history-list");if(!e||!pe)return;ee(e,Se?Ae.filter(e=>(e.lastMessagePreview||e.chatId||e.id||"").toLowerCase().includes(Se)):Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{if(!confirm(h("history_delete_confirm")))return;await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),Be())},f())}function qe(e,n){if(!ge)return;const t=ue.find(n=>n.id===e&&"ai"===n.role);if(!t)return;const r=t.feedback===n?void 0:n;t.feedback=r;const s=ge.querySelector(`[data-csk-msg-id="${e}"]`);if(s&&J(s,r),pe&&se(pe.integrateId,ue),r){const n="up"===r?"THUMBS_UP":"THUMBS_DOWN";(async function(e,n){if(!k)return!1;const t=y("/feedback");try{const r=await v(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:String(e),conversationId:k.chatId,feedbackType:n})});return r.ok?(await r.json()).success||!1:(o.error(`反馈提交失败 status=${r.status}`),!1)}catch(e){return o.error("反馈提交异常",e),!1}})(String(e),n).then(n=>{n?o.info(`消息反馈已提交 msgId=${e} value=${r}`):o.warn(`消息反馈提交失败 msgId=${e}(本地状态已更新)`)})}else o.info(`消息反馈已取消 msgId=${e}`)}function He(){if(!xe)return;const e=ue.length>0||ge&&ge.querySelector(".csk-msg");xe.style.display=e?"none":""}function je(){if(!ke||!me)return;me.value.trim().length>0&&!Ie?ke.removeAttribute("disabled"):ke.setAttribute("disabled","true")}async function Re(){if(!me||!pe||Ie)return;const e=me.value.trim();if(""===e)return;me.value="",je(),me.style.height="auto";const n=j(),t={id:q(),role:"user",content:e,timestamp:n};ge&&Y(ge,e,n),ue.push(t),He(),be&&ue.length>0&&(be.style.display="inline-flex"),ge&&Te(),await Pe(e)}async function Pe(e){if(!pe||!ge)return;Ie=!0,ze("stop"),pe.chatId||await N();const n=j(),t=Ne;Ee&&Ee(),ge&&Te();const r=q();let s="";try{pe.streaming?s=await async function(e,n,t,r){Le=new AbortController;const s=Le.signal;return new Promise((o,a)=>{let i=null,c=null,l="",d=!1;C(e,e=>{if(l+=e,!d&&ge){Ce&&Ce();const{wrapper:e,bubble:t}=function(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--ai csk-msg--streaming",t&&(r.dataset.cskMsgId=t);const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--ai",s.innerHTML=R;const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.innerHTML="";const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(n),o.appendChild(a),o.appendChild(K(a,r)),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),{wrapper:r,bubble:a}}(ge,n,r);c=e,i=t,d=!0}i&&(i.textContent=l,function(e){if(e.querySelector(".csk-caret"))return;const n=document.createElement("span");n.className="csk-caret",n.setAttribute("aria-hidden","true"),e.appendChild(n)}(i)),ge&&Te()},()=>{if(c&&i){if(!d&&""===l)return void E(e).then(o).catch(a);l&&(i.innerHTML=ce(l)),Q(c,i)}o(l)},e=>{l.length>0?(i&&(i.innerHTML=ce(l+"\n\n"+h("stream_interrupted")),c&&Q(c,i)),o(l)):a(e)},de,t,s)})}(e,n,t,r):(s=await E(e),Ce&&Ce(),ge&&O(ge,s,n,ce,r));const a={id:r,role:"ai",content:s,timestamp:n};ue.push(a),se(pe.integrateId,ue),ge&&Te(),function(e){if(!_e)return;const n=e.length>120?e.substring(0,120)+"...":e;_e.textContent=h("new_msg_announce")+":"+n}(s),ge&&ge.dispatchEvent(new CustomEvent("csk:newMessage",{bubbles:!0,detail:{msg:a}})),t&&async function(e,n){try{const t=await I(e,de);if(t.length>0){const e=t.map(e=>{var n,t;return{documentId:e.documentId||"",title:e.title||"",sourceName:e.sourceName||"",chunkIndex:null!==(n=e.chunkIndex)&&void 0!==n?n:0,score:null!==(t=e.score)&&void 0!==t?t:0,snippet:e.snippet||""}});if(n.sources=e,ge){const n=ge.querySelector(".csk-msg--ai:last-of-type");n&&Z(n,e)}pe&&se(pe.integrateId,ue)}}catch(e){o.warn("获取引用来源失败",e)}}(e,a)}catch(e){Ce&&Ce();const n=e instanceof w?e.message:h("error_send");if(ge){const e=document.createElement("div");e.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${n}`,e.appendChild(t),ge.appendChild(e)}o.error(`发送失败 integrateId=${pe.integrateId}`,e)}finally{Ie=!1,Le=null,ze("send"),je()}}function Ue(){if(!ge)return;const e=ge.querySelector(".csk-history-panel");ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());for(const e of ue)if("user"===e.role)Y(ge,e.content,e.timestamp);else{const n=O(ge,e.content,e.timestamp,ce,e.id);e.sources&&e.sources.length>0&&Z(n,e.sources),e.feedback&&J(n,e.feedback)}$e=!0,ne(ge),be&&ue.length>0&&(be.style.display="inline-flex"),He(),e&&!ge.contains(e)&&ge.appendChild(e)}async function Ye(e){if(!pe||!ge)return;o.info(`切换到会话 conversationId=${e}`),b(e),F(pe.integrateId,pe.userId,e),ye&&ye.classList.add("csk-history-panel--hidden"),ue=[];ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());try{const n=await $(e);n.messages.length>0&&(ue=n.messages.map(e=>({id:q(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`加载会话 ${e} 的 ${ue.length} 条消息`),se(pe.integrateId,ue))}catch(n){o.warn(`加载会话消息失败 conversationId=${e}`,n)}be&&ue.length>0&&(be.style.display="inline-flex"),He()}let Oe=null,We=!1,Xe=null,Ke=null,Je=null,Ve=null,Ge=null,Qe=null,Ze=null,en=null,nn=null,tn=null,rn=null,sn=null,on=null,an=null,cn=null,ln=null,dn=null,pn=null;function un(){if(!cn||!Xe)return;const e=Xe.getBoundingClientRect(),n=an?"left"===an.side:"left-bottom"===(null==Oe?void 0:Oe.position);n?(cn.style.left=`${e.left}px`,cn.style.right="auto"):(cn.style.right=window.innerWidth-e.right+"px",cn.style.left="auto"),cn.style.bottom=window.innerHeight-e.top+8+"px",cn.classList.toggle("csk-teaser--left",!!n),cn.classList.toggle("csk-teaser--right",!n)}function gn(){if(!cn)return;cn.classList.add("csk-teaser--hidden"),cn.removeEventListener("click",mn);const e=cn.querySelector(".csk-teaser__close");e&&e.removeEventListener("click",hn)}function mn(e){e.target.closest(".csk-teaser__close")||(gn(),yn())}function hn(e){e.stopPropagation(),gn()}function kn(){cn&&!cn.classList.contains("csk-teaser--hidden")&&un()}const bn='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';function fn(e){"Escape"===e.key&&Ke&&!Ke.classList.contains("csk-window--hidden")&&xn(),function(e){if(!Ke||Ke.classList.contains("csk-window--hidden"))return;if("Tab"!==e.key)return;const n=Array.from(Ke.querySelectorAll(bn));if(0===n.length)return;const t=n[0],r=n[n.length-1];e.shiftKey?document.activeElement===t&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),t.focus())}(e)}function yn(){Ke&&(Ke.classList.remove("csk-window--hidden"),gn(),dn&&dn.classList.add("csk-launcher__badge--hidden"),setTimeout(()=>{Ve&&Ve.focus()},80))}function xn(){Ke&&Ke.classList.add("csk-window--hidden")}function vn(){Ke&&(Ke.classList.contains("csk-window--hidden")?yn():xn())}function wn(e){return`csk_size_${e}`}function _n(e){return`csk_position_${e}`}function En(e){return`csk_launcher_pos_${e}`}function Cn(e){Ke&&(Ke.classList.remove("csk-window--right","csk-window--left"),Ke.classList.add(`csk-window--${e}`),cn&&(cn.classList.remove("csk-teaser--right","csk-teaser--left"),cn.classList.add(`csk-teaser--${e}`)))}const In={init:function(e){if(We)return void o.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(e){var n,t,r,s,i,g,m,h,k,b,f,y;if(!e.integrateId||"string"!=typeof e.integrateId&&"number"!=typeof e.integrateId||"string"==typeof e.integrateId&&""===e.integrateId.trim())return o.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!e.requestDomain||"string"!=typeof e.requestDomain||""===e.requestDomain.trim())return o.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(e.requestDomain)}catch(n){return o.error(`requestDomain 不是合法的 URL 格式:${e.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const x=String(e.integrateId).trim(),v=e.launcherTheme||void 0;let w=e.launcherIcon||a,_=e.primaryColor||"#4F46E5";v&&!e.launcherIcon&&(w={"dream-purple":c,"mint-tech":l,"coral-peach":d,"sky-blue":p}[v]||a,e.primaryColor||(_=u[v]||"#4F46E5"));const E={integrateId:x,requestDomain:e.requestDomain.replace(/\/+$/,""),userId:e.userId,categoryId:e.categoryId,showCategorySwitch:null!==(n=e.showCategorySwitch)&&void 0!==n&&n,title:e.title||"AI 智能助手",width:null!==(t=e.width)&&void 0!==t?t:380,height:Math.max(300,null!==(r=e.height)&&void 0!==r?r:520),position:"left-bottom"===e.position?"left-bottom":"right-bottom",primaryColor:_,launcherTheme:v,launcherIcon:w,showClear:null===(s=e.showClear)||void 0===s||s,showAdminPanel:null!==(i=e.showAdminPanel)&&void 0!==i&&i,quickReplies:Array.isArray(e.quickReplies)?e.quickReplies.map(e=>String(e).trim()).filter(Boolean):[],theme:"dark"===e.theme?"dark":"light",showTeaser:null===(g=e.showTeaser)||void 0===g||g,teaserText:"string"==typeof e.teaserText&&e.teaserText.trim()||"",resizable:null===(m=e.resizable)||void 0===m||m,streaming:null===(h=e.streaming)||void 0===h||h,enableRag:null===(k=e.enableRag)||void 0===k||k,rewriteStrategy:e.rewriteStrategy||"REWRITE",locale:e.locale||"zh-CN",debug:null===(b=e.debug)||void 0===b||b,sound:null!==(f=e.sound)&&void 0!==f&&f,notification:null!==(y=e.notification)&&void 0!==y&&y,onError:"function"==typeof e.onError?e.onError:void 0,onReady:"function"==typeof e.onReady?e.onReady:void 0,onMessage:"function"==typeof e.onMessage?e.onMessage:void 0,token:e.token,roles:e.roles,chatId:""};return o.info(`配置解析完成 integrateId(=roleId)=${E.integrateId} userId(=accountId)=${E.userId||"(未设置)"} requestDomain=${E.requestDomain}`),E}(e);if(!t)return;var s;Oe=t,function(e){if(g[e])m=e;else{const n=e.split("-")[0],t=Object.keys(g).find(e=>e.startsWith(n));t&&(m=t)}}(Oe.locale),s=Oe.debug,n=s,r(Oe.onError),function(e){k=e}(Oe),B(Oe),Xe=P(Oe,vn),document.body.appendChild(Xe),dn=Xe.querySelector(".csk-launcher__badge"),function(e,n){try{const t=localStorage.getItem(En(e));if(!t)return;const r=JSON.parse(t);if("left"!==r.side&&"right"!==r.side||"number"!=typeof r.bottom)return;const s=window.innerHeight-76,o=Math.max(16,Math.min(r.bottom,s));n.classList.remove("csk-launcher--right","csk-launcher--left"),n.classList.add(`csk-launcher--${r.side}`),n.style.bottom=`${o}px`,an={side:r.side,bottom:o}}catch(e){}}(Oe.integrateId,Xe),sn=function(e,n,t){let r=!1,s=0,o=0,a=!1,i=0,c=0,l=0,d=!1;function p(){const n=parseFloat(getComputedStyle(e).bottom);return isNaN(n)?24:n}function u(n,t){if(d)return;r=!0,a=!1,s=n,o=t,i=p();const u=e.style,g=getComputedStyle(e);c=u.right?parseFloat(u.right):parseFloat(g.right),l=u.left?parseFloat(u.left):parseFloat(g.left)}function g(n,t,d){if(!r)return;const p=n-s,u=t-o;if(!a){if(Math.abs(p)<5&&Math.abs(u)<5)return;a=!0,e.classList.add("csk-launcher--dragging"),e.classList.remove("csk-launcher--right","csk-launcher--left"),e.style.transition="none",!isNaN(c)&&c>=0&&isNaN(l)?(e.style.right=`${c}px`,e.style.left="auto"):!isNaN(l)&&l>=0&&(e.style.left=`${l}px`,e.style.right="auto")}if(a){d.preventDefault();const n=Math.max(16,Math.min(i-u,U()));e.style.bottom=`${n}px`}}function m(){if(!r)return;if(r=!1,!a)return;const n=parseFloat(e.style.bottom)||p(),s=Math.max(16,Math.min(n,U())),o=e.getBoundingClientRect(),i=o.left+o.width/2<=window.innerWidth/2?"left":"right";e.classList.remove("csk-launcher--dragging"),e.classList.add(`csk-launcher--${i}`,"csk-launcher--snap"),e.style.left="",e.style.right="",e.style.bottom=`${s}px`,d=!0;const c=()=>{e.removeEventListener("transitionend",c),e.classList.remove("csk-launcher--snap"),e.style.transition="",d=!1};e.addEventListener("transitionend",c),setTimeout(()=>{d&&c()},350);const l=n=>{n.stopPropagation(),e.removeEventListener("click",l,!0)};e.addEventListener("click",l,!0);const u=e.querySelector(".csk-launcher__badge");u&&(u.style.display=""),t&&t({side:i,bottom:s})}function h(e){u(e.clientX,e.clientY)}function k(e){g(e.clientX,e.clientY,e)}function b(){m()}function f(e){1===e.touches.length&&u(e.touches[0].clientX,e.touches[0].clientY)}function y(e){1===e.touches.length&&g(e.touches[0].clientX,e.touches[0].clientY,e)}function x(){m()}return e.addEventListener("mousedown",h),document.addEventListener("mousemove",k),document.addEventListener("mouseup",b),e.addEventListener("touchstart",f,{passive:!0}),document.addEventListener("touchmove",y,{passive:!1}),document.addEventListener("touchend",x),()=>{e.removeEventListener("mousedown",h),document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",b),e.removeEventListener("touchstart",f),document.removeEventListener("touchmove",y),document.removeEventListener("touchend",x)}}(Xe,0,e=>{an=e,function(e,n){try{localStorage.setItem(En(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e),function(){if(!Ke)return;Ke.style.left="",Ke.style.top="",Ke.style.right="",Ke.style.bottom=""}(),Cn(e.side),cn&&!cn.classList.contains("csk-teaser--hidden")&&un()}),an&&Cn(an.side);const i=function(e){const n=document.createElement("div");n.id="csk-window",n.className=`csk-root csk-window csk-window--${"left-bottom"===e.position?"left":"right"} csk-window--hidden${"dark"===e.theme?" csk-dark":""}`,n.setAttribute("role","dialog"),n.setAttribute("aria-label",e.title),n.setAttribute("aria-modal","false");const t=document.createElement("div");t.className="csk-header";const r=document.createElement("div");r.className="csk-header__left";const s=document.createElement("div");s.className="csk-header__avatar",s.innerHTML=R;const o=document.createElement("div");o.className="csk-header__info";const a=document.createElement("span");a.className="csk-header__title",a.textContent=e.title;const i=document.createElement("span");i.className="csk-header__status",i.innerHTML=`${h("status_online")}`,o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o);const c=document.createElement("div");c.className="csk-header__actions";const l=document.createElement("button");l.className="csk-history-btn",l.setAttribute("title",h("history_title")),l.innerHTML='';const d=document.createElement("button");d.className="csk-header__btn csk-header__btn--minimize",d.setAttribute("title",h("minimize")),d.innerHTML='',d.addEventListener("click",()=>{n.classList.add("csk-window--hidden")});const p=document.createElement("button");p.className="csk-header__btn csk-header__btn--close",p.setAttribute("title",h("close")),p.innerHTML='',p.addEventListener("click",()=>{n.classList.add("csk-window--hidden")}),c.appendChild(l),c.appendChild(d),c.appendChild(p),t.appendChild(r),t.appendChild(c);const u=document.createElement("div");u.id="csk-messages",u.className="csk-messages";const g=document.createElement("div");if(g.className="csk-welcome",g.innerHTML=`\n ${R}
\n ${h("welcome_title")}
\n ${h("welcome_desc")}
\n `,e.quickReplies.length>0){const t=document.createElement("div");t.className="csk-quick-replies";for(const r of e.quickReplies){const e=document.createElement("button");e.type="button",e.className="csk-quick-reply",e.textContent=r,e.addEventListener("click",()=>{n.dispatchEvent(new CustomEvent("csk:quickReply",{detail:{text:r}}))}),t.appendChild(e)}g.appendChild(t)}u.appendChild(g);const m=document.createElement("button");m.type="button",m.className="csk-newmsg csk-newmsg--hidden",m.innerHTML=`\n \n ${h("new_message")}\n `,n.appendChild(m);const k=document.createElement("div");k.className="csk-history-panel csk-history-panel--hidden",k.innerHTML=`\n \n \n \n
\n \n `,u.appendChild(k);const b=k.querySelector("#csk-history-back");b&&b.addEventListener("click",()=>{k.classList.add("csk-history-panel--hidden")}),l.addEventListener("click",e=>{e.stopPropagation();const t=k.classList.contains("csk-history-panel--hidden");k.classList.toggle("csk-history-panel--hidden"),t&&n.dispatchEvent(new CustomEvent("csk:loadHistory"))});let f=null;if(e.showCategorySwitch){const e=document.createElement("div");e.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",f=document.createElement("select"),f.id="csk-category-select",f.className="csk-category-select",f.innerHTML=``,f.addEventListener("change",()=>{const e=f.value;n.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:e?Number(e):void 0}}))}),e.appendChild(r),e.appendChild(f),n.appendChild(t),n.appendChild(u),n.appendChild(e)}else n.appendChild(t),n.appendChild(u);const y=document.createElement("div");y.className="csk-input-area";const x=document.createElement("div");x.className="csk-input-wrap";const v=document.createElement("textarea");v.id="csk-input",v.className="csk-input",v.setAttribute("placeholder",h("placeholder")),v.setAttribute("rows","1"),v.setAttribute("autofocus","");const w=document.createElement("button");w.id="csk-send-btn",w.className="csk-send-btn",w.setAttribute("title",h("send")),w.setAttribute("disabled","true"),w.innerHTML='',x.appendChild(v),x.appendChild(w),y.appendChild(x),n.appendChild(y);let _=null;e.showClear&&(_=document.createElement("button"),_.className="csk-clear-btn",_.textContent=h("clear"),_.style.display="none",n.insertBefore(_,y));let E=null;const C=document.createElement("div");C.className="csk-sr-only",C.setAttribute("aria-live","polite"),C.setAttribute("aria-atomic","true"),n.appendChild(C);const I=k.querySelector("#csk-history-search"),L=document.createElement("div");L.className=`csk-teaser csk-teaser--${"left-bottom"===e.position?"left":"right"} csk-teaser--hidden`,L.setAttribute("role","status"),L.innerHTML=`\n \n ${e.teaserText||h("teaser_text")}\n `;const $=document.createElement("div");return $.className="csk-resize-handle",$.setAttribute("aria-label",h("resize")),$.innerHTML='',n.appendChild($),{window:n,messagesContainer:u,inputEl:v,sendBtn:w,clearBtn:_,categorySelect:f,historyPanel:k,welcomeEl:g,newMsgBtn:m,teaserEl:L,resizeHandle:$,searchInput:I,ariaLiveEl:C,showLoading:function(){if(E)return E.style.display="flex",E;const e=document.createElement("div");return e.className="csk-loading",e.innerHTML=`\n ${R}
\n \n `,u.appendChild(e),E=e,e},hideLoading:function(){E&&E.parentNode&&(E.parentNode.removeChild(E),E=null)}}}(Oe);Ke=i.window,Je=i.messagesContainer,Ve=i.inputEl,Ge=i.sendBtn,Qe=i.clearBtn,Ze=i.categorySelect,en=i.historyPanel,nn=i.showLoading,tn=i.hideLoading,document.body.appendChild(Ke),cn=i.teaserEl,document.body.appendChild(cn),un();const b=Ke.querySelector(".csk-header");if(b&&(rn=function(e,n,t){let r=!1,s=0,o=0,a=0,i=0;const c=e=>{if(e.target.closest("button"))return;r=!0,s=e.clientX,o=e.clientY;const t=n.getBoundingClientRect();a=s-t.left,i=o-t.top,document.addEventListener("mousemove",l),document.addEventListener("mouseup",d)},l=e=>{if(!r)return;const t=e.clientX-a,s=e.clientY-i,o=window.innerWidth-n.offsetWidth,c=window.innerHeight-n.offsetHeight;n.style.right="auto",n.style.bottom="auto",n.style.left=`${Math.max(0,Math.min(t,o))}px`,n.style.top=`${Math.max(0,Math.min(s,c))}px`},d=()=>{if(r=!1,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d),t){const e=n.getBoundingClientRect();t({x:e.left,y:e.top})}};return e.addEventListener("mousedown",c),()=>{e.removeEventListener("mousedown",c),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d)}}(b,Ke,e=>{!function(e,n){try{localStorage.setItem(_n(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e)})),function(e,n){try{const t=localStorage.getItem(_n(e));if(!t)return;const r=JSON.parse(t);if("number"!=typeof r.x||"number"!=typeof r.y)return;const s=window.innerWidth-n.offsetWidth,o=window.innerHeight-n.offsetHeight,a=Math.max(0,Math.min(r.x,s)),i=Math.max(0,Math.min(r.y,o));n.style.right="auto",n.style.bottom="auto",n.style.left=`${a}px`,n.style.top=`${i}px`}catch(e){}}(Oe.integrateId,Ke),Oe.resizable){const e=i.resizeHandle;on=function(e,n,t){let r=!1,s=0,o=0,a=0,i=0;const c=(e,t)=>{r=!0,s=e,o=t;const c=n.getBoundingClientRect();a=c.width,i=c.height,n.classList.add("csk-window--resizing"),document.addEventListener("mousemove",p),document.addEventListener("mouseup",u),document.addEventListener("touchmove",h,{passive:!1}),document.addEventListener("touchend",k)},l=(e,t,c)=>{if(!r)return;c&&c.preventDefault();const l=e-s,d=t-o,p=Math.max(300,Math.min(a+l,window.innerWidth-24)),u=Math.max(300,Math.min(i+d,window.innerHeight-24));n.style.width=`${p}px`,n.style.height=`${u}px`,n.style.setProperty("--csk-window-width",`${p}px`),n.style.setProperty("--csk-window-height",`${u}px`),n.style.bottom="",n.style.right=""},d=()=>{if(!r)return;r=!1,n.classList.remove("csk-window--resizing"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",u),document.removeEventListener("touchmove",h),document.removeEventListener("touchend",k);const e=n.getBoundingClientRect();t&&t({width:e.width,height:e.height})};function p(e){l(e.clientX,e.clientY,e)}function u(){d()}function g(e){e.preventDefault(),e.stopPropagation(),c(e.clientX,e.clientY)}function m(e){e.preventDefault(),e.stopPropagation(),1===e.touches.length&&c(e.touches[0].clientX,e.touches[0].clientY)}function h(e){1===e.touches.length&&l(e.touches[0].clientX,e.touches[0].clientY,e)}function k(){d()}return e.addEventListener("mousedown",g),e.addEventListener("touchstart",m,{passive:!1}),()=>{e.removeEventListener("mousedown",g),e.removeEventListener("touchstart",m),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",u),document.removeEventListener("touchmove",h),document.removeEventListener("touchend",k)}}(e,Ke,e=>{!function(e,n){try{localStorage.setItem(wn(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e)}),function(e,n){try{const t=localStorage.getItem(wn(e));if(!t)return;const r=JSON.parse(t);if("number"!=typeof r.width||"number"!=typeof r.height)return;const s=Math.max(300,Math.min(r.width,window.innerWidth-24)),o=Math.max(300,Math.min(r.height,window.innerHeight-24));n.style.width=`${s}px`,n.style.height=`${o}px`,n.style.setProperty("--csk-window-width",`${s}px`),n.style.setProperty("--csk-window-height",`${o}px`)}catch(e){}}(Oe.integrateId,Ke)}if(Me(Oe,{messagesContainer:Je,inputEl:Ve,sendBtn:Ge,clearBtn:Qe,categorySelect:Ze,historyPanel:en,welcomeEl:i.welcomeEl,newMsgBtn:i.newMsgBtn,searchInput:i.searchInput,ariaLiveEl:i.ariaLiveEl,showLoading:nn,hideLoading:tn}),Ke.addEventListener("csk:categoryChange",e=>{var n,t;n=e.detail.categoryId,de=n,Ne=null===(t=null==pe?void 0:pe.enableRag)||void 0===t||t,o.lifecycleCategoryChange(null!=n?n:"全部")}),Ke.addEventListener("csk:loadHistory",()=>{!async function(){if(!ye||!pe)return;const e=ye.querySelector("#csk-history-list");if(e){e.innerHTML='加载中...
';try{const n=await L(1,50,pe.userId,pe.integrateId);Ae=n.list.map(e=>({id:e.conversationId||"",chatId:e.conversationId||"",messageCount:e.messageCount,lastMessageTime:e.lastMessageTime,lastMessagePreview:e.lastMessagePreview,createdAt:e.firstMessageTime||e.createdAt})),Se="",we&&(we.value=""),ee(e,Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{confirm(h("history_delete_confirm"))&&await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),Be())},f())}catch(n){o.error(h("history_load_error"),n),e.innerHTML=`⚠
${h("history_load_error")}
`}}}()}),Ke.addEventListener("csk:quickReply",e=>{var n;n=e.detail.text,!me||Ie?Promise.resolve():(me.value=n,je(),Re())}),Ke.addEventListener("csk:retry",e=>{!async function(e){if(!pe||!ge||Ie)return;const n=ue.findIndex(n=>n.id===e&&"ai"===n.role);if(n<0)return;let t="";for(let e=n-1;e>=0;e--)if("user"===ue[e].role){t=ue[e].content;break}if(!t)return;const r=ue.splice(n),s=new Set(r.map(e=>e.id));ge.querySelectorAll(".csk-msg").forEach(e=>{const n=e.dataset.cskMsgId;n&&s.has(n)&&e.remove()}),se(pe.integrateId,ue),He(),await Pe(t)}(e.detail.msgId)}),Ke.addEventListener("csk:feedback",e=>{qe(e.detail.msgId,e.detail.value)}),Ke.addEventListener("csk:newMessage",e=>{var n;if(Ke&&Ke.classList.contains("csk-window--hidden")&&(dn&&dn.classList.remove("csk-launcher__badge--hidden"),(null==Oe?void 0:Oe.sound)&&function(){try{pn||(pn=new(window.AudioContext||window.webkitAudioContext));const e=pn;if("suspended"===e.state)return void e.resume();const n=e.currentTime;[0,.15].forEach((t,r)=>{const s=e.createOscillator(),o=e.createGain();s.type="sine",s.frequency.value=0===r?880:1100,o.gain.setValueAtTime(.15,n+t),o.gain.exponentialRampToValueAtTime(.001,n+t+.12),s.connect(o),o.connect(e.destination),s.start(n+t),s.stop(n+t+.12)})}catch(e){}}(),(null==Oe?void 0:Oe.notification)&&function(){try{if(!("Notification"in window))return;"granted"===Notification.permission?new Notification((null==Oe?void 0:Oe.title)||"AI 智能助手",{body:"收到新消息",icon:void 0,silent:!0}):"denied"!==Notification.permission&&Notification.requestPermission()}catch(e){}}()),(null==Oe?void 0:Oe.onMessage)&&(null===(n=e.detail)||void 0===n?void 0:n.msg))try{Oe.onMessage(e.detail.msg)}catch(e){}}),document.addEventListener("keydown",fn),window.addEventListener("resize",kn),We=!0,o.lifecycleInit(Oe.integrateId,Oe.requestDomain),Oe.onReady)try{Oe.onReady()}catch(e){}Oe.showTeaser&&(ln=setTimeout(()=>{Ke&&Ke.classList.contains("csk-window--hidden")&&function(){if(!cn)return;un(),cn.classList.remove("csk-teaser--hidden"),cn.addEventListener("click",mn);const e=cn.querySelector(".csk-teaser__close");e&&e.addEventListener("click",hn)}()},1500)),Fe().catch(e=>{o.warn("chatId 初始化失败,将在发送消息时重试",e)})},destroy:function(){if(!We)return;ln&&(clearTimeout(ln),ln=null),gn(),cn&&cn.parentNode&&(cn.parentNode.removeChild(cn),cn=null),Xe&&Xe.parentNode&&(Xe.parentNode.removeChild(Xe),Xe=null),Ke&&Ke.parentNode&&(Ke.parentNode.removeChild(Ke),Ke=null),rn&&(rn(),rn=null),sn&&(sn(),sn=null),on&&(on(),on=null),an=null,D&&D.parentNode&&(D.parentNode.removeChild(D),D=null),document.querySelectorAll("style[data-csk-sdk]").forEach(e=>e.remove()),document.removeEventListener("keydown",fn),window.removeEventListener("resize",kn),r(void 0);const e=null==Oe?void 0:Oe.integrateId;Oe=null,We=!1,Je=null,Ve=null,Ge=null,Qe=null,Ze=null,en=null,nn=null,tn=null,dn=null,pn=null,k=null,o.lifecycleDestroy(e||"")},open:yn,close:xn,toggle:vn,clearHistory:function(){Oe&&(Qe?Qe.click():confirm("确定清空所有对话记录?")&&oe(Oe.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=In),In}();
//# sourceMappingURL=chatbot-sdk.min.js.map
diff --git a/client/dist/chatbot-sdk.min.js.map b/client/dist/chatbot-sdk.min.js.map
index 6ebc848..1c1e8d0 100644
--- a/client/dist/chatbot-sdk.min.js.map
+++ b/client/dist/chatbot-sdk.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"chatbot-sdk.min.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["PREFIX","debugEnabled","errorCallback","setErrorCallback","cb","timers","logger","info","msg","data","console","log","undefined","warn","error","code","Error","type","message","String","detail","_a","time","label","Date","now","timeEnd","prefix","start","duration","lifecycleInit","integrateId","requestDomain","this","lifecycleDestroy","lifecycleSend","length","lifecycleReply","lifecycleError","status","lifecycleClear","lifecycleStreamDone","lifecycleCategoryChange","categoryId","DEFAULT_LAUNCHER_ICON","buildGlassIcon","eyeColor","smileColor","bubbleColor","GLASS_ICON_DREAM_PURPLE","GLASS_ICON_MINT_TECH","GLASS_ICON_CORAL_PEACH","GLASS_ICON_SKY_BLUE","THEME_PRIMARY_COLORS","dictionaries","title","minimize","close","status_online","welcome_title","welcome_desc","placeholder","send","stop","new_message","copy","copied","retry","retrying","loading","stream_interrupted","stream_unstable","category_placeholder","category_all","category_load_error","source_title","source_count","source_loading","clear","clear_confirm","history_title","history_empty","history_load_error","history_delete_confirm","history_export","history_delete","history_search","history_group_today","history_group_yesterday","history_group_week","history_group_earlier","feedback_up","feedback_down","teaser_text","new_msg_announce","error_network","error_timeout","error_server","error_cors","error_auth","error_forbidden","error_not_found","error_rate_limit","error_unavailable","error_unknown","error_send","error_stream_unsupported","en","currentLocale","t","key","params","text","k","v","Object","entries","replace","currentConfig","updateChatId","chatId","getChatId","buildUrl","path","startsWith","setIfPresent","value","trim","set","async","safeFetch","url","options","timeout","externalSignal","controller","AbortController","timer","setTimeout","abort","aborted","addEventListener","once","headers","Headers","forEach","Array","isArray","assign","token","includes","response","fetch","signal","mode","credentials","err","CskError","DOMException","name","TypeError","clearTimeout","constructor","super","getHttpErrorMessage","chatRequest","URLSearchParams","userId","toString","buildChatUrl","ok","errorMsg","chatSSERequest","onChunk","onDone","onError","useRag","rewriteStrategy","buildChatRAGSSEUrl","buildChatSSEUrl","totalText","REQUEST_TIMEOUT","reader","body","getReader","decoder","TextDecoder","stream","buffer","done","read","decode","lines","split","pop","line","trimmed","substring","readErr","releaseLock","fetchRagSources","buildRagSourcesUrl","json","success","fetchConversationList","page","size","accountId","roleId","list","total","pages","fetchConversationMessages","conversationId","messages","deleteConversation","method","getConversationExportUrl","initChatId","cachedChatId","localStorage","getItem","chatIdStorageKey","loadCachedChatId","result","latestConv","saveCachedChatId","messageCount","newChatId","random","crypto","randomUUID","Math","generateChatId","setItem","removeItem","styleElement","cssVars","config","darker","adjustColor","primaryColor","lighter","rgb","hex","match","parseInt","hexToRgb","themeColors","launcherTheme","grad1","grad2","glow","width","height","amount","clamp","max","min","r","g","b","padStart","injectStyles","document","querySelector","createElement","setAttribute","textContent","getStyles","head","appendChild","uuid","c","escapeHtml","map","ch","BOT_ICON","createLauncher","onClick","launcher","id","glassClass","className","position","innerHTML","launcherIcon","badge","debouncedClick","fn","delay","args","apply","debounce","e","preventDefault","launcherMaxBottom","window","innerHeight","renderUserBubble","container","timestamp","wrapper","avatar","content","bubble","formatTime","renderAIBubble","renderMd","msgId","dataset","cskMsgId","buildAIActions","enhanceCodeBlocks","COPY_ICON","RETRY_ICON","bar","copyBtn","stopPropagation","copyToClipboard","retryBtn","root","closest","dispatchEvent","CustomEvent","upBtn","downBtn","updateFeedbackUI","btns","querySelectorAll","btn","classList","remove","add","original","navigator","clipboard","isSecureContext","writeText","ta","style","opacity","select","execCommand","removeChild","pre","codeEl","finalizeAIBubble","caret","renderSources","sources","existing","sourcesEl","header","titleSpan","n","arrow","toggle","src","item","sourceName","snippet","meta","metaParts","push","chunkIndex","score","toFixed","join","timeEl","parentNode","insertBefore","renderHistoryList","listEl","items","onSelect","onExport","onDelete","activeChatId","emptyText","empty","groups","todayStart","getFullYear","getMonth","getDate","getTime","yesterdayStart","weekStart","getDay","today","yesterday","week","earlier","timeStr","lastMessageTime","createdAt","ts","groupHistoryByDate","group","groupEl","labelEl","el","convId","idEl","lastMessagePreview","metaEl","actionsEl","exportBtn","deleteBtn","scrollToBottom","scrollTop","scrollHeight","d","getHours","getMinutes","storageKey","saveMessages","slice","updatedAt","JSON","stringify","clearMessages","CODE_BLOCK_PREFIX","INLINE_CODE_PREFIX","renderMarkdown","codeBlocks","processed","_match","lang","idx","escapedCode","trimEnd","langClass","inlineCodes","restorePlaceholders","inList","listType","inBlockquote","paragraphBuffer","i","flushParagraph","closeList","closeBlockquote","headingMatch","level","quoteMatch","inlineFormat","ulMatch","olMatch","test","_m","linkText","replacements","RegExp","currentCategoryId","messagesContainer","inputEl","inputWrap","sendBtn","clearBtn","categorySelect","historyPanel","welcomeEl","newMsgBtn","searchInput","ariaLiveEl","showLoadingFn","hideLoadingFn","isSending","abortController","isNearBottom","historyItems","historySearchText","initChat","cfg","dom","parentElement","showLoading","hideLoading","enableRag","handleSend","shiftKey","isComposing","updateSendBtnState","autoResizeInput","confirm","display","updateEmptyState","newId","generateNewChatId","handleClear","bindSendEvents","clientHeight","hideNewMsgBtn","bindScrollEvents","toLowerCase","renderFilteredHistory","bindHistorySearch","showCategorySwitch","tree","fetchCategoryTree","addOptions","nodes","indent","node","option","repeat","selected","children","loadCategories","initChatHistory","role","messageType","createTime","renderHistory","loadHistoryFromBackend","cached","raw","parse","loadMessages","smartScrollToBottom","setSendButtonMode","removeAttribute","filter","switchToConversation","open","it","handleFeedback","find","m","newValue","feedback","feedbackType","messageId","submitFeedbackApi","then","hasMessages","userTimestamp","userMsg","produceAIReply","userText","aiTimestamp","shouldUseRag","aiMsgId","aiContent","streaming","Promise","resolve","reject","bubbleEl","wrapperEl","accumulated","streamStarted","chunk","createEmptyAIBubble","appendStreamingCaret","catch","sendStreamMessage","aiMsg","announceMessage","bubbles","ragSources","s","documentId","_b","lastAiMsg","fetchAndRenderSources","errMsg","errorBubble","color","historyPanelEl","contains","isInitialized","launcherEl","windowEl","dragCleanup","launcherDragCleanup","launcherPos","teaserEl","teaserTimer","badgeEl","audioCtx","positionTeaser","rect","getBoundingClientRect","isLeft","side","left","right","innerWidth","bottom","top","hideTeaser","removeEventListener","onTeaserClick","closeBtn","onTeaserClose","target","onResize","FOCUSABLE","onKeyDown","focusables","from","first","last","activeElement","focus","trapFocus","positionKey","launcherPosKey","syncWindowAlignment","ChatbotSDK","init","rawConfig","parsed","URL","integrateIdStr","resolvedLauncherIcon","resolvedPrimaryColor","_c","showClear","_d","showAdminPanel","_e","quickReplies","Boolean","theme","showTeaser","_f","teaserText","_g","_h","locale","debug","_j","sound","_k","notification","_l","onReady","onMessage","roles","parseConfig","enabled","matched","keys","setLocale","setApiConfig","pos","maxBottom","clampedBottom","restoreLauncherPosition","onDragEnd","dragging","startX","startY","hasMoved","startBottom","startRight","startLeft","isSnapping","getCurrentBottom","val","parseFloat","getComputedStyle","isNaN","onPointerDown","clientX","clientY","cs","onPointerMove","dx","dy","abs","transition","newBottom","onPointerUp","currentBottom","snapSide","onTransitionEnd","preventClick","ev","onMouseDown","onMouseMove","onMouseUp","onTouchStart","touches","onTouchMove","onTouchEnd","passive","enableLauncherDrag","saveLauncherPosition","resetWindowPosition","headerLeft","headerAvatar","headerInfo","titleEl","statusEl","actions","historyBtn","minimizeBtn","chips","reply","chip","backBtn","isHidden","categoryBar","categoryLabel","selectedId","Number","inputArea","loadingEl","createChatWindow","headerEl","offsetX","offsetY","x","y","maxX","offsetWidth","maxY","offsetHeight","enableDrag","saveWindowPosition","winEl","restoreWindowPosition","firstMessageTime","loadHistoryConversations","aiIndex","findIndex","removed","splice","removedIds","Set","has","retryFromMessage","AudioContext","webkitAudioContext","ctx","state","resume","currentTime","offset","osc","createOscillator","gain","createGain","frequency","setValueAtTime","exponentialRampToValueAtTime","connect","destination","playNotificationSound","Notification","permission","icon","silent","requestPermission","sendDesktopNotification","destroy","oldIntegrateId","clearHistory","click"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"chatbot-sdk.min.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["PREFIX","debugEnabled","errorCallback","setErrorCallback","cb","timers","logger","info","msg","data","console","log","undefined","warn","error","code","Error","type","message","String","detail","_a","time","label","Date","now","timeEnd","prefix","start","duration","lifecycleInit","integrateId","requestDomain","this","lifecycleDestroy","lifecycleSend","length","lifecycleReply","lifecycleError","status","lifecycleClear","lifecycleStreamDone","lifecycleCategoryChange","categoryId","DEFAULT_LAUNCHER_ICON","buildGlassIcon","eyeColor","smileColor","bubbleColor","GLASS_ICON_DREAM_PURPLE","GLASS_ICON_MINT_TECH","GLASS_ICON_CORAL_PEACH","GLASS_ICON_SKY_BLUE","THEME_PRIMARY_COLORS","dictionaries","title","minimize","close","status_online","welcome_title","welcome_desc","placeholder","send","stop","new_message","copy","copied","retry","retrying","loading","stream_interrupted","stream_unstable","category_placeholder","category_all","category_load_error","source_title","source_count","source_loading","clear","clear_confirm","history_title","history_empty","history_load_error","history_delete_confirm","history_export","history_delete","history_search","history_group_today","history_group_yesterday","history_group_week","history_group_earlier","feedback_up","feedback_down","teaser_text","new_msg_announce","resize","error_network","error_timeout","error_server","error_cors","error_auth","error_forbidden","error_not_found","error_rate_limit","error_unavailable","error_unknown","error_send","error_stream_unsupported","en","currentLocale","t","key","params","text","k","v","Object","entries","replace","currentConfig","updateChatId","chatId","getChatId","buildUrl","path","startsWith","setIfPresent","value","trim","set","async","safeFetch","url","options","timeout","externalSignal","controller","AbortController","timer","setTimeout","abort","aborted","addEventListener","once","headers","Headers","forEach","Array","isArray","assign","token","includes","response","fetch","signal","mode","credentials","err","CskError","DOMException","name","TypeError","clearTimeout","constructor","super","getHttpErrorMessage","chatRequest","URLSearchParams","userId","toString","buildChatUrl","ok","errorMsg","chatSSERequest","onChunk","onDone","onError","useRag","rewriteStrategy","buildChatRAGSSEUrl","buildChatSSEUrl","totalText","REQUEST_TIMEOUT","reader","body","getReader","decoder","TextDecoder","stream","buffer","done","read","decode","lines","split","pop","line","trimmed","substring","readErr","releaseLock","fetchRagSources","buildRagSourcesUrl","json","success","fetchConversationList","page","size","accountId","roleId","list","total","pages","fetchConversationMessages","conversationId","messages","deleteConversation","method","getConversationExportUrl","initChatId","cachedChatId","localStorage","getItem","chatIdStorageKey","loadCachedChatId","result","latestConv","saveCachedChatId","messageCount","newChatId","random","crypto","randomUUID","Math","generateChatId","setItem","removeItem","styleElement","cssVars","config","darker","adjustColor","primaryColor","lighter","rgb","hex","match","parseInt","hexToRgb","themeColors","launcherTheme","grad1","grad2","glow","width","height","amount","clamp","max","min","r","g","b","padStart","injectStyles","document","querySelector","createElement","setAttribute","textContent","getStyles","head","appendChild","uuid","c","escapeHtml","map","ch","BOT_ICON","createLauncher","onClick","launcher","id","glassClass","className","position","innerHTML","launcherIcon","badge","debouncedClick","fn","delay","args","apply","debounce","e","preventDefault","launcherMaxBottom","window","innerHeight","renderUserBubble","container","timestamp","wrapper","avatar","content","bubble","formatTime","renderAIBubble","renderMd","msgId","dataset","cskMsgId","buildAIActions","enhanceCodeBlocks","COPY_ICON","RETRY_ICON","bar","copyBtn","stopPropagation","copyToClipboard","retryBtn","root","closest","dispatchEvent","CustomEvent","upBtn","downBtn","updateFeedbackUI","btns","querySelectorAll","btn","classList","remove","add","original","navigator","clipboard","isSecureContext","writeText","ta","style","opacity","select","execCommand","removeChild","pre","codeEl","finalizeAIBubble","caret","renderSources","sources","existing","sourcesEl","header","titleSpan","n","arrow","toggle","src","item","sourceName","snippet","meta","metaParts","push","chunkIndex","score","toFixed","join","timeEl","parentNode","insertBefore","renderHistoryList","listEl","items","onSelect","onExport","onDelete","activeChatId","emptyText","empty","groups","todayStart","getFullYear","getMonth","getDate","getTime","yesterdayStart","weekStart","getDay","today","yesterday","week","earlier","timeStr","lastMessageTime","createdAt","ts","groupHistoryByDate","group","groupEl","labelEl","el","convId","idEl","lastMessagePreview","metaEl","actionsEl","exportBtn","deleteBtn","scrollToBottom","scrollTop","scrollHeight","d","getHours","getMinutes","storageKey","saveMessages","slice","updatedAt","JSON","stringify","clearMessages","CODE_BLOCK_PREFIX","INLINE_CODE_PREFIX","renderMarkdown","codeBlocks","processed","_match","lang","idx","escapedCode","trimEnd","langClass","inlineCodes","restorePlaceholders","inList","listType","inBlockquote","paragraphBuffer","i","flushParagraph","closeList","closeBlockquote","headingMatch","level","quoteMatch","inlineFormat","ulMatch","olMatch","test","_m","linkText","replacements","RegExp","currentCategoryId","messagesContainer","inputEl","inputWrap","sendBtn","clearBtn","categorySelect","historyPanel","welcomeEl","newMsgBtn","searchInput","ariaLiveEl","showLoadingFn","hideLoadingFn","isSending","abortController","isNearBottom","historyItems","historySearchText","initChat","cfg","dom","parentElement","showLoading","hideLoading","enableRag","handleSend","shiftKey","isComposing","updateSendBtnState","autoResizeInput","confirm","display","updateEmptyState","newId","generateNewChatId","handleClear","bindSendEvents","clientHeight","hideNewMsgBtn","bindScrollEvents","toLowerCase","renderFilteredHistory","bindHistorySearch","showCategorySwitch","tree","fetchCategoryTree","addOptions","nodes","indent","node","option","repeat","selected","children","loadCategories","initChatHistory","role","messageType","createTime","renderHistory","loadHistoryFromBackend","cached","raw","parse","loadMessages","smartScrollToBottom","setSendButtonMode","removeAttribute","filter","switchToConversation","open","it","handleFeedback","find","m","newValue","feedback","feedbackType","messageId","submitFeedbackApi","then","hasMessages","userTimestamp","userMsg","produceAIReply","userText","aiTimestamp","shouldUseRag","aiMsgId","aiContent","streaming","Promise","resolve","reject","bubbleEl","wrapperEl","accumulated","streamStarted","chunk","createEmptyAIBubble","appendStreamingCaret","catch","sendStreamMessage","aiMsg","announceMessage","bubbles","ragSources","s","documentId","_b","lastAiMsg","fetchAndRenderSources","errMsg","errorBubble","color","historyPanelEl","contains","isInitialized","launcherEl","windowEl","dragCleanup","launcherDragCleanup","resizeCleanup","launcherPos","teaserEl","teaserTimer","badgeEl","audioCtx","positionTeaser","rect","getBoundingClientRect","isLeft","side","left","right","innerWidth","bottom","top","hideTeaser","removeEventListener","onTeaserClick","closeBtn","onTeaserClose","target","onResize","FOCUSABLE","onKeyDown","focusables","from","first","last","activeElement","focus","trapFocus","sizeKey","positionKey","launcherPosKey","syncWindowAlignment","ChatbotSDK","init","rawConfig","parsed","URL","_o","integrateIdStr","resolvedLauncherIcon","resolvedPrimaryColor","_c","showClear","_d","showAdminPanel","_e","quickReplies","Boolean","theme","showTeaser","_f","teaserText","resizable","_g","_h","_j","locale","debug","_k","sound","_l","notification","onReady","onMessage","roles","parseConfig","enabled","matched","keys","setLocale","setApiConfig","pos","maxBottom","clampedBottom","restoreLauncherPosition","onDragEnd","dragging","startX","startY","hasMoved","startBottom","startRight","startLeft","isSnapping","getCurrentBottom","val","parseFloat","getComputedStyle","isNaN","onPointerDown","clientX","clientY","cs","onPointerMove","dx","dy","abs","transition","newBottom","onPointerUp","currentBottom","snapSide","onTransitionEnd","preventClick","ev","onMouseDown","onMouseMove","onMouseUp","onTouchStart","touches","onTouchMove","onTouchEnd","passive","enableLauncherDrag","saveLauncherPosition","resetWindowPosition","headerLeft","headerAvatar","headerInfo","titleEl","statusEl","actions","historyBtn","minimizeBtn","chips","reply","chip","backBtn","isHidden","categoryBar","categoryLabel","selectedId","Number","inputArea","loadingEl","resizeHandle","createChatWindow","headerEl","offsetX","offsetY","x","y","maxX","offsetWidth","maxY","offsetHeight","enableDrag","saveWindowPosition","winEl","restoreWindowPosition","handleEl","onResizeEnd","resizing","startWidth","startHeight","newWidth","newHeight","setProperty","enableResize","saveWindowSize","w","h","restoreWindowSize","firstMessageTime","loadHistoryConversations","aiIndex","findIndex","removed","splice","removedIds","Set","has","retryFromMessage","AudioContext","webkitAudioContext","ctx","state","resume","currentTime","offset","osc","createOscillator","gain","createGain","frequency","setValueAtTime","exponentialRampToValueAtTime","connect","destination","playNotificationSound","Notification","permission","icon","silent","requestPermission","sendDesktopNotification","destroy","oldIntegrateId","clearHistory","click"],"mappings":"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"}
\ No newline at end of file
diff --git a/client/src/config.ts b/client/src/config.ts
index 213add7..4b3e5da 100644
--- a/client/src/config.ts
+++ b/client/src/config.ts
@@ -9,24 +9,8 @@
import { SDKConfig, ResolvedConfig } from './types';
import { logger } from './logger';
-/** 默认悬浮按钮 SVG 图标(赛博机器人:对话气泡 + 机器人面孔 + 天线能量灯 + 眨眼动效) */
-const DEFAULT_LAUNCHER_ICON = ``;
+/** 默认悬浮按钮图标 — C3 三点脉冲序列:极光旋转渐变底 + 三颗顺序脉冲白点 */
+const DEFAULT_LAUNCHER_ICON = ``;
// ==================== 马卡龙色系玻璃质感图标 ====================
@@ -178,6 +162,7 @@ export function parseConfig(raw: SDKConfig): ResolvedConfig | null {
theme: raw.theme === 'dark' ? 'dark' : 'light',
showTeaser: raw.showTeaser ?? true,
teaserText: (typeof raw.teaserText === 'string' && raw.teaserText.trim()) || '',
+ resizable: raw.resizable ?? true,
streaming: raw.streaming ?? true,
enableRag: raw.enableRag ?? true,
rewriteStrategy: raw.rewriteStrategy || 'REWRITE',
diff --git a/client/src/dom.ts b/client/src/dom.ts
index ffddbd1..8663f1d 100644
--- a/client/src/dom.ts
+++ b/client/src/dom.ts
@@ -70,6 +70,7 @@ export function createChatWindow(config: ResolvedConfig): {
welcomeEl: HTMLElement;
newMsgBtn: HTMLElement;
teaserEl: HTMLElement;
+ resizeHandle: HTMLElement;
searchInput: HTMLInputElement | null;
ariaLiveEl: HTMLElement;
showLoading: () => HTMLElement;
@@ -345,6 +346,14 @@ export function createChatWindow(config: ResolvedConfig): {
${config.teaserText || t('teaser_text')}
`;
+ // === 缩放拖拽手柄(右下角) ===
+ const resizeHandle = document.createElement('div');
+ resizeHandle.className = 'csk-resize-handle';
+ resizeHandle.setAttribute('aria-label', t('resize'));
+ // 纯 CSS 渲染三条斜线,无需 SVG
+ resizeHandle.innerHTML = '';
+ windowEl.appendChild(resizeHandle);
+
return {
window: windowEl,
messagesContainer,
@@ -356,6 +365,7 @@ export function createChatWindow(config: ResolvedConfig): {
welcomeEl,
newMsgBtn,
teaserEl,
+ resizeHandle,
searchInput,
ariaLiveEl,
showLoading,
@@ -586,6 +596,115 @@ export function enableLauncherDrag(
};
}
+// ==================== 窗口缩放支持 ====================
+
+/** 窗口最小尺寸 */
+const MIN_WIDTH = 300;
+const MIN_HEIGHT = 300;
+
+/**
+ * 启用窗口右下角拖拽缩放
+ * @param handleEl 缩放手柄元素
+ * @param windowEl 聊天窗口元素
+ * @param onResizeEnd 缩放结束回调,返回最终宽高用于持久化
+ * @returns 清理函数
+ */
+export function enableResize(
+ handleEl: HTMLElement,
+ windowEl: HTMLElement,
+ onResizeEnd?: (size: { width: number; height: number }) => void,
+): () => void {
+ let resizing = false;
+ let startX = 0;
+ let startY = 0;
+ let startWidth = 0;
+ let startHeight = 0;
+
+ const onPointerDown = (clientX: number, clientY: number): void => {
+ resizing = true;
+ startX = clientX;
+ startY = clientY;
+ const rect = windowEl.getBoundingClientRect();
+ startWidth = rect.width;
+ startHeight = rect.height;
+ windowEl.classList.add('csk-window--resizing');
+ document.addEventListener('mousemove', onMouseMove);
+ document.addEventListener('mouseup', onMouseUp);
+ document.addEventListener('touchmove', onTouchMove, { passive: false });
+ document.addEventListener('touchend', onTouchEnd);
+ };
+
+ const onPointerMove = (clientX: number, clientY: number, e?: Event): void => {
+ if (!resizing) return;
+ if (e) e.preventDefault();
+
+ const dx = clientX - startX;
+ const dy = clientY - startY;
+ const newWidth = Math.max(MIN_WIDTH, Math.min(startWidth + dx, window.innerWidth - 24));
+ const newHeight = Math.max(MIN_HEIGHT, Math.min(startHeight + dy, window.innerHeight - 24));
+
+ windowEl.style.width = `${newWidth}px`;
+ windowEl.style.height = `${newHeight}px`;
+ // 同步更新 CSS 变量(供内部布局使用)
+ windowEl.style.setProperty('--csk-window-width', `${newWidth}px`);
+ windowEl.style.setProperty('--csk-window-height', `${newHeight}px`);
+ // 拖拽缩放后清除 bottom/right 定位,避免与固定定位冲突
+ windowEl.style.bottom = '';
+ windowEl.style.right = '';
+ };
+
+ const onPointerUp = (): void => {
+ if (!resizing) return;
+ resizing = false;
+ windowEl.classList.remove('csk-window--resizing');
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ document.removeEventListener('touchmove', onTouchMove);
+ document.removeEventListener('touchend', onTouchEnd);
+
+ const rect = windowEl.getBoundingClientRect();
+ if (onResizeEnd) {
+ onResizeEnd({ width: rect.width, height: rect.height });
+ }
+ };
+
+ // 鼠标事件(DOM 事件监听器包装)
+ function onMouseMove(e: MouseEvent): void { onPointerMove(e.clientX, e.clientY, e); }
+ function onMouseUp(): void { onPointerUp(); }
+
+ // 鼠标事件
+ function onMouseDown(e: MouseEvent): void {
+ e.preventDefault();
+ e.stopPropagation();
+ onPointerDown(e.clientX, e.clientY);
+ }
+
+ // 触摸事件
+ function onTouchStart(e: TouchEvent): void {
+ e.preventDefault();
+ e.stopPropagation();
+ if (e.touches.length === 1) onPointerDown(e.touches[0].clientX, e.touches[0].clientY);
+ }
+
+ function onTouchMove(e: TouchEvent): void {
+ if (e.touches.length === 1) onPointerMove(e.touches[0].clientX, e.touches[0].clientY, e);
+ }
+
+ function onTouchEnd(): void { onPointerUp(); }
+
+ handleEl.addEventListener('mousedown', onMouseDown);
+ handleEl.addEventListener('touchstart', onTouchStart, { passive: false });
+
+ return () => {
+ handleEl.removeEventListener('mousedown', onMouseDown);
+ handleEl.removeEventListener('touchstart', onTouchStart);
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ document.removeEventListener('touchmove', onTouchMove);
+ document.removeEventListener('touchend', onTouchEnd);
+ };
+}
+
// ==================== 消息渲染 ====================
/** 渲染用户消息气泡 */
diff --git a/client/src/i18n.ts b/client/src/i18n.ts
index 907f37f..4fcfa18 100644
--- a/client/src/i18n.ts
+++ b/client/src/i18n.ts
@@ -64,6 +64,7 @@ const dictionaries: Record> = {
// 提示气泡
teaser_text: '有什么可以帮你的吗?',
new_msg_announce: '收到新消息',
+ resize: '拖拽缩放窗口',
// 错误提示
error_network: '网络连接失败,请检查网络',
@@ -140,6 +141,7 @@ const dictionaries: Record> = {
// Teaser
teaser_text: 'How can I help you?',
new_msg_announce: 'New message received',
+ resize: 'Resize window',
// Errors
error_network: 'Network connection failed',
diff --git a/client/src/index.ts b/client/src/index.ts
index 1956ebb..bd8d6df 100644
--- a/client/src/index.ts
+++ b/client/src/index.ts
@@ -12,7 +12,7 @@ import { parseConfig } from './config';
import { setDebug, logger, setErrorCallback } from './logger';
import { setApiConfig, clearApiConfig } from './api';
import { injectStyles, removeStyles } from './styles';
-import { createLauncher, createChatWindow, enableDrag, enableLauncherDrag } from './dom';
+import { createLauncher, createChatWindow, enableDrag, enableLauncherDrag, enableResize } from './dom';
import { initChat, initChatHistory, getMessages, setCategory, loadHistoryConversations, sendQuickReply, retryFromMessage, handleFeedback } from './chat';
import { clearMessages } from './storage';
import { setLocale } from './i18n';
@@ -46,6 +46,7 @@ let showLoadingFn: (() => HTMLElement) | null = null;
let hideLoadingFn: (() => void) | null = null;
let dragCleanup: (() => void) | null = null;
let launcherDragCleanup: (() => void) | null = null;
+let resizeCleanup: (() => void) | null = null;
/** Launcher 位置记忆状态(拖拽后更新) */
let launcherPos: { side: 'left' | 'right'; bottom: number } | null = null;
@@ -146,6 +147,16 @@ function init(rawConfig: SDKConfig): void {
// 9.1 恢复上次拖拽位置
restoreWindowPosition(config.integrateId, windowEl);
+ // 9.2 启用缩放(resizable 配置控制)
+ if (config.resizable) {
+ const resizeHandle = dom.resizeHandle;
+ resizeCleanup = enableResize(resizeHandle, windowEl, (size) => {
+ saveWindowSize(config!.integrateId, size);
+ });
+ // 恢复上次缩放的尺寸
+ restoreWindowSize(config.integrateId, windowEl);
+ }
+
// 10. 初始化对话模块
initChat(config, {
messagesContainer,
@@ -358,6 +369,7 @@ function destroy(): void {
if (windowEl && windowEl.parentNode) { windowEl.parentNode.removeChild(windowEl); windowEl = null; }
if (dragCleanup) { dragCleanup(); dragCleanup = null; }
if (launcherDragCleanup) { launcherDragCleanup(); launcherDragCleanup = null; }
+ if (resizeCleanup) { resizeCleanup(); resizeCleanup = null; }
launcherPos = null;
removeStyles();
@@ -411,6 +423,36 @@ function clearHistory(): void {
else if (confirm('确定清空所有对话记录?')) { clearMessages(config.integrateId); }
}
+// ==================== 窗口尺寸记忆 ====================
+
+/** localStorage key:窗口尺寸 */
+function sizeKey(integrateId: string): string {
+ return `csk_size_${integrateId}`;
+}
+
+/** 保存窗口缩放的尺寸到 localStorage */
+function saveWindowSize(integrateId: string, size: { width: number; height: number }): void {
+ try {
+ localStorage.setItem(sizeKey(integrateId), JSON.stringify(size));
+ } catch { /* 忽略 */ }
+}
+
+/** 恢复窗口缩放尺寸 */
+function restoreWindowSize(integrateId: string, winEl: HTMLElement): void {
+ try {
+ const raw = localStorage.getItem(sizeKey(integrateId));
+ if (!raw) return;
+ const size = JSON.parse(raw) as { width: number; height: number };
+ if (typeof size.width !== 'number' || typeof size.height !== 'number') return;
+ const w = Math.max(300, Math.min(size.width, window.innerWidth - 24));
+ const h = Math.max(300, Math.min(size.height, window.innerHeight - 24));
+ winEl.style.width = `${w}px`;
+ winEl.style.height = `${h}px`;
+ winEl.style.setProperty('--csk-window-width', `${w}px`);
+ winEl.style.setProperty('--csk-window-height', `${h}px`);
+ } catch { /* 忽略 */ }
+}
+
// ==================== 窗口位置记忆 ====================
/** localStorage key:窗口位置 */
diff --git a/client/src/styles.ts b/client/src/styles.ts
index 54372c8..d175fc0 100644
--- a/client/src/styles.ts
+++ b/client/src/styles.ts
@@ -92,7 +92,13 @@ function getStyles(config: ResolvedConfig): string {
width: 60px;
height: 60px;
border-radius: 50%;
- background: var(--csk-bg-user);
+ /* 极光旋转渐变底 — 默认蓝紫系,由 primaryColor 驱动的 conic-gradient */
+ background: conic-gradient(from 0deg,
+ var(--csk-primary-light, #06b6d4),
+ var(--csk-primary, #3b82f6),
+ var(--csk-primary-hover, #8b5cf6),
+ var(--csk-primary-light, #06b6d4)
+ );
display: flex;
align-items: center;
justify-content: center;
@@ -112,7 +118,9 @@ function getStyles(config: ResolvedConfig): string {
transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 0.25s ease,
border-color 0.25s ease;
- animation: csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
+ animation:
+ csk-aurora-spin 4s linear infinite,
+ csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.csk-launcher--right { right: 24px; }
.csk-launcher--left { left: 24px; }
@@ -176,6 +184,64 @@ function getStyles(config: ResolvedConfig): string {
60% { transform: scale(1.06) translateY(-2px); }
100% { opacity: 1; transform: scale(1) translateY(0); }
}
+
+/* ========== 三点脉冲序列图标 ========== */
+/* 极光旋转 */
+@keyframes csk-aurora-spin {
+ to { transform: rotate(360deg); }
+}
+/* 脉冲点 */
+.csk-ico-pulse-dot {
+ position: absolute;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: #fff;
+ z-index: 5;
+ animation: csk-seq-pulse 1.2s ease-in-out infinite;
+ box-shadow: 0 0 6px 1px rgba(255, 255, 255, 0.5);
+}
+.csk-ico-pulse-dot--1 { top: 4px; left: 50%; margin-left: -3px; }
+.csk-ico-pulse-dot--2 { top: 50%; right: 5px; margin-top: -3px; animation-delay: 0.3s; }
+.csk-ico-pulse-dot--3 { bottom: 5px; left: 50%; margin-left: -3px; animation-delay: 0.6s; }
+@keyframes csk-seq-pulse {
+ 0%, 100% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }
+ 35% { transform: scale(1.8); opacity: 1; box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.8); }
+ 70% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }
+}
+
+/* 移除旧的 SVG 图标相关样式(已不再使用) */
+
+/* ========== 高光扫过动效 ========== */
+.csk-launcher::before {
+ content: '';
+ position: absolute;
+ top: -50%;
+ left: -50%;
+ width: 40%;
+ height: 200%;
+ border-radius: 50%;
+ background: linear-gradient(
+ 105deg,
+ transparent 30%,
+ rgba(255, 255, 255, 0.28) 48%,
+ rgba(255, 255, 255, 0.1) 52%,
+ transparent 70%
+ );
+ transform: rotate(25deg);
+ animation: csk-shimmer 4s ease-in-out infinite;
+ pointer-events: none;
+}
+/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */
+.csk-launcher::after {
+ content: '';
+ position: absolute;
+ inset: -18px;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);
+ animation: csk-breathe 3.5s ease-in-out infinite;
+ pointer-events: none;
+}
@keyframes csk-shimmer {
0%, 100% { left: -60%; opacity: 0; }
20% { opacity: 1; }
@@ -187,25 +253,11 @@ function getStyles(config: ResolvedConfig): string {
50% { transform: scale(1.15); opacity: 0.35; }
}
-/* SVG 图标内部动效:眨眼 */
-.csk-launcher .csk-ico-eye {
- animation: csk-eye-blink 4s ease-in-out infinite;
-}
-@keyframes csk-eye-blink {
- 0%, 42%, 48%, 100% { opacity: 1; }
- 45% { opacity: 0.1; }
-}
-/* SVG 图标内部动效:天线能量闪烁 */
-.csk-launcher .csk-ico-antenna {
- animation: csk-antenna-glow 2s ease-in-out infinite;
-}
-@keyframes csk-antenna-glow {
- 0%, 100% { opacity: 0.5; }
- 50% { opacity: 1; }
-}
-
/* ========== 磨砂玻璃质感悬浮按钮 ========== */
.csk-launcher--glass {
+ /* 覆盖旋转动画为静止渐变 */
+ animation:
+ csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both !important;
background: linear-gradient(
135deg,
var(--csk-launcher-grad-1, var(--csk-primary)) 0%,
@@ -266,18 +318,7 @@ function getStyles(config: ResolvedConfig): string {
70% { left: 130%; opacity: 0; }
}
-/* SVG 内部动效:跳动气泡(3 个小圆点交错弹跳) */
-.csk-launcher .csk-ico-bubble {
- animation: csk-bubble-jump 1.4s ease-in-out infinite;
-}
-.csk-launcher .csk-ico-bubble--1 { animation-delay: 0s; }
-.csk-launcher .csk-ico-bubble--2 { animation-delay: 0.18s; }
-.csk-launcher .csk-ico-bubble--3 { animation-delay: 0.36s; }
-@keyframes csk-bubble-jump {
- 0%, 100% { transform: translateY(0); }
- 40% { transform: translateY(-3.5px); }
- 60% { transform: translateY(-1px); }
-}
+/* 三点脉冲图标在玻璃主题下保持可见 */
/* ========== 聊天弹窗 ========== */
.csk-window {
@@ -1134,6 +1175,94 @@ function getStyles(config: ResolvedConfig): string {
box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;
}
+/* ========== 窗口缩放拖拽手柄 ========== */
+.csk-resize-handle {
+ position: absolute;
+ right: 4px;
+ bottom: 4px;
+ width: 20px;
+ height: 20px;
+ display: flex;
+ align-items: flex-end;
+ justify-content: flex-end;
+ cursor: nwse-resize;
+ z-index: 5;
+ user-select: none;
+ -webkit-user-select: none;
+ /* 圆形半透明背景,与整体圆润风格一致 */
+ border-radius: 50%;
+ background: transparent;
+ transition: background 0.2s ease;
+}
+.csk-resize-handle:hover {
+ background: rgba(var(--csk-primary-rgb), 0.08);
+}
+
+/* 三斜线抓手 — 纯 CSS 绘制,用两条间距微调的线,视觉上是三条 */
+.csk-resize-grip {
+ display: block;
+ width: 10px;
+ height: 10px;
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ #C8CCD2 38%, #C8CCD2 42%,
+ transparent 42%, transparent 54%,
+ #C8CCD2 54%, #C8CCD2 58%,
+ transparent 58%, transparent 70%,
+ #C8CCD2 70%, #C8CCD2 74%,
+ transparent 74%
+ );
+ transition: background 0.2s ease;
+ border-radius: 2px;
+}
+/* hover 时线条变为主色 */
+.csk-resize-handle:hover .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ var(--csk-primary) 38%, var(--csk-primary) 42%,
+ transparent 42%, transparent 54%,
+ var(--csk-primary) 54%, var(--csk-primary) 58%,
+ transparent 58%, transparent 70%,
+ var(--csk-primary) 70%, var(--csk-primary) 74%,
+ transparent 74%
+ );
+}
+
+/* 暗色模式 */
+.csk-dark .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ #5B6070 38%, #5B6070 42%,
+ transparent 42%, transparent 54%,
+ #5B6070 54%, #5B6070 58%,
+ transparent 58%, transparent 70%,
+ #5B6070 70%, #5B6070 74%,
+ transparent 74%
+ );
+}
+.csk-dark .csk-resize-handle:hover .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ var(--csk-primary-light) 38%, var(--csk-primary-light) 42%,
+ transparent 42%, transparent 54%,
+ var(--csk-primary-light) 54%, var(--csk-primary-light) 58%,
+ transparent 58%, transparent 70%,
+ var(--csk-primary-light) 70%, var(--csk-primary-light) 74%,
+ transparent 74%
+ );
+}
+
+/* 缩放拖拽中:禁用过渡动画 + 全局光标 */
+.csk-window--resizing {
+ transition: none !important;
+ user-select: none;
+}
+.csk-window--resizing * { cursor: nwse-resize !important; }
+
/* ========== 暗色模式 ========== */
.csk-root.csk-dark {
--csk-bg-ai: #1E1E2E;
@@ -1401,6 +1530,7 @@ function getStyles(config: ResolvedConfig): string {
left: 0 !important;
border-radius: 0;
}
+ .csk-resize-handle { display: none !important; }
.csk-window--hidden { transform: translateY(100%); }
/* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */
.csk-launcher:not([style*="bottom"]) { bottom: 20px; }
diff --git a/client/src/types.ts b/client/src/types.ts
index 4a86362..b9bc7b2 100644
--- a/client/src/types.ts
+++ b/client/src/types.ts
@@ -58,6 +58,8 @@ export interface SDKConfig {
showTeaser?: boolean;
/** 提示气泡文字,留空则使用 i18n 默认值 */
teaserText?: string;
+ /** 是否允许用户拖拽缩放窗口(右下角手柄),默认 true。移动端(≤480px)强制全屏时忽略 */
+ resizable?: boolean;
// === 行为配置 ===
/** 是否启用流式输出,默认 true */
@@ -132,6 +134,8 @@ export interface ResolvedConfig {
showTeaser: boolean;
/** 提示气泡文字 */
teaserText: string;
+ /** 是否允许用户拖拽缩放窗口 */
+ resizable: boolean;
/** 流式输出 */
streaming: boolean;
/** 是否启用 RAG 知识库检索 */
diff --git a/src/main/resources/static/sdk/chatbot-sdk.js b/src/main/resources/static/sdk/chatbot-sdk.js
index 53d86b2..5851f46 100644
--- a/src/main/resources/static/sdk/chatbot-sdk.js
+++ b/src/main/resources/static/sdk/chatbot-sdk.js
@@ -96,24 +96,8 @@ var ChatbotSDK = (function () {
},
};
- /** 默认悬浮按钮 SVG 图标(赛博机器人:对话气泡 + 机器人面孔 + 天线能量灯 + 眨眼动效) */
- const DEFAULT_LAUNCHER_ICON = ``;
+ /** 默认悬浮按钮图标 — C3 三点脉冲序列:极光旋转渐变底 + 三颗顺序脉冲白点 */
+ const DEFAULT_LAUNCHER_ICON = ``;
// ==================== 马卡龙色系玻璃质感图标 ====================
/**
* 生成玻璃质感机器人 SVG 图标
@@ -186,7 +170,7 @@ var ChatbotSDK = (function () {
* 解析并校验用户传入的配置,填充默认值
*/
function parseConfig(raw) {
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
// 校验必传参数:integrateId(对应后端 roleId)
if (!raw.integrateId || (typeof raw.integrateId !== 'string' && typeof raw.integrateId !== 'number')
|| (typeof raw.integrateId === 'string' && raw.integrateId.trim() === '')) {
@@ -202,7 +186,7 @@ var ChatbotSDK = (function () {
try {
new URL(raw.requestDomain);
}
- catch (_m) {
+ catch (_o) {
logger.error(`requestDomain 不是合法的 URL 格式:${raw.requestDomain}。请提供完整的域名,如 https://api.example.com`);
return null;
}
@@ -248,13 +232,14 @@ var ChatbotSDK = (function () {
theme: raw.theme === 'dark' ? 'dark' : 'light',
showTeaser: (_f = raw.showTeaser) !== null && _f !== void 0 ? _f : true,
teaserText: (typeof raw.teaserText === 'string' && raw.teaserText.trim()) || '',
- streaming: (_g = raw.streaming) !== null && _g !== void 0 ? _g : true,
- enableRag: (_h = raw.enableRag) !== null && _h !== void 0 ? _h : true,
+ resizable: (_g = raw.resizable) !== null && _g !== void 0 ? _g : true,
+ streaming: (_h = raw.streaming) !== null && _h !== void 0 ? _h : true,
+ enableRag: (_j = raw.enableRag) !== null && _j !== void 0 ? _j : true,
rewriteStrategy: raw.rewriteStrategy || 'REWRITE',
locale: raw.locale || 'zh-CN',
- debug: (_j = raw.debug) !== null && _j !== void 0 ? _j : true,
- sound: (_k = raw.sound) !== null && _k !== void 0 ? _k : false,
- notification: (_l = raw.notification) !== null && _l !== void 0 ? _l : false,
+ debug: (_k = raw.debug) !== null && _k !== void 0 ? _k : true,
+ sound: (_l = raw.sound) !== null && _l !== void 0 ? _l : false,
+ notification: (_m = raw.notification) !== null && _m !== void 0 ? _m : false,
onError: typeof raw.onError === 'function' ? raw.onError : undefined,
onReady: typeof raw.onReady === 'function' ? raw.onReady : undefined,
onMessage: typeof raw.onMessage === 'function' ? raw.onMessage : undefined,
@@ -322,6 +307,7 @@ var ChatbotSDK = (function () {
// 提示气泡
teaser_text: '有什么可以帮你的吗?',
new_msg_announce: '收到新消息',
+ resize: '拖拽缩放窗口',
// 错误提示
error_network: '网络连接失败,请检查网络',
error_timeout: '请求超时,请稍后重试',
@@ -387,6 +373,7 @@ var ChatbotSDK = (function () {
// Teaser
teaser_text: 'How can I help you?',
new_msg_announce: 'New message received',
+ resize: 'Resize window',
// Errors
error_network: 'Network connection failed',
error_timeout: 'Request timed out, please try again',
@@ -1063,7 +1050,13 @@ var ChatbotSDK = (function () {
width: 60px;
height: 60px;
border-radius: 50%;
- background: var(--csk-bg-user);
+ /* 极光旋转渐变底 — 默认蓝紫系,由 primaryColor 驱动的 conic-gradient */
+ background: conic-gradient(from 0deg,
+ var(--csk-primary-light, #06b6d4),
+ var(--csk-primary, #3b82f6),
+ var(--csk-primary-hover, #8b5cf6),
+ var(--csk-primary-light, #06b6d4)
+ );
display: flex;
align-items: center;
justify-content: center;
@@ -1083,7 +1076,9 @@ var ChatbotSDK = (function () {
transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 0.25s ease,
border-color 0.25s ease;
- animation: csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
+ animation:
+ csk-aurora-spin 4s linear infinite,
+ csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.csk-launcher--right { right: 24px; }
.csk-launcher--left { left: 24px; }
@@ -1147,6 +1142,64 @@ var ChatbotSDK = (function () {
60% { transform: scale(1.06) translateY(-2px); }
100% { opacity: 1; transform: scale(1) translateY(0); }
}
+
+/* ========== 三点脉冲序列图标 ========== */
+/* 极光旋转 */
+@keyframes csk-aurora-spin {
+ to { transform: rotate(360deg); }
+}
+/* 脉冲点 */
+.csk-ico-pulse-dot {
+ position: absolute;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: #fff;
+ z-index: 5;
+ animation: csk-seq-pulse 1.2s ease-in-out infinite;
+ box-shadow: 0 0 6px 1px rgba(255, 255, 255, 0.5);
+}
+.csk-ico-pulse-dot--1 { top: 4px; left: 50%; margin-left: -3px; }
+.csk-ico-pulse-dot--2 { top: 50%; right: 5px; margin-top: -3px; animation-delay: 0.3s; }
+.csk-ico-pulse-dot--3 { bottom: 5px; left: 50%; margin-left: -3px; animation-delay: 0.6s; }
+@keyframes csk-seq-pulse {
+ 0%, 100% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }
+ 35% { transform: scale(1.8); opacity: 1; box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.8); }
+ 70% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }
+}
+
+/* 移除旧的 SVG 图标相关样式(已不再使用) */
+
+/* ========== 高光扫过动效 ========== */
+.csk-launcher::before {
+ content: '';
+ position: absolute;
+ top: -50%;
+ left: -50%;
+ width: 40%;
+ height: 200%;
+ border-radius: 50%;
+ background: linear-gradient(
+ 105deg,
+ transparent 30%,
+ rgba(255, 255, 255, 0.28) 48%,
+ rgba(255, 255, 255, 0.1) 52%,
+ transparent 70%
+ );
+ transform: rotate(25deg);
+ animation: csk-shimmer 4s ease-in-out infinite;
+ pointer-events: none;
+}
+/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */
+.csk-launcher::after {
+ content: '';
+ position: absolute;
+ inset: -18px;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);
+ animation: csk-breathe 3.5s ease-in-out infinite;
+ pointer-events: none;
+}
@keyframes csk-shimmer {
0%, 100% { left: -60%; opacity: 0; }
20% { opacity: 1; }
@@ -1158,25 +1211,11 @@ var ChatbotSDK = (function () {
50% { transform: scale(1.15); opacity: 0.35; }
}
-/* SVG 图标内部动效:眨眼 */
-.csk-launcher .csk-ico-eye {
- animation: csk-eye-blink 4s ease-in-out infinite;
-}
-@keyframes csk-eye-blink {
- 0%, 42%, 48%, 100% { opacity: 1; }
- 45% { opacity: 0.1; }
-}
-/* SVG 图标内部动效:天线能量闪烁 */
-.csk-launcher .csk-ico-antenna {
- animation: csk-antenna-glow 2s ease-in-out infinite;
-}
-@keyframes csk-antenna-glow {
- 0%, 100% { opacity: 0.5; }
- 50% { opacity: 1; }
-}
-
/* ========== 磨砂玻璃质感悬浮按钮 ========== */
.csk-launcher--glass {
+ /* 覆盖旋转动画为静止渐变 */
+ animation:
+ csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both !important;
background: linear-gradient(
135deg,
var(--csk-launcher-grad-1, var(--csk-primary)) 0%,
@@ -1237,18 +1276,7 @@ var ChatbotSDK = (function () {
70% { left: 130%; opacity: 0; }
}
-/* SVG 内部动效:跳动气泡(3 个小圆点交错弹跳) */
-.csk-launcher .csk-ico-bubble {
- animation: csk-bubble-jump 1.4s ease-in-out infinite;
-}
-.csk-launcher .csk-ico-bubble--1 { animation-delay: 0s; }
-.csk-launcher .csk-ico-bubble--2 { animation-delay: 0.18s; }
-.csk-launcher .csk-ico-bubble--3 { animation-delay: 0.36s; }
-@keyframes csk-bubble-jump {
- 0%, 100% { transform: translateY(0); }
- 40% { transform: translateY(-3.5px); }
- 60% { transform: translateY(-1px); }
-}
+/* 三点脉冲图标在玻璃主题下保持可见 */
/* ========== 聊天弹窗 ========== */
.csk-window {
@@ -2105,6 +2133,94 @@ var ChatbotSDK = (function () {
box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;
}
+/* ========== 窗口缩放拖拽手柄 ========== */
+.csk-resize-handle {
+ position: absolute;
+ right: 4px;
+ bottom: 4px;
+ width: 20px;
+ height: 20px;
+ display: flex;
+ align-items: flex-end;
+ justify-content: flex-end;
+ cursor: nwse-resize;
+ z-index: 5;
+ user-select: none;
+ -webkit-user-select: none;
+ /* 圆形半透明背景,与整体圆润风格一致 */
+ border-radius: 50%;
+ background: transparent;
+ transition: background 0.2s ease;
+}
+.csk-resize-handle:hover {
+ background: rgba(var(--csk-primary-rgb), 0.08);
+}
+
+/* 三斜线抓手 — 纯 CSS 绘制,用两条间距微调的线,视觉上是三条 */
+.csk-resize-grip {
+ display: block;
+ width: 10px;
+ height: 10px;
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ #C8CCD2 38%, #C8CCD2 42%,
+ transparent 42%, transparent 54%,
+ #C8CCD2 54%, #C8CCD2 58%,
+ transparent 58%, transparent 70%,
+ #C8CCD2 70%, #C8CCD2 74%,
+ transparent 74%
+ );
+ transition: background 0.2s ease;
+ border-radius: 2px;
+}
+/* hover 时线条变为主色 */
+.csk-resize-handle:hover .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ var(--csk-primary) 38%, var(--csk-primary) 42%,
+ transparent 42%, transparent 54%,
+ var(--csk-primary) 54%, var(--csk-primary) 58%,
+ transparent 58%, transparent 70%,
+ var(--csk-primary) 70%, var(--csk-primary) 74%,
+ transparent 74%
+ );
+}
+
+/* 暗色模式 */
+.csk-dark .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ #5B6070 38%, #5B6070 42%,
+ transparent 42%, transparent 54%,
+ #5B6070 54%, #5B6070 58%,
+ transparent 58%, transparent 70%,
+ #5B6070 70%, #5B6070 74%,
+ transparent 74%
+ );
+}
+.csk-dark .csk-resize-handle:hover .csk-resize-grip {
+ background:
+ linear-gradient(135deg,
+ transparent 0%, transparent 38%,
+ var(--csk-primary-light) 38%, var(--csk-primary-light) 42%,
+ transparent 42%, transparent 54%,
+ var(--csk-primary-light) 54%, var(--csk-primary-light) 58%,
+ transparent 58%, transparent 70%,
+ var(--csk-primary-light) 70%, var(--csk-primary-light) 74%,
+ transparent 74%
+ );
+}
+
+/* 缩放拖拽中:禁用过渡动画 + 全局光标 */
+.csk-window--resizing {
+ transition: none !important;
+ user-select: none;
+}
+.csk-window--resizing * { cursor: nwse-resize !important; }
+
/* ========== 暗色模式 ========== */
.csk-root.csk-dark {
--csk-bg-ai: #1E1E2E;
@@ -2372,6 +2488,7 @@ var ChatbotSDK = (function () {
left: 0 !important;
border-radius: 0;
}
+ .csk-resize-handle { display: none !important; }
.csk-window--hidden { transform: translateY(100%); }
/* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */
.csk-launcher:not([style*="bottom"]) { bottom: 20px; }
@@ -2719,6 +2836,13 @@ var ChatbotSDK = (function () {
${config.teaserText || t('teaser_text')}
`;
+ // === 缩放拖拽手柄(右下角) ===
+ const resizeHandle = document.createElement('div');
+ resizeHandle.className = 'csk-resize-handle';
+ resizeHandle.setAttribute('aria-label', t('resize'));
+ // 纯 CSS 渲染三条斜线,无需 SVG
+ resizeHandle.innerHTML = '';
+ windowEl.appendChild(resizeHandle);
return {
window: windowEl,
messagesContainer,
@@ -2730,6 +2854,7 @@ var ChatbotSDK = (function () {
welcomeEl,
newMsgBtn,
teaserEl,
+ resizeHandle,
searchInput,
ariaLiveEl,
showLoading,
@@ -2939,6 +3064,100 @@ var ChatbotSDK = (function () {
document.removeEventListener('touchend', onTouchEnd);
};
}
+ // ==================== 窗口缩放支持 ====================
+ /** 窗口最小尺寸 */
+ const MIN_WIDTH = 300;
+ const MIN_HEIGHT = 300;
+ /**
+ * 启用窗口右下角拖拽缩放
+ * @param handleEl 缩放手柄元素
+ * @param windowEl 聊天窗口元素
+ * @param onResizeEnd 缩放结束回调,返回最终宽高用于持久化
+ * @returns 清理函数
+ */
+ function enableResize(handleEl, windowEl, onResizeEnd) {
+ let resizing = false;
+ let startX = 0;
+ let startY = 0;
+ let startWidth = 0;
+ let startHeight = 0;
+ const onPointerDown = (clientX, clientY) => {
+ resizing = true;
+ startX = clientX;
+ startY = clientY;
+ const rect = windowEl.getBoundingClientRect();
+ startWidth = rect.width;
+ startHeight = rect.height;
+ windowEl.classList.add('csk-window--resizing');
+ document.addEventListener('mousemove', onMouseMove);
+ document.addEventListener('mouseup', onMouseUp);
+ document.addEventListener('touchmove', onTouchMove, { passive: false });
+ document.addEventListener('touchend', onTouchEnd);
+ };
+ const onPointerMove = (clientX, clientY, e) => {
+ if (!resizing)
+ return;
+ if (e)
+ e.preventDefault();
+ const dx = clientX - startX;
+ const dy = clientY - startY;
+ const newWidth = Math.max(MIN_WIDTH, Math.min(startWidth + dx, window.innerWidth - 24));
+ const newHeight = Math.max(MIN_HEIGHT, Math.min(startHeight + dy, window.innerHeight - 24));
+ windowEl.style.width = `${newWidth}px`;
+ windowEl.style.height = `${newHeight}px`;
+ // 同步更新 CSS 变量(供内部布局使用)
+ windowEl.style.setProperty('--csk-window-width', `${newWidth}px`);
+ windowEl.style.setProperty('--csk-window-height', `${newHeight}px`);
+ // 拖拽缩放后清除 bottom/right 定位,避免与固定定位冲突
+ windowEl.style.bottom = '';
+ windowEl.style.right = '';
+ };
+ const onPointerUp = () => {
+ if (!resizing)
+ return;
+ resizing = false;
+ windowEl.classList.remove('csk-window--resizing');
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ document.removeEventListener('touchmove', onTouchMove);
+ document.removeEventListener('touchend', onTouchEnd);
+ const rect = windowEl.getBoundingClientRect();
+ if (onResizeEnd) {
+ onResizeEnd({ width: rect.width, height: rect.height });
+ }
+ };
+ // 鼠标事件(DOM 事件监听器包装)
+ function onMouseMove(e) { onPointerMove(e.clientX, e.clientY, e); }
+ function onMouseUp() { onPointerUp(); }
+ // 鼠标事件
+ function onMouseDown(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ onPointerDown(e.clientX, e.clientY);
+ }
+ // 触摸事件
+ function onTouchStart(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ if (e.touches.length === 1)
+ onPointerDown(e.touches[0].clientX, e.touches[0].clientY);
+ }
+ function onTouchMove(e) {
+ if (e.touches.length === 1)
+ onPointerMove(e.touches[0].clientX, e.touches[0].clientY, e);
+ }
+ function onTouchEnd() { onPointerUp(); }
+ handleEl.addEventListener('mousedown', onMouseDown);
+ handleEl.addEventListener('touchstart', onTouchStart, { passive: false });
+ return () => {
+ handleEl.removeEventListener('mousedown', onMouseDown);
+ handleEl.removeEventListener('touchstart', onTouchStart);
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ document.removeEventListener('touchmove', onTouchMove);
+ document.removeEventListener('touchend', onTouchEnd);
+ };
+ }
// ==================== 消息渲染 ====================
/** 渲染用户消息气泡 */
function renderUserBubble(container, text, timestamp) {
@@ -4388,6 +4607,7 @@ var ChatbotSDK = (function () {
let hideLoadingFn = null;
let dragCleanup = null;
let launcherDragCleanup = null;
+ let resizeCleanup = null;
/** Launcher 位置记忆状态(拖拽后更新) */
let launcherPos = null;
/** 提示气泡元素 */
@@ -4468,6 +4688,15 @@ var ChatbotSDK = (function () {
}
// 9.1 恢复上次拖拽位置
restoreWindowPosition(config.integrateId, windowEl);
+ // 9.2 启用缩放(resizable 配置控制)
+ if (config.resizable) {
+ const resizeHandle = dom.resizeHandle;
+ resizeCleanup = enableResize(resizeHandle, windowEl, (size) => {
+ saveWindowSize(config.integrateId, size);
+ });
+ // 恢复上次缩放的尺寸
+ restoreWindowSize(config.integrateId, windowEl);
+ }
// 10. 初始化对话模块
initChat(config, {
messagesContainer,
@@ -4686,6 +4915,10 @@ var ChatbotSDK = (function () {
launcherDragCleanup();
launcherDragCleanup = null;
}
+ if (resizeCleanup) {
+ resizeCleanup();
+ resizeCleanup = null;
+ }
launcherPos = null;
removeStyles();
document.removeEventListener('keydown', onKeyDown);
@@ -4741,6 +4974,36 @@ var ChatbotSDK = (function () {
clearMessages(config.integrateId);
}
}
+ // ==================== 窗口尺寸记忆 ====================
+ /** localStorage key:窗口尺寸 */
+ function sizeKey(integrateId) {
+ return `csk_size_${integrateId}`;
+ }
+ /** 保存窗口缩放的尺寸到 localStorage */
+ function saveWindowSize(integrateId, size) {
+ try {
+ localStorage.setItem(sizeKey(integrateId), JSON.stringify(size));
+ }
+ catch ( /* 忽略 */_a) { /* 忽略 */ }
+ }
+ /** 恢复窗口缩放尺寸 */
+ function restoreWindowSize(integrateId, winEl) {
+ try {
+ const raw = localStorage.getItem(sizeKey(integrateId));
+ if (!raw)
+ return;
+ const size = JSON.parse(raw);
+ if (typeof size.width !== 'number' || typeof size.height !== 'number')
+ return;
+ const w = Math.max(300, Math.min(size.width, window.innerWidth - 24));
+ const h = Math.max(300, Math.min(size.height, window.innerHeight - 24));
+ winEl.style.width = `${w}px`;
+ winEl.style.height = `${h}px`;
+ winEl.style.setProperty('--csk-window-width', `${w}px`);
+ winEl.style.setProperty('--csk-window-height', `${h}px`);
+ }
+ catch ( /* 忽略 */_a) { /* 忽略 */ }
+ }
// ==================== 窗口位置记忆 ====================
/** localStorage key:窗口位置 */
function positionKey(integrateId) {
diff --git a/src/main/resources/static/sdk/chatbot-sdk.min.js b/src/main/resources/static/sdk/chatbot-sdk.min.js
index d79ae17..19c2e96 100644
--- a/src/main/resources/static/sdk/chatbot-sdk.min.js
+++ b/src/main/resources/static/sdk/chatbot-sdk.min.js
@@ -1,2 +1,2 @@
-var ChatbotSDK=function(){"use strict";const e="[ChatbotSDK]";let n=!0,t=null;function r(e){t=e||null}const s={},o={info(t,r){n&&console.log(e,t,void 0!==r?r:"")},warn(t,r){n&&console.warn(e,t,void 0!==r?r:"")},error(n,r){if(console.error(e,n,void 0!==r?r:""),t)try{const e=r instanceof Error&&r.type||"error";t({message:n,code:String(e),detail:r})}catch(e){}},time(e){s[e]=Date.now()},timeEnd(t,r){const o=s[t];if(void 0!==o){const a=Date.now()-o;if(delete s[t],n){const n=r?`${r} ${a}ms`:`${t} ${a}ms`;console.log(e,n)}return a}return 0},lifecycleInit(e,n){this.info(`初始化完成 integrateId=${e} requestDomain=${n}`)},lifecycleDestroy(e){this.info(`销毁实例 integrateId=${e}`)},lifecycleSend(e,n){this.info(`发送消息 integrateId=${e} length=${n}`),this.time(`send_${e}`)},lifecycleReply(e,n){const t=this.timeEnd(`send_${e}`,"AI 回复");this.info(`AI 回复 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleError(e,n,t){this.timeEnd(`send_${e}`),this.error(`请求失败 integrateId=${e} status=${n} message=${t}`)},lifecycleClear(e){this.info(`清空会话 integrateId=${e}`)},lifecycleStreamDone(e,n){const t=this.timeEnd(`send_${e}`,"流式回复");this.info(`流式回复完成 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleCategoryChange(e){this.info(`切换知识库分类 categoryId=${e}`)}},a='';function i(e,n,t){return``}const c=i("rgba(139,92,246,0.6)","rgba(139,92,246,0.45)","rgba(240,171,252,0.85)"),l=i("rgba(16,185,129,0.6)","rgba(16,185,129,0.45)","rgba(110,231,183,0.85)"),d=i("rgba(244,63,94,0.55)","rgba(244,63,94,0.4)","rgba(253,186,116,0.85)"),p=i("rgba(56,189,248,0.6)","rgba(56,189,248,0.45)","rgba(167,139,250,0.85)"),u={"dream-purple":"#A78BFA","mint-tech":"#34D399","coral-peach":"#FB7185","sky-blue":"#7DD3FC"};const g={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",status_online:"在线",welcome_title:"你好,我是 AI 智能助手",welcome_desc:"有什么可以帮你的吗?在下方输入框开始提问吧~",placeholder:"输入您的问题...",send:"发送",stop:"停止生成",new_message:"新消息",copy:"复制",copied:"已复制",retry:"重新生成",retrying:"重新生成中...",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",history_search:"搜索会话...",history_group_today:"今天",history_group_yesterday:"昨天",history_group_week:"本周",history_group_earlier:"更早",feedback_up:"有帮助",feedback_down:"没帮助",teaser_text:"有什么可以帮你的吗?",new_msg_announce:"收到新消息",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",status_online:"Online",welcome_title:"Hi, I am your AI assistant",welcome_desc:"How can I help you? Type your question below to get started.",placeholder:"Type your question...",send:"Send",stop:"Stop generating",new_message:"New message",copy:"Copy",copied:"Copied",retry:"Regenerate",retrying:"Regenerating...",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",history_search:"Search conversations...",history_group_today:"Today",history_group_yesterday:"Yesterday",history_group_week:"This Week",history_group_earlier:"Earlier",feedback_up:"Helpful",feedback_down:"Not helpful",teaser_text:"How can I help you?",new_msg_announce:"New message received",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let k="zh-CN";function m(e,n){let t=(g[k]||g["zh-CN"])[e]||g["zh-CN"][e]||e;if(n)for(const[e,r]of Object.entries(n))t=t.replace(`{${e}}`,String(r));return t}let h=null;function b(e){h&&(h.chatId=e)}function f(){return(null==h?void 0:h.chatId)||""}function y(e){if(!h)throw new Error("API 配置未初始化");return`${h.requestDomain.replace(/\/+$/,"")}${e.startsWith("/")?e:`/${e}`}`}function x(e,n,t){null!=t&&("string"==typeof t&&""===t.trim()||e.set(n,String(t)))}async function v(e,n={},t=3e4,r){const s=new AbortController,a=setTimeout(()=>s.abort(),t);r&&(r.aborted?s.abort():r.addEventListener("abort",()=>s.abort(),{once:!0}));try{const t={};n.headers&&(n.headers instanceof Headers?n.headers.forEach((e,n)=>{t[n]=e}):Array.isArray(n.headers)?n.headers.forEach(([e,n])=>{t[e]=n}):Object.assign(t,n.headers)),(null==h?void 0:h.token)&&e.includes("/ai/")&&(t.Authorization=`Bearer ${h.token}`);const r=await fetch(e,Object.assign(Object.assign({},n),{headers:t,signal:s.signal,mode:"cors",credentials:"include"}));return 401===r.status&&e.includes("/ai/")&&o.error("SDK 认证失败:Token 缺失或已过期,请重新调用 /open-api/auth/token 换取 Token"),r}catch(e){if(null==r?void 0:r.aborted)throw new w("aborted","aborted");if(e instanceof DOMException&&"AbortError"===e.name)throw new w(m("error_timeout"),"timeout");if(e instanceof TypeError&&e.message.includes("Failed to fetch"))throw new w(m("error_cors"),"cors");throw new w(m("error_network"),"network")}finally{clearTimeout(a)}}class w extends Error{constructor(e,n){super(e),this.name="CskError",this.type=n}}function _(e){switch(e){case 401:return m("error_auth");case 403:return m("error_forbidden");case 404:return m("error_not_found");case 429:return m("error_rate_limit");case 500:return m("error_server");case 502:case 503:return m("error_unavailable");default:return`${m("error_unknown")}(${e})`}}async function E(e){const n=function(e){const n=new URLSearchParams;return n.set("message",e),n.set("chatId",h.chatId),x(n,"roleId",h.integrateId),x(n,"accountId",h.userId),y(`/ai/assistant_app/chat/sync?${n.toString()}`)}(e);o.lifecycleSend(h.integrateId,e.length);try{const e=await v(n);if(!e.ok){const n=_(e.status);throw o.lifecycleError(h.integrateId,String(e.status),n),new w(n,`http_${e.status}`)}const t=await e.text();return o.lifecycleReply(h.integrateId,t.length),t}catch(e){if(e instanceof w)throw e;throw o.lifecycleError(h.integrateId,"unknown",String(e)),new w(m("error_unknown"),"unknown")}}async function C(e,n,t,r,s,a,i){var c;const l=a?function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",h.chatId),t.set("rewriteStrategy",h.rewriteStrategy||"REWRITE"),x(t,"roleId",h.integrateId),x(t,"accountId",h.userId),x(t,"categoryId",null!=n?n:h.categoryId),y(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(e,s):function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",h.chatId),x(t,"roleId",h.integrateId),x(t,"accountId",h.userId),x(t,"categoryId",null!=n?n:h.categoryId),y(`/ai/assistant_app/chat/sse?${t.toString()}`)}(e,s);let d="";o.lifecycleSend(h.integrateId,e.length);try{const e=await v(l,{},6e4,i);if(!e.ok){const n=_(e.status);return o.lifecycleError(h.integrateId,String(e.status),n),void r(new w(n,`http_${e.status}`))}const s=null===(c=e.body)||void 0===c?void 0:c.getReader();if(!s)return void r(new w(m("error_stream_unsupported"),"stream_unsupported"));const a=new TextDecoder("utf-8",{stream:!0});let p="";try{for(;;){const{done:e,value:t}=await s.read();if(e)break;p+=a.decode(t,{stream:!0});const r=p.split("\n");p=r.pop()||"";for(const e of r){const t=e.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const e=t.substring(5).trim();e&&(d+=e,n(e))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(d+=t,n(t))}}}if(p.trim()){const e=p.trim();if(e.startsWith("data:")){const t=e.substring(5).trim();t&&(d+=t,n(t))}else"[DONE]"!==e&&(d+=e,n(e))}}catch(e){if(null==i?void 0:i.aborted)o.info(`流式被用户中断,保留已生成内容 length=${d.length}`);else{if(!(d.length>0))throw e;n("\n\n"+m("stream_unstable"))}}finally{s.releaseLock()}o.lifecycleStreamDone(h.integrateId,d.length),t()}catch(e){if((null==i?void 0:i.aborted)||e instanceof w&&"aborted"===e.type)return void t();e instanceof w?r(e):(o.lifecycleError(h.integrateId,"unknown",String(e)),r(new w(m("error_network"),"network")))}}async function I(e,n){const t=function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",h.chatId),t.set("rewriteStrategy",h.rewriteStrategy||"REWRITE"),x(t,"roleId",h.integrateId),x(t,"accountId",h.userId),x(t,"categoryId",null!=n?n:h.categoryId),y(`/ai/assistant_app/rag/sources?${t.toString()}`)}(e,n);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return n.success&&Array.isArray(n.data)?(o.info(`获取引用来源 count=${n.data.length}`),n.data):[]}catch(e){return o.error("获取引用来源失败",e),[]}}async function $(e=1,n=20,t,r){const s=new URLSearchParams;s.set("page",String(e)),s.set("size",String(n)),t&&s.set("accountId",t),r&&s.set("roleId",r);const a=y(`/ai/sdk/conversation/list?${s.toString()}`);try{const e=await v(a);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{list:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0,pages:n.pages||0}}catch(e){return o.error("加载会话列表失败",e),{list:[],total:0,pages:0}}}async function L(e){const n=new URLSearchParams;(null==h?void 0:h.userId)&&n.set("accountId",h.userId),(null==h?void 0:h.integrateId)&&n.set("roleId",h.integrateId);const t=y(`/ai/sdk/conversation/${e}/messages?${n.toString()}`);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{messages:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0}}catch(e){return o.error("加载会话消息失败",e),{messages:[],total:0}}}async function A(e){const n=new URLSearchParams;(null==h?void 0:h.userId)&&n.set("accountId",h.userId),(null==h?void 0:h.integrateId)&&n.set("roleId",h.integrateId);const t=y(`/ai/sdk/conversation/${e}?${n.toString()}`);try{const n=await v(t,{method:"DELETE"});if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const r=await n.json();return o.info(`删除会话 id=${e} success=${r.success}`),r.success||!1}catch(e){return o.error("删除会话失败",e),!1}}function S(e){const n=new URLSearchParams;return(null==h?void 0:h.userId)&&n.set("accountId",h.userId),(null==h?void 0:h.integrateId)&&n.set("roleId",h.integrateId),y(`/ai/sdk/conversation/${e}/export?${n.toString()}`)}async function N(){if(!h)return"";const e=function(e,n){try{return localStorage.getItem(F(e,n))||""}catch(e){return""}}(h.integrateId,h.userId);if(e)return h.chatId=e,o.info(`从缓存恢复 chatId=${e}`),e;try{const e=await $(1,5,h.userId,h.integrateId);if(e.list.length>0){const n=e.list[0],t=n.conversationId||n.chatId||"";if(t)return h.chatId=t,M(h.integrateId,h.userId,t),o.info(`从后端恢复会话 chatId=${t} messageCount=${n.messageCount}`),t}}catch(e){o.warn("查询后端会话列表失败,将生成新 chatId",e)}const n=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();return h.chatId=n,M(h.integrateId,h.userId,n),o.info(`生成新 chatId=${n}`),n}function F(e,n){return`csk_chatId_${e}${n?"_"+n:""}`}function M(e,n,t){try{t?localStorage.setItem(F(e,n),t):localStorage.removeItem(F(e,n))}catch(e){}}let T=null;function D(e){const n=B(e.primaryColor,-15),t=B(e.primaryColor,18),r=function(e){const n=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);return n?`${parseInt(n[1],16)}, ${parseInt(n[2],16)}, ${parseInt(n[3],16)}`:"79, 70, 229"}(e.primaryColor),s=e.launcherTheme?{"dream-purple":{grad1:"#A78BFA",grad2:"#F0ABFC",glow:"167, 139, 250"},"mint-tech":{grad1:"#6EE7B7",grad2:"#34D399",glow:"52, 211, 153"},"coral-peach":{grad1:"#FB7185",grad2:"#FDBA74",glow:"251, 113, 133"},"sky-blue":{grad1:"#7DD3FC",grad2:"#A78BFA",glow:"125, 211, 252"}}[e.launcherTheme]:null;return`\n --csk-primary: ${e.primaryColor};\n --csk-primary-hover: ${n};\n --csk-primary-light: ${t};\n --csk-primary-rgb: ${r};\n --csk-bg-user: linear-gradient(135deg, ${e.primaryColor}, ${n});\n --csk-bg-ai: #ffffff;\n --csk-text-user: #ffffff;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${e.width}px;\n --csk-window-height: ${e.height}px;\n --csk-radius: 16px;\n --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);\n --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06);\n --csk-border: #ECEEF2;\n --csk-bg-app: #F6F7F9;\n ${s?`\n --csk-launcher-grad-1: ${s.grad1};\n --csk-launcher-grad-2: ${s.grad2};\n --csk-launcher-glow: ${s.glow};\n `:""}\n `}function B(e,n){const t=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return e;const r=e=>Math.max(0,Math.min(255,e)),s=r(parseInt(t[1],16)+n),o=r(parseInt(t[2],16)+n),a=r(parseInt(t[3],16)+n);return`#${s.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}`}function q(e){document.querySelector("style[data-csk-sdk]")||(T=document.createElement("style"),T.setAttribute("data-csk-sdk",""),T.textContent=function(e){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${D(e)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;\n font-size: 14px;\n line-height: 1.55;\n color: #1F2937;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; }\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 24px;\n z-index: 9998;\n width: 60px;\n height: 60px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n user-select: none;\n overflow: visible;\n /* 半透明白色光环边框,在白色页面上清晰分离按钮与背景 */\n border: 2.5px solid rgba(255, 255, 255, 0.55);\n /* 三层投影:接地阴影 + 彩色光晕,把按钮从白底「托」出来 */\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12);\n transition:\n transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),\n box-shadow 0.25s ease,\n border-color 0.25s ease;\n animation: csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n.csk-launcher--right { right: 24px; }\n.csk-launcher--left { left: 24px; }\n\n/* 高光扫过动效 */\n.csk-launcher::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 40%;\n height: 200%;\n border-radius: 50%;\n background: linear-gradient(\n 105deg,\n transparent 30%,\n rgba(255, 255, 255, 0.28) 48%,\n rgba(255, 255, 255, 0.1) 52%,\n transparent 70%\n );\n transform: rotate(25deg);\n animation: csk-shimmer 4s ease-in-out infinite;\n pointer-events: none;\n}\n/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -18px;\n border-radius: 50%;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);\n animation: csk-breathe 3.5s ease-in-out infinite;\n pointer-events: none;\n}\n.csk-launcher:hover {\n transform: translateY(-3px) scale(1.08);\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.10),\n 0 8px 24px rgba(0, 0, 0, 0.14),\n 0 10px 36px rgba(var(--csk-primary-rgb), 0.32),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.14);\n}\n.csk-launcher:hover::before { animation-play-state: paused; }\n.csk-launcher:hover::after {\n animation: none;\n inset: -22px;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.22) 0%, rgba(var(--csk-primary-rgb), 0.06) 45%, transparent 68%);\n}\n.csk-launcher:active { transform: scale(0.93); }\n.csk-launcher svg {\n width: 30px;\n height: 30px;\n position: relative;\n z-index: 1;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));\n}\n\n@keyframes csk-launcher-in {\n 0% { opacity: 0; transform: scale(0.5) translateY(16px); }\n 60% { transform: scale(1.06) translateY(-2px); }\n 100% { opacity: 1; transform: scale(1) translateY(0); }\n}\n@keyframes csk-shimmer {\n 0%, 100% { left: -60%; opacity: 0; }\n 20% { opacity: 1; }\n 60% { opacity: 1; }\n 80% { left: 120%; opacity: 0; }\n}\n@keyframes csk-breathe {\n 0%, 100% { transform: scale(1); opacity: 1; }\n 50% { transform: scale(1.15); opacity: 0.35; }\n}\n\n/* SVG 图标内部动效:眨眼 */\n.csk-launcher .csk-ico-eye {\n animation: csk-eye-blink 4s ease-in-out infinite;\n}\n@keyframes csk-eye-blink {\n 0%, 42%, 48%, 100% { opacity: 1; }\n 45% { opacity: 0.1; }\n}\n/* SVG 图标内部动效:天线能量闪烁 */\n.csk-launcher .csk-ico-antenna {\n animation: csk-antenna-glow 2s ease-in-out infinite;\n}\n@keyframes csk-antenna-glow {\n 0%, 100% { opacity: 0.5; }\n 50% { opacity: 1; }\n}\n\n/* ========== 磨砂玻璃质感悬浮按钮 ========== */\n.csk-launcher--glass {\n background: linear-gradient(\n 135deg,\n var(--csk-launcher-grad-1, var(--csk-primary)) 0%,\n var(--csk-launcher-grad-2, var(--csk-primary-light)) 100%\n ) !important;\n backdrop-filter: blur(12px) saturate(180%);\n -webkit-backdrop-filter: blur(12px) saturate(180%);\n border: 1.5px solid rgba(255, 255, 255, 0.55) !important;\n /* 多层阴影:接地 + 彩色光晕 + 内阴影立体感 */\n box-shadow:\n 0 2px 4px rgba(0, 0, 0, 0.04),\n 0 6px 20px rgba(0, 0, 0, 0.08),\n 0 8px 32px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.30),\n inset 0 1px 1px rgba(255, 255, 255, 0.35),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n.csk-launcher--glass:hover {\n border-color: rgba(255, 255, 255, 0.75) !important;\n box-shadow:\n 0 4px 8px rgba(0, 0, 0, 0.06),\n 0 10px 28px rgba(0, 0, 0, 0.10),\n 0 12px 40px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.38),\n inset 0 1px 2px rgba(255, 255, 255, 0.45),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n\n/* 玻璃按钮的呼吸色晕 — 更鲜艳、更醒目 */\n.csk-launcher--glass::after {\n background: radial-gradient(\n circle,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.28) 0%,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.10) 40%,\n transparent 65%\n ) !important;\n animation: csk-breathe-glow 3.5s ease-in-out infinite;\n}\n@keyframes csk-breathe-glow {\n 0%, 100% { transform: scale(1); opacity: 0.8; }\n 50% { transform: scale(1.22); opacity: 0.25; }\n}\n\n/* 玻璃按钮的高光扫过 — 更柔和的玻璃质感 */\n.csk-launcher--glass::before {\n background: linear-gradient(\n 115deg,\n transparent 25%,\n rgba(255, 255, 255, 0.35) 45%,\n rgba(255, 255, 255, 0.15) 55%,\n transparent 75%\n ) !important;\n width: 50%;\n animation: csk-shimmer-glass 5s ease-in-out infinite;\n}\n@keyframes csk-shimmer-glass {\n 0%, 100% { left: -70%; opacity: 0; }\n 15% { opacity: 1; }\n 55% { opacity: 1; }\n 70% { left: 130%; opacity: 0; }\n}\n\n/* SVG 内部动效:跳动气泡(3 个小圆点交错弹跳) */\n.csk-launcher .csk-ico-bubble {\n animation: csk-bubble-jump 1.4s ease-in-out infinite;\n}\n.csk-launcher .csk-ico-bubble--1 { animation-delay: 0s; }\n.csk-launcher .csk-ico-bubble--2 { animation-delay: 0.18s; }\n.csk-launcher .csk-ico-bubble--3 { animation-delay: 0.36s; }\n@keyframes csk-bubble-jump {\n 0%, 100% { transform: translateY(0); }\n 40% { transform: translateY(-3.5px); }\n 60% { transform: translateY(-1px); }\n}\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 24px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: var(--csk-window-height);\n max-height: calc(100vh - 48px);\n background: #fff;\n border-radius: var(--csk-radius);\n box-shadow: var(--csk-shadow-window);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform-origin: bottom right;\n transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s;\n opacity: 1;\n transform: translateY(0) scale(1);\n visibility: visible;\n pointer-events: auto;\n}\n.csk-window--right { right: 24px; transform-origin: bottom right; }\n.csk-window--left { left: 24px; transform-origin: bottom left; }\n.csk-window--hidden {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n min-height: 60px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: move;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n}\n.csk-header::after {\n content: '';\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 24px;\n background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent);\n pointer-events: none;\n}\n.csk-header__left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n}\n.csk-header__avatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.22);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);\n}\n.csk-header__avatar svg { width: 22px; height: 22px; }\n.csk-header__info {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n letter-spacing: 0.2px;\n}\n.csk-header__status {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11.5px;\n opacity: 0.9;\n margin-top: 2px;\n}\n.csk-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #6EE7B7;\n box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7);\n animation: csk-status-pulse 2s infinite;\n}\n@keyframes csk-status-pulse {\n 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); }\n 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); }\n 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); }\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n.csk-header__btn,\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 8px;\n transition: background 0.15s, transform 0.15s;\n}\n.csk-header__btn:hover,\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-header__btn:active,\n.csk-history-btn:active { transform: scale(0.92); }\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 20px 16px 12px;\n background: var(--csk-bg-app);\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar { width: 6px; }\n.csk-messages::-webkit-scrollbar-track { background: transparent; }\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D8DCE3;\n border-radius: 3px;\n}\n.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; }\n\n/* 欢迎空状态 */\n.csk-welcome {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 32px;\n color: #6B7280;\n animation: csk-fade-in 0.3s ease;\n}\n.csk-welcome__avatar {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 14px;\n box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-welcome__avatar svg { width: 30px; height: 30px; }\n.csk-welcome__title {\n font-size: 15px;\n font-weight: 600;\n color: #1F2937;\n margin-bottom: 4px;\n}\n.csk-welcome__desc {\n font-size: 13px;\n color: #9CA3AF;\n line-height: 1.6;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n margin-bottom: 18px;\n max-width: 100%;\n word-break: break-word;\n animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.csk-msg--user {\n flex-direction: row-reverse;\n align-items: flex-end;\n}\n.csk-msg--ai {\n flex-direction: row;\n align-items: flex-start;\n}\n.csk-msg__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg__avatar svg { width: 18px; height: 18px; }\n.csk-msg__avatar--ai {\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n}\n.csk-msg__avatar--user {\n background: var(--csk-bg-user);\n color: #fff;\n}\n.csk-msg__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: calc(100% - 46px);\n}\n.csk-msg--user .csk-msg__content { align-items: flex-end; }\n.csk-msg--ai .csk-msg__content { align-items: flex-start; }\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 16px;\n font-size: 14px;\n line-height: 1.6;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 16px 16px 4px 16px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 16px 16px 16px 4px;\n border: 1px solid var(--csk-border);\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 5px;\n padding: 0 4px;\n}\n\n@keyframes csk-msg-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes csk-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n margin-bottom: 18px;\n animation: csk-msg-in 0.28s ease;\n}\n.csk-loading__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-loading__avatar svg { width: 18px; height: 18px; }\n.csk-loading__bubble {\n background: #fff;\n border: 1px solid var(--csk-border);\n border-radius: 16px 16px 16px 4px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.csk-loading__dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #B4B9C2;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n padding: 10px 12px 14px;\n background: #fff;\n border-top: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-input-wrap {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--csk-bg-app);\n border: 1px solid var(--csk-border);\n border-radius: 14px;\n padding: 6px 6px 6px 14px;\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n}\n.csk-input-wrap--focus {\n border-color: var(--csk-primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n.csk-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 8px 0;\n font-size: 14px;\n outline: none;\n font-family: inherit;\n resize: none;\n min-height: 22px;\n max-height: 120px;\n line-height: 1.5;\n color: #1F2937;\n}\n.csk-input::placeholder { color: #9CA3AF; }\n.csk-root .csk-input:focus-visible { outline: none; }\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border: none;\n border-radius: 10px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: pointer;\n transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s;\n box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-send-btn:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4);\n}\n.csk-send-btn:active:not(:disabled) { transform: scale(0.92); }\n.csk-send-btn:disabled {\n background: #D1D5DB;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 0.7;\n}\n.csk-send-btn svg { width: 18px; height: 18px; }\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 999px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-clear-btn:hover {\n background: #FEF2F2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-top: 1px solid var(--csk-border);\n background: #FBFBFC;\n gap: 8px;\n flex-shrink: 0;\n}\n.csk-category-bar__label {\n font-size: 13px;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 6px 28px 6px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n color: #374151;\n background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center;\n appearance: none;\n -webkit-appearance: none;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s, box-shadow 0.2s;\n max-width: 220px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid var(--csk-border);\n border-radius: 12px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n background: #FAFBFC;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F3F4F7;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover { background: #ECEEF2; }\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 5px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n font-size: 10px;\n}\n.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); }\n.csk-sources__body {\n border-top: 1px solid var(--csk-border);\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body { display: none; }\n.csk-source-item {\n padding: 9px 12px;\n border-bottom: 1px solid #F0F1F4;\n transition: background 0.15s;\n}\n.csk-source-item:last-child { border-bottom: none; }\n.csk-source-item:hover { background: #fff; }\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 3px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 14px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n color: #111827;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 10px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.55;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: rgba(var(--csk-primary-rgb), 0.1);\n color: var(--csk-primary);\n padding: 1px 6px;\n border-radius: 5px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 22px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; }\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding: 2px 12px;\n margin: 8px 0;\n color: #6B7280;\n background: rgba(var(--csk-primary-rgb), 0.05);\n border-radius: 0 6px 6px 0;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3);\n transition: border-color 0.15s;\n}\n.csk-md-link:hover { border-bottom-color: var(--csk-primary); }\n.csk-md-hr {\n border: none;\n border-top: 1px solid var(--csk-border);\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-panel {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: csk-slide-in 0.24s ease;\n}\n.csk-history-panel--hidden { display: none; }\n@keyframes csk-slide-in {\n from { transform: translateX(100%); opacity: 0.4; }\n to { transform: translateX(0); opacity: 1; }\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--csk-border);\n background: var(--csk-bg-app);\n flex-shrink: 0;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-history-panel__back:hover { background: #F3F4F6; }\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n}\n.csk-history-panel__list::-webkit-scrollbar { width: 5px; }\n.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; }\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 11px 12px;\n border-radius: 10px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 5px;\n border: 1px solid transparent;\n}\n.csk-history-item:hover { background: #F3F4F6; }\n.csk-history-item--active {\n background: rgba(var(--csk-primary-rgb), 0.08);\n border-color: rgba(var(--csk-primary-rgb), 0.2);\n}\n.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); }\n.csk-history-item__info { flex: 1; min-width: 0; }\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 3px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions { opacity: 1; }\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 7px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export { background: #EFF6FF; color: #2563EB; }\n.csk-history-action--export:hover { background: #DBEAFE; }\n.csk-history-action--delete { background: #FEF2F2; color: #DC2626; }\n.csk-history-action--delete:hover { background: #FEE2E2; }\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 34px;\n margin-bottom: 10px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover { background: #F3F4F6; }\n\n/* ========== 快捷问题芯片 ========== */\n.csk-quick-replies {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: center;\n margin-top: 18px;\n max-width: 320px;\n}\n.csk-quick-reply {\n border: 1px solid var(--csk-border);\n background: #fff;\n color: #374151;\n font-size: 12.5px;\n padding: 7px 13px;\n border-radius: 999px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1.3;\n transition: all 0.18s ease;\n max-width: 100%;\n}\n.csk-quick-reply:hover {\n border-color: var(--csk-primary);\n color: var(--csk-primary);\n background: rgba(var(--csk-primary-rgb), 0.06);\n transform: translateY(-1px);\n}\n.csk-quick-reply:active { transform: scale(0.96); }\n\n/* ========== AI 消息操作条 ========== */\n.csk-msg__actions {\n display: flex;\n gap: 2px;\n margin-top: 5px;\n padding: 0 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n.csk-msg--ai:hover .csk-msg__actions { opacity: 1; }\n.csk-msg--streaming .csk-msg__actions { display: none; }\n.csk-action-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n.csk-action-btn:hover {\n background: #F3F4F6;\n color: #374151;\n}\n.csk-action-btn--done { color: #10B981; }\n.csk-action-btn:active { transform: scale(0.9); }\n\n/* ========== 流式打字光标 ========== */\n.csk-caret {\n display: inline-block;\n width: 7px;\n height: 15px;\n margin-left: 2px;\n vertical-align: text-bottom;\n background: var(--csk-primary);\n border-radius: 1px;\n animation: csk-caret-blink 1s step-end infinite;\n}\n@keyframes csk-caret-blink {\n 0%, 50% { opacity: 1; }\n 51%, 100% { opacity: 0; }\n}\n\n/* ========== 代码块复制按钮 ========== */\n.csk-md-code-block { position: relative; }\n.csk-md-code-copy {\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(255, 255, 255, 0.12);\n color: #CBD5E1;\n border-radius: 6px;\n cursor: pointer;\n opacity: 0;\n transition: all 0.15s ease;\n}\n.csk-md-code-block:hover .csk-md-code-copy { opacity: 1; }\n.csk-md-code-copy:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }\n.csk-md-code-copy:active { transform: scale(0.9); }\n\n/* ========== 新消息提示按钮 ========== */\n.csk-newmsg {\n position: absolute;\n bottom: 82px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 5;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 7px 14px;\n border: none;\n background: var(--csk-primary);\n color: #fff;\n font-size: 12px;\n font-family: inherit;\n border-radius: 999px;\n cursor: pointer;\n box-shadow: 0 4px 14px rgba(var(--csk-primary-rgb), 0.38);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n animation: csk-msg-in 0.25s ease;\n white-space: nowrap;\n}\n.csk-newmsg:hover { transform: translateX(-50%) translateY(-1px); box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.48); }\n.csk-newmsg:active { transform: translateX(-50%) scale(0.95); }\n.csk-newmsg--hidden { display: none; }\n\n/* ========== 发送按钮停止态 ========== */\n.csk-send-btn--stop {\n background: #EF4444 !important;\n box-shadow: 0 3px 10px rgba(239, 68, 68, 0.35) !important;\n}\n.csk-send-btn--stop:hover:not(:disabled) {\n box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;\n}\n\n/* ========== 暗色模式 ========== */\n.csk-root.csk-dark {\n --csk-bg-ai: #1E1E2E;\n --csk-text-ai: #E2E8F0;\n --csk-border: #3B3B52;\n --csk-bg-app: #141421;\n color: #E2E8F0;\n}\n.csk-dark .csk-window {\n background: #1A1A2E;\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n.csk-dark .csk-header::after { background: linear-gradient(to bottom, rgba(0,0,0,0.12), transparent); }\n.csk-dark .csk-msg__avatar--ai {\n background: var(--csk-bg-ai);\n color: var(--csk-primary);\n border-color: var(--csk-border);\n}\n.csk-dark .csk-input-area { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-input-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-input-wrap--focus { background: #1A1A2E; border-color: var(--csk-primary); }\n.csk-dark .csk-input { color: #E2E8F0; }\n.csk-dark .csk-loading__avatar { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__bubble { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__dot { background: #6B7280; }\n.csk-dark .csk-category-bar { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-category-select { background-color: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-sources { background: #1E1E2E; border-color: var(--csk-border); }\n.csk-dark .csk-sources__header { background: #25253A; }\n.csk-dark .csk-sources__header:hover { background: #2D2D48; }\n.csk-dark .csk-source-item:hover { background: var(--csk-bg-ai); }\n.csk-dark .csk-source-item__name { color: #E2E8F0; }\n.csk-dark .csk-source-item__meta { color: #6B7280; }\n.csk-dark .csk-history-panel { background: #1A1A2E; }\n.csk-dark .csk-history-panel__header { background: var(--csk-bg-app); border-bottom-color: var(--csk-border); }\n.csk-dark .csk-history-panel__back { background: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-history-panel__back:hover { background: #2D2D48; }\n.csk-dark .csk-history-item:hover { background: #25253A; }\n.csk-dark .csk-history-item__id { color: #E2E8F0; }\n.csk-dark .csk-history-item__meta { color: #6B7280; }\n.csk-dark .csk-history-item--active { background: rgba(var(--csk-primary-rgb), 0.15); }\n.csk-dark .csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.22); }\n.csk-dark .csk-action-btn:hover { background: #2D2D48; color: #E2E8F0; }\n.csk-dark .csk-clear-btn { background: var(--csk-bg-app); border-color: var(--csk-border); color: #9CA3AF; }\n.csk-dark .csk-clear-btn:hover { background: #3B1A1A; border-color: #7F1D1D; color: #FCA5A5; }\n.csk-dark .csk-md-code-block { background: #0F0F1A; }\n.csk-dark .csk-md-blockquote { background: rgba(var(--csk-primary-rgb), 0.08); }\n.csk-dark .csk-md-link { color: var(--csk-primary-light); }\n.csk-dark .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); border-color: var(--csk-border); }\n.csk-dark .csk-welcome__title { color: #E2E8F0; }\n.csk-dark .csk-welcome__desc { color: #6B7280; }\n.csk-dark .csk-quick-reply { background: var(--csk-bg-app); border-color: var(--csk-border); color: #CBD5E1; }\n.csk-dark .csk-quick-reply:hover { background: rgba(var(--csk-primary-rgb), 0.12); border-color: var(--csk-primary); color: var(--csk-primary-light); }\n.csk-dark .csk-teaser { background: #2D2D48; color: #E2E8F0; box-shadow: 0 4px 20px rgba(0,0,0,0.35); }\n.csk-dark .csk-teaser::after { border-top-color: #2D2D48; }\n.csk-dark .csk-teaser__close { color: #6B7280; }\n.csk-dark .csk-teaser__close:hover { color: #9CA3AF; }\n.csk-dark .csk-feedback-btn { background: rgba(var(--csk-primary-rgb), 0.1); color: #9CA3AF; }\n.csk-dark .csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.2); color: var(--csk-primary-light); }\n.csk-dark .csk-feedback-btn--active { background: rgba(var(--csk-primary-rgb), 0.28); color: var(--csk-primary-light); }\n.csk-dark .csk-history-panel__search-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-history-panel__search-wrap:focus-within { border-color: var(--csk-primary); }\n.csk-dark .csk-history-panel__search { color: #E2E8F0; }\n.csk-dark .csk-launcher__badge { box-shadow: 0 0 0 2px #1A1A2E; }\n.csk-dark .csk-welcome__avatar { box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.25); }\n.csk-dark .csk-header__avatar { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.1); }\n\n/* Launcher 拖拽态:微放大 + 阴影加深 */\n.csk-launcher--dragging {\n cursor: grabbing !important;\n transform: scale(1.1) !important;\n box-shadow:\n 0 4px 12px rgba(0, 0, 0, 0.14),\n 0 12px 32px rgba(0, 0, 0, 0.18),\n 0 14px 40px rgba(var(--csk-primary-rgb), 0.36),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.18) !important;\n}\n.csk-launcher--dragging::before,\n.csk-launcher--dragging::after { animation-play-state: paused !important; }\n/* 拖拽中隐藏未读徽章 */\n.csk-launcher--dragging .csk-launcher__badge { display: none !important; }\n/* 吸附过渡动画(释放时的缓动) */\n.csk-launcher--snap {\n transition: left 0.3s ease-out, right 0.3s ease-out, bottom 0.3s ease-out !important;\n}\n\n/* ========== Launcher 未读徽章 ========== */\n.csk-launcher__badge {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: #EF4444;\n border: 2px solid #fff;\n box-shadow: 0 0 0 2px #fff;\n animation: csk-badge-in 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);\n pointer-events: none;\n}\n.csk-launcher__badge--hidden { display: none; }\n@keyframes csk-badge-in {\n from { transform: scale(0); }\n to { transform: scale(1); }\n}\n\n/* ========== Launcher 提示气泡 ========== */\n.csk-teaser {\n position: fixed;\n bottom: 90px;\n z-index: 9997;\n max-width: 240px;\n padding: 10px 14px;\n background: #fff;\n color: #1F2937;\n font-size: 13px;\n line-height: 1.5;\n border-radius: 12px;\n box-shadow: 0 4px 20px rgba(15, 23, 42, 0.15);\n animation: csk-teaser-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n cursor: pointer;\n user-select: none;\n}\n.csk-teaser--right { right: 24px; }\n.csk-teaser--left { left: 24px; }\n.csk-teaser::after {\n content: '';\n position: absolute;\n bottom: -6px;\n right: 28px;\n width: 12px;\n height: 12px;\n background: inherit;\n border-radius: 2px;\n transform: rotate(45deg);\n box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.08);\n}\n.csk-teaser--left::after { right: auto; left: 28px; }\n.csk-teaser__close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n padding: 2px 4px;\n line-height: 1;\n border-radius: 4px;\n}\n.csk-teaser__close:hover { color: #374151; }\n.csk-teaser--hidden { display: none; }\n@keyframes csk-teaser-in {\n from { opacity: 0; transform: translateY(8px) scale(0.95); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n/* ========== 消息反馈按钮(👍 / 👎) ========== */\n.csk-feedback-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(var(--csk-primary-rgb), 0.08);\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n}\n.csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.18); color: var(--csk-primary); }\n.csk-feedback-btn--active {\n background: rgba(var(--csk-primary-rgb), 0.28);\n color: var(--csk-primary);\n}\n.csk-feedback-btn--active.down { background: #FEF2F2; color: #EF4444; }\n.csk-feedback-btn:active { transform: scale(0.9); }\n.csk-msg--streaming .csk-feedback-btn { display: none; }\n\n/* ========== 历史会话搜索框 ========== */\n.csk-history-panel__search-wrap {\n padding: 8px 10px;\n border-bottom: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-history-panel__search-wrap:focus-within {\n border-bottom-color: var(--csk-primary);\n}\n.csk-history-panel__search {\n width: 100%;\n padding: 7px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n font-family: inherit;\n color: #1F2937;\n background: var(--csk-bg-app);\n outline: none;\n transition: border-color 0.2s;\n}\n.csk-history-panel__search:focus { border-color: var(--csk-primary); }\n.csk-history-panel__search::placeholder { color: #9CA3AF; }\n\n/* ========== a11y 焦点指示 ========== */\n.csk-root :focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n}\n.csk-root button:focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n border-radius: inherit;\n}\n/* 弹窗打开时隐藏 launcher 上的焦点环 */\n.csk-launcher:focus-visible {\n outline: none;\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12),\n 0 0 0 4px rgba(var(--csk-primary-rgb), 0.3);\n}\n\n/* ========== a11y aria-live 播报区(视觉隐藏) ========== */\n.csk-sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0,0,0,0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n/* ========== 会话分组标题 ========== */\n.csk-history-group {\n margin-bottom: 4px;\n}\n.csk-history-group__label {\n font-size: 11px;\n font-weight: 600;\n color: #9CA3AF;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px 4px;\n user-select: none;\n}\n.csk-dark .csk-history-group__label { color: #6B7280; }\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-window--hidden { transform: translateY(100%); }\n /* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */\n .csk-launcher:not([style*="bottom"]) { bottom: 20px; }\n .csk-launcher--right:not([style*="bottom"]) { right: 20px; }\n .csk-launcher--left:not([style*="bottom"]) { left: 20px; }\n}\n`}(e),document.head.appendChild(T))}function z(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)})}function H(e){const n={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>n[e]||e)}function j(){return Date.now()}const R='';function P(e,n){const t=document.createElement("div");t.id="csk-launcher";const r=e.launcherTheme?" csk-launcher--glass":"";t.className=`csk-launcher csk-launcher--${"left-bottom"===e.position?"left":"right"}${r}`,t.setAttribute("title",e.title),t.setAttribute("aria-label",e.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=e.launcherIcon;const s=document.createElement("div");s.className="csk-launcher__badge csk-launcher__badge--hidden",t.appendChild(s);const o=function(e,n){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},n)}}(n,300);return t.addEventListener("click",o),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),o())}),t}function U(){return window.innerHeight-76}function Y(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--user",s.innerHTML='';const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.textContent=n;const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(t),o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),r}function O(e,n,t,r,s){const o=document.createElement("div");o.className="csk-msg csk-msg--ai",s&&(o.dataset.cskMsgId=s);const a=document.createElement("div");a.className="csk-msg__avatar csk-msg__avatar--ai",a.innerHTML=R;const i=document.createElement("div");i.className="csk-msg__content";const c=document.createElement("div");c.className="csk-msg__bubble",r?c.innerHTML=r(n):c.textContent=n;const l=document.createElement("div");return l.className="csk-msg__time",l.textContent=te(t),i.appendChild(c),i.appendChild(K(c,o)),i.appendChild(l),o.appendChild(a),o.appendChild(i),e.appendChild(o),J(c),o}const W='',G='';function K(e,n){const t=document.createElement("div");t.className="csk-msg__actions";const r=document.createElement("button");r.type="button",r.className="csk-action-btn",r.setAttribute("title",m("copy")),r.setAttribute("aria-label",m("copy")),r.innerHTML=W,r.addEventListener("click",async n=>{n.stopPropagation();const t=e.textContent||"";await X(t,r)});const s=document.createElement("button");s.type="button",s.className="csk-action-btn",s.setAttribute("title",m("retry")),s.setAttribute("aria-label",m("retry")),s.innerHTML=G,s.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:retry",{detail:{msgId:n.dataset.cskMsgId||""}}))});const o=document.createElement("button");o.type="button",o.className="csk-feedback-btn",o.setAttribute("title",m("feedback_up")),o.setAttribute("aria-label",m("feedback_up")),o.innerHTML='',o.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"up"}}))});const a=document.createElement("button");return a.type="button",a.className="csk-feedback-btn",a.setAttribute("title",m("feedback_down")),a.setAttribute("aria-label",m("feedback_down")),a.innerHTML='',a.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"down"}}))}),t.appendChild(r),t.appendChild(s),t.appendChild(o),t.appendChild(a),t}function V(e,n){const t=e.querySelectorAll(".csk-feedback-btn");t.length<2||(t.forEach(e=>e.classList.remove("csk-feedback-btn--active","down")),"up"===n&&t[0]&&t[0].classList.add("csk-feedback-btn--active"),"down"===n&&t[1]&&t[1].classList.add("csk-feedback-btn--active","down"))}async function X(e,n){const t=n.innerHTML;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}n.innerHTML='',n.classList.add("csk-action-btn--done"),setTimeout(()=>{n.innerHTML=t,n.classList.remove("csk-action-btn--done")},1500)}catch(e){}}function J(e){e.querySelectorAll(".csk-md-code-block").forEach(e=>{if(e.querySelector(".csk-md-code-copy"))return;const n=e.querySelector("code"),t=document.createElement("button");t.type="button",t.className="csk-md-code-copy",t.setAttribute("title",m("copy")),t.setAttribute("aria-label",m("copy")),t.innerHTML=W,t.addEventListener("click",async e=>{e.stopPropagation(),await X((null==n?void 0:n.textContent)||"",t)}),e.appendChild(t)})}function Q(e,n){e.classList.remove("csk-msg--streaming");const t=n.querySelector(".csk-caret");t&&t.remove(),J(n)}function Z(e,n){const t=e.querySelector(".csk-sources");if(t&&t.remove(),!n||0===n.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const s=document.createElement("div");s.className="csk-sources__header";const o=document.createElement("span");o.className="csk-sources__title",o.textContent=`📚 ${m("source_count",{n:n.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",s.appendChild(o),s.appendChild(a),s.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const i=document.createElement("div");i.className="csk-sources__body";for(const e of n){const n=document.createElement("div");n.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=e.title||e.sourceName||"未知文档",e.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=e.snippet,n.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const s=[];e.sourceName&&s.push(e.sourceName),void 0!==e.chunkIndex&&s.push(`分块 #${e.chunkIndex}`),void 0!==e.score&&s.push(`相关度 ${(100*e.score).toFixed(0)}%`),r.textContent=s.join(" · "),n.appendChild(t),n.appendChild(r),i.appendChild(n)}r.appendChild(s),r.appendChild(i);const c=e.querySelector(".csk-msg__time");c&&c.parentNode?c.parentNode.insertBefore(r,c):e.appendChild(r)}function ee(e,n,t,r,s,o,a){if(e.innerHTML="",0===n.length){const n=document.createElement("div");return n.className="csk-history-panel__empty",n.innerHTML=`\n 💬
\n ${m("history_empty")}
\n `,void e.appendChild(n)}const i=function(e){const n=new Date,t=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),r=t-864e5,s=t-864e5*(n.getDay()||7)+864e5,o={today:[],yesterday:[],week:[],earlier:[]};for(const n of e){const e=n.lastMessageTime||n.createdAt,a=e?new Date(e).getTime():0;a>=t?o.today.push(n):a>=r?o.yesterday.push(n):a>=s?o.week.push(n):o.earlier.push(n)}const a=[];return o.today.length&&a.push({label:m("history_group_today"),items:o.today}),o.yesterday.length&&a.push({label:m("history_group_yesterday"),items:o.yesterday}),o.week.length&&a.push({label:m("history_group_week"),items:o.week}),o.earlier.length&&a.push({label:m("history_group_earlier"),items:o.earlier}),a}(n);for(const n of i){if(i.length>1){const t=document.createElement("div");t.className="csk-history-group";const r=document.createElement("div");r.className="csk-history-group__label",r.textContent=n.label,t.appendChild(r),e.appendChild(t)}for(const a of n.items){const n=document.createElement("div");n.className="csk-history-item";const i=a.chatId||a.id;o&&i===o&&n.classList.add("csk-history-item--active");const c=document.createElement("div");c.className="csk-history-item__info";const l=document.createElement("div");l.className="csk-history-item__id",a.lastMessagePreview?l.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:l.textContent=i;const d=document.createElement("div");d.className="csk-history-item__meta";const p=[];void 0!==a.messageCount&&p.push(`${a.messageCount} 条消息`),a.lastMessageTime?p.push(a.lastMessageTime):a.createdAt&&p.push(a.createdAt),d.textContent=p.join(" · "),c.appendChild(l),c.appendChild(d);const u=document.createElement("div");u.className="csk-history-item__actions";const g=document.createElement("button");g.className="csk-history-action csk-history-action--export",g.setAttribute("title",m("history_export")),g.innerHTML='',g.addEventListener("click",e=>{e.stopPropagation(),r(a.id)});const k=document.createElement("button");k.className="csk-history-action csk-history-action--delete",k.setAttribute("title",m("history_delete")),k.innerHTML='',k.addEventListener("click",e=>{e.stopPropagation(),s(a.id)}),u.appendChild(g),u.appendChild(k),n.appendChild(c),n.appendChild(u),n.addEventListener("click",()=>{t(i)}),e.appendChild(n)}}}function ne(e){e.scrollTop=e.scrollHeight}function te(e){const n=new Date(e);return`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function re(e){return`csk_history_${e}`}function se(e,n){try{let t=n;t.length>200&&(t=t.slice(50),o.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const r={messages:t,updatedAt:Date.now()};localStorage.setItem(re(e),JSON.stringify(r))}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?o.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):o.error("保存会话历史失败",e)}}function oe(e){try{localStorage.removeItem(re(e))}catch(e){o.warn("清空会话历史失败",e)}}const ae="\0CODEBLOCK_",ie="\0INLINECODE_";function ce(e){if(!e||"string"!=typeof e)return"";const n=[];let t=e;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>{const s=n.length,o=H(r.trimEnd()),a=t?` class="language-${H(t)}"`:"";return n.push(`${o}
`),`${ae}${s}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(e,n)=>{const t=r.length;return r.push(`${H(n)}`),`${ie}${t}\0`}),t=H(t),t=le(t,ae,n),t=le(t,ie,r);const s=t.split("\n"),o=[];let a=!1,i="",c=!1,l=[];for(let e=0;e')){p(),u(),g(),o.push(n);continue}const t=n.match(/^(#{1,6})\s+(.+)/);if(t){p(),u(),g();const e=t[1].length;o.push(`${t[2]}`);continue}const r=n.match(/^>\s?(.*)/);if(r){p(),u(),c||(c=!0,o.push('')),o.push(`${d(r[1])}
`);continue}c&&g();const k=n.match(/^[\-\*]\s+(.+)/);if(k){p(),g(),a&&"ul"===i||(u(),a=!0,i="ul",o.push('')),o.push(`- ${d(k[1])}
`);continue}const m=n.match(/^\d+\.\s+(.+)/);m?(p(),g(),a&&"ol"===i||(u(),a=!0,i="ol",o.push('')),o.push(`- ${d(m[1])}
`)):""!==n.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(n.trim())?(p(),u(),g(),o.push('
')):(u(),g(),l.push(d(n))):(p(),u())}return p(),u(),g(),o.join("\n");function d(e){return e=(e=(e=(e=(e=(e=e.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,n,t)=>`${n}`)}function p(){l.length>0&&(o.push(`${l.join("
")}
`),l=[])}function u(){a&&(o.push("ul"===i?"
":""),a=!1,i="")}function g(){c&&(o.push("
"),c=!1)}}function le(e,n,t){return e.replace(new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(e,n)=>t[parseInt(n)]||"")}let de,pe=null,ue=[],ge=null,ke=null,me=null,he=null,be=null,fe=null,ye=null,xe=null,ve=null,we=null,_e=null,Ee=null,Ce=null,Ie=!1,$e=null,Le=!0,Ae=[],Se="",Ne=!1;function Fe(e,n){pe=e,ge=n.messagesContainer,ke=n.inputEl,me=n.inputEl.parentElement,he=n.sendBtn,be=n.clearBtn,fe=n.categorySelect,ye=n.historyPanel,xe=n.welcomeEl,ve=n.newMsgBtn,we=n.searchInput,_e=n.ariaLiveEl,Ee=n.showLoading,Ce=n.hideLoading,de=e.categoryId,Ne=e.enableRag,function(){if(!ke||!he)return;he.addEventListener("click",()=>{Ie&&$e?$e.abort():Re()}),ke.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||e.isComposing||(e.preventDefault(),Re())}),ke.addEventListener("input",()=>{je(),function(){if(!ke)return;ke.style.height="auto",ke.style.height=`${Math.min(ke.scrollHeight,120)}px`}()}),ke.addEventListener("focus",()=>{me&&me.classList.add("csk-input-wrap--focus")}),ke.addEventListener("blur",()=>{me&&me.classList.remove("csk-input-wrap--focus")}),be&&be.addEventListener("click",()=>function(){if(!pe)return;if(!confirm(m("clear_confirm")))return;if(ue=[],ge){ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}be&&(be.style.display="none");He(),oe(pe.integrateId);const e=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();b(e),M(pe.integrateId,pe.userId,e),o.lifecycleClear(pe.integrateId),o.info(`新 chatId=${e}`)}())}(),function(){if(!ge)return;ge.addEventListener("scroll",()=>{if(!ge)return;const{scrollTop:e,scrollHeight:n,clientHeight:t}=ge;Le=n-e-t<80,Le&&Te()}),ve&&ve.addEventListener("click",()=>{ge&&ne(ge),Le=!0,Te()})}(),function(){if(!we)return;we.addEventListener("input",()=>{Se=we.value.trim().toLowerCase(),qe()})}(),e.showCategorySwitch&&fe&&async function(){if(!fe)return;try{const e=await async function(){const e=y("/category/tree");try{const n=await v(e);if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const t=await n.json();return t.success&&Array.isArray(t.data)?(o.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(e){return e instanceof w?o.error(`加载分类树失败: ${e.message}`):o.error("加载分类树失败",e),[]}}();if(0===e.length)return;fe.innerHTML=``;const n=(e,t=0)=>{for(const r of e){const e=document.createElement("option");e.value=String(r.id),e.textContent=`${" ".repeat(t)}${r.name}`,void 0!==de&&String(r.id)===String(de)&&(e.selected=!0),fe.appendChild(e),r.children&&r.children.length>0&&n(r.children,t+1)}};n(e),o.info(`知识库分类加载成功 count=${e.length}`)}catch(e){o.error(m("category_load_error"),e)}}()}async function Me(){if(pe&&ge&&(await N(),await async function(){if(!pe||!ge)return;const e=f();if(!e)return;try{const n=await L(e);n.messages.length>0&&(ue=n.messages.map((e,n)=>({id:z(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`从后端加载 ${ue.length} 条历史消息`),se(pe.integrateId,ue))}catch(e){o.warn("从后端加载历史消息失败",e)}}(),0===ue.length)){const e=function(e){try{const n=localStorage.getItem(re(e));if(!n)return[];const t=JSON.parse(n);return t&&Array.isArray(t.messages)?(o.info(`加载历史消息 integrateId=${e} count=${t.messages.length}`),t.messages):[]}catch(e){return o.warn("加载会话历史失败",e),[]}}(pe.integrateId);e.length>0&&(ue=e,Ue(),o.info(`从本地缓存恢复 ${e.length} 条消息`))}}function Te(){ve&&ve.classList.add("csk-newmsg--hidden")}function De(){ge&&(Le?ne(ge):ve&&ve.classList.remove("csk-newmsg--hidden"))}function Be(e){he&&("stop"===e?(he.classList.add("csk-send-btn--stop"),he.removeAttribute("disabled"),he.setAttribute("title",m("stop")),he.setAttribute("aria-label",m("stop")),he.innerHTML=''):(he.classList.remove("csk-send-btn--stop"),he.setAttribute("title",m("send")),he.setAttribute("aria-label",m("send")),he.innerHTML='',je()))}function qe(){const e=null==ye?void 0:ye.querySelector("#csk-history-list");if(!e||!pe)return;ee(e,Se?Ae.filter(e=>(e.lastMessagePreview||e.chatId||e.id||"").toLowerCase().includes(Se)):Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{if(!confirm(m("history_delete_confirm")))return;await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),qe())},f())}function ze(e,n){if(!ge)return;const t=ue.find(n=>n.id===e&&"ai"===n.role);if(!t)return;const r=t.feedback===n?void 0:n;t.feedback=r;const s=ge.querySelector(`[data-csk-msg-id="${e}"]`);if(s&&V(s,r),pe&&se(pe.integrateId,ue),r){const n="up"===r?"THUMBS_UP":"THUMBS_DOWN";(async function(e,n){if(!h)return!1;const t=y("/feedback");try{const r=await v(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:String(e),conversationId:h.chatId,feedbackType:n})});return r.ok?(await r.json()).success||!1:(o.error(`反馈提交失败 status=${r.status}`),!1)}catch(e){return o.error("反馈提交异常",e),!1}})(String(e),n).then(n=>{n?o.info(`消息反馈已提交 msgId=${e} value=${r}`):o.warn(`消息反馈提交失败 msgId=${e}(本地状态已更新)`)})}else o.info(`消息反馈已取消 msgId=${e}`)}function He(){if(!xe)return;const e=ue.length>0||ge&&ge.querySelector(".csk-msg");xe.style.display=e?"none":""}function je(){if(!he||!ke)return;ke.value.trim().length>0&&!Ie?he.removeAttribute("disabled"):he.setAttribute("disabled","true")}async function Re(){if(!ke||!pe||Ie)return;const e=ke.value.trim();if(""===e)return;ke.value="",je(),ke.style.height="auto";const n=j(),t={id:z(),role:"user",content:e,timestamp:n};ge&&Y(ge,e,n),ue.push(t),He(),be&&ue.length>0&&(be.style.display="inline-flex"),ge&&De(),await Pe(e)}async function Pe(e){if(!pe||!ge)return;Ie=!0,Be("stop"),pe.chatId||await N();const n=j(),t=Ne;Ee&&Ee(),ge&&De();const r=z();let s="";try{pe.streaming?s=await async function(e,n,t,r){$e=new AbortController;const s=$e.signal;return new Promise((o,a)=>{let i=null,c=null,l="",d=!1;C(e,e=>{if(l+=e,!d&&ge){Ce&&Ce();const{wrapper:e,bubble:t}=function(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--ai csk-msg--streaming",t&&(r.dataset.cskMsgId=t);const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--ai",s.innerHTML=R;const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.innerHTML="";const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(n),o.appendChild(a),o.appendChild(K(a,r)),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),{wrapper:r,bubble:a}}(ge,n,r);c=e,i=t,d=!0}i&&(i.textContent=l,function(e){if(e.querySelector(".csk-caret"))return;const n=document.createElement("span");n.className="csk-caret",n.setAttribute("aria-hidden","true"),e.appendChild(n)}(i)),ge&&De()},()=>{if(c&&i){if(!d&&""===l)return void E(e).then(o).catch(a);l&&(i.innerHTML=ce(l)),Q(c,i)}o(l)},e=>{l.length>0?(i&&(i.innerHTML=ce(l+"\n\n"+m("stream_interrupted")),c&&Q(c,i)),o(l)):a(e)},de,t,s)})}(e,n,t,r):(s=await E(e),Ce&&Ce(),ge&&O(ge,s,n,ce,r));const a={id:r,role:"ai",content:s,timestamp:n};ue.push(a),se(pe.integrateId,ue),ge&&De(),function(e){if(!_e)return;const n=e.length>120?e.substring(0,120)+"...":e;_e.textContent=m("new_msg_announce")+":"+n}(s),ge&&ge.dispatchEvent(new CustomEvent("csk:newMessage",{bubbles:!0,detail:{msg:a}})),t&&async function(e,n){try{const t=await I(e,de);if(t.length>0){const e=t.map(e=>{var n,t;return{documentId:e.documentId||"",title:e.title||"",sourceName:e.sourceName||"",chunkIndex:null!==(n=e.chunkIndex)&&void 0!==n?n:0,score:null!==(t=e.score)&&void 0!==t?t:0,snippet:e.snippet||""}});if(n.sources=e,ge){const n=ge.querySelector(".csk-msg--ai:last-of-type");n&&Z(n,e)}pe&&se(pe.integrateId,ue)}}catch(e){o.warn("获取引用来源失败",e)}}(e,a)}catch(e){Ce&&Ce();const n=e instanceof w?e.message:m("error_send");if(ge){const e=document.createElement("div");e.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${n}`,e.appendChild(t),ge.appendChild(e)}o.error(`发送失败 integrateId=${pe.integrateId}`,e)}finally{Ie=!1,$e=null,Be("send"),je()}}function Ue(){if(!ge)return;const e=ge.querySelector(".csk-history-panel");ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());for(const e of ue)if("user"===e.role)Y(ge,e.content,e.timestamp);else{const n=O(ge,e.content,e.timestamp,ce,e.id);e.sources&&e.sources.length>0&&Z(n,e.sources),e.feedback&&V(n,e.feedback)}Le=!0,ne(ge),be&&ue.length>0&&(be.style.display="inline-flex"),He(),e&&!ge.contains(e)&&ge.appendChild(e)}async function Ye(e){if(!pe||!ge)return;o.info(`切换到会话 conversationId=${e}`),b(e),M(pe.integrateId,pe.userId,e),ye&&ye.classList.add("csk-history-panel--hidden"),ue=[];ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());try{const n=await L(e);n.messages.length>0&&(ue=n.messages.map(e=>({id:z(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`加载会话 ${e} 的 ${ue.length} 条消息`),se(pe.integrateId,ue))}catch(n){o.warn(`加载会话消息失败 conversationId=${e}`,n)}be&&ue.length>0&&(be.style.display="inline-flex"),He()}let Oe=null,We=!1,Ge=null,Ke=null,Ve=null,Xe=null,Je=null,Qe=null,Ze=null,en=null,nn=null,tn=null,rn=null,sn=null,on=null,an=null,cn=null,ln=null,dn=null;function pn(){if(!an||!Ge)return;const e=Ge.getBoundingClientRect(),n=on?"left"===on.side:"left-bottom"===(null==Oe?void 0:Oe.position);n?(an.style.left=`${e.left}px`,an.style.right="auto"):(an.style.right=window.innerWidth-e.right+"px",an.style.left="auto"),an.style.bottom=window.innerHeight-e.top+8+"px",an.classList.toggle("csk-teaser--left",!!n),an.classList.toggle("csk-teaser--right",!n)}function un(){if(!an)return;an.classList.add("csk-teaser--hidden"),an.removeEventListener("click",gn);const e=an.querySelector(".csk-teaser__close");e&&e.removeEventListener("click",kn)}function gn(e){e.target.closest(".csk-teaser__close")||(un(),fn())}function kn(e){e.stopPropagation(),un()}function mn(){an&&!an.classList.contains("csk-teaser--hidden")&&pn()}const hn='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';function bn(e){"Escape"===e.key&&Ke&&!Ke.classList.contains("csk-window--hidden")&&yn(),function(e){if(!Ke||Ke.classList.contains("csk-window--hidden"))return;if("Tab"!==e.key)return;const n=Array.from(Ke.querySelectorAll(hn));if(0===n.length)return;const t=n[0],r=n[n.length-1];e.shiftKey?document.activeElement===t&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),t.focus())}(e)}function fn(){Ke&&(Ke.classList.remove("csk-window--hidden"),un(),ln&&ln.classList.add("csk-launcher__badge--hidden"),setTimeout(()=>{Xe&&Xe.focus()},80))}function yn(){Ke&&Ke.classList.add("csk-window--hidden")}function xn(){Ke&&(Ke.classList.contains("csk-window--hidden")?fn():yn())}function vn(e){return`csk_position_${e}`}function wn(e){return`csk_launcher_pos_${e}`}function _n(e){Ke&&(Ke.classList.remove("csk-window--right","csk-window--left"),Ke.classList.add(`csk-window--${e}`),an&&(an.classList.remove("csk-teaser--right","csk-teaser--left"),an.classList.add(`csk-teaser--${e}`)))}const En={init:function(e){if(We)return void o.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(e){var n,t,r,s,i,g,k,m,h,b,f;if(!e.integrateId||"string"!=typeof e.integrateId&&"number"!=typeof e.integrateId||"string"==typeof e.integrateId&&""===e.integrateId.trim())return o.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!e.requestDomain||"string"!=typeof e.requestDomain||""===e.requestDomain.trim())return o.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(e.requestDomain)}catch(n){return o.error(`requestDomain 不是合法的 URL 格式:${e.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const y=String(e.integrateId).trim(),x=e.launcherTheme||void 0;let v=e.launcherIcon||a,w=e.primaryColor||"#4F46E5";x&&!e.launcherIcon&&(v={"dream-purple":c,"mint-tech":l,"coral-peach":d,"sky-blue":p}[x]||a,e.primaryColor||(w=u[x]||"#4F46E5"));const _={integrateId:y,requestDomain:e.requestDomain.replace(/\/+$/,""),userId:e.userId,categoryId:e.categoryId,showCategorySwitch:null!==(n=e.showCategorySwitch)&&void 0!==n&&n,title:e.title||"AI 智能助手",width:null!==(t=e.width)&&void 0!==t?t:380,height:Math.max(300,null!==(r=e.height)&&void 0!==r?r:520),position:"left-bottom"===e.position?"left-bottom":"right-bottom",primaryColor:w,launcherTheme:x,launcherIcon:v,showClear:null===(s=e.showClear)||void 0===s||s,showAdminPanel:null!==(i=e.showAdminPanel)&&void 0!==i&&i,quickReplies:Array.isArray(e.quickReplies)?e.quickReplies.map(e=>String(e).trim()).filter(Boolean):[],theme:"dark"===e.theme?"dark":"light",showTeaser:null===(g=e.showTeaser)||void 0===g||g,teaserText:"string"==typeof e.teaserText&&e.teaserText.trim()||"",streaming:null===(k=e.streaming)||void 0===k||k,enableRag:null===(m=e.enableRag)||void 0===m||m,rewriteStrategy:e.rewriteStrategy||"REWRITE",locale:e.locale||"zh-CN",debug:null===(h=e.debug)||void 0===h||h,sound:null!==(b=e.sound)&&void 0!==b&&b,notification:null!==(f=e.notification)&&void 0!==f&&f,onError:"function"==typeof e.onError?e.onError:void 0,onReady:"function"==typeof e.onReady?e.onReady:void 0,onMessage:"function"==typeof e.onMessage?e.onMessage:void 0,token:e.token,roles:e.roles,chatId:""};return o.info(`配置解析完成 integrateId(=roleId)=${_.integrateId} userId(=accountId)=${_.userId||"(未设置)"} requestDomain=${_.requestDomain}`),_}(e);if(!t)return;var s;Oe=t,function(e){if(g[e])k=e;else{const n=e.split("-")[0],t=Object.keys(g).find(e=>e.startsWith(n));t&&(k=t)}}(Oe.locale),s=Oe.debug,n=s,r(Oe.onError),function(e){h=e}(Oe),q(Oe),Ge=P(Oe,xn),document.body.appendChild(Ge),ln=Ge.querySelector(".csk-launcher__badge"),function(e,n){try{const t=localStorage.getItem(wn(e));if(!t)return;const r=JSON.parse(t);if("left"!==r.side&&"right"!==r.side||"number"!=typeof r.bottom)return;const s=window.innerHeight-76,o=Math.max(16,Math.min(r.bottom,s));n.classList.remove("csk-launcher--right","csk-launcher--left"),n.classList.add(`csk-launcher--${r.side}`),n.style.bottom=`${o}px`,on={side:r.side,bottom:o}}catch(e){}}(Oe.integrateId,Ge),sn=function(e,n,t){let r=!1,s=0,o=0,a=!1,i=0,c=0,l=0,d=!1;function p(){const n=parseFloat(getComputedStyle(e).bottom);return isNaN(n)?24:n}function u(n,t){if(d)return;r=!0,a=!1,s=n,o=t,i=p();const u=e.style,g=getComputedStyle(e);c=u.right?parseFloat(u.right):parseFloat(g.right),l=u.left?parseFloat(u.left):parseFloat(g.left)}function g(n,t,d){if(!r)return;const p=n-s,u=t-o;if(!a){if(Math.abs(p)<5&&Math.abs(u)<5)return;a=!0,e.classList.add("csk-launcher--dragging"),e.classList.remove("csk-launcher--right","csk-launcher--left"),e.style.transition="none",!isNaN(c)&&c>=0&&isNaN(l)?(e.style.right=`${c}px`,e.style.left="auto"):!isNaN(l)&&l>=0&&(e.style.left=`${l}px`,e.style.right="auto")}if(a){d.preventDefault();const n=Math.max(16,Math.min(i-u,U()));e.style.bottom=`${n}px`}}function k(){if(!r)return;if(r=!1,!a)return;const n=parseFloat(e.style.bottom)||p(),s=Math.max(16,Math.min(n,U())),o=e.getBoundingClientRect(),i=o.left+o.width/2<=window.innerWidth/2?"left":"right";e.classList.remove("csk-launcher--dragging"),e.classList.add(`csk-launcher--${i}`,"csk-launcher--snap"),e.style.left="",e.style.right="",e.style.bottom=`${s}px`,d=!0;const c=()=>{e.removeEventListener("transitionend",c),e.classList.remove("csk-launcher--snap"),e.style.transition="",d=!1};e.addEventListener("transitionend",c),setTimeout(()=>{d&&c()},350);const l=n=>{n.stopPropagation(),e.removeEventListener("click",l,!0)};e.addEventListener("click",l,!0);const u=e.querySelector(".csk-launcher__badge");u&&(u.style.display=""),t&&t({side:i,bottom:s})}function m(e){u(e.clientX,e.clientY)}function h(e){g(e.clientX,e.clientY,e)}function b(){k()}function f(e){1===e.touches.length&&u(e.touches[0].clientX,e.touches[0].clientY)}function y(e){1===e.touches.length&&g(e.touches[0].clientX,e.touches[0].clientY,e)}function x(){k()}return e.addEventListener("mousedown",m),document.addEventListener("mousemove",h),document.addEventListener("mouseup",b),e.addEventListener("touchstart",f,{passive:!0}),document.addEventListener("touchmove",y,{passive:!1}),document.addEventListener("touchend",x),()=>{e.removeEventListener("mousedown",m),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",b),e.removeEventListener("touchstart",f),document.removeEventListener("touchmove",y),document.removeEventListener("touchend",x)}}(Ge,0,e=>{on=e,function(e,n){try{localStorage.setItem(wn(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e),function(){if(!Ke)return;Ke.style.left="",Ke.style.top="",Ke.style.right="",Ke.style.bottom=""}(),_n(e.side),an&&!an.classList.contains("csk-teaser--hidden")&&pn()}),on&&_n(on.side);const i=function(e){const n=document.createElement("div");n.id="csk-window",n.className=`csk-root csk-window csk-window--${"left-bottom"===e.position?"left":"right"} csk-window--hidden${"dark"===e.theme?" csk-dark":""}`,n.setAttribute("role","dialog"),n.setAttribute("aria-label",e.title),n.setAttribute("aria-modal","false");const t=document.createElement("div");t.className="csk-header";const r=document.createElement("div");r.className="csk-header__left";const s=document.createElement("div");s.className="csk-header__avatar",s.innerHTML=R;const o=document.createElement("div");o.className="csk-header__info";const a=document.createElement("span");a.className="csk-header__title",a.textContent=e.title;const i=document.createElement("span");i.className="csk-header__status",i.innerHTML=`${m("status_online")}`,o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o);const c=document.createElement("div");c.className="csk-header__actions";const l=document.createElement("button");l.className="csk-history-btn",l.setAttribute("title",m("history_title")),l.innerHTML='';const d=document.createElement("button");d.className="csk-header__btn csk-header__btn--minimize",d.setAttribute("title",m("minimize")),d.innerHTML='',d.addEventListener("click",()=>{n.classList.add("csk-window--hidden")});const p=document.createElement("button");p.className="csk-header__btn csk-header__btn--close",p.setAttribute("title",m("close")),p.innerHTML='',p.addEventListener("click",()=>{n.classList.add("csk-window--hidden")}),c.appendChild(l),c.appendChild(d),c.appendChild(p),t.appendChild(r),t.appendChild(c);const u=document.createElement("div");u.id="csk-messages",u.className="csk-messages";const g=document.createElement("div");if(g.className="csk-welcome",g.innerHTML=`\n ${R}
\n ${m("welcome_title")}
\n ${m("welcome_desc")}
\n `,e.quickReplies.length>0){const t=document.createElement("div");t.className="csk-quick-replies";for(const r of e.quickReplies){const e=document.createElement("button");e.type="button",e.className="csk-quick-reply",e.textContent=r,e.addEventListener("click",()=>{n.dispatchEvent(new CustomEvent("csk:quickReply",{detail:{text:r}}))}),t.appendChild(e)}g.appendChild(t)}u.appendChild(g);const k=document.createElement("button");k.type="button",k.className="csk-newmsg csk-newmsg--hidden",k.innerHTML=`\n \n ${m("new_message")}\n `,n.appendChild(k);const h=document.createElement("div");h.className="csk-history-panel csk-history-panel--hidden",h.innerHTML=`\n \n \n \n
\n \n `,u.appendChild(h);const b=h.querySelector("#csk-history-back");b&&b.addEventListener("click",()=>{h.classList.add("csk-history-panel--hidden")}),l.addEventListener("click",e=>{e.stopPropagation();const t=h.classList.contains("csk-history-panel--hidden");h.classList.toggle("csk-history-panel--hidden"),t&&n.dispatchEvent(new CustomEvent("csk:loadHistory"))});let f=null;if(e.showCategorySwitch){const e=document.createElement("div");e.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",f=document.createElement("select"),f.id="csk-category-select",f.className="csk-category-select",f.innerHTML=``,f.addEventListener("change",()=>{const e=f.value;n.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:e?Number(e):void 0}}))}),e.appendChild(r),e.appendChild(f),n.appendChild(t),n.appendChild(u),n.appendChild(e)}else n.appendChild(t),n.appendChild(u);const y=document.createElement("div");y.className="csk-input-area";const x=document.createElement("div");x.className="csk-input-wrap";const v=document.createElement("textarea");v.id="csk-input",v.className="csk-input",v.setAttribute("placeholder",m("placeholder")),v.setAttribute("rows","1"),v.setAttribute("autofocus","");const w=document.createElement("button");w.id="csk-send-btn",w.className="csk-send-btn",w.setAttribute("title",m("send")),w.setAttribute("disabled","true"),w.innerHTML='',x.appendChild(v),x.appendChild(w),y.appendChild(x),n.appendChild(y);let _=null;e.showClear&&(_=document.createElement("button"),_.className="csk-clear-btn",_.textContent=m("clear"),_.style.display="none",n.insertBefore(_,y));let E=null;const C=document.createElement("div");C.className="csk-sr-only",C.setAttribute("aria-live","polite"),C.setAttribute("aria-atomic","true"),n.appendChild(C);const I=h.querySelector("#csk-history-search"),$=document.createElement("div");return $.className=`csk-teaser csk-teaser--${"left-bottom"===e.position?"left":"right"} csk-teaser--hidden`,$.setAttribute("role","status"),$.innerHTML=`\n \n ${e.teaserText||m("teaser_text")}\n `,{window:n,messagesContainer:u,inputEl:v,sendBtn:w,clearBtn:_,categorySelect:f,historyPanel:h,welcomeEl:g,newMsgBtn:k,teaserEl:$,searchInput:I,ariaLiveEl:C,showLoading:function(){if(E)return E.style.display="flex",E;const e=document.createElement("div");return e.className="csk-loading",e.innerHTML=`\n ${R}
\n \n `,u.appendChild(e),E=e,e},hideLoading:function(){E&&E.parentNode&&(E.parentNode.removeChild(E),E=null)}}}(Oe);Ke=i.window,Ve=i.messagesContainer,Xe=i.inputEl,Je=i.sendBtn,Qe=i.clearBtn,Ze=i.categorySelect,en=i.historyPanel,nn=i.showLoading,tn=i.hideLoading,document.body.appendChild(Ke),an=i.teaserEl,document.body.appendChild(an),pn();const b=Ke.querySelector(".csk-header");if(b&&(rn=function(e,n,t){let r=!1,s=0,o=0,a=0,i=0;const c=e=>{if(e.target.closest("button"))return;r=!0,s=e.clientX,o=e.clientY;const t=n.getBoundingClientRect();a=s-t.left,i=o-t.top,document.addEventListener("mousemove",l),document.addEventListener("mouseup",d)},l=e=>{if(!r)return;const t=e.clientX-a,s=e.clientY-i,o=window.innerWidth-n.offsetWidth,c=window.innerHeight-n.offsetHeight;n.style.right="auto",n.style.bottom="auto",n.style.left=`${Math.max(0,Math.min(t,o))}px`,n.style.top=`${Math.max(0,Math.min(s,c))}px`},d=()=>{if(r=!1,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d),t){const e=n.getBoundingClientRect();t({x:e.left,y:e.top})}};return e.addEventListener("mousedown",c),()=>{e.removeEventListener("mousedown",c),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d)}}(b,Ke,e=>{!function(e,n){try{localStorage.setItem(vn(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e)})),function(e,n){try{const t=localStorage.getItem(vn(e));if(!t)return;const r=JSON.parse(t);if("number"!=typeof r.x||"number"!=typeof r.y)return;const s=window.innerWidth-n.offsetWidth,o=window.innerHeight-n.offsetHeight,a=Math.max(0,Math.min(r.x,s)),i=Math.max(0,Math.min(r.y,o));n.style.right="auto",n.style.bottom="auto",n.style.left=`${a}px`,n.style.top=`${i}px`}catch(e){}}(Oe.integrateId,Ke),Fe(Oe,{messagesContainer:Ve,inputEl:Xe,sendBtn:Je,clearBtn:Qe,categorySelect:Ze,historyPanel:en,welcomeEl:i.welcomeEl,newMsgBtn:i.newMsgBtn,searchInput:i.searchInput,ariaLiveEl:i.ariaLiveEl,showLoading:nn,hideLoading:tn}),Ke.addEventListener("csk:categoryChange",e=>{var n,t;n=e.detail.categoryId,de=n,Ne=null===(t=null==pe?void 0:pe.enableRag)||void 0===t||t,o.lifecycleCategoryChange(null!=n?n:"全部")}),Ke.addEventListener("csk:loadHistory",()=>{!async function(){if(!ye||!pe)return;const e=ye.querySelector("#csk-history-list");if(e){e.innerHTML='加载中...
';try{const n=await $(1,50,pe.userId,pe.integrateId);Ae=n.list.map(e=>({id:e.conversationId||"",chatId:e.conversationId||"",messageCount:e.messageCount,lastMessageTime:e.lastMessageTime,lastMessagePreview:e.lastMessagePreview,createdAt:e.firstMessageTime||e.createdAt})),Se="",we&&(we.value=""),ee(e,Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{confirm(m("history_delete_confirm"))&&await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),qe())},f())}catch(n){o.error(m("history_load_error"),n),e.innerHTML=`⚠
${m("history_load_error")}
`}}}()}),Ke.addEventListener("csk:quickReply",e=>{var n;n=e.detail.text,!ke||Ie?Promise.resolve():(ke.value=n,je(),Re())}),Ke.addEventListener("csk:retry",e=>{!async function(e){if(!pe||!ge||Ie)return;const n=ue.findIndex(n=>n.id===e&&"ai"===n.role);if(n<0)return;let t="";for(let e=n-1;e>=0;e--)if("user"===ue[e].role){t=ue[e].content;break}if(!t)return;const r=ue.splice(n),s=new Set(r.map(e=>e.id));ge.querySelectorAll(".csk-msg").forEach(e=>{const n=e.dataset.cskMsgId;n&&s.has(n)&&e.remove()}),se(pe.integrateId,ue),He(),await Pe(t)}(e.detail.msgId)}),Ke.addEventListener("csk:feedback",e=>{ze(e.detail.msgId,e.detail.value)}),Ke.addEventListener("csk:newMessage",e=>{var n;if(Ke&&Ke.classList.contains("csk-window--hidden")&&(ln&&ln.classList.remove("csk-launcher__badge--hidden"),(null==Oe?void 0:Oe.sound)&&function(){try{dn||(dn=new(window.AudioContext||window.webkitAudioContext));const e=dn;if("suspended"===e.state)return void e.resume();const n=e.currentTime;[0,.15].forEach((t,r)=>{const s=e.createOscillator(),o=e.createGain();s.type="sine",s.frequency.value=0===r?880:1100,o.gain.setValueAtTime(.15,n+t),o.gain.exponentialRampToValueAtTime(.001,n+t+.12),s.connect(o),o.connect(e.destination),s.start(n+t),s.stop(n+t+.12)})}catch(e){}}(),(null==Oe?void 0:Oe.notification)&&function(){try{if(!("Notification"in window))return;"granted"===Notification.permission?new Notification((null==Oe?void 0:Oe.title)||"AI 智能助手",{body:"收到新消息",icon:void 0,silent:!0}):"denied"!==Notification.permission&&Notification.requestPermission()}catch(e){}}()),(null==Oe?void 0:Oe.onMessage)&&(null===(n=e.detail)||void 0===n?void 0:n.msg))try{Oe.onMessage(e.detail.msg)}catch(e){}}),document.addEventListener("keydown",bn),window.addEventListener("resize",mn),We=!0,o.lifecycleInit(Oe.integrateId,Oe.requestDomain),Oe.onReady)try{Oe.onReady()}catch(e){}Oe.showTeaser&&(cn=setTimeout(()=>{Ke&&Ke.classList.contains("csk-window--hidden")&&function(){if(!an)return;pn(),an.classList.remove("csk-teaser--hidden"),an.addEventListener("click",gn);const e=an.querySelector(".csk-teaser__close");e&&e.addEventListener("click",kn)}()},1500)),Me().catch(e=>{o.warn("chatId 初始化失败,将在发送消息时重试",e)})},destroy:function(){if(!We)return;cn&&(clearTimeout(cn),cn=null),un(),an&&an.parentNode&&(an.parentNode.removeChild(an),an=null),Ge&&Ge.parentNode&&(Ge.parentNode.removeChild(Ge),Ge=null),Ke&&Ke.parentNode&&(Ke.parentNode.removeChild(Ke),Ke=null),rn&&(rn(),rn=null),sn&&(sn(),sn=null),on=null,T&&T.parentNode&&(T.parentNode.removeChild(T),T=null),document.querySelectorAll("style[data-csk-sdk]").forEach(e=>e.remove()),document.removeEventListener("keydown",bn),window.removeEventListener("resize",mn),r(void 0);const e=null==Oe?void 0:Oe.integrateId;Oe=null,We=!1,Ve=null,Xe=null,Je=null,Qe=null,Ze=null,en=null,nn=null,tn=null,ln=null,dn=null,h=null,o.lifecycleDestroy(e||"")},open:fn,close:yn,toggle:xn,clearHistory:function(){Oe&&(Qe?Qe.click():confirm("确定清空所有对话记录?")&&oe(Oe.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=En),En}();
+var ChatbotSDK=function(){"use strict";const e="[ChatbotSDK]";let n=!0,t=null;function r(e){t=e||null}const s={},o={info(t,r){n&&console.log(e,t,void 0!==r?r:"")},warn(t,r){n&&console.warn(e,t,void 0!==r?r:"")},error(n,r){if(console.error(e,n,void 0!==r?r:""),t)try{const e=r instanceof Error&&r.type||"error";t({message:n,code:String(e),detail:r})}catch(e){}},time(e){s[e]=Date.now()},timeEnd(t,r){const o=s[t];if(void 0!==o){const a=Date.now()-o;if(delete s[t],n){const n=r?`${r} ${a}ms`:`${t} ${a}ms`;console.log(e,n)}return a}return 0},lifecycleInit(e,n){this.info(`初始化完成 integrateId=${e} requestDomain=${n}`)},lifecycleDestroy(e){this.info(`销毁实例 integrateId=${e}`)},lifecycleSend(e,n){this.info(`发送消息 integrateId=${e} length=${n}`),this.time(`send_${e}`)},lifecycleReply(e,n){const t=this.timeEnd(`send_${e}`,"AI 回复");this.info(`AI 回复 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleError(e,n,t){this.timeEnd(`send_${e}`),this.error(`请求失败 integrateId=${e} status=${n} message=${t}`)},lifecycleClear(e){this.info(`清空会话 integrateId=${e}`)},lifecycleStreamDone(e,n){const t=this.timeEnd(`send_${e}`,"流式回复");this.info(`流式回复完成 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleCategoryChange(e){this.info(`切换知识库分类 categoryId=${e}`)}},a='';function i(e,n,t){return``}const c=i("rgba(139,92,246,0.6)","rgba(139,92,246,0.45)","rgba(240,171,252,0.85)"),l=i("rgba(16,185,129,0.6)","rgba(16,185,129,0.45)","rgba(110,231,183,0.85)"),d=i("rgba(244,63,94,0.55)","rgba(244,63,94,0.4)","rgba(253,186,116,0.85)"),p=i("rgba(56,189,248,0.6)","rgba(56,189,248,0.45)","rgba(167,139,250,0.85)"),u={"dream-purple":"#A78BFA","mint-tech":"#34D399","coral-peach":"#FB7185","sky-blue":"#7DD3FC"};const g={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",status_online:"在线",welcome_title:"你好,我是 AI 智能助手",welcome_desc:"有什么可以帮你的吗?在下方输入框开始提问吧~",placeholder:"输入您的问题...",send:"发送",stop:"停止生成",new_message:"新消息",copy:"复制",copied:"已复制",retry:"重新生成",retrying:"重新生成中...",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",history_search:"搜索会话...",history_group_today:"今天",history_group_yesterday:"昨天",history_group_week:"本周",history_group_earlier:"更早",feedback_up:"有帮助",feedback_down:"没帮助",teaser_text:"有什么可以帮你的吗?",new_msg_announce:"收到新消息",resize:"拖拽缩放窗口",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",status_online:"Online",welcome_title:"Hi, I am your AI assistant",welcome_desc:"How can I help you? Type your question below to get started.",placeholder:"Type your question...",send:"Send",stop:"Stop generating",new_message:"New message",copy:"Copy",copied:"Copied",retry:"Regenerate",retrying:"Regenerating...",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",history_search:"Search conversations...",history_group_today:"Today",history_group_yesterday:"Yesterday",history_group_week:"This Week",history_group_earlier:"Earlier",feedback_up:"Helpful",feedback_down:"Not helpful",teaser_text:"How can I help you?",new_msg_announce:"New message received",resize:"Resize window",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let m="zh-CN";function h(e,n){let t=(g[m]||g["zh-CN"])[e]||g["zh-CN"][e]||e;if(n)for(const[e,r]of Object.entries(n))t=t.replace(`{${e}}`,String(r));return t}let k=null;function b(e){k&&(k.chatId=e)}function f(){return(null==k?void 0:k.chatId)||""}function y(e){if(!k)throw new Error("API 配置未初始化");return`${k.requestDomain.replace(/\/+$/,"")}${e.startsWith("/")?e:`/${e}`}`}function x(e,n,t){null!=t&&("string"==typeof t&&""===t.trim()||e.set(n,String(t)))}async function v(e,n={},t=3e4,r){const s=new AbortController,a=setTimeout(()=>s.abort(),t);r&&(r.aborted?s.abort():r.addEventListener("abort",()=>s.abort(),{once:!0}));try{const t={};n.headers&&(n.headers instanceof Headers?n.headers.forEach((e,n)=>{t[n]=e}):Array.isArray(n.headers)?n.headers.forEach(([e,n])=>{t[e]=n}):Object.assign(t,n.headers)),(null==k?void 0:k.token)&&e.includes("/ai/")&&(t.Authorization=`Bearer ${k.token}`);const r=await fetch(e,Object.assign(Object.assign({},n),{headers:t,signal:s.signal,mode:"cors",credentials:"include"}));return 401===r.status&&e.includes("/ai/")&&o.error("SDK 认证失败:Token 缺失或已过期,请重新调用 /open-api/auth/token 换取 Token"),r}catch(e){if(null==r?void 0:r.aborted)throw new w("aborted","aborted");if(e instanceof DOMException&&"AbortError"===e.name)throw new w(h("error_timeout"),"timeout");if(e instanceof TypeError&&e.message.includes("Failed to fetch"))throw new w(h("error_cors"),"cors");throw new w(h("error_network"),"network")}finally{clearTimeout(a)}}class w extends Error{constructor(e,n){super(e),this.name="CskError",this.type=n}}function _(e){switch(e){case 401:return h("error_auth");case 403:return h("error_forbidden");case 404:return h("error_not_found");case 429:return h("error_rate_limit");case 500:return h("error_server");case 502:case 503:return h("error_unavailable");default:return`${h("error_unknown")}(${e})`}}async function E(e){const n=function(e){const n=new URLSearchParams;return n.set("message",e),n.set("chatId",k.chatId),x(n,"roleId",k.integrateId),x(n,"accountId",k.userId),y(`/ai/assistant_app/chat/sync?${n.toString()}`)}(e);o.lifecycleSend(k.integrateId,e.length);try{const e=await v(n);if(!e.ok){const n=_(e.status);throw o.lifecycleError(k.integrateId,String(e.status),n),new w(n,`http_${e.status}`)}const t=await e.text();return o.lifecycleReply(k.integrateId,t.length),t}catch(e){if(e instanceof w)throw e;throw o.lifecycleError(k.integrateId,"unknown",String(e)),new w(h("error_unknown"),"unknown")}}async function C(e,n,t,r,s,a,i){var c;const l=a?function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",k.chatId),t.set("rewriteStrategy",k.rewriteStrategy||"REWRITE"),x(t,"roleId",k.integrateId),x(t,"accountId",k.userId),x(t,"categoryId",null!=n?n:k.categoryId),y(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(e,s):function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",k.chatId),x(t,"roleId",k.integrateId),x(t,"accountId",k.userId),x(t,"categoryId",null!=n?n:k.categoryId),y(`/ai/assistant_app/chat/sse?${t.toString()}`)}(e,s);let d="";o.lifecycleSend(k.integrateId,e.length);try{const e=await v(l,{},6e4,i);if(!e.ok){const n=_(e.status);return o.lifecycleError(k.integrateId,String(e.status),n),void r(new w(n,`http_${e.status}`))}const s=null===(c=e.body)||void 0===c?void 0:c.getReader();if(!s)return void r(new w(h("error_stream_unsupported"),"stream_unsupported"));const a=new TextDecoder("utf-8",{stream:!0});let p="";try{for(;;){const{done:e,value:t}=await s.read();if(e)break;p+=a.decode(t,{stream:!0});const r=p.split("\n");p=r.pop()||"";for(const e of r){const t=e.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const e=t.substring(5).trim();e&&(d+=e,n(e))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(d+=t,n(t))}}}if(p.trim()){const e=p.trim();if(e.startsWith("data:")){const t=e.substring(5).trim();t&&(d+=t,n(t))}else"[DONE]"!==e&&(d+=e,n(e))}}catch(e){if(null==i?void 0:i.aborted)o.info(`流式被用户中断,保留已生成内容 length=${d.length}`);else{if(!(d.length>0))throw e;n("\n\n"+h("stream_unstable"))}}finally{s.releaseLock()}o.lifecycleStreamDone(k.integrateId,d.length),t()}catch(e){if((null==i?void 0:i.aborted)||e instanceof w&&"aborted"===e.type)return void t();e instanceof w?r(e):(o.lifecycleError(k.integrateId,"unknown",String(e)),r(new w(h("error_network"),"network")))}}async function I(e,n){const t=function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",k.chatId),t.set("rewriteStrategy",k.rewriteStrategy||"REWRITE"),x(t,"roleId",k.integrateId),x(t,"accountId",k.userId),x(t,"categoryId",null!=n?n:k.categoryId),y(`/ai/assistant_app/rag/sources?${t.toString()}`)}(e,n);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return n.success&&Array.isArray(n.data)?(o.info(`获取引用来源 count=${n.data.length}`),n.data):[]}catch(e){return o.error("获取引用来源失败",e),[]}}async function L(e=1,n=20,t,r){const s=new URLSearchParams;s.set("page",String(e)),s.set("size",String(n)),t&&s.set("accountId",t),r&&s.set("roleId",r);const a=y(`/ai/sdk/conversation/list?${s.toString()}`);try{const e=await v(a);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{list:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0,pages:n.pages||0}}catch(e){return o.error("加载会话列表失败",e),{list:[],total:0,pages:0}}}async function $(e){const n=new URLSearchParams;(null==k?void 0:k.userId)&&n.set("accountId",k.userId),(null==k?void 0:k.integrateId)&&n.set("roleId",k.integrateId);const t=y(`/ai/sdk/conversation/${e}/messages?${n.toString()}`);try{const e=await v(t);if(!e.ok)throw new w(_(e.status),`http_${e.status}`);const n=await e.json();return{messages:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0}}catch(e){return o.error("加载会话消息失败",e),{messages:[],total:0}}}async function A(e){const n=new URLSearchParams;(null==k?void 0:k.userId)&&n.set("accountId",k.userId),(null==k?void 0:k.integrateId)&&n.set("roleId",k.integrateId);const t=y(`/ai/sdk/conversation/${e}?${n.toString()}`);try{const n=await v(t,{method:"DELETE"});if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const r=await n.json();return o.info(`删除会话 id=${e} success=${r.success}`),r.success||!1}catch(e){return o.error("删除会话失败",e),!1}}function S(e){const n=new URLSearchParams;return(null==k?void 0:k.userId)&&n.set("accountId",k.userId),(null==k?void 0:k.integrateId)&&n.set("roleId",k.integrateId),y(`/ai/sdk/conversation/${e}/export?${n.toString()}`)}async function N(){if(!k)return"";const e=function(e,n){try{return localStorage.getItem(M(e,n))||""}catch(e){return""}}(k.integrateId,k.userId);if(e)return k.chatId=e,o.info(`从缓存恢复 chatId=${e}`),e;try{const e=await L(1,5,k.userId,k.integrateId);if(e.list.length>0){const n=e.list[0],t=n.conversationId||n.chatId||"";if(t)return k.chatId=t,F(k.integrateId,k.userId,t),o.info(`从后端恢复会话 chatId=${t} messageCount=${n.messageCount}`),t}}catch(e){o.warn("查询后端会话列表失败,将生成新 chatId",e)}const n=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();return k.chatId=n,F(k.integrateId,k.userId,n),o.info(`生成新 chatId=${n}`),n}function M(e,n){return`csk_chatId_${e}${n?"_"+n:""}`}function F(e,n,t){try{t?localStorage.setItem(M(e,n),t):localStorage.removeItem(M(e,n))}catch(e){}}let D=null;function T(e){const n=z(e.primaryColor,-15),t=z(e.primaryColor,18),r=function(e){const n=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);return n?`${parseInt(n[1],16)}, ${parseInt(n[2],16)}, ${parseInt(n[3],16)}`:"79, 70, 229"}(e.primaryColor),s=e.launcherTheme?{"dream-purple":{grad1:"#A78BFA",grad2:"#F0ABFC",glow:"167, 139, 250"},"mint-tech":{grad1:"#6EE7B7",grad2:"#34D399",glow:"52, 211, 153"},"coral-peach":{grad1:"#FB7185",grad2:"#FDBA74",glow:"251, 113, 133"},"sky-blue":{grad1:"#7DD3FC",grad2:"#A78BFA",glow:"125, 211, 252"}}[e.launcherTheme]:null;return`\n --csk-primary: ${e.primaryColor};\n --csk-primary-hover: ${n};\n --csk-primary-light: ${t};\n --csk-primary-rgb: ${r};\n --csk-bg-user: linear-gradient(135deg, ${e.primaryColor}, ${n});\n --csk-bg-ai: #ffffff;\n --csk-text-user: #ffffff;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${e.width}px;\n --csk-window-height: ${e.height}px;\n --csk-radius: 16px;\n --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);\n --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06);\n --csk-border: #ECEEF2;\n --csk-bg-app: #F6F7F9;\n ${s?`\n --csk-launcher-grad-1: ${s.grad1};\n --csk-launcher-grad-2: ${s.grad2};\n --csk-launcher-glow: ${s.glow};\n `:""}\n `}function z(e,n){const t=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return e;const r=e=>Math.max(0,Math.min(255,e)),s=r(parseInt(t[1],16)+n),o=r(parseInt(t[2],16)+n),a=r(parseInt(t[3],16)+n);return`#${s.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}`}function B(e){document.querySelector("style[data-csk-sdk]")||(D=document.createElement("style"),D.setAttribute("data-csk-sdk",""),D.textContent=function(e){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${T(e)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;\n font-size: 14px;\n line-height: 1.55;\n color: #1F2937;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; }\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 24px;\n z-index: 9998;\n width: 60px;\n height: 60px;\n border-radius: 50%;\n /* 极光旋转渐变底 — 默认蓝紫系,由 primaryColor 驱动的 conic-gradient */\n background: conic-gradient(from 0deg,\n var(--csk-primary-light, #06b6d4),\n var(--csk-primary, #3b82f6),\n var(--csk-primary-hover, #8b5cf6),\n var(--csk-primary-light, #06b6d4)\n );\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n user-select: none;\n overflow: visible;\n /* 半透明白色光环边框,在白色页面上清晰分离按钮与背景 */\n border: 2.5px solid rgba(255, 255, 255, 0.55);\n /* 三层投影:接地阴影 + 彩色光晕,把按钮从白底「托」出来 */\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12);\n transition:\n transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),\n box-shadow 0.25s ease,\n border-color 0.25s ease;\n animation:\n csk-aurora-spin 4s linear infinite,\n csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n.csk-launcher--right { right: 24px; }\n.csk-launcher--left { left: 24px; }\n\n/* 高光扫过动效 */\n.csk-launcher::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 40%;\n height: 200%;\n border-radius: 50%;\n background: linear-gradient(\n 105deg,\n transparent 30%,\n rgba(255, 255, 255, 0.28) 48%,\n rgba(255, 255, 255, 0.1) 52%,\n transparent 70%\n );\n transform: rotate(25deg);\n animation: csk-shimmer 4s ease-in-out infinite;\n pointer-events: none;\n}\n/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -18px;\n border-radius: 50%;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);\n animation: csk-breathe 3.5s ease-in-out infinite;\n pointer-events: none;\n}\n.csk-launcher:hover {\n transform: translateY(-3px) scale(1.08);\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.10),\n 0 8px 24px rgba(0, 0, 0, 0.14),\n 0 10px 36px rgba(var(--csk-primary-rgb), 0.32),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.14);\n}\n.csk-launcher:hover::before { animation-play-state: paused; }\n.csk-launcher:hover::after {\n animation: none;\n inset: -22px;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.22) 0%, rgba(var(--csk-primary-rgb), 0.06) 45%, transparent 68%);\n}\n.csk-launcher:active { transform: scale(0.93); }\n.csk-launcher svg {\n width: 30px;\n height: 30px;\n position: relative;\n z-index: 1;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));\n}\n\n@keyframes csk-launcher-in {\n 0% { opacity: 0; transform: scale(0.5) translateY(16px); }\n 60% { transform: scale(1.06) translateY(-2px); }\n 100% { opacity: 1; transform: scale(1) translateY(0); }\n}\n\n/* ========== 三点脉冲序列图标 ========== */\n/* 极光旋转 */\n@keyframes csk-aurora-spin {\n to { transform: rotate(360deg); }\n}\n/* 脉冲点 */\n.csk-ico-pulse-dot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: #fff;\n z-index: 5;\n animation: csk-seq-pulse 1.2s ease-in-out infinite;\n box-shadow: 0 0 6px 1px rgba(255, 255, 255, 0.5);\n}\n.csk-ico-pulse-dot--1 { top: 4px; left: 50%; margin-left: -3px; }\n.csk-ico-pulse-dot--2 { top: 50%; right: 5px; margin-top: -3px; animation-delay: 0.3s; }\n.csk-ico-pulse-dot--3 { bottom: 5px; left: 50%; margin-left: -3px; animation-delay: 0.6s; }\n@keyframes csk-seq-pulse {\n 0%, 100% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }\n 35% { transform: scale(1.8); opacity: 1; box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.8); }\n 70% { transform: scale(0.4); opacity: 0.3; box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.3); }\n}\n\n/* 移除旧的 SVG 图标相关样式(已不再使用) */\n\n/* ========== 高光扫过动效 ========== */\n.csk-launcher::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 40%;\n height: 200%;\n border-radius: 50%;\n background: linear-gradient(\n 105deg,\n transparent 30%,\n rgba(255, 255, 255, 0.28) 48%,\n rgba(255, 255, 255, 0.1) 52%,\n transparent 70%\n );\n transform: rotate(25deg);\n animation: csk-shimmer 4s ease-in-out infinite;\n pointer-events: none;\n}\n/* 呼吸色晕 — 配合接地阴影,强化白底上的立体存在感 */\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -18px;\n border-radius: 50%;\n background: radial-gradient(circle, rgba(var(--csk-primary-rgb), 0.18) 0%, rgba(var(--csk-primary-rgb), 0.05) 45%, transparent 68%);\n animation: csk-breathe 3.5s ease-in-out infinite;\n pointer-events: none;\n}\n@keyframes csk-shimmer {\n 0%, 100% { left: -60%; opacity: 0; }\n 20% { opacity: 1; }\n 60% { opacity: 1; }\n 80% { left: 120%; opacity: 0; }\n}\n@keyframes csk-breathe {\n 0%, 100% { transform: scale(1); opacity: 1; }\n 50% { transform: scale(1.15); opacity: 0.35; }\n}\n\n/* ========== 磨砂玻璃质感悬浮按钮 ========== */\n.csk-launcher--glass {\n /* 覆盖旋转动画为静止渐变 */\n animation:\n csk-launcher-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both !important;\n background: linear-gradient(\n 135deg,\n var(--csk-launcher-grad-1, var(--csk-primary)) 0%,\n var(--csk-launcher-grad-2, var(--csk-primary-light)) 100%\n ) !important;\n backdrop-filter: blur(12px) saturate(180%);\n -webkit-backdrop-filter: blur(12px) saturate(180%);\n border: 1.5px solid rgba(255, 255, 255, 0.55) !important;\n /* 多层阴影:接地 + 彩色光晕 + 内阴影立体感 */\n box-shadow:\n 0 2px 4px rgba(0, 0, 0, 0.04),\n 0 6px 20px rgba(0, 0, 0, 0.08),\n 0 8px 32px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.30),\n inset 0 1px 1px rgba(255, 255, 255, 0.35),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n.csk-launcher--glass:hover {\n border-color: rgba(255, 255, 255, 0.75) !important;\n box-shadow:\n 0 4px 8px rgba(0, 0, 0, 0.06),\n 0 10px 28px rgba(0, 0, 0, 0.10),\n 0 12px 40px rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.38),\n inset 0 1px 2px rgba(255, 255, 255, 0.45),\n inset 0 -1px 1px rgba(0, 0, 0, 0.04) !important;\n}\n\n/* 玻璃按钮的呼吸色晕 — 更鲜艳、更醒目 */\n.csk-launcher--glass::after {\n background: radial-gradient(\n circle,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.28) 0%,\n rgba(var(--csk-launcher-glow, var(--csk-primary-rgb)), 0.10) 40%,\n transparent 65%\n ) !important;\n animation: csk-breathe-glow 3.5s ease-in-out infinite;\n}\n@keyframes csk-breathe-glow {\n 0%, 100% { transform: scale(1); opacity: 0.8; }\n 50% { transform: scale(1.22); opacity: 0.25; }\n}\n\n/* 玻璃按钮的高光扫过 — 更柔和的玻璃质感 */\n.csk-launcher--glass::before {\n background: linear-gradient(\n 115deg,\n transparent 25%,\n rgba(255, 255, 255, 0.35) 45%,\n rgba(255, 255, 255, 0.15) 55%,\n transparent 75%\n ) !important;\n width: 50%;\n animation: csk-shimmer-glass 5s ease-in-out infinite;\n}\n@keyframes csk-shimmer-glass {\n 0%, 100% { left: -70%; opacity: 0; }\n 15% { opacity: 1; }\n 55% { opacity: 1; }\n 70% { left: 130%; opacity: 0; }\n}\n\n/* 三点脉冲图标在玻璃主题下保持可见 */\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 24px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: var(--csk-window-height);\n max-height: calc(100vh - 48px);\n background: #fff;\n border-radius: var(--csk-radius);\n box-shadow: var(--csk-shadow-window);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform-origin: bottom right;\n transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s;\n opacity: 1;\n transform: translateY(0) scale(1);\n visibility: visible;\n pointer-events: auto;\n}\n.csk-window--right { right: 24px; transform-origin: bottom right; }\n.csk-window--left { left: 24px; transform-origin: bottom left; }\n.csk-window--hidden {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n min-height: 60px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: move;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n}\n.csk-header::after {\n content: '';\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 24px;\n background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent);\n pointer-events: none;\n}\n.csk-header__left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n}\n.csk-header__avatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.22);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);\n}\n.csk-header__avatar svg { width: 22px; height: 22px; }\n.csk-header__info {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n letter-spacing: 0.2px;\n}\n.csk-header__status {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11.5px;\n opacity: 0.9;\n margin-top: 2px;\n}\n.csk-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #6EE7B7;\n box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7);\n animation: csk-status-pulse 2s infinite;\n}\n@keyframes csk-status-pulse {\n 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); }\n 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); }\n 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); }\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n.csk-header__btn,\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 8px;\n transition: background 0.15s, transform 0.15s;\n}\n.csk-header__btn:hover,\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-header__btn:active,\n.csk-history-btn:active { transform: scale(0.92); }\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 20px 16px 12px;\n background: var(--csk-bg-app);\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar { width: 6px; }\n.csk-messages::-webkit-scrollbar-track { background: transparent; }\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D8DCE3;\n border-radius: 3px;\n}\n.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; }\n\n/* 欢迎空状态 */\n.csk-welcome {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 32px;\n color: #6B7280;\n animation: csk-fade-in 0.3s ease;\n}\n.csk-welcome__avatar {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 14px;\n box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-welcome__avatar svg { width: 30px; height: 30px; }\n.csk-welcome__title {\n font-size: 15px;\n font-weight: 600;\n color: #1F2937;\n margin-bottom: 4px;\n}\n.csk-welcome__desc {\n font-size: 13px;\n color: #9CA3AF;\n line-height: 1.6;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n margin-bottom: 18px;\n max-width: 100%;\n word-break: break-word;\n animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.csk-msg--user {\n flex-direction: row-reverse;\n align-items: flex-end;\n}\n.csk-msg--ai {\n flex-direction: row;\n align-items: flex-start;\n}\n.csk-msg__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg__avatar svg { width: 18px; height: 18px; }\n.csk-msg__avatar--ai {\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n}\n.csk-msg__avatar--user {\n background: var(--csk-bg-user);\n color: #fff;\n}\n.csk-msg__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: calc(100% - 46px);\n}\n.csk-msg--user .csk-msg__content { align-items: flex-end; }\n.csk-msg--ai .csk-msg__content { align-items: flex-start; }\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 16px;\n font-size: 14px;\n line-height: 1.6;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 16px 16px 4px 16px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 16px 16px 16px 4px;\n border: 1px solid var(--csk-border);\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 5px;\n padding: 0 4px;\n}\n\n@keyframes csk-msg-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes csk-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n margin-bottom: 18px;\n animation: csk-msg-in 0.28s ease;\n}\n.csk-loading__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-loading__avatar svg { width: 18px; height: 18px; }\n.csk-loading__bubble {\n background: #fff;\n border: 1px solid var(--csk-border);\n border-radius: 16px 16px 16px 4px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.csk-loading__dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #B4B9C2;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n padding: 10px 12px 14px;\n background: #fff;\n border-top: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-input-wrap {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--csk-bg-app);\n border: 1px solid var(--csk-border);\n border-radius: 14px;\n padding: 6px 6px 6px 14px;\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n}\n.csk-input-wrap--focus {\n border-color: var(--csk-primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n.csk-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 8px 0;\n font-size: 14px;\n outline: none;\n font-family: inherit;\n resize: none;\n min-height: 22px;\n max-height: 120px;\n line-height: 1.5;\n color: #1F2937;\n}\n.csk-input::placeholder { color: #9CA3AF; }\n.csk-root .csk-input:focus-visible { outline: none; }\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border: none;\n border-radius: 10px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: pointer;\n transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s;\n box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-send-btn:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4);\n}\n.csk-send-btn:active:not(:disabled) { transform: scale(0.92); }\n.csk-send-btn:disabled {\n background: #D1D5DB;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 0.7;\n}\n.csk-send-btn svg { width: 18px; height: 18px; }\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 999px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-clear-btn:hover {\n background: #FEF2F2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-top: 1px solid var(--csk-border);\n background: #FBFBFC;\n gap: 8px;\n flex-shrink: 0;\n}\n.csk-category-bar__label {\n font-size: 13px;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 6px 28px 6px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n color: #374151;\n background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center;\n appearance: none;\n -webkit-appearance: none;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s, box-shadow 0.2s;\n max-width: 220px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid var(--csk-border);\n border-radius: 12px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n background: #FAFBFC;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F3F4F7;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover { background: #ECEEF2; }\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 5px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n font-size: 10px;\n}\n.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); }\n.csk-sources__body {\n border-top: 1px solid var(--csk-border);\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body { display: none; }\n.csk-source-item {\n padding: 9px 12px;\n border-bottom: 1px solid #F0F1F4;\n transition: background 0.15s;\n}\n.csk-source-item:last-child { border-bottom: none; }\n.csk-source-item:hover { background: #fff; }\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 3px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 14px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n color: #111827;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 10px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.55;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: rgba(var(--csk-primary-rgb), 0.1);\n color: var(--csk-primary);\n padding: 1px 6px;\n border-radius: 5px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 22px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; }\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding: 2px 12px;\n margin: 8px 0;\n color: #6B7280;\n background: rgba(var(--csk-primary-rgb), 0.05);\n border-radius: 0 6px 6px 0;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3);\n transition: border-color 0.15s;\n}\n.csk-md-link:hover { border-bottom-color: var(--csk-primary); }\n.csk-md-hr {\n border: none;\n border-top: 1px solid var(--csk-border);\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-panel {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: csk-slide-in 0.24s ease;\n}\n.csk-history-panel--hidden { display: none; }\n@keyframes csk-slide-in {\n from { transform: translateX(100%); opacity: 0.4; }\n to { transform: translateX(0); opacity: 1; }\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--csk-border);\n background: var(--csk-bg-app);\n flex-shrink: 0;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-history-panel__back:hover { background: #F3F4F6; }\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n}\n.csk-history-panel__list::-webkit-scrollbar { width: 5px; }\n.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; }\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 11px 12px;\n border-radius: 10px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 5px;\n border: 1px solid transparent;\n}\n.csk-history-item:hover { background: #F3F4F6; }\n.csk-history-item--active {\n background: rgba(var(--csk-primary-rgb), 0.08);\n border-color: rgba(var(--csk-primary-rgb), 0.2);\n}\n.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); }\n.csk-history-item__info { flex: 1; min-width: 0; }\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 3px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions { opacity: 1; }\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 7px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export { background: #EFF6FF; color: #2563EB; }\n.csk-history-action--export:hover { background: #DBEAFE; }\n.csk-history-action--delete { background: #FEF2F2; color: #DC2626; }\n.csk-history-action--delete:hover { background: #FEE2E2; }\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 34px;\n margin-bottom: 10px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover { background: #F3F4F6; }\n\n/* ========== 快捷问题芯片 ========== */\n.csk-quick-replies {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: center;\n margin-top: 18px;\n max-width: 320px;\n}\n.csk-quick-reply {\n border: 1px solid var(--csk-border);\n background: #fff;\n color: #374151;\n font-size: 12.5px;\n padding: 7px 13px;\n border-radius: 999px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1.3;\n transition: all 0.18s ease;\n max-width: 100%;\n}\n.csk-quick-reply:hover {\n border-color: var(--csk-primary);\n color: var(--csk-primary);\n background: rgba(var(--csk-primary-rgb), 0.06);\n transform: translateY(-1px);\n}\n.csk-quick-reply:active { transform: scale(0.96); }\n\n/* ========== AI 消息操作条 ========== */\n.csk-msg__actions {\n display: flex;\n gap: 2px;\n margin-top: 5px;\n padding: 0 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n.csk-msg--ai:hover .csk-msg__actions { opacity: 1; }\n.csk-msg--streaming .csk-msg__actions { display: none; }\n.csk-action-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n.csk-action-btn:hover {\n background: #F3F4F6;\n color: #374151;\n}\n.csk-action-btn--done { color: #10B981; }\n.csk-action-btn:active { transform: scale(0.9); }\n\n/* ========== 流式打字光标 ========== */\n.csk-caret {\n display: inline-block;\n width: 7px;\n height: 15px;\n margin-left: 2px;\n vertical-align: text-bottom;\n background: var(--csk-primary);\n border-radius: 1px;\n animation: csk-caret-blink 1s step-end infinite;\n}\n@keyframes csk-caret-blink {\n 0%, 50% { opacity: 1; }\n 51%, 100% { opacity: 0; }\n}\n\n/* ========== 代码块复制按钮 ========== */\n.csk-md-code-block { position: relative; }\n.csk-md-code-copy {\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(255, 255, 255, 0.12);\n color: #CBD5E1;\n border-radius: 6px;\n cursor: pointer;\n opacity: 0;\n transition: all 0.15s ease;\n}\n.csk-md-code-block:hover .csk-md-code-copy { opacity: 1; }\n.csk-md-code-copy:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }\n.csk-md-code-copy:active { transform: scale(0.9); }\n\n/* ========== 新消息提示按钮 ========== */\n.csk-newmsg {\n position: absolute;\n bottom: 82px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 5;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 7px 14px;\n border: none;\n background: var(--csk-primary);\n color: #fff;\n font-size: 12px;\n font-family: inherit;\n border-radius: 999px;\n cursor: pointer;\n box-shadow: 0 4px 14px rgba(var(--csk-primary-rgb), 0.38);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n animation: csk-msg-in 0.25s ease;\n white-space: nowrap;\n}\n.csk-newmsg:hover { transform: translateX(-50%) translateY(-1px); box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.48); }\n.csk-newmsg:active { transform: translateX(-50%) scale(0.95); }\n.csk-newmsg--hidden { display: none; }\n\n/* ========== 发送按钮停止态 ========== */\n.csk-send-btn--stop {\n background: #EF4444 !important;\n box-shadow: 0 3px 10px rgba(239, 68, 68, 0.35) !important;\n}\n.csk-send-btn--stop:hover:not(:disabled) {\n box-shadow: 0 5px 14px rgba(239, 68, 68, 0.45) !important;\n}\n\n/* ========== 窗口缩放拖拽手柄 ========== */\n.csk-resize-handle {\n position: absolute;\n right: 4px;\n bottom: 4px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n cursor: nwse-resize;\n z-index: 5;\n user-select: none;\n -webkit-user-select: none;\n /* 圆形半透明背景,与整体圆润风格一致 */\n border-radius: 50%;\n background: transparent;\n transition: background 0.2s ease;\n}\n.csk-resize-handle:hover {\n background: rgba(var(--csk-primary-rgb), 0.08);\n}\n\n/* 三斜线抓手 — 纯 CSS 绘制,用两条间距微调的线,视觉上是三条 */\n.csk-resize-grip {\n display: block;\n width: 10px;\n height: 10px;\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n #C8CCD2 38%, #C8CCD2 42%,\n transparent 42%, transparent 54%,\n #C8CCD2 54%, #C8CCD2 58%,\n transparent 58%, transparent 70%,\n #C8CCD2 70%, #C8CCD2 74%,\n transparent 74%\n );\n transition: background 0.2s ease;\n border-radius: 2px;\n}\n/* hover 时线条变为主色 */\n.csk-resize-handle:hover .csk-resize-grip {\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n var(--csk-primary) 38%, var(--csk-primary) 42%,\n transparent 42%, transparent 54%,\n var(--csk-primary) 54%, var(--csk-primary) 58%,\n transparent 58%, transparent 70%,\n var(--csk-primary) 70%, var(--csk-primary) 74%,\n transparent 74%\n );\n}\n\n/* 暗色模式 */\n.csk-dark .csk-resize-grip {\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n #5B6070 38%, #5B6070 42%,\n transparent 42%, transparent 54%,\n #5B6070 54%, #5B6070 58%,\n transparent 58%, transparent 70%,\n #5B6070 70%, #5B6070 74%,\n transparent 74%\n );\n}\n.csk-dark .csk-resize-handle:hover .csk-resize-grip {\n background:\n linear-gradient(135deg,\n transparent 0%, transparent 38%,\n var(--csk-primary-light) 38%, var(--csk-primary-light) 42%,\n transparent 42%, transparent 54%,\n var(--csk-primary-light) 54%, var(--csk-primary-light) 58%,\n transparent 58%, transparent 70%,\n var(--csk-primary-light) 70%, var(--csk-primary-light) 74%,\n transparent 74%\n );\n}\n\n/* 缩放拖拽中:禁用过渡动画 + 全局光标 */\n.csk-window--resizing {\n transition: none !important;\n user-select: none;\n}\n.csk-window--resizing * { cursor: nwse-resize !important; }\n\n/* ========== 暗色模式 ========== */\n.csk-root.csk-dark {\n --csk-bg-ai: #1E1E2E;\n --csk-text-ai: #E2E8F0;\n --csk-border: #3B3B52;\n --csk-bg-app: #141421;\n color: #E2E8F0;\n}\n.csk-dark .csk-window {\n background: #1A1A2E;\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n.csk-dark .csk-header::after { background: linear-gradient(to bottom, rgba(0,0,0,0.12), transparent); }\n.csk-dark .csk-msg__avatar--ai {\n background: var(--csk-bg-ai);\n color: var(--csk-primary);\n border-color: var(--csk-border);\n}\n.csk-dark .csk-input-area { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-input-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-input-wrap--focus { background: #1A1A2E; border-color: var(--csk-primary); }\n.csk-dark .csk-input { color: #E2E8F0; }\n.csk-dark .csk-loading__avatar { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__bubble { background: var(--csk-bg-ai); border-color: var(--csk-border); }\n.csk-dark .csk-loading__dot { background: #6B7280; }\n.csk-dark .csk-category-bar { background: #1A1A2E; border-top-color: var(--csk-border); }\n.csk-dark .csk-category-select { background-color: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-sources { background: #1E1E2E; border-color: var(--csk-border); }\n.csk-dark .csk-sources__header { background: #25253A; }\n.csk-dark .csk-sources__header:hover { background: #2D2D48; }\n.csk-dark .csk-source-item:hover { background: var(--csk-bg-ai); }\n.csk-dark .csk-source-item__name { color: #E2E8F0; }\n.csk-dark .csk-source-item__meta { color: #6B7280; }\n.csk-dark .csk-history-panel { background: #1A1A2E; }\n.csk-dark .csk-history-panel__header { background: var(--csk-bg-app); border-bottom-color: var(--csk-border); }\n.csk-dark .csk-history-panel__back { background: var(--csk-bg-app); border-color: var(--csk-border); color: #E2E8F0; }\n.csk-dark .csk-history-panel__back:hover { background: #2D2D48; }\n.csk-dark .csk-history-item:hover { background: #25253A; }\n.csk-dark .csk-history-item__id { color: #E2E8F0; }\n.csk-dark .csk-history-item__meta { color: #6B7280; }\n.csk-dark .csk-history-item--active { background: rgba(var(--csk-primary-rgb), 0.15); }\n.csk-dark .csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.22); }\n.csk-dark .csk-action-btn:hover { background: #2D2D48; color: #E2E8F0; }\n.csk-dark .csk-clear-btn { background: var(--csk-bg-app); border-color: var(--csk-border); color: #9CA3AF; }\n.csk-dark .csk-clear-btn:hover { background: #3B1A1A; border-color: #7F1D1D; color: #FCA5A5; }\n.csk-dark .csk-md-code-block { background: #0F0F1A; }\n.csk-dark .csk-md-blockquote { background: rgba(var(--csk-primary-rgb), 0.08); }\n.csk-dark .csk-md-link { color: var(--csk-primary-light); }\n.csk-dark .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); border-color: var(--csk-border); }\n.csk-dark .csk-welcome__title { color: #E2E8F0; }\n.csk-dark .csk-welcome__desc { color: #6B7280; }\n.csk-dark .csk-quick-reply { background: var(--csk-bg-app); border-color: var(--csk-border); color: #CBD5E1; }\n.csk-dark .csk-quick-reply:hover { background: rgba(var(--csk-primary-rgb), 0.12); border-color: var(--csk-primary); color: var(--csk-primary-light); }\n.csk-dark .csk-teaser { background: #2D2D48; color: #E2E8F0; box-shadow: 0 4px 20px rgba(0,0,0,0.35); }\n.csk-dark .csk-teaser::after { border-top-color: #2D2D48; }\n.csk-dark .csk-teaser__close { color: #6B7280; }\n.csk-dark .csk-teaser__close:hover { color: #9CA3AF; }\n.csk-dark .csk-feedback-btn { background: rgba(var(--csk-primary-rgb), 0.1); color: #9CA3AF; }\n.csk-dark .csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.2); color: var(--csk-primary-light); }\n.csk-dark .csk-feedback-btn--active { background: rgba(var(--csk-primary-rgb), 0.28); color: var(--csk-primary-light); }\n.csk-dark .csk-history-panel__search-wrap { background: var(--csk-bg-app); border-color: var(--csk-border); }\n.csk-dark .csk-history-panel__search-wrap:focus-within { border-color: var(--csk-primary); }\n.csk-dark .csk-history-panel__search { color: #E2E8F0; }\n.csk-dark .csk-launcher__badge { box-shadow: 0 0 0 2px #1A1A2E; }\n.csk-dark .csk-welcome__avatar { box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.25); }\n.csk-dark .csk-header__avatar { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.1); }\n\n/* Launcher 拖拽态:微放大 + 阴影加深 */\n.csk-launcher--dragging {\n cursor: grabbing !important;\n transform: scale(1.1) !important;\n box-shadow:\n 0 4px 12px rgba(0, 0, 0, 0.14),\n 0 12px 32px rgba(0, 0, 0, 0.18),\n 0 14px 40px rgba(var(--csk-primary-rgb), 0.36),\n 0 0 56px rgba(var(--csk-primary-rgb), 0.18) !important;\n}\n.csk-launcher--dragging::before,\n.csk-launcher--dragging::after { animation-play-state: paused !important; }\n/* 拖拽中隐藏未读徽章 */\n.csk-launcher--dragging .csk-launcher__badge { display: none !important; }\n/* 吸附过渡动画(释放时的缓动) */\n.csk-launcher--snap {\n transition: left 0.3s ease-out, right 0.3s ease-out, bottom 0.3s ease-out !important;\n}\n\n/* ========== Launcher 未读徽章 ========== */\n.csk-launcher__badge {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: #EF4444;\n border: 2px solid #fff;\n box-shadow: 0 0 0 2px #fff;\n animation: csk-badge-in 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);\n pointer-events: none;\n}\n.csk-launcher__badge--hidden { display: none; }\n@keyframes csk-badge-in {\n from { transform: scale(0); }\n to { transform: scale(1); }\n}\n\n/* ========== Launcher 提示气泡 ========== */\n.csk-teaser {\n position: fixed;\n bottom: 90px;\n z-index: 9997;\n max-width: 240px;\n padding: 10px 14px;\n background: #fff;\n color: #1F2937;\n font-size: 13px;\n line-height: 1.5;\n border-radius: 12px;\n box-shadow: 0 4px 20px rgba(15, 23, 42, 0.15);\n animation: csk-teaser-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n cursor: pointer;\n user-select: none;\n}\n.csk-teaser--right { right: 24px; }\n.csk-teaser--left { left: 24px; }\n.csk-teaser::after {\n content: '';\n position: absolute;\n bottom: -6px;\n right: 28px;\n width: 12px;\n height: 12px;\n background: inherit;\n border-radius: 2px;\n transform: rotate(45deg);\n box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.08);\n}\n.csk-teaser--left::after { right: auto; left: 28px; }\n.csk-teaser__close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n padding: 2px 4px;\n line-height: 1;\n border-radius: 4px;\n}\n.csk-teaser__close:hover { color: #374151; }\n.csk-teaser--hidden { display: none; }\n@keyframes csk-teaser-in {\n from { opacity: 0; transform: translateY(8px) scale(0.95); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n/* ========== 消息反馈按钮(👍 / 👎) ========== */\n.csk-feedback-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n background: rgba(var(--csk-primary-rgb), 0.08);\n color: #9CA3AF;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n}\n.csk-feedback-btn:hover { background: rgba(var(--csk-primary-rgb), 0.18); color: var(--csk-primary); }\n.csk-feedback-btn--active {\n background: rgba(var(--csk-primary-rgb), 0.28);\n color: var(--csk-primary);\n}\n.csk-feedback-btn--active.down { background: #FEF2F2; color: #EF4444; }\n.csk-feedback-btn:active { transform: scale(0.9); }\n.csk-msg--streaming .csk-feedback-btn { display: none; }\n\n/* ========== 历史会话搜索框 ========== */\n.csk-history-panel__search-wrap {\n padding: 8px 10px;\n border-bottom: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-history-panel__search-wrap:focus-within {\n border-bottom-color: var(--csk-primary);\n}\n.csk-history-panel__search {\n width: 100%;\n padding: 7px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n font-family: inherit;\n color: #1F2937;\n background: var(--csk-bg-app);\n outline: none;\n transition: border-color 0.2s;\n}\n.csk-history-panel__search:focus { border-color: var(--csk-primary); }\n.csk-history-panel__search::placeholder { color: #9CA3AF; }\n\n/* ========== a11y 焦点指示 ========== */\n.csk-root :focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n}\n.csk-root button:focus-visible {\n outline: 2px solid var(--csk-primary);\n outline-offset: 2px;\n border-radius: inherit;\n}\n/* 弹窗打开时隐藏 launcher 上的焦点环 */\n.csk-launcher:focus-visible {\n outline: none;\n border-color: rgba(255, 255, 255, 0.75);\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.06),\n 0 4px 16px rgba(0, 0, 0, 0.10),\n 0 6px 24px rgba(var(--csk-primary-rgb), 0.28),\n 0 0 48px rgba(var(--csk-primary-rgb), 0.12),\n 0 0 0 4px rgba(var(--csk-primary-rgb), 0.3);\n}\n\n/* ========== a11y aria-live 播报区(视觉隐藏) ========== */\n.csk-sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0,0,0,0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n/* ========== 会话分组标题 ========== */\n.csk-history-group {\n margin-bottom: 4px;\n}\n.csk-history-group__label {\n font-size: 11px;\n font-weight: 600;\n color: #9CA3AF;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px 4px;\n user-select: none;\n}\n.csk-dark .csk-history-group__label { color: #6B7280; }\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-resize-handle { display: none !important; }\n .csk-window--hidden { transform: translateY(100%); }\n /* 移动端默认位置,仅在未被 JS 拖拽覆盖时生效 */\n .csk-launcher:not([style*="bottom"]) { bottom: 20px; }\n .csk-launcher--right:not([style*="bottom"]) { right: 20px; }\n .csk-launcher--left:not([style*="bottom"]) { left: 20px; }\n}\n`}(e),document.head.appendChild(D))}function q(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)})}function H(e){const n={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>n[e]||e)}function j(){return Date.now()}const R='';function P(e,n){const t=document.createElement("div");t.id="csk-launcher";const r=e.launcherTheme?" csk-launcher--glass":"";t.className=`csk-launcher csk-launcher--${"left-bottom"===e.position?"left":"right"}${r}`,t.setAttribute("title",e.title),t.setAttribute("aria-label",e.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=e.launcherIcon;const s=document.createElement("div");s.className="csk-launcher__badge csk-launcher__badge--hidden",t.appendChild(s);const o=function(e,n){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},n)}}(n,300);return t.addEventListener("click",o),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),o())}),t}function U(){return window.innerHeight-76}function Y(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--user",s.innerHTML='';const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.textContent=n;const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(t),o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),r}function O(e,n,t,r,s){const o=document.createElement("div");o.className="csk-msg csk-msg--ai",s&&(o.dataset.cskMsgId=s);const a=document.createElement("div");a.className="csk-msg__avatar csk-msg__avatar--ai",a.innerHTML=R;const i=document.createElement("div");i.className="csk-msg__content";const c=document.createElement("div");c.className="csk-msg__bubble",r?c.innerHTML=r(n):c.textContent=n;const l=document.createElement("div");return l.className="csk-msg__time",l.textContent=te(t),i.appendChild(c),i.appendChild(K(c,o)),i.appendChild(l),o.appendChild(a),o.appendChild(i),e.appendChild(o),G(c),o}const W='',X='';function K(e,n){const t=document.createElement("div");t.className="csk-msg__actions";const r=document.createElement("button");r.type="button",r.className="csk-action-btn",r.setAttribute("title",h("copy")),r.setAttribute("aria-label",h("copy")),r.innerHTML=W,r.addEventListener("click",async n=>{n.stopPropagation();const t=e.textContent||"";await V(t,r)});const s=document.createElement("button");s.type="button",s.className="csk-action-btn",s.setAttribute("title",h("retry")),s.setAttribute("aria-label",h("retry")),s.innerHTML=X,s.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:retry",{detail:{msgId:n.dataset.cskMsgId||""}}))});const o=document.createElement("button");o.type="button",o.className="csk-feedback-btn",o.setAttribute("title",h("feedback_up")),o.setAttribute("aria-label",h("feedback_up")),o.innerHTML='',o.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"up"}}))});const a=document.createElement("button");return a.type="button",a.className="csk-feedback-btn",a.setAttribute("title",h("feedback_down")),a.setAttribute("aria-label",h("feedback_down")),a.innerHTML='',a.addEventListener("click",e=>{e.stopPropagation();const t=n.closest(".csk-window");t&&t.dispatchEvent(new CustomEvent("csk:feedback",{detail:{msgId:n.dataset.cskMsgId||"",value:"down"}}))}),t.appendChild(r),t.appendChild(s),t.appendChild(o),t.appendChild(a),t}function J(e,n){const t=e.querySelectorAll(".csk-feedback-btn");t.length<2||(t.forEach(e=>e.classList.remove("csk-feedback-btn--active","down")),"up"===n&&t[0]&&t[0].classList.add("csk-feedback-btn--active"),"down"===n&&t[1]&&t[1].classList.add("csk-feedback-btn--active","down"))}async function V(e,n){const t=n.innerHTML;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}n.innerHTML='',n.classList.add("csk-action-btn--done"),setTimeout(()=>{n.innerHTML=t,n.classList.remove("csk-action-btn--done")},1500)}catch(e){}}function G(e){e.querySelectorAll(".csk-md-code-block").forEach(e=>{if(e.querySelector(".csk-md-code-copy"))return;const n=e.querySelector("code"),t=document.createElement("button");t.type="button",t.className="csk-md-code-copy",t.setAttribute("title",h("copy")),t.setAttribute("aria-label",h("copy")),t.innerHTML=W,t.addEventListener("click",async e=>{e.stopPropagation(),await V((null==n?void 0:n.textContent)||"",t)}),e.appendChild(t)})}function Q(e,n){e.classList.remove("csk-msg--streaming");const t=n.querySelector(".csk-caret");t&&t.remove(),G(n)}function Z(e,n){const t=e.querySelector(".csk-sources");if(t&&t.remove(),!n||0===n.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const s=document.createElement("div");s.className="csk-sources__header";const o=document.createElement("span");o.className="csk-sources__title",o.textContent=`📚 ${h("source_count",{n:n.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",s.appendChild(o),s.appendChild(a),s.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const i=document.createElement("div");i.className="csk-sources__body";for(const e of n){const n=document.createElement("div");n.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=e.title||e.sourceName||"未知文档",e.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=e.snippet,n.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const s=[];e.sourceName&&s.push(e.sourceName),void 0!==e.chunkIndex&&s.push(`分块 #${e.chunkIndex}`),void 0!==e.score&&s.push(`相关度 ${(100*e.score).toFixed(0)}%`),r.textContent=s.join(" · "),n.appendChild(t),n.appendChild(r),i.appendChild(n)}r.appendChild(s),r.appendChild(i);const c=e.querySelector(".csk-msg__time");c&&c.parentNode?c.parentNode.insertBefore(r,c):e.appendChild(r)}function ee(e,n,t,r,s,o,a){if(e.innerHTML="",0===n.length){const n=document.createElement("div");return n.className="csk-history-panel__empty",n.innerHTML=`\n 💬
\n ${h("history_empty")}
\n `,void e.appendChild(n)}const i=function(e){const n=new Date,t=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),r=t-864e5,s=t-864e5*(n.getDay()||7)+864e5,o={today:[],yesterday:[],week:[],earlier:[]};for(const n of e){const e=n.lastMessageTime||n.createdAt,a=e?new Date(e).getTime():0;a>=t?o.today.push(n):a>=r?o.yesterday.push(n):a>=s?o.week.push(n):o.earlier.push(n)}const a=[];return o.today.length&&a.push({label:h("history_group_today"),items:o.today}),o.yesterday.length&&a.push({label:h("history_group_yesterday"),items:o.yesterday}),o.week.length&&a.push({label:h("history_group_week"),items:o.week}),o.earlier.length&&a.push({label:h("history_group_earlier"),items:o.earlier}),a}(n);for(const n of i){if(i.length>1){const t=document.createElement("div");t.className="csk-history-group";const r=document.createElement("div");r.className="csk-history-group__label",r.textContent=n.label,t.appendChild(r),e.appendChild(t)}for(const a of n.items){const n=document.createElement("div");n.className="csk-history-item";const i=a.chatId||a.id;o&&i===o&&n.classList.add("csk-history-item--active");const c=document.createElement("div");c.className="csk-history-item__info";const l=document.createElement("div");l.className="csk-history-item__id",a.lastMessagePreview?l.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:l.textContent=i;const d=document.createElement("div");d.className="csk-history-item__meta";const p=[];void 0!==a.messageCount&&p.push(`${a.messageCount} 条消息`),a.lastMessageTime?p.push(a.lastMessageTime):a.createdAt&&p.push(a.createdAt),d.textContent=p.join(" · "),c.appendChild(l),c.appendChild(d);const u=document.createElement("div");u.className="csk-history-item__actions";const g=document.createElement("button");g.className="csk-history-action csk-history-action--export",g.setAttribute("title",h("history_export")),g.innerHTML='',g.addEventListener("click",e=>{e.stopPropagation(),r(a.id)});const m=document.createElement("button");m.className="csk-history-action csk-history-action--delete",m.setAttribute("title",h("history_delete")),m.innerHTML='',m.addEventListener("click",e=>{e.stopPropagation(),s(a.id)}),u.appendChild(g),u.appendChild(m),n.appendChild(c),n.appendChild(u),n.addEventListener("click",()=>{t(i)}),e.appendChild(n)}}}function ne(e){e.scrollTop=e.scrollHeight}function te(e){const n=new Date(e);return`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function re(e){return`csk_history_${e}`}function se(e,n){try{let t=n;t.length>200&&(t=t.slice(50),o.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const r={messages:t,updatedAt:Date.now()};localStorage.setItem(re(e),JSON.stringify(r))}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?o.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):o.error("保存会话历史失败",e)}}function oe(e){try{localStorage.removeItem(re(e))}catch(e){o.warn("清空会话历史失败",e)}}const ae="\0CODEBLOCK_",ie="\0INLINECODE_";function ce(e){if(!e||"string"!=typeof e)return"";const n=[];let t=e;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>{const s=n.length,o=H(r.trimEnd()),a=t?` class="language-${H(t)}"`:"";return n.push(`${o}
`),`${ae}${s}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(e,n)=>{const t=r.length;return r.push(`${H(n)}`),`${ie}${t}\0`}),t=H(t),t=le(t,ae,n),t=le(t,ie,r);const s=t.split("\n"),o=[];let a=!1,i="",c=!1,l=[];for(let e=0;e')){p(),u(),g(),o.push(n);continue}const t=n.match(/^(#{1,6})\s+(.+)/);if(t){p(),u(),g();const e=t[1].length;o.push(`${t[2]}`);continue}const r=n.match(/^>\s?(.*)/);if(r){p(),u(),c||(c=!0,o.push('')),o.push(`${d(r[1])}
`);continue}c&&g();const m=n.match(/^[\-\*]\s+(.+)/);if(m){p(),g(),a&&"ul"===i||(u(),a=!0,i="ul",o.push('')),o.push(`- ${d(m[1])}
`);continue}const h=n.match(/^\d+\.\s+(.+)/);h?(p(),g(),a&&"ol"===i||(u(),a=!0,i="ol",o.push('')),o.push(`- ${d(h[1])}
`)):""!==n.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(n.trim())?(p(),u(),g(),o.push('
')):(u(),g(),l.push(d(n))):(p(),u())}return p(),u(),g(),o.join("\n");function d(e){return e=(e=(e=(e=(e=(e=e.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,n,t)=>`${n}`)}function p(){l.length>0&&(o.push(`${l.join("
")}
`),l=[])}function u(){a&&(o.push("ul"===i?"
":""),a=!1,i="")}function g(){c&&(o.push("
"),c=!1)}}function le(e,n,t){return e.replace(new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(e,n)=>t[parseInt(n)]||"")}let de,pe=null,ue=[],ge=null,me=null,he=null,ke=null,be=null,fe=null,ye=null,xe=null,ve=null,we=null,_e=null,Ee=null,Ce=null,Ie=!1,Le=null,$e=!0,Ae=[],Se="",Ne=!1;function Me(e,n){pe=e,ge=n.messagesContainer,me=n.inputEl,he=n.inputEl.parentElement,ke=n.sendBtn,be=n.clearBtn,fe=n.categorySelect,ye=n.historyPanel,xe=n.welcomeEl,ve=n.newMsgBtn,we=n.searchInput,_e=n.ariaLiveEl,Ee=n.showLoading,Ce=n.hideLoading,de=e.categoryId,Ne=e.enableRag,function(){if(!me||!ke)return;ke.addEventListener("click",()=>{Ie&&Le?Le.abort():Re()}),me.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||e.isComposing||(e.preventDefault(),Re())}),me.addEventListener("input",()=>{je(),function(){if(!me)return;me.style.height="auto",me.style.height=`${Math.min(me.scrollHeight,120)}px`}()}),me.addEventListener("focus",()=>{he&&he.classList.add("csk-input-wrap--focus")}),me.addEventListener("blur",()=>{he&&he.classList.remove("csk-input-wrap--focus")}),be&&be.addEventListener("click",()=>function(){if(!pe)return;if(!confirm(h("clear_confirm")))return;if(ue=[],ge){ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}be&&(be.style.display="none");He(),oe(pe.integrateId);const e=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();b(e),F(pe.integrateId,pe.userId,e),o.lifecycleClear(pe.integrateId),o.info(`新 chatId=${e}`)}())}(),function(){if(!ge)return;ge.addEventListener("scroll",()=>{if(!ge)return;const{scrollTop:e,scrollHeight:n,clientHeight:t}=ge;$e=n-e-t<80,$e&&De()}),ve&&ve.addEventListener("click",()=>{ge&&ne(ge),$e=!0,De()})}(),function(){if(!we)return;we.addEventListener("input",()=>{Se=we.value.trim().toLowerCase(),Be()})}(),e.showCategorySwitch&&fe&&async function(){if(!fe)return;try{const e=await async function(){const e=y("/category/tree");try{const n=await v(e);if(!n.ok)throw new w(_(n.status),`http_${n.status}`);const t=await n.json();return t.success&&Array.isArray(t.data)?(o.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(e){return e instanceof w?o.error(`加载分类树失败: ${e.message}`):o.error("加载分类树失败",e),[]}}();if(0===e.length)return;fe.innerHTML=``;const n=(e,t=0)=>{for(const r of e){const e=document.createElement("option");e.value=String(r.id),e.textContent=`${" ".repeat(t)}${r.name}`,void 0!==de&&String(r.id)===String(de)&&(e.selected=!0),fe.appendChild(e),r.children&&r.children.length>0&&n(r.children,t+1)}};n(e),o.info(`知识库分类加载成功 count=${e.length}`)}catch(e){o.error(h("category_load_error"),e)}}()}async function Fe(){if(pe&&ge&&(await N(),await async function(){if(!pe||!ge)return;const e=f();if(!e)return;try{const n=await $(e);n.messages.length>0&&(ue=n.messages.map((e,n)=>({id:q(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`从后端加载 ${ue.length} 条历史消息`),se(pe.integrateId,ue))}catch(e){o.warn("从后端加载历史消息失败",e)}}(),0===ue.length)){const e=function(e){try{const n=localStorage.getItem(re(e));if(!n)return[];const t=JSON.parse(n);return t&&Array.isArray(t.messages)?(o.info(`加载历史消息 integrateId=${e} count=${t.messages.length}`),t.messages):[]}catch(e){return o.warn("加载会话历史失败",e),[]}}(pe.integrateId);e.length>0&&(ue=e,Ue(),o.info(`从本地缓存恢复 ${e.length} 条消息`))}}function De(){ve&&ve.classList.add("csk-newmsg--hidden")}function Te(){ge&&($e?ne(ge):ve&&ve.classList.remove("csk-newmsg--hidden"))}function ze(e){ke&&("stop"===e?(ke.classList.add("csk-send-btn--stop"),ke.removeAttribute("disabled"),ke.setAttribute("title",h("stop")),ke.setAttribute("aria-label",h("stop")),ke.innerHTML=''):(ke.classList.remove("csk-send-btn--stop"),ke.setAttribute("title",h("send")),ke.setAttribute("aria-label",h("send")),ke.innerHTML='',je()))}function Be(){const e=null==ye?void 0:ye.querySelector("#csk-history-list");if(!e||!pe)return;ee(e,Se?Ae.filter(e=>(e.lastMessagePreview||e.chatId||e.id||"").toLowerCase().includes(Se)):Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{if(!confirm(h("history_delete_confirm")))return;await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),Be())},f())}function qe(e,n){if(!ge)return;const t=ue.find(n=>n.id===e&&"ai"===n.role);if(!t)return;const r=t.feedback===n?void 0:n;t.feedback=r;const s=ge.querySelector(`[data-csk-msg-id="${e}"]`);if(s&&J(s,r),pe&&se(pe.integrateId,ue),r){const n="up"===r?"THUMBS_UP":"THUMBS_DOWN";(async function(e,n){if(!k)return!1;const t=y("/feedback");try{const r=await v(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:String(e),conversationId:k.chatId,feedbackType:n})});return r.ok?(await r.json()).success||!1:(o.error(`反馈提交失败 status=${r.status}`),!1)}catch(e){return o.error("反馈提交异常",e),!1}})(String(e),n).then(n=>{n?o.info(`消息反馈已提交 msgId=${e} value=${r}`):o.warn(`消息反馈提交失败 msgId=${e}(本地状态已更新)`)})}else o.info(`消息反馈已取消 msgId=${e}`)}function He(){if(!xe)return;const e=ue.length>0||ge&&ge.querySelector(".csk-msg");xe.style.display=e?"none":""}function je(){if(!ke||!me)return;me.value.trim().length>0&&!Ie?ke.removeAttribute("disabled"):ke.setAttribute("disabled","true")}async function Re(){if(!me||!pe||Ie)return;const e=me.value.trim();if(""===e)return;me.value="",je(),me.style.height="auto";const n=j(),t={id:q(),role:"user",content:e,timestamp:n};ge&&Y(ge,e,n),ue.push(t),He(),be&&ue.length>0&&(be.style.display="inline-flex"),ge&&Te(),await Pe(e)}async function Pe(e){if(!pe||!ge)return;Ie=!0,ze("stop"),pe.chatId||await N();const n=j(),t=Ne;Ee&&Ee(),ge&&Te();const r=q();let s="";try{pe.streaming?s=await async function(e,n,t,r){Le=new AbortController;const s=Le.signal;return new Promise((o,a)=>{let i=null,c=null,l="",d=!1;C(e,e=>{if(l+=e,!d&&ge){Ce&&Ce();const{wrapper:e,bubble:t}=function(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--ai csk-msg--streaming",t&&(r.dataset.cskMsgId=t);const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--ai",s.innerHTML=R;const o=document.createElement("div");o.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",a.innerHTML="";const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=te(n),o.appendChild(a),o.appendChild(K(a,r)),o.appendChild(i),r.appendChild(s),r.appendChild(o),e.appendChild(r),{wrapper:r,bubble:a}}(ge,n,r);c=e,i=t,d=!0}i&&(i.textContent=l,function(e){if(e.querySelector(".csk-caret"))return;const n=document.createElement("span");n.className="csk-caret",n.setAttribute("aria-hidden","true"),e.appendChild(n)}(i)),ge&&Te()},()=>{if(c&&i){if(!d&&""===l)return void E(e).then(o).catch(a);l&&(i.innerHTML=ce(l)),Q(c,i)}o(l)},e=>{l.length>0?(i&&(i.innerHTML=ce(l+"\n\n"+h("stream_interrupted")),c&&Q(c,i)),o(l)):a(e)},de,t,s)})}(e,n,t,r):(s=await E(e),Ce&&Ce(),ge&&O(ge,s,n,ce,r));const a={id:r,role:"ai",content:s,timestamp:n};ue.push(a),se(pe.integrateId,ue),ge&&Te(),function(e){if(!_e)return;const n=e.length>120?e.substring(0,120)+"...":e;_e.textContent=h("new_msg_announce")+":"+n}(s),ge&&ge.dispatchEvent(new CustomEvent("csk:newMessage",{bubbles:!0,detail:{msg:a}})),t&&async function(e,n){try{const t=await I(e,de);if(t.length>0){const e=t.map(e=>{var n,t;return{documentId:e.documentId||"",title:e.title||"",sourceName:e.sourceName||"",chunkIndex:null!==(n=e.chunkIndex)&&void 0!==n?n:0,score:null!==(t=e.score)&&void 0!==t?t:0,snippet:e.snippet||""}});if(n.sources=e,ge){const n=ge.querySelector(".csk-msg--ai:last-of-type");n&&Z(n,e)}pe&&se(pe.integrateId,ue)}}catch(e){o.warn("获取引用来源失败",e)}}(e,a)}catch(e){Ce&&Ce();const n=e instanceof w?e.message:h("error_send");if(ge){const e=document.createElement("div");e.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${n}`,e.appendChild(t),ge.appendChild(e)}o.error(`发送失败 integrateId=${pe.integrateId}`,e)}finally{Ie=!1,Le=null,ze("send"),je()}}function Ue(){if(!ge)return;const e=ge.querySelector(".csk-history-panel");ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());for(const e of ue)if("user"===e.role)Y(ge,e.content,e.timestamp);else{const n=O(ge,e.content,e.timestamp,ce,e.id);e.sources&&e.sources.length>0&&Z(n,e.sources),e.feedback&&J(n,e.feedback)}$e=!0,ne(ge),be&&ue.length>0&&(be.style.display="inline-flex"),He(),e&&!ge.contains(e)&&ge.appendChild(e)}async function Ye(e){if(!pe||!ge)return;o.info(`切换到会话 conversationId=${e}`),b(e),F(pe.integrateId,pe.userId,e),ye&&ye.classList.add("csk-history-panel--hidden"),ue=[];ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());try{const n=await $(e);n.messages.length>0&&(ue=n.messages.map(e=>({id:q(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),Ue(),o.info(`加载会话 ${e} 的 ${ue.length} 条消息`),se(pe.integrateId,ue))}catch(n){o.warn(`加载会话消息失败 conversationId=${e}`,n)}be&&ue.length>0&&(be.style.display="inline-flex"),He()}let Oe=null,We=!1,Xe=null,Ke=null,Je=null,Ve=null,Ge=null,Qe=null,Ze=null,en=null,nn=null,tn=null,rn=null,sn=null,on=null,an=null,cn=null,ln=null,dn=null,pn=null;function un(){if(!cn||!Xe)return;const e=Xe.getBoundingClientRect(),n=an?"left"===an.side:"left-bottom"===(null==Oe?void 0:Oe.position);n?(cn.style.left=`${e.left}px`,cn.style.right="auto"):(cn.style.right=window.innerWidth-e.right+"px",cn.style.left="auto"),cn.style.bottom=window.innerHeight-e.top+8+"px",cn.classList.toggle("csk-teaser--left",!!n),cn.classList.toggle("csk-teaser--right",!n)}function gn(){if(!cn)return;cn.classList.add("csk-teaser--hidden"),cn.removeEventListener("click",mn);const e=cn.querySelector(".csk-teaser__close");e&&e.removeEventListener("click",hn)}function mn(e){e.target.closest(".csk-teaser__close")||(gn(),yn())}function hn(e){e.stopPropagation(),gn()}function kn(){cn&&!cn.classList.contains("csk-teaser--hidden")&&un()}const bn='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';function fn(e){"Escape"===e.key&&Ke&&!Ke.classList.contains("csk-window--hidden")&&xn(),function(e){if(!Ke||Ke.classList.contains("csk-window--hidden"))return;if("Tab"!==e.key)return;const n=Array.from(Ke.querySelectorAll(bn));if(0===n.length)return;const t=n[0],r=n[n.length-1];e.shiftKey?document.activeElement===t&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),t.focus())}(e)}function yn(){Ke&&(Ke.classList.remove("csk-window--hidden"),gn(),dn&&dn.classList.add("csk-launcher__badge--hidden"),setTimeout(()=>{Ve&&Ve.focus()},80))}function xn(){Ke&&Ke.classList.add("csk-window--hidden")}function vn(){Ke&&(Ke.classList.contains("csk-window--hidden")?yn():xn())}function wn(e){return`csk_size_${e}`}function _n(e){return`csk_position_${e}`}function En(e){return`csk_launcher_pos_${e}`}function Cn(e){Ke&&(Ke.classList.remove("csk-window--right","csk-window--left"),Ke.classList.add(`csk-window--${e}`),cn&&(cn.classList.remove("csk-teaser--right","csk-teaser--left"),cn.classList.add(`csk-teaser--${e}`)))}const In={init:function(e){if(We)return void o.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(e){var n,t,r,s,i,g,m,h,k,b,f,y;if(!e.integrateId||"string"!=typeof e.integrateId&&"number"!=typeof e.integrateId||"string"==typeof e.integrateId&&""===e.integrateId.trim())return o.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!e.requestDomain||"string"!=typeof e.requestDomain||""===e.requestDomain.trim())return o.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(e.requestDomain)}catch(n){return o.error(`requestDomain 不是合法的 URL 格式:${e.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const x=String(e.integrateId).trim(),v=e.launcherTheme||void 0;let w=e.launcherIcon||a,_=e.primaryColor||"#4F46E5";v&&!e.launcherIcon&&(w={"dream-purple":c,"mint-tech":l,"coral-peach":d,"sky-blue":p}[v]||a,e.primaryColor||(_=u[v]||"#4F46E5"));const E={integrateId:x,requestDomain:e.requestDomain.replace(/\/+$/,""),userId:e.userId,categoryId:e.categoryId,showCategorySwitch:null!==(n=e.showCategorySwitch)&&void 0!==n&&n,title:e.title||"AI 智能助手",width:null!==(t=e.width)&&void 0!==t?t:380,height:Math.max(300,null!==(r=e.height)&&void 0!==r?r:520),position:"left-bottom"===e.position?"left-bottom":"right-bottom",primaryColor:_,launcherTheme:v,launcherIcon:w,showClear:null===(s=e.showClear)||void 0===s||s,showAdminPanel:null!==(i=e.showAdminPanel)&&void 0!==i&&i,quickReplies:Array.isArray(e.quickReplies)?e.quickReplies.map(e=>String(e).trim()).filter(Boolean):[],theme:"dark"===e.theme?"dark":"light",showTeaser:null===(g=e.showTeaser)||void 0===g||g,teaserText:"string"==typeof e.teaserText&&e.teaserText.trim()||"",resizable:null===(m=e.resizable)||void 0===m||m,streaming:null===(h=e.streaming)||void 0===h||h,enableRag:null===(k=e.enableRag)||void 0===k||k,rewriteStrategy:e.rewriteStrategy||"REWRITE",locale:e.locale||"zh-CN",debug:null===(b=e.debug)||void 0===b||b,sound:null!==(f=e.sound)&&void 0!==f&&f,notification:null!==(y=e.notification)&&void 0!==y&&y,onError:"function"==typeof e.onError?e.onError:void 0,onReady:"function"==typeof e.onReady?e.onReady:void 0,onMessage:"function"==typeof e.onMessage?e.onMessage:void 0,token:e.token,roles:e.roles,chatId:""};return o.info(`配置解析完成 integrateId(=roleId)=${E.integrateId} userId(=accountId)=${E.userId||"(未设置)"} requestDomain=${E.requestDomain}`),E}(e);if(!t)return;var s;Oe=t,function(e){if(g[e])m=e;else{const n=e.split("-")[0],t=Object.keys(g).find(e=>e.startsWith(n));t&&(m=t)}}(Oe.locale),s=Oe.debug,n=s,r(Oe.onError),function(e){k=e}(Oe),B(Oe),Xe=P(Oe,vn),document.body.appendChild(Xe),dn=Xe.querySelector(".csk-launcher__badge"),function(e,n){try{const t=localStorage.getItem(En(e));if(!t)return;const r=JSON.parse(t);if("left"!==r.side&&"right"!==r.side||"number"!=typeof r.bottom)return;const s=window.innerHeight-76,o=Math.max(16,Math.min(r.bottom,s));n.classList.remove("csk-launcher--right","csk-launcher--left"),n.classList.add(`csk-launcher--${r.side}`),n.style.bottom=`${o}px`,an={side:r.side,bottom:o}}catch(e){}}(Oe.integrateId,Xe),sn=function(e,n,t){let r=!1,s=0,o=0,a=!1,i=0,c=0,l=0,d=!1;function p(){const n=parseFloat(getComputedStyle(e).bottom);return isNaN(n)?24:n}function u(n,t){if(d)return;r=!0,a=!1,s=n,o=t,i=p();const u=e.style,g=getComputedStyle(e);c=u.right?parseFloat(u.right):parseFloat(g.right),l=u.left?parseFloat(u.left):parseFloat(g.left)}function g(n,t,d){if(!r)return;const p=n-s,u=t-o;if(!a){if(Math.abs(p)<5&&Math.abs(u)<5)return;a=!0,e.classList.add("csk-launcher--dragging"),e.classList.remove("csk-launcher--right","csk-launcher--left"),e.style.transition="none",!isNaN(c)&&c>=0&&isNaN(l)?(e.style.right=`${c}px`,e.style.left="auto"):!isNaN(l)&&l>=0&&(e.style.left=`${l}px`,e.style.right="auto")}if(a){d.preventDefault();const n=Math.max(16,Math.min(i-u,U()));e.style.bottom=`${n}px`}}function m(){if(!r)return;if(r=!1,!a)return;const n=parseFloat(e.style.bottom)||p(),s=Math.max(16,Math.min(n,U())),o=e.getBoundingClientRect(),i=o.left+o.width/2<=window.innerWidth/2?"left":"right";e.classList.remove("csk-launcher--dragging"),e.classList.add(`csk-launcher--${i}`,"csk-launcher--snap"),e.style.left="",e.style.right="",e.style.bottom=`${s}px`,d=!0;const c=()=>{e.removeEventListener("transitionend",c),e.classList.remove("csk-launcher--snap"),e.style.transition="",d=!1};e.addEventListener("transitionend",c),setTimeout(()=>{d&&c()},350);const l=n=>{n.stopPropagation(),e.removeEventListener("click",l,!0)};e.addEventListener("click",l,!0);const u=e.querySelector(".csk-launcher__badge");u&&(u.style.display=""),t&&t({side:i,bottom:s})}function h(e){u(e.clientX,e.clientY)}function k(e){g(e.clientX,e.clientY,e)}function b(){m()}function f(e){1===e.touches.length&&u(e.touches[0].clientX,e.touches[0].clientY)}function y(e){1===e.touches.length&&g(e.touches[0].clientX,e.touches[0].clientY,e)}function x(){m()}return e.addEventListener("mousedown",h),document.addEventListener("mousemove",k),document.addEventListener("mouseup",b),e.addEventListener("touchstart",f,{passive:!0}),document.addEventListener("touchmove",y,{passive:!1}),document.addEventListener("touchend",x),()=>{e.removeEventListener("mousedown",h),document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",b),e.removeEventListener("touchstart",f),document.removeEventListener("touchmove",y),document.removeEventListener("touchend",x)}}(Xe,0,e=>{an=e,function(e,n){try{localStorage.setItem(En(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e),function(){if(!Ke)return;Ke.style.left="",Ke.style.top="",Ke.style.right="",Ke.style.bottom=""}(),Cn(e.side),cn&&!cn.classList.contains("csk-teaser--hidden")&&un()}),an&&Cn(an.side);const i=function(e){const n=document.createElement("div");n.id="csk-window",n.className=`csk-root csk-window csk-window--${"left-bottom"===e.position?"left":"right"} csk-window--hidden${"dark"===e.theme?" csk-dark":""}`,n.setAttribute("role","dialog"),n.setAttribute("aria-label",e.title),n.setAttribute("aria-modal","false");const t=document.createElement("div");t.className="csk-header";const r=document.createElement("div");r.className="csk-header__left";const s=document.createElement("div");s.className="csk-header__avatar",s.innerHTML=R;const o=document.createElement("div");o.className="csk-header__info";const a=document.createElement("span");a.className="csk-header__title",a.textContent=e.title;const i=document.createElement("span");i.className="csk-header__status",i.innerHTML=`${h("status_online")}`,o.appendChild(a),o.appendChild(i),r.appendChild(s),r.appendChild(o);const c=document.createElement("div");c.className="csk-header__actions";const l=document.createElement("button");l.className="csk-history-btn",l.setAttribute("title",h("history_title")),l.innerHTML='';const d=document.createElement("button");d.className="csk-header__btn csk-header__btn--minimize",d.setAttribute("title",h("minimize")),d.innerHTML='',d.addEventListener("click",()=>{n.classList.add("csk-window--hidden")});const p=document.createElement("button");p.className="csk-header__btn csk-header__btn--close",p.setAttribute("title",h("close")),p.innerHTML='',p.addEventListener("click",()=>{n.classList.add("csk-window--hidden")}),c.appendChild(l),c.appendChild(d),c.appendChild(p),t.appendChild(r),t.appendChild(c);const u=document.createElement("div");u.id="csk-messages",u.className="csk-messages";const g=document.createElement("div");if(g.className="csk-welcome",g.innerHTML=`\n ${R}
\n ${h("welcome_title")}
\n ${h("welcome_desc")}
\n `,e.quickReplies.length>0){const t=document.createElement("div");t.className="csk-quick-replies";for(const r of e.quickReplies){const e=document.createElement("button");e.type="button",e.className="csk-quick-reply",e.textContent=r,e.addEventListener("click",()=>{n.dispatchEvent(new CustomEvent("csk:quickReply",{detail:{text:r}}))}),t.appendChild(e)}g.appendChild(t)}u.appendChild(g);const m=document.createElement("button");m.type="button",m.className="csk-newmsg csk-newmsg--hidden",m.innerHTML=`\n \n ${h("new_message")}\n `,n.appendChild(m);const k=document.createElement("div");k.className="csk-history-panel csk-history-panel--hidden",k.innerHTML=`\n \n \n \n
\n \n `,u.appendChild(k);const b=k.querySelector("#csk-history-back");b&&b.addEventListener("click",()=>{k.classList.add("csk-history-panel--hidden")}),l.addEventListener("click",e=>{e.stopPropagation();const t=k.classList.contains("csk-history-panel--hidden");k.classList.toggle("csk-history-panel--hidden"),t&&n.dispatchEvent(new CustomEvent("csk:loadHistory"))});let f=null;if(e.showCategorySwitch){const e=document.createElement("div");e.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",f=document.createElement("select"),f.id="csk-category-select",f.className="csk-category-select",f.innerHTML=``,f.addEventListener("change",()=>{const e=f.value;n.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:e?Number(e):void 0}}))}),e.appendChild(r),e.appendChild(f),n.appendChild(t),n.appendChild(u),n.appendChild(e)}else n.appendChild(t),n.appendChild(u);const y=document.createElement("div");y.className="csk-input-area";const x=document.createElement("div");x.className="csk-input-wrap";const v=document.createElement("textarea");v.id="csk-input",v.className="csk-input",v.setAttribute("placeholder",h("placeholder")),v.setAttribute("rows","1"),v.setAttribute("autofocus","");const w=document.createElement("button");w.id="csk-send-btn",w.className="csk-send-btn",w.setAttribute("title",h("send")),w.setAttribute("disabled","true"),w.innerHTML='',x.appendChild(v),x.appendChild(w),y.appendChild(x),n.appendChild(y);let _=null;e.showClear&&(_=document.createElement("button"),_.className="csk-clear-btn",_.textContent=h("clear"),_.style.display="none",n.insertBefore(_,y));let E=null;const C=document.createElement("div");C.className="csk-sr-only",C.setAttribute("aria-live","polite"),C.setAttribute("aria-atomic","true"),n.appendChild(C);const I=k.querySelector("#csk-history-search"),L=document.createElement("div");L.className=`csk-teaser csk-teaser--${"left-bottom"===e.position?"left":"right"} csk-teaser--hidden`,L.setAttribute("role","status"),L.innerHTML=`\n \n ${e.teaserText||h("teaser_text")}\n `;const $=document.createElement("div");return $.className="csk-resize-handle",$.setAttribute("aria-label",h("resize")),$.innerHTML='',n.appendChild($),{window:n,messagesContainer:u,inputEl:v,sendBtn:w,clearBtn:_,categorySelect:f,historyPanel:k,welcomeEl:g,newMsgBtn:m,teaserEl:L,resizeHandle:$,searchInput:I,ariaLiveEl:C,showLoading:function(){if(E)return E.style.display="flex",E;const e=document.createElement("div");return e.className="csk-loading",e.innerHTML=`\n ${R}
\n \n `,u.appendChild(e),E=e,e},hideLoading:function(){E&&E.parentNode&&(E.parentNode.removeChild(E),E=null)}}}(Oe);Ke=i.window,Je=i.messagesContainer,Ve=i.inputEl,Ge=i.sendBtn,Qe=i.clearBtn,Ze=i.categorySelect,en=i.historyPanel,nn=i.showLoading,tn=i.hideLoading,document.body.appendChild(Ke),cn=i.teaserEl,document.body.appendChild(cn),un();const b=Ke.querySelector(".csk-header");if(b&&(rn=function(e,n,t){let r=!1,s=0,o=0,a=0,i=0;const c=e=>{if(e.target.closest("button"))return;r=!0,s=e.clientX,o=e.clientY;const t=n.getBoundingClientRect();a=s-t.left,i=o-t.top,document.addEventListener("mousemove",l),document.addEventListener("mouseup",d)},l=e=>{if(!r)return;const t=e.clientX-a,s=e.clientY-i,o=window.innerWidth-n.offsetWidth,c=window.innerHeight-n.offsetHeight;n.style.right="auto",n.style.bottom="auto",n.style.left=`${Math.max(0,Math.min(t,o))}px`,n.style.top=`${Math.max(0,Math.min(s,c))}px`},d=()=>{if(r=!1,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d),t){const e=n.getBoundingClientRect();t({x:e.left,y:e.top})}};return e.addEventListener("mousedown",c),()=>{e.removeEventListener("mousedown",c),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d)}}(b,Ke,e=>{!function(e,n){try{localStorage.setItem(_n(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e)})),function(e,n){try{const t=localStorage.getItem(_n(e));if(!t)return;const r=JSON.parse(t);if("number"!=typeof r.x||"number"!=typeof r.y)return;const s=window.innerWidth-n.offsetWidth,o=window.innerHeight-n.offsetHeight,a=Math.max(0,Math.min(r.x,s)),i=Math.max(0,Math.min(r.y,o));n.style.right="auto",n.style.bottom="auto",n.style.left=`${a}px`,n.style.top=`${i}px`}catch(e){}}(Oe.integrateId,Ke),Oe.resizable){const e=i.resizeHandle;on=function(e,n,t){let r=!1,s=0,o=0,a=0,i=0;const c=(e,t)=>{r=!0,s=e,o=t;const c=n.getBoundingClientRect();a=c.width,i=c.height,n.classList.add("csk-window--resizing"),document.addEventListener("mousemove",p),document.addEventListener("mouseup",u),document.addEventListener("touchmove",h,{passive:!1}),document.addEventListener("touchend",k)},l=(e,t,c)=>{if(!r)return;c&&c.preventDefault();const l=e-s,d=t-o,p=Math.max(300,Math.min(a+l,window.innerWidth-24)),u=Math.max(300,Math.min(i+d,window.innerHeight-24));n.style.width=`${p}px`,n.style.height=`${u}px`,n.style.setProperty("--csk-window-width",`${p}px`),n.style.setProperty("--csk-window-height",`${u}px`),n.style.bottom="",n.style.right=""},d=()=>{if(!r)return;r=!1,n.classList.remove("csk-window--resizing"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",u),document.removeEventListener("touchmove",h),document.removeEventListener("touchend",k);const e=n.getBoundingClientRect();t&&t({width:e.width,height:e.height})};function p(e){l(e.clientX,e.clientY,e)}function u(){d()}function g(e){e.preventDefault(),e.stopPropagation(),c(e.clientX,e.clientY)}function m(e){e.preventDefault(),e.stopPropagation(),1===e.touches.length&&c(e.touches[0].clientX,e.touches[0].clientY)}function h(e){1===e.touches.length&&l(e.touches[0].clientX,e.touches[0].clientY,e)}function k(){d()}return e.addEventListener("mousedown",g),e.addEventListener("touchstart",m,{passive:!1}),()=>{e.removeEventListener("mousedown",g),e.removeEventListener("touchstart",m),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",u),document.removeEventListener("touchmove",h),document.removeEventListener("touchend",k)}}(e,Ke,e=>{!function(e,n){try{localStorage.setItem(wn(e),JSON.stringify(n))}catch(e){}}(Oe.integrateId,e)}),function(e,n){try{const t=localStorage.getItem(wn(e));if(!t)return;const r=JSON.parse(t);if("number"!=typeof r.width||"number"!=typeof r.height)return;const s=Math.max(300,Math.min(r.width,window.innerWidth-24)),o=Math.max(300,Math.min(r.height,window.innerHeight-24));n.style.width=`${s}px`,n.style.height=`${o}px`,n.style.setProperty("--csk-window-width",`${s}px`),n.style.setProperty("--csk-window-height",`${o}px`)}catch(e){}}(Oe.integrateId,Ke)}if(Me(Oe,{messagesContainer:Je,inputEl:Ve,sendBtn:Ge,clearBtn:Qe,categorySelect:Ze,historyPanel:en,welcomeEl:i.welcomeEl,newMsgBtn:i.newMsgBtn,searchInput:i.searchInput,ariaLiveEl:i.ariaLiveEl,showLoading:nn,hideLoading:tn}),Ke.addEventListener("csk:categoryChange",e=>{var n,t;n=e.detail.categoryId,de=n,Ne=null===(t=null==pe?void 0:pe.enableRag)||void 0===t||t,o.lifecycleCategoryChange(null!=n?n:"全部")}),Ke.addEventListener("csk:loadHistory",()=>{!async function(){if(!ye||!pe)return;const e=ye.querySelector("#csk-history-list");if(e){e.innerHTML='加载中...
';try{const n=await L(1,50,pe.userId,pe.integrateId);Ae=n.list.map(e=>({id:e.conversationId||"",chatId:e.conversationId||"",messageCount:e.messageCount,lastMessageTime:e.lastMessageTime,lastMessagePreview:e.lastMessagePreview,createdAt:e.firstMessageTime||e.createdAt})),Se="",we&&(we.value=""),ee(e,Ae,e=>{Ye(e)},e=>{window.open(S(e),"_blank")},async e=>{confirm(h("history_delete_confirm"))&&await A(e)&&(e===f()&&(ue=[],ge&&ge.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove()),be&&(be.style.display="none"),He()),Ae=Ae.filter(n=>(n.chatId||n.id)!==e),Be())},f())}catch(n){o.error(h("history_load_error"),n),e.innerHTML=`⚠
${h("history_load_error")}
`}}}()}),Ke.addEventListener("csk:quickReply",e=>{var n;n=e.detail.text,!me||Ie?Promise.resolve():(me.value=n,je(),Re())}),Ke.addEventListener("csk:retry",e=>{!async function(e){if(!pe||!ge||Ie)return;const n=ue.findIndex(n=>n.id===e&&"ai"===n.role);if(n<0)return;let t="";for(let e=n-1;e>=0;e--)if("user"===ue[e].role){t=ue[e].content;break}if(!t)return;const r=ue.splice(n),s=new Set(r.map(e=>e.id));ge.querySelectorAll(".csk-msg").forEach(e=>{const n=e.dataset.cskMsgId;n&&s.has(n)&&e.remove()}),se(pe.integrateId,ue),He(),await Pe(t)}(e.detail.msgId)}),Ke.addEventListener("csk:feedback",e=>{qe(e.detail.msgId,e.detail.value)}),Ke.addEventListener("csk:newMessage",e=>{var n;if(Ke&&Ke.classList.contains("csk-window--hidden")&&(dn&&dn.classList.remove("csk-launcher__badge--hidden"),(null==Oe?void 0:Oe.sound)&&function(){try{pn||(pn=new(window.AudioContext||window.webkitAudioContext));const e=pn;if("suspended"===e.state)return void e.resume();const n=e.currentTime;[0,.15].forEach((t,r)=>{const s=e.createOscillator(),o=e.createGain();s.type="sine",s.frequency.value=0===r?880:1100,o.gain.setValueAtTime(.15,n+t),o.gain.exponentialRampToValueAtTime(.001,n+t+.12),s.connect(o),o.connect(e.destination),s.start(n+t),s.stop(n+t+.12)})}catch(e){}}(),(null==Oe?void 0:Oe.notification)&&function(){try{if(!("Notification"in window))return;"granted"===Notification.permission?new Notification((null==Oe?void 0:Oe.title)||"AI 智能助手",{body:"收到新消息",icon:void 0,silent:!0}):"denied"!==Notification.permission&&Notification.requestPermission()}catch(e){}}()),(null==Oe?void 0:Oe.onMessage)&&(null===(n=e.detail)||void 0===n?void 0:n.msg))try{Oe.onMessage(e.detail.msg)}catch(e){}}),document.addEventListener("keydown",fn),window.addEventListener("resize",kn),We=!0,o.lifecycleInit(Oe.integrateId,Oe.requestDomain),Oe.onReady)try{Oe.onReady()}catch(e){}Oe.showTeaser&&(ln=setTimeout(()=>{Ke&&Ke.classList.contains("csk-window--hidden")&&function(){if(!cn)return;un(),cn.classList.remove("csk-teaser--hidden"),cn.addEventListener("click",mn);const e=cn.querySelector(".csk-teaser__close");e&&e.addEventListener("click",hn)}()},1500)),Fe().catch(e=>{o.warn("chatId 初始化失败,将在发送消息时重试",e)})},destroy:function(){if(!We)return;ln&&(clearTimeout(ln),ln=null),gn(),cn&&cn.parentNode&&(cn.parentNode.removeChild(cn),cn=null),Xe&&Xe.parentNode&&(Xe.parentNode.removeChild(Xe),Xe=null),Ke&&Ke.parentNode&&(Ke.parentNode.removeChild(Ke),Ke=null),rn&&(rn(),rn=null),sn&&(sn(),sn=null),on&&(on(),on=null),an=null,D&&D.parentNode&&(D.parentNode.removeChild(D),D=null),document.querySelectorAll("style[data-csk-sdk]").forEach(e=>e.remove()),document.removeEventListener("keydown",fn),window.removeEventListener("resize",kn),r(void 0);const e=null==Oe?void 0:Oe.integrateId;Oe=null,We=!1,Je=null,Ve=null,Ge=null,Qe=null,Ze=null,en=null,nn=null,tn=null,dn=null,pn=null,k=null,o.lifecycleDestroy(e||"")},open:yn,close:xn,toggle:vn,clearHistory:function(){Oe&&(Qe?Qe.click():confirm("确定清空所有对话记录?")&&oe(Oe.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=In),In}();
//# sourceMappingURL=chatbot-sdk.min.js.map
diff --git a/src/main/resources/static/sdk/test.html b/src/main/resources/static/sdk/test.html
index c1b6f94..d1cac46 100644
--- a/src/main/resources/static/sdk/test.html
+++ b/src/main/resources/static/sdk/test.html
@@ -166,12 +166,32 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -179,25 +199,25 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
-
-
+
+
-
磨砂玻璃 + 呼吸发光 + 跳动气泡
+
磨砂玻璃 + 呼吸发光
-
-
+
+
@@ -220,9 +240,10 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
1. integrateId 填写客服角色 ID(数字,对应后端 roleId)
2. userId 填写外部用户ID(对应后端 accountId)
3. chatId 自动管理:从 /conversation/list 获取或自动生成
- 4. 对话历史从后端加载(点击头部时钟图标查看)
- 5. AI 回复支持 Markdown 渲染
- 6. SDK 默认启用 RAG 检索;开启 showCategorySwitch 可选择知识库分类
+ 4. 拖拽窗口右下角手柄可缩放窗口,尺寸自动保存
+ 5. 对话历史从后端加载(点击头部时钟图标查看)
+ 6. AI 回复支持 Markdown 渲染
+ 7. SDK 默认启用 RAG 检索;开启 showCategorySwitch 可选择知识库分类
@@ -324,12 +345,15 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
primaryColor: getEl('cfg-color').value,
position: getEl('cfg-pos').value,
width: parseInt(getEl('cfg-width').value) || 380,
+ height: parseInt(getEl('cfg-height').value) || 520,
+ resizable: getEl('cfg-resizable').value === '1',
streaming: getEl('cfg-stream').value === '1',
locale: getEl('cfg-locale').value,
showCategorySwitch: getEl('cfg-cat').value === '1',
enableRag: getEl('cfg-rag').value === '1',
debug: getEl('cfg-debug').value === '1',
- showClear: true,
+ theme: getEl('cfg-theme-mode').value,
+ showClear: getEl('cfg-clear').value === '1',
launcherTheme: getEl('cfg-theme').value || undefined,
};
// 有 Token 时传入鉴权参数
@@ -430,12 +454,16 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
const SDK_DEFAULTS = {
title: 'AI 智能助手',
width: 380,
+ height: 520,
position: 'right-bottom',
primaryColor: '#4F46E5',
streaming: true,
locale: 'zh-CN',
showCategorySwitch: false,
enableRag: true,
+ resizable: true,
+ theme: 'light',
+ showClear: true,
};
// 生成 Script 片段代码(纯文本)
@@ -465,10 +493,14 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
if (cfg.primaryColor !== SDK_DEFAULTS.primaryColor) params.push(' primaryColor: ' + JSON.stringify(cfg.primaryColor) + ', // 主色调');
if (cfg.position !== SDK_DEFAULTS.position) params.push(' position: ' + JSON.stringify(cfg.position) + ', // 悬浮按钮位置');
if (cfg.width !== SDK_DEFAULTS.width) params.push(' width: ' + cfg.width + ', // 弹窗宽度(px)');
+ if (cfg.height !== SDK_DEFAULTS.height) params.push(' height: ' + cfg.height + ', // 弹窗高度(px),最小 300');
+ if (cfg.resizable !== SDK_DEFAULTS.resizable) params.push(' resizable: ' + cfg.resizable + ', // 允许拖拽缩放窗口');
+ if (cfg.theme !== SDK_DEFAULTS.theme) params.push(' theme: ' + JSON.stringify(cfg.theme) + ', // 主题模式');
if (cfg.streaming !== SDK_DEFAULTS.streaming) params.push(' streaming: ' + cfg.streaming + ', // 是否启用流式输出');
if (cfg.locale !== SDK_DEFAULTS.locale) params.push(' locale: ' + JSON.stringify(cfg.locale) + ', // 界面语言');
if (cfg.showCategorySwitch !== SDK_DEFAULTS.showCategorySwitch) params.push(' showCategorySwitch: ' + cfg.showCategorySwitch + ', // 是否显示知识库切换');
if (cfg.enableRag !== SDK_DEFAULTS.enableRag) params.push(' enableRag: ' + cfg.enableRag + ', // 启用 RAG 知识库检索');
+ if (cfg.showClear !== SDK_DEFAULTS.showClear) params.push(' showClear: ' + cfg.showClear + ', // 显示清空按钮');
if (cfg.launcherTheme) params.push(' launcherTheme: ' + JSON.stringify(cfg.launcherTheme) + ', // 悬浮按钮主题(磨砂玻璃质感)');
// debug 强制 false(生产环境推荐),无论面板当前值
params.push(' debug: false // 调试日志,生产环境建议关闭');
@@ -660,7 +692,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans S
setEl('footer-time',new Date().toLocaleTimeString());
if(typeof window.ChatbotSDK!=='undefined'){const tag=getEl('tag-sdk');tag.className='tag tag--pass';tag.textContent='✅ SDK 已加载';}
// 监听配置表单变化,实时刷新接入代码
- ['cfg-iid','cfg-domain','cfg-uid','cfg-title','cfg-color','cfg-pos','cfg-width','cfg-stream','cfg-locale','cfg-cat','cfg-debug','cfg-theme','cfg-apikey','cfg-token'].forEach(function(id){
+ ['cfg-iid','cfg-domain','cfg-uid','cfg-title','cfg-color','cfg-pos','cfg-width','cfg-height','cfg-resizable','cfg-stream','cfg-locale','cfg-cat','cfg-rag','cfg-clear','cfg-debug','cfg-theme','cfg-theme-mode','cfg-apikey','cfg-token'].forEach(function(id){
const el=getEl(id);
if(!el)return;
el.addEventListener('input', generateCode);