@ai-group/chat-sdk 2.1.13 → 3.0.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +564 -10
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js +92 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js +137 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -1
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +41 -5
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -3
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.d.ts +11 -1
- package/dist/cjs/components/XAdkChatbot/index.js +294 -108
- package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +10 -0
- package/dist/cjs/components/XAdkChatbot/styles.js +67 -3
- package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +394 -0
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +64 -0
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +199 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +117 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +64 -0
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +25 -0
- package/dist/cjs/components/XAdkProvider/compound/Header.js +70 -0
- package/dist/cjs/components/XAdkProvider/compound/Header.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +17 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +70 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +27 -0
- package/dist/cjs/components/XAdkProvider/compound/Sender.js +55 -0
- package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +151 -0
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +6 -0
- package/dist/cjs/components/XAdkProvider/compound/Welcome.js +60 -0
- package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/index.d.ts +17 -0
- package/dist/cjs/components/XAdkProvider/compound/index.js +55 -0
- package/dist/cjs/components/XAdkProvider/compound/index.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +36 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js +49 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +40 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +42 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +29 -0
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js +40 -0
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/index.d.ts +7 -0
- package/dist/cjs/components/XAdkProvider/context/index.js +28 -0
- package/dist/cjs/components/XAdkProvider/context/index.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/index.d.ts +55 -0
- package/dist/cjs/components/XAdkProvider/index.js +221 -0
- package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
- package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -1
- package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
- package/dist/cjs/components/XAdkSender/FileGallery.d.ts +8 -0
- package/dist/cjs/components/XAdkSender/FileGallery.js +381 -0
- package/dist/cjs/components/XAdkSender/FileGallery.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.js +95 -81
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/styles.d.ts +0 -9
- package/dist/cjs/components/XAdkSender/styles.js +21 -150
- package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +1 -1
- package/dist/cjs/components/XAiConversations/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.js +5 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +180 -0
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +7 -0
- package/dist/cjs/components/XAiThoughtChain/index.d.ts +4 -0
- package/dist/cjs/components/XAiThoughtChain/index.js +155 -0
- package/dist/cjs/components/XAiThoughtChain/index.js.map +7 -0
- package/dist/cjs/components/XAiThoughtChain/styles.d.ts +60 -0
- package/dist/cjs/components/XAiThoughtChain/styles.js +195 -0
- package/dist/cjs/components/XAiThoughtChain/styles.js.map +7 -0
- package/dist/cjs/hooks/useADKChat.d.ts +9 -3
- package/dist/cjs/hooks/useADKChat.js +246 -182
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/index.d.ts +25 -9
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/styles/common.js +1 -1
- package/dist/cjs/styles/common.js.map +2 -2
- package/dist/cjs/types/ChatHook.d.ts +81 -0
- package/dist/cjs/types/ChatHook.js +18 -0
- package/dist/cjs/types/ChatHook.js.map +7 -0
- package/dist/cjs/types/XAdkChatbot.d.ts +80 -15
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +10 -27
- package/dist/cjs/types/XAdkProvider.js.map +2 -2
- package/dist/cjs/types/XAdkSender.d.ts +18 -0
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +4 -2
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/XAiThoughtChain.d.ts +25 -0
- package/dist/cjs/types/XAiThoughtChain.js +18 -0
- package/dist/cjs/types/XAiThoughtChain.js.map +7 -0
- package/dist/cjs/types/index.d.ts +9 -8
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.js +11 -1
- package/dist/cjs/utils/index.js.map +2 -2
- package/dist/cjs/utils/parseAgentMessage.d.ts +81 -0
- package/dist/cjs/utils/parseAgentMessage.js +180 -0
- package/dist/cjs/utils/parseAgentMessage.js.map +7 -0
- package/dist/cjs/utils/umdEntry.d.ts +91 -0
- package/dist/cjs/utils/umdEntry.js +108 -6
- package/dist/cjs/utils/umdEntry.js.map +3 -3
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +485 -8
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js +104 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js +20 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +17 -15
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +7 -6
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.d.ts +11 -1
- package/dist/esm/components/XAdkChatbot/index.js +392 -174
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/styles.d.ts +10 -0
- package/dist/esm/components/XAdkChatbot/styles.js +23 -12
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +338 -0
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
- package/dist/esm/components/XAdkProvider/compound/Chatbot.js +47 -0
- package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +142 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +122 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +34 -0
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Header.d.ts +25 -0
- package/dist/esm/components/XAdkProvider/compound/Header.js +79 -0
- package/dist/esm/components/XAdkProvider/compound/Header.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +17 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.js +53 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +27 -0
- package/dist/esm/components/XAdkProvider/compound/Sender.js +41 -0
- package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js +142 -0
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +6 -0
- package/dist/esm/components/XAdkProvider/compound/Welcome.js +36 -0
- package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/index.d.ts +17 -0
- package/dist/esm/components/XAdkProvider/compound/index.js +13 -0
- package/dist/esm/components/XAdkProvider/compound/index.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/styles.d.ts +36 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js +10 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +23 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +23 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +29 -0
- package/dist/esm/components/XAdkProvider/context/SessionContext.js +22 -0
- package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/index.d.ts +7 -0
- package/dist/esm/components/XAdkProvider/context/index.js +9 -0
- package/dist/esm/components/XAdkProvider/context/index.js.map +1 -0
- package/dist/esm/components/XAdkProvider/index.d.ts +55 -0
- package/dist/esm/components/XAdkProvider/index.js +220 -0
- package/dist/esm/components/XAdkProvider/index.js.map +1 -0
- package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -2
- package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
- package/dist/esm/components/XAdkSender/FileGallery.d.ts +8 -0
- package/dist/esm/components/XAdkSender/FileGallery.js +236 -0
- package/dist/esm/components/XAdkSender/FileGallery.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.js +92 -109
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/styles.d.ts +0 -9
- package/dist/esm/components/XAdkSender/styles.js +14 -31
- package/dist/esm/components/XAdkSender/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +1 -1
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.js +2 -2
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +159 -0
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +1 -0
- package/dist/esm/components/XAiThoughtChain/index.d.ts +4 -0
- package/dist/esm/components/XAiThoughtChain/index.js +180 -0
- package/dist/esm/components/XAiThoughtChain/index.js.map +1 -0
- package/dist/esm/components/XAiThoughtChain/styles.d.ts +60 -0
- package/dist/esm/components/XAiThoughtChain/styles.js +40 -0
- package/dist/esm/components/XAiThoughtChain/styles.js.map +1 -0
- package/dist/esm/hooks/useADKChat.d.ts +9 -3
- package/dist/esm/hooks/useADKChat.js +75 -54
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/index.d.ts +25 -9
- package/dist/esm/index.js +28 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/styles/common.js +11 -11
- package/dist/esm/styles/common.js.map +1 -1
- package/dist/esm/types/ChatHook.d.ts +81 -0
- package/dist/esm/types/ChatHook.js +2 -0
- package/dist/esm/types/ChatHook.js.map +1 -0
- package/dist/esm/types/XAdkChatbot.d.ts +80 -15
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +10 -27
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +18 -0
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +4 -2
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/XAiThoughtChain.d.ts +25 -0
- package/dist/esm/types/XAiThoughtChain.js +2 -0
- package/dist/esm/types/XAiThoughtChain.js.map +1 -0
- package/dist/esm/types/index.d.ts +9 -8
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/index.js +7 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/parseAgentMessage.d.ts +81 -0
- package/dist/esm/utils/parseAgentMessage.js +286 -0
- package/dist/esm/utils/parseAgentMessage.js.map +1 -0
- package/dist/esm/utils/umdEntry.d.ts +91 -0
- package/dist/esm/utils/umdEntry.js +154 -16
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.css +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +20 -11
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -160
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -7
- package/dist/cjs/components/XAdkWebProvider/index.d.ts +0 -4
- package/dist/cjs/components/XAdkWebProvider/index.js +0 -372
- package/dist/cjs/components/XAdkWebProvider/index.js.map +0 -7
- package/dist/cjs/components/XAdkWebProvider/styles.js.map +0 -7
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -158
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -1
- package/dist/esm/components/XAdkWebProvider/index.d.ts +0 -4
- package/dist/esm/components/XAdkWebProvider/index.js +0 -480
- package/dist/esm/components/XAdkWebProvider/index.js.map +0 -1
- package/dist/esm/components/XAdkWebProvider/styles.js.map +0 -1
- /package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
- /package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/parseAgentMessage.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * 解析后的消息片段类型\n */\nexport interface ParsedPart {\n type: 'text' | 'planning' | 'replanning' | 'reasoning' | 'action_log' | 'final_result' | 'process_text';\n content: string;\n}\n\n/**\n * 解析规则配置\n */\nexport interface ParseAgentMessageOptions {\n /**\n * 解析模式\n * - 'xml': XML 标签模式 <reasoning>...</reasoning>\n * - 'comment': 注释标签模式 /*REASONING*\\/\n * - 'custom': 自定义正则模式\n */\n mode?: 'xml' | 'comment' | 'custom';\n\n /**\n * 自定义正则规则 (mode='custom' 时使用)\n * @example\n * [\n * { regex: /\\[REASONING\\]([\\s\\S]*?)\\[\\/REASONING\\]/g, type: 'reasoning' },\n * { regex: /\\[PLANNING\\]([\\s\\S]*?)\\[\\/PLANNING\\]/g, type: 'planning' }\n * ]\n */\n customPatterns?: Array<{\n regex: RegExp;\n type: ParsedPart['type'];\n }>;\n\n /**\n * 最终答案标记 (comment 模式使用)\n * @default '/*FINAL_ANSWER*\\/'\n */\n finalMarker?: string;\n}\n\n/**\n * 清理 process 文本\n * - 移除多余的换行\n * - 移除 JSON 代码块标记\n */\nexport function cleanProcessText(text: string): string {\n return text\n .replace(/```json\\s*/g, '')\n .replace(/```\\s*/g, '')\n .replace(/^\\n+/, '')\n .replace(/\\n+$/, '')\n .trim();\n}\n\n/**\n * XML 模式解析 (默认)\n * 识别标签: <reasoning>、<planning>、<replanning>、<action_log>\n */\nfunction parseXmlMode(text: string): ParsedPart[] {\n const parts: ParsedPart[] = [];\n\n // 定义标签模式\n const tagPatterns: Array<{\n regex: RegExp;\n type: ParsedPart['type'];\n }> = [\n { regex: /<reasoning>([\\s\\S]*?)<\\/reasoning>/g, type: 'reasoning' },\n { regex: /<planning>([\\s\\S]*?)<\\/planning>/g, type: 'planning' },\n { regex: /<replanning>([\\s\\S]*?)<\\/replanning>/g, type: 'replanning' },\n { regex: /<action_log>([\\s\\S]*?)<\\/action_log>/g, type: 'action_log' },\n ];\n\n // 收集所有标签位置\n interface TagMatch {\n type: ParsedPart['type'];\n start: number;\n end: number;\n content: string;\n }\n\n const matches: TagMatch[] = [];\n\n tagPatterns.forEach(({ regex, type }) => {\n let match;\n const tempRegex = new RegExp(regex);\n while ((match = tempRegex.exec(text)) !== null) {\n matches.push({\n type,\n start: match.index,\n end: match.index + match[0].length,\n content: match[1].trim(),\n });\n }\n });\n\n // 按位置排序\n matches.sort((a, b) => a.start - b.start);\n\n // 提取文本和标签\n let currentPos = 0;\n\n matches.forEach((match) => {\n // 添加标签前的文本\n if (match.start > currentPos) {\n const textBefore = text.substring(currentPos, match.start).trim();\n if (textBefore) {\n parts.push({ type: 'text', content: textBefore });\n }\n }\n\n // 添加标签内容\n parts.push({ type: match.type, content: match.content });\n\n currentPos = match.end;\n });\n\n // 添加最后的文本\n if (currentPos < text.length) {\n const textAfter = text.substring(currentPos).trim();\n if (textAfter) {\n parts.push({ type: 'text', content: textAfter });\n }\n }\n\n return parts;\n}\n\n/**\n * 注释模式解析 (/*PLANNING*\\/ 格式)\n * 适用于业务项目的格式\n */\nfunction parseCommentMode(text: string, finalMarker: string = '/*FINAL_ANSWER*/'): ParsedPart[] {\n // 如果完全没有 Agent 推理标记,则整段文本视为最终结果\n if (!text.includes('/*')) {\n return [{ type: 'final_result', content: text }];\n }\n\n const results: ParsedPart[] = [];\n const finalIndex = text.indexOf(finalMarker);\n\n let processText = text;\n let finalText = '';\n\n if (finalIndex !== -1) {\n processText = text.substring(0, finalIndex);\n finalText = text.substring(finalIndex + finalMarker.length);\n }\n\n const regex = /(\\/\\*PLANNING\\*\\/|\\/\\*REPLANNING\\*\\/|\\/\\*REASONING\\*\\/|\\/\\*ACTION\\*\\/)/g;\n const parts = processText.split(regex);\n\n let currentType: ParsedPart['type'] = 'process_text';\n\n parts.forEach((part) => {\n if (part === '/*PLANNING*/') {\n currentType = 'planning';\n return;\n }\n if (part === '/*REPLANNING*/') {\n currentType = 'replanning';\n return;\n }\n if (part === '/*REASONING*/') {\n currentType = 'reasoning';\n return;\n }\n if (part === '/*ACTION*/') {\n currentType = 'action_log';\n return;\n }\n\n if (part && part.trim().length > 0) {\n results.push({ type: currentType, content: part });\n }\n });\n\n if (finalText.trim()) {\n results.push({ type: 'final_result', content: finalText });\n }\n\n return results;\n}\n\n/**\n * 自定义模式解析\n */\nfunction parseCustomMode(text: string, patterns: Array<{ regex: RegExp; type: ParsedPart['type'] }>): ParsedPart[] {\n const parts: ParsedPart[] = [];\n const matches: Array<{ type: ParsedPart['type']; start: number; end: number; content: string }> = [];\n\n patterns.forEach(({ regex, type }) => {\n let match;\n const tempRegex = new RegExp(regex);\n while ((match = tempRegex.exec(text)) !== null) {\n matches.push({\n type,\n start: match.index,\n end: match.index + match[0].length,\n content: match[1]?.trim() || match[0],\n });\n }\n });\n\n matches.sort((a, b) => a.start - b.start);\n\n let currentPos = 0;\n matches.forEach((match) => {\n if (match.start > currentPos) {\n const textBefore = text.substring(currentPos, match.start).trim();\n if (textBefore) {\n parts.push({ type: 'text', content: textBefore });\n }\n }\n parts.push({ type: match.type, content: match.content });\n currentPos = match.end;\n });\n\n if (currentPos < text.length) {\n const textAfter = text.substring(currentPos).trim();\n if (textAfter) {\n parts.push({ type: 'text', content: textAfter });\n }\n }\n\n return parts;\n}\n\n/**\n * 解析 Agent 消息 (支持多种格式)\n *\n * @param text 原始消息文本\n * @param options 解析选项\n * @returns 解析后的消息片段数组\n *\n * @example\n * // XML 模式 (默认)\n * const parts1 = parseAgentMessage(`\n * <reasoning>分析用户需求...</reasoning>\n * 最终回复内容\n * `);\n *\n * @example\n * // 注释模式 (业务项目格式)\n * const parts2 = parseAgentMessage(`\n * /*REASONING*\\/分析用户需求...\n * /*FINAL_ANSWER*\\/最终回复内容\n * `, { mode: 'comment' });\n *\n * @example\n * // 自定义模式\n * const parts3 = parseAgentMessage(text, {\n * mode: 'custom',\n * customPatterns: [\n * { regex: /\\[REASONING\\]([\\s\\S]*?)\\[\\/REASONING\\]/g, type: 'reasoning' }\n * ]\n * });\n */\nexport function parseAgentMessage(text: string, options: ParseAgentMessageOptions = {}): ParsedPart[] {\n if (!text) return [];\n\n const { mode = 'xml', customPatterns, finalMarker } = options;\n\n // 根据模式选择解析器\n if (mode === 'comment') {\n return parseCommentMode(text, finalMarker);\n }\n\n if (mode === 'custom' && customPatterns) {\n return parseCustomMode(text, customPatterns);\n }\n\n // 默认 XML 模式\n const parts = parseXmlMode(text);\n\n // 如果没有任何标签,返回整个文本\n if (parts.length === 0) {\n return [{ type: 'text', content: text }];\n }\n\n return parts;\n}\n\n/**\n * 检查是否包含 process 内容\n */\nexport function hasProcessContent(parts: ParsedPart[]): boolean {\n return parts.some((part) =>\n ['planning', 'replanning', 'reasoning', 'action_log', 'process_text'].includes(part.type)\n );\n}\n\n/**\n * 获取纯文本内容(不包含 process 标签)\n */\nexport function getPlainText(parts: ParsedPart[]): string {\n return parts\n .filter((part) => part.type === 'text' || part.type === 'final_result')\n .map((part) => part.content)\n .join('\\n\\n')\n .trim();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { XAdkSDKProps, XAdkProviderHandle, IMessage } from "../types";
|
|
3
3
|
import { SendContent } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* XAiWebSDK - UMD 入口类
|
|
6
|
+
*
|
|
7
|
+
* 用于通过 <script> 标签引入 SDK 的场景
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <script src="chat-sdk.min.js"></script>
|
|
12
|
+
* <script>
|
|
13
|
+
* const sdk = XAiWebSDK.initChatbot({
|
|
14
|
+
* url: 'https://api.example.com',
|
|
15
|
+
* token: 'your-token',
|
|
16
|
+
* config: {
|
|
17
|
+
* appNo: 'your-app-no',
|
|
18
|
+
* session: {
|
|
19
|
+
* showSessionList: true
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* });
|
|
23
|
+
* </script>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
4
26
|
declare class XAiWebSDK {
|
|
5
27
|
container: HTMLElement;
|
|
6
28
|
props: XAdkSDKProps;
|
|
@@ -12,14 +34,83 @@ declare class XAiWebSDK {
|
|
|
12
34
|
constructor(container: HTMLElement, props: XAdkSDKProps);
|
|
13
35
|
mount(): void;
|
|
14
36
|
unmount(): void;
|
|
37
|
+
/**
|
|
38
|
+
* 初始化聊天机器人(推荐方式)
|
|
39
|
+
*
|
|
40
|
+
* @param props - SDK 配置参数
|
|
41
|
+
* @returns XAiWebSDK 实例
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```javascript
|
|
45
|
+
* const sdk = XAiWebSDK.initChatbot({
|
|
46
|
+
* url: 'https://api.example.com',
|
|
47
|
+
* token: 'your-token',
|
|
48
|
+
* config: {
|
|
49
|
+
* appNo: 'your-app-no',
|
|
50
|
+
* session: {
|
|
51
|
+
* showSessionList: true // 显示会话列表
|
|
52
|
+
* },
|
|
53
|
+
* allowUpload: true, // 允许文件上传
|
|
54
|
+
* chatProps: {
|
|
55
|
+
* clearBtnShow: false // 隐藏清空按钮
|
|
56
|
+
* }
|
|
57
|
+
* },
|
|
58
|
+
* componentProps: {
|
|
59
|
+
* id: 'my-chatbot', // 容器 ID
|
|
60
|
+
* width: '100%',
|
|
61
|
+
* height: '600px'
|
|
62
|
+
* }
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
15
66
|
static initChatbot(props: XAdkSDKProps): XAiWebSDK;
|
|
67
|
+
/**
|
|
68
|
+
* 兼容旧版本的静态方法
|
|
69
|
+
* @deprecated 使用 initChatbot 替代
|
|
70
|
+
*/
|
|
16
71
|
static create(props: XAdkSDKProps): XAiWebSDK;
|
|
72
|
+
/**
|
|
73
|
+
* 获取当前数据
|
|
74
|
+
* @returns 应用信息、消息列表、会话列表
|
|
75
|
+
*/
|
|
17
76
|
getData(): {
|
|
18
77
|
appInfo: any;
|
|
19
78
|
messages: IMessage[] | undefined;
|
|
20
79
|
sessions: any[] | undefined;
|
|
21
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* 发送消息
|
|
83
|
+
* @param content - 消息内容
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```javascript
|
|
87
|
+
* sdk.chat({ text: 'Hello!' });
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
22
90
|
chat(content: SendContent): void;
|
|
91
|
+
/**
|
|
92
|
+
* 停止当前消息生成
|
|
93
|
+
*/
|
|
23
94
|
stop(): void;
|
|
95
|
+
/**
|
|
96
|
+
* 清空当前会话
|
|
97
|
+
*/
|
|
98
|
+
clear(): void;
|
|
99
|
+
/**
|
|
100
|
+
* 删除指定会话
|
|
101
|
+
* @param sessionId - 会话 ID
|
|
102
|
+
*/
|
|
103
|
+
deleteSession(sessionId: string): void;
|
|
104
|
+
/**
|
|
105
|
+
* 更新会话标题
|
|
106
|
+
* @param sessionId - 会话 ID
|
|
107
|
+
* @param title - 新标题
|
|
108
|
+
*/
|
|
109
|
+
updateSession(sessionId: string, title: string): void;
|
|
110
|
+
/**
|
|
111
|
+
* 切换到指定会话
|
|
112
|
+
* @param sessionId - 会话 ID
|
|
113
|
+
*/
|
|
114
|
+
switchSession(sessionId: string): void;
|
|
24
115
|
}
|
|
25
116
|
export default XAiWebSDK;
|
|
@@ -34,7 +34,7 @@ __export(umdEntry_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(umdEntry_exports);
|
|
35
35
|
var import_react = require("react");
|
|
36
36
|
var import_client = __toESM(require("react-dom/client"));
|
|
37
|
-
var
|
|
37
|
+
var import_XAdkProvider = __toESM(require("../components/XAdkProvider"));
|
|
38
38
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
39
39
|
var XAiWebSDK = class {
|
|
40
40
|
constructor(container, props) {
|
|
@@ -47,14 +47,35 @@ var XAiWebSDK = class {
|
|
|
47
47
|
this.mount();
|
|
48
48
|
}
|
|
49
49
|
mount() {
|
|
50
|
+
var _a, _b;
|
|
51
|
+
const { config = {} } = this.props;
|
|
52
|
+
const showSessionList = ((_a = config.session) == null ? void 0 : _a.showSessionList) ?? false;
|
|
53
|
+
const allowUpload = config.allowUpload ?? false;
|
|
54
|
+
const clearBtnShow = ((_b = config.chatProps) == null ? void 0 : _b.clearBtnShow) ?? true;
|
|
50
55
|
if (import_client.default.createRoot) {
|
|
51
56
|
this.root = import_client.default.createRoot(this.container);
|
|
52
57
|
this.root.render(
|
|
53
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
58
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAdkProvider.default, { ref: this.providerRef, ...this.props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
59
|
+
import_XAdkProvider.default.DefaultLayout,
|
|
60
|
+
{
|
|
61
|
+
showSessionList,
|
|
62
|
+
allowUpload,
|
|
63
|
+
clearBtnShow,
|
|
64
|
+
showFnCallDetail: true
|
|
65
|
+
}
|
|
66
|
+
) }) })
|
|
54
67
|
);
|
|
55
68
|
} else {
|
|
56
69
|
import_client.default.render(
|
|
57
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAdkProvider.default, { ref: this.providerRef, ...this.props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
71
|
+
import_XAdkProvider.default.DefaultLayout,
|
|
72
|
+
{
|
|
73
|
+
showSessionList,
|
|
74
|
+
allowUpload,
|
|
75
|
+
clearBtnShow,
|
|
76
|
+
showFnCallDetail: true
|
|
77
|
+
}
|
|
78
|
+
) }) }),
|
|
58
79
|
this.container
|
|
59
80
|
);
|
|
60
81
|
}
|
|
@@ -64,12 +85,42 @@ var XAiWebSDK = class {
|
|
|
64
85
|
this.root.unmount();
|
|
65
86
|
}
|
|
66
87
|
}
|
|
67
|
-
|
|
88
|
+
/**
|
|
89
|
+
* 初始化聊天机器人(推荐方式)
|
|
90
|
+
*
|
|
91
|
+
* @param props - SDK 配置参数
|
|
92
|
+
* @returns XAiWebSDK 实例
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```javascript
|
|
96
|
+
* const sdk = XAiWebSDK.initChatbot({
|
|
97
|
+
* url: 'https://api.example.com',
|
|
98
|
+
* token: 'your-token',
|
|
99
|
+
* config: {
|
|
100
|
+
* appNo: 'your-app-no',
|
|
101
|
+
* session: {
|
|
102
|
+
* showSessionList: true // 显示会话列表
|
|
103
|
+
* },
|
|
104
|
+
* allowUpload: true, // 允许文件上传
|
|
105
|
+
* chatProps: {
|
|
106
|
+
* clearBtnShow: false // 隐藏清空按钮
|
|
107
|
+
* }
|
|
108
|
+
* },
|
|
109
|
+
* componentProps: {
|
|
110
|
+
* id: 'my-chatbot', // 容器 ID
|
|
111
|
+
* width: '100%',
|
|
112
|
+
* height: '600px'
|
|
113
|
+
* }
|
|
114
|
+
* });
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
68
117
|
static initChatbot(props) {
|
|
69
118
|
var _a;
|
|
70
119
|
let container;
|
|
71
120
|
if ((_a = props.componentProps) == null ? void 0 : _a.id) {
|
|
72
|
-
const existingContainer = document.getElementById(
|
|
121
|
+
const existingContainer = document.getElementById(
|
|
122
|
+
props.componentProps.id
|
|
123
|
+
);
|
|
73
124
|
if (existingContainer) {
|
|
74
125
|
container = existingContainer;
|
|
75
126
|
} else {
|
|
@@ -89,11 +140,18 @@ var XAiWebSDK = class {
|
|
|
89
140
|
}
|
|
90
141
|
return new XAiWebSDK(container, props);
|
|
91
142
|
}
|
|
92
|
-
|
|
143
|
+
/**
|
|
144
|
+
* 兼容旧版本的静态方法
|
|
145
|
+
* @deprecated 使用 initChatbot 替代
|
|
146
|
+
*/
|
|
93
147
|
static create(props) {
|
|
94
148
|
return this.initChatbot(props);
|
|
95
149
|
}
|
|
96
150
|
// ————对外暴露的方法————
|
|
151
|
+
/**
|
|
152
|
+
* 获取当前数据
|
|
153
|
+
* @returns 应用信息、消息列表、会话列表
|
|
154
|
+
*/
|
|
97
155
|
getData() {
|
|
98
156
|
var _a, _b, _c;
|
|
99
157
|
return {
|
|
@@ -102,14 +160,58 @@ var XAiWebSDK = class {
|
|
|
102
160
|
sessions: (_c = this.providerRef.current) == null ? void 0 : _c.getSessions()
|
|
103
161
|
};
|
|
104
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* 发送消息
|
|
165
|
+
* @param content - 消息内容
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```javascript
|
|
169
|
+
* sdk.chat({ text: 'Hello!' });
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
105
172
|
chat(content) {
|
|
106
173
|
var _a;
|
|
107
174
|
(_a = this.providerRef.current) == null ? void 0 : _a.startChat(content);
|
|
108
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* 停止当前消息生成
|
|
178
|
+
*/
|
|
109
179
|
stop() {
|
|
110
180
|
var _a;
|
|
111
181
|
(_a = this.providerRef.current) == null ? void 0 : _a.stopChat();
|
|
112
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* 清空当前会话
|
|
185
|
+
*/
|
|
186
|
+
clear() {
|
|
187
|
+
var _a;
|
|
188
|
+
(_a = this.providerRef.current) == null ? void 0 : _a.clearChat();
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 删除指定会话
|
|
192
|
+
* @param sessionId - 会话 ID
|
|
193
|
+
*/
|
|
194
|
+
deleteSession(sessionId) {
|
|
195
|
+
var _a;
|
|
196
|
+
(_a = this.providerRef.current) == null ? void 0 : _a.deleteSession(sessionId);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 更新会话标题
|
|
200
|
+
* @param sessionId - 会话 ID
|
|
201
|
+
* @param title - 新标题
|
|
202
|
+
*/
|
|
203
|
+
updateSession(sessionId, title) {
|
|
204
|
+
var _a;
|
|
205
|
+
(_a = this.providerRef.current) == null ? void 0 : _a.updateSession(sessionId, title);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* 切换到指定会话
|
|
209
|
+
* @param sessionId - 会话 ID
|
|
210
|
+
*/
|
|
211
|
+
switchSession(sessionId) {
|
|
212
|
+
var _a;
|
|
213
|
+
(_a = this.providerRef.current) == null ? void 0 : _a.setCurrentSessionDetail(sessionId);
|
|
214
|
+
}
|
|
113
215
|
};
|
|
114
216
|
window.XAiWebSDK = XAiWebSDK;
|
|
115
217
|
var umdEntry_default = XAiWebSDK;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/utils/umdEntry.tsx"],
|
|
4
|
-
"sourcesContent": ["import { createRef } from
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,oBAAqB;AAErB,
|
|
6
|
-
"names": ["ReactDOM", "
|
|
4
|
+
"sourcesContent": ["import { createRef } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { XAdkSDKProps, XAdkProviderHandle, IMessage } from \"@/types\";\nimport XAdkProvider from \"@/components/XAdkProvider\";\nimport { SendContent } from \"@/types\";\n\n/**\n * XAiWebSDK - UMD 入口类\n *\n * 用于通过 <script> 标签引入 SDK 的场景\n *\n * @example\n * ```html\n * <script src=\"chat-sdk.min.js\"></script>\n * <script>\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true\n * }\n * }\n * });\n * </script>\n * ```\n */\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAdkSDKProps;\n\n root: any;\n\n providerRef = createRef<XAdkProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: IMessage) => void;\n\n constructor(container: HTMLElement, props: XAdkSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n // 提取配置\n const { config = {} } = this.props;\n const showSessionList = config.session?.showSessionList ?? false;\n const allowUpload = config.allowUpload ?? false;\n const clearBtnShow = config.chatProps?.clearBtnShow ?? true;\n\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: \"100%\", height: \"100%\" }}>\n <XAdkProvider ref={this.providerRef} {...this.props}>\n {/* 使用 DefaultLayout 作为默认布局 */}\n <XAdkProvider.DefaultLayout\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n clearBtnShow={clearBtnShow}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n </div>,\n );\n } else {\n // 兼容 React 17\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: \"100%\", height: \"100%\" }}>\n <XAdkProvider ref={this.providerRef} {...this.props}>\n <XAdkProvider.DefaultLayout\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n clearBtnShow={clearBtnShow}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n /**\n * 初始化聊天机器人(推荐方式)\n *\n * @param props - SDK 配置参数\n * @returns XAiWebSDK 实例\n *\n * @example\n * ```javascript\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true // 显示会话列表\n * },\n * allowUpload: true, // 允许文件上传\n * chatProps: {\n * clearBtnShow: false // 隐藏清空按钮\n * }\n * },\n * componentProps: {\n * id: 'my-chatbot', // 容器 ID\n * width: '100%',\n * height: '600px'\n * }\n * });\n * ```\n */\n static initChatbot(props: XAdkSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(\n props.componentProps.id,\n );\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement(\"div\");\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement(\"div\");\n container.id = \"xai-chatbot-container\";\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n /**\n * 兼容旧版本的静态方法\n * @deprecated 使用 initChatbot 替代\n */\n static create(props: XAdkSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n\n /**\n * 获取当前数据\n * @returns 应用信息、消息列表、会话列表\n */\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n /**\n * 发送消息\n * @param content - 消息内容\n *\n * @example\n * ```javascript\n * sdk.chat({ text: 'Hello!' });\n * ```\n */\n chat(content: SendContent) {\n this.providerRef.current?.startChat(content);\n }\n\n /**\n * 停止当前消息生成\n */\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n /**\n * 清空当前会话\n */\n clear() {\n this.providerRef.current?.clearChat();\n }\n\n /**\n * 删除指定会话\n * @param sessionId - 会话 ID\n */\n deleteSession(sessionId: string) {\n this.providerRef.current?.deleteSession(sessionId);\n }\n\n /**\n * 更新会话标题\n * @param sessionId - 会话 ID\n * @param title - 新标题\n */\n updateSession(sessionId: string, title: string) {\n this.providerRef.current?.updateSession(sessionId, title);\n }\n\n /**\n * 切换到指定会话\n * @param sessionId - 会话 ID\n */\n switchSession(sessionId: string) {\n this.providerRef.current?.setCurrentSessionDetail(sessionId);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ReactDOM", "XAdkProvider"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from
|
|
2
|
-
import XAdkChatbot from
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import XAdkChatbot from "./index";
|
|
3
3
|
declare const meta: Meta<typeof XAdkChatbot>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
6
6
|
export declare const 基础用法: Story;
|
|
7
|
+
export declare const 开场白和建议: Story;
|
|
8
|
+
export declare const 流式输出: Story;
|
|
9
|
+
export declare const 自定义Footer: Story;
|
|
10
|
+
export declare const 函数调用: Story;
|
|
11
|
+
export declare const 思维链: Story;
|
|
12
|
+
export declare const 代码高亮: Story;
|
|
13
|
+
export declare const 多轮对话: Story;
|