@ai-group/chat-sdk 3.5.5 → 3.5.7
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/assets/add-chat.svg +13 -0
- package/dist/cjs/assets/arrow-down-blue.png +0 -0
- package/dist/cjs/assets/arrow-down.png +0 -0
- package/dist/cjs/assets/arrow-up.png +0 -0
- package/dist/cjs/assets/chatKnowledge.png +0 -0
- package/dist/cjs/assets/completed-black.png +0 -0
- package/dist/cjs/assets/completed.png +0 -0
- package/dist/cjs/assets/document-black.png +0 -0
- package/dist/cjs/assets/document.png +0 -0
- package/dist/cjs/assets/document.svg +16 -0
- package/dist/cjs/assets/empty.png +0 -0
- package/dist/cjs/assets/flash-open.svg +14 -0
- package/dist/cjs/assets/group.png +0 -0
- package/dist/cjs/assets/logo.png +0 -0
- package/dist/cjs/assets/qa-black.png +0 -0
- package/dist/cjs/assets/qa.png +0 -0
- package/dist/cjs/assets/skillNo-black.png +0 -0
- package/dist/cjs/assets/skillNo.png +0 -0
- package/dist/cjs/assets/svg/AddChatIcon.d.ts +3 -0
- package/dist/cjs/assets/svg/AddChatIcon.js +31 -0
- package/dist/cjs/assets/svg/AddChatIcon.js.map +7 -0
- package/dist/cjs/assets/think.png +0 -0
- package/dist/cjs/assets/tools-black.png +0 -0
- package/dist/cjs/assets/tools.png +0 -0
- package/dist/cjs/assets/user.png +0 -0
- package/dist/cjs/client/base.d.ts +9 -0
- package/dist/cjs/client/base.js +18 -0
- package/dist/cjs/client/base.js.map +7 -0
- package/dist/cjs/client/restClient.d.ts +0 -0
- package/dist/cjs/client/restClient.js +1 -0
- package/dist/cjs/client/restClient.js.map +7 -0
- package/dist/cjs/client/wsClient.d.ts +0 -0
- package/dist/cjs/client/wsClient.js +1 -0
- package/dist/cjs/client/wsClient.js.map +7 -0
- package/dist/cjs/components/DislikeFeedback.d.ts +8 -0
- package/dist/cjs/components/DislikeFeedback.js +113 -0
- package/dist/cjs/components/DislikeFeedback.js.map +7 -0
- package/dist/cjs/components/FeedbackTags.d.ts +7 -0
- package/dist/cjs/components/FeedbackTags.js +52 -0
- package/dist/cjs/components/FeedbackTags.js.map +7 -0
- package/dist/cjs/components/FileGallery/index.d.ts +34 -0
- package/dist/cjs/components/FileGallery/index.js +324 -0
- package/dist/cjs/components/FileGallery/index.js.map +7 -0
- package/dist/cjs/components/FileGallery/styles.d.ts +49 -0
- package/dist/cjs/components/FileGallery/styles.js +194 -0
- package/dist/cjs/components/FileGallery/styles.js.map +7 -0
- package/dist/cjs/components/FolderTree/DirectoryTree.d.ts +34 -0
- package/dist/cjs/components/FolderTree/DirectoryTree.js +288 -0
- package/dist/cjs/components/FolderTree/DirectoryTree.js.map +7 -0
- package/dist/cjs/components/FolderTree/FilePreview.d.ts +17 -0
- package/dist/cjs/components/FolderTree/FilePreview.js +163 -0
- package/dist/cjs/components/FolderTree/FilePreview.js.map +7 -0
- package/dist/cjs/components/FolderTree/index.d.ts +5 -0
- package/dist/cjs/components/FolderTree/index.js +351 -0
- package/dist/cjs/components/FolderTree/index.js.map +7 -0
- package/dist/cjs/components/FolderTree/styles.d.ts +50 -0
- package/dist/cjs/components/FolderTree/styles.js +185 -0
- package/dist/cjs/components/FolderTree/styles.js.map +7 -0
- package/dist/cjs/components/FolderTree/types.d.ts +165 -0
- package/dist/cjs/components/FolderTree/types.js +18 -0
- package/dist/cjs/components/FolderTree/types.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +4 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +217 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +41 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +70 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +10 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +186 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +38 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js +119 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js +64 -0
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/index.d.ts +14 -0
- package/dist/cjs/components/XAdkChatbot/index.js +527 -0
- package/dist/cjs/components/XAdkChatbot/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +62 -0
- package/dist/cjs/components/XAdkChatbot/styles.js +234 -0
- package/dist/cjs/components/XAdkChatbot/styles.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 +33 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +245 -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 +26 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +159 -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 +58 -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 +37 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js +55 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +41 -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 +44 -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 +263 -0
- package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/styles.d.ts +38 -0
- package/dist/cjs/components/XAdkProvider/styles.js +51 -0
- package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
- package/dist/cjs/components/XAdkSender/Switch.d.ts +16 -0
- package/dist/cjs/components/XAdkSender/Switch.js +95 -0
- package/dist/cjs/components/XAdkSender/Switch.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.d.ts +9 -0
- package/dist/cjs/components/XAdkSender/index.js +582 -0
- package/dist/cjs/components/XAdkSender/index.js.map +7 -0
- package/dist/cjs/components/XAdkSender/styles.d.ts +47 -0
- package/dist/cjs/components/XAdkSender/styles.js +224 -0
- package/dist/cjs/components/XAdkSender/styles.js.map +7 -0
- package/dist/cjs/components/XAdkThoughtChain/index.d.ts +4 -0
- package/dist/cjs/components/XAdkThoughtChain/index.js +189 -0
- package/dist/cjs/components/XAdkThoughtChain/index.js.map +7 -0
- package/dist/cjs/components/XAdkThoughtChain/styles.d.ts +60 -0
- package/dist/cjs/components/XAdkThoughtChain/styles.js +206 -0
- package/dist/cjs/components/XAdkThoughtChain/styles.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/index.d.ts +10 -0
- package/dist/cjs/components/XAiChatbot/index.js +564 -0
- package/dist/cjs/components/XAiChatbot/index.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/styles.d.ts +68 -0
- package/dist/cjs/components/XAiChatbot/styles.js +386 -0
- package/dist/cjs/components/XAiChatbot/styles.js.map +7 -0
- package/dist/cjs/components/XAiConversations/index.d.ts +4 -0
- package/dist/cjs/components/XAiConversations/index.js +140 -0
- package/dist/cjs/components/XAiConversations/index.js.map +7 -0
- package/dist/cjs/components/XAiConversations/styles.d.ts +50 -0
- package/dist/cjs/components/XAiConversations/styles.js +198 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +7 -0
- package/dist/cjs/components/XAiJsonView/index.d.ts +8 -0
- package/dist/cjs/components/XAiJsonView/index.js +81 -0
- package/dist/cjs/components/XAiJsonView/index.js.map +7 -0
- package/dist/cjs/components/XAiJsonView/styles.d.ts +39 -0
- package/dist/cjs/components/XAiJsonView/styles.js +58 -0
- package/dist/cjs/components/XAiJsonView/styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/demo.styles.d.ts +37 -0
- package/dist/cjs/components/XAiProvider/demo.styles.js +37 -0
- package/dist/cjs/components/XAiProvider/demo.styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/index.d.ts +4 -0
- package/dist/cjs/components/XAiProvider/index.js +385 -0
- package/dist/cjs/components/XAiProvider/index.js.map +7 -0
- package/dist/cjs/components/XAiSDK.d.ts +10 -0
- package/dist/cjs/components/XAiSDK.js +53 -0
- package/dist/cjs/components/XAiSDK.js.map +7 -0
- package/dist/cjs/components/XAiSender/index.d.ts +4 -0
- package/dist/cjs/components/XAiSender/index.js +228 -0
- package/dist/cjs/components/XAiSender/index.js.map +7 -0
- package/dist/cjs/components/XAiSender/styles.d.ts +44 -0
- package/dist/cjs/components/XAiSender/styles.js +157 -0
- package/dist/cjs/components/XAiSender/styles.js.map +7 -0
- package/dist/cjs/constants/index.d.ts +3 -0
- package/dist/cjs/constants/index.js +36 -0
- package/dist/cjs/constants/index.js.map +7 -0
- package/dist/cjs/context/AiProviderContext.d.ts +15 -0
- package/dist/cjs/context/AiProviderContext.js +74 -0
- package/dist/cjs/context/AiProviderContext.js.map +7 -0
- package/dist/cjs/context/ThemeContext.d.ts +20 -0
- package/dist/cjs/context/ThemeContext.js +37 -0
- package/dist/cjs/context/ThemeContext.js.map +7 -0
- package/dist/cjs/hooks/useADKChat.d.ts +41 -0
- package/dist/cjs/hooks/useADKChat.js +1027 -0
- package/dist/cjs/hooks/useADKChat.js.map +7 -0
- package/dist/cjs/hooks/useAgentGenerator.d.ts +94 -0
- package/dist/cjs/hooks/useAgentGenerator.js +804 -0
- package/dist/cjs/hooks/useAgentGenerator.js.map +7 -0
- package/dist/cjs/hooks/useEventStreamRequest.d.ts +30 -0
- package/dist/cjs/hooks/useEventStreamRequest.js +191 -0
- package/dist/cjs/hooks/useEventStreamRequest.js.map +7 -0
- package/dist/cjs/hooks/useProviderContext.d.ts +34 -0
- package/dist/cjs/hooks/useProviderContext.js +105 -0
- package/dist/cjs/hooks/useProviderContext.js.map +7 -0
- package/dist/cjs/hooks/useXAiSDK.d.ts +14 -0
- package/dist/cjs/hooks/useXAiSDK.js +76 -0
- package/dist/cjs/hooks/useXAiSDK.js.map +7 -0
- package/dist/cjs/index.d.ts +30 -0
- package/dist/cjs/index.js +123 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/presets/xGroupAdk.d.ts +20 -0
- package/dist/cjs/presets/xGroupAdk.js +130 -0
- package/dist/cjs/presets/xGroupAdk.js.map +7 -0
- package/dist/cjs/services/api.d.ts +162 -0
- package/dist/cjs/services/api.js +101 -0
- package/dist/cjs/services/api.js.map +7 -0
- package/dist/cjs/styles/common.d.ts +73 -0
- package/dist/cjs/styles/common.js +174 -0
- package/dist/cjs/styles/common.js.map +7 -0
- package/dist/cjs/styles/markdown.d.ts +3 -0
- package/dist/cjs/styles/markdown.js +185 -0
- package/dist/cjs/styles/markdown.js.map +7 -0
- package/dist/cjs/types/ChatHook.d.ts +92 -0
- package/dist/cjs/types/ChatHook.js +18 -0
- package/dist/cjs/types/ChatHook.js.map +7 -0
- package/dist/cjs/types/ChatStrategies.d.ts +45 -0
- package/dist/cjs/types/ChatStrategies.js +18 -0
- package/dist/cjs/types/ChatStrategies.js.map +7 -0
- package/dist/cjs/types/FileGallery.d.ts +36 -0
- package/dist/cjs/types/FileGallery.js +18 -0
- package/dist/cjs/types/FileGallery.js.map +7 -0
- package/dist/cjs/types/FunctionCallRender.d.ts +35 -0
- package/dist/cjs/types/FunctionCallRender.js +32 -0
- package/dist/cjs/types/FunctionCallRender.js.map +7 -0
- package/dist/cjs/types/XAdkChatbot.d.ts +348 -0
- package/dist/cjs/types/XAdkChatbot.js +18 -0
- package/dist/cjs/types/XAdkChatbot.js.map +7 -0
- package/dist/cjs/types/XAdkProvider.d.ts +224 -0
- package/dist/cjs/types/XAdkProvider.js +34 -0
- package/dist/cjs/types/XAdkProvider.js.map +7 -0
- package/dist/cjs/types/XAdkSender.d.ts +114 -0
- package/dist/cjs/types/XAdkSender.js +18 -0
- package/dist/cjs/types/XAdkSender.js.map +7 -0
- package/dist/cjs/types/XAdkThoughtChain.d.ts +35 -0
- package/dist/cjs/types/XAdkThoughtChain.js +18 -0
- package/dist/cjs/types/XAdkThoughtChain.js.map +7 -0
- package/dist/cjs/types/XAiChatbot.d.ts +158 -0
- package/dist/cjs/types/XAiChatbot.js +18 -0
- package/dist/cjs/types/XAiChatbot.js.map +7 -0
- package/dist/cjs/types/XAiConversations.d.ts +22 -0
- package/dist/cjs/types/XAiConversations.js +18 -0
- package/dist/cjs/types/XAiConversations.js.map +7 -0
- package/dist/cjs/types/XAiMessage.d.ts +126 -0
- package/dist/cjs/types/XAiMessage.js +55 -0
- package/dist/cjs/types/XAiMessage.js.map +7 -0
- package/dist/cjs/types/XAiProvider.d.ts +315 -0
- package/dist/cjs/types/XAiProvider.js +78 -0
- package/dist/cjs/types/XAiProvider.js.map +7 -0
- package/dist/cjs/types/XAiSender.d.ts +29 -0
- package/dist/cjs/types/XAiSender.js +18 -0
- package/dist/cjs/types/XAiSender.js.map +7 -0
- package/dist/cjs/types/common.d.ts +6 -0
- package/dist/cjs/types/common.js +18 -0
- package/dist/cjs/types/common.js.map +7 -0
- package/dist/cjs/types/index.d.ts +13 -0
- package/dist/cjs/types/index.js +48 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/types/mdx.d.ts +23 -0
- package/dist/cjs/types/node.d.ts +10 -0
- package/dist/cjs/types/node.js +18 -0
- package/dist/cjs/types/node.js.map +7 -0
- package/dist/cjs/utils/chat.d.ts +34 -0
- package/dist/cjs/utils/chat.js +1 -0
- package/dist/cjs/utils/chat.js.map +7 -0
- package/dist/cjs/utils/file.d.ts +2 -0
- package/dist/cjs/utils/file.js +33 -0
- package/dist/cjs/utils/file.js.map +7 -0
- package/dist/cjs/utils/index.d.ts +4 -0
- package/dist/cjs/utils/index.js +59 -0
- package/dist/cjs/utils/index.js.map +7 -0
- 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/providerManager.d.ts +23 -0
- package/dist/cjs/utils/providerManager.js +73 -0
- package/dist/cjs/utils/providerManager.js.map +7 -0
- package/dist/cjs/utils/request.d.ts +78 -0
- package/dist/cjs/utils/request.example.d.ts +39 -0
- package/dist/cjs/utils/request.example.js +211 -0
- package/dist/cjs/utils/request.example.js.map +7 -0
- package/dist/cjs/utils/request.js +231 -0
- package/dist/cjs/utils/request.js.map +7 -0
- package/dist/cjs/utils/umdEntry.d.ts +170 -0
- package/dist/cjs/utils/umdEntry.js +354 -0
- package/dist/cjs/utils/umdEntry.js.map +7 -0
- package/dist/cjs/utils/workflowNode.d.ts +2 -0
- package/dist/cjs/utils/workflowNode.js +169 -0
- package/dist/cjs/utils/workflowNode.js.map +7 -0
- package/dist/esm/assets/add-chat.svg +13 -0
- package/dist/esm/assets/arrow-down-blue.png +0 -0
- package/dist/esm/assets/arrow-down.png +0 -0
- package/dist/esm/assets/arrow-up.png +0 -0
- package/dist/esm/assets/chatKnowledge.png +0 -0
- package/dist/esm/assets/completed-black.png +0 -0
- package/dist/esm/assets/completed.png +0 -0
- package/dist/esm/assets/document-black.png +0 -0
- package/dist/esm/assets/document.png +0 -0
- package/dist/esm/assets/document.svg +16 -0
- package/dist/esm/assets/empty.png +0 -0
- package/dist/esm/assets/flash-open.svg +14 -0
- package/dist/esm/assets/group.png +0 -0
- package/dist/esm/assets/logo.png +0 -0
- package/dist/esm/assets/qa-black.png +0 -0
- package/dist/esm/assets/qa.png +0 -0
- package/dist/esm/assets/skillNo-black.png +0 -0
- package/dist/esm/assets/skillNo.png +0 -0
- package/dist/esm/assets/svg/AddChatIcon.d.ts +3 -0
- package/dist/esm/assets/svg/AddChatIcon.js +40 -0
- package/dist/esm/assets/svg/AddChatIcon.js.map +1 -0
- package/dist/esm/assets/think.png +0 -0
- package/dist/esm/assets/tools-black.png +0 -0
- package/dist/esm/assets/tools.png +0 -0
- package/dist/esm/assets/user.png +0 -0
- package/dist/esm/client/base.d.ts +9 -0
- package/dist/esm/client/base.js +2 -0
- package/dist/esm/client/base.js.map +1 -0
- package/dist/esm/client/restClient.d.ts +0 -0
- package/dist/esm/client/restClient.js +2 -0
- package/dist/esm/client/restClient.js.map +1 -0
- package/dist/esm/client/wsClient.d.ts +0 -0
- package/dist/esm/client/wsClient.js +2 -0
- package/dist/esm/client/wsClient.js.map +1 -0
- package/dist/esm/components/DislikeFeedback.d.ts +8 -0
- package/dist/esm/components/DislikeFeedback.js +127 -0
- package/dist/esm/components/DislikeFeedback.js.map +1 -0
- package/dist/esm/components/FeedbackTags.d.ts +7 -0
- package/dist/esm/components/FeedbackTags.js +34 -0
- package/dist/esm/components/FeedbackTags.js.map +1 -0
- package/dist/esm/components/FileGallery/index.d.ts +34 -0
- package/dist/esm/components/FileGallery/index.js +464 -0
- package/dist/esm/components/FileGallery/index.js.map +1 -0
- package/dist/esm/components/FileGallery/styles.d.ts +49 -0
- package/dist/esm/components/FileGallery/styles.js +23 -0
- package/dist/esm/components/FileGallery/styles.js.map +1 -0
- package/dist/esm/components/FolderTree/DirectoryTree.d.ts +34 -0
- package/dist/esm/components/FolderTree/DirectoryTree.js +248 -0
- package/dist/esm/components/FolderTree/DirectoryTree.js.map +1 -0
- package/dist/esm/components/FolderTree/FilePreview.d.ts +17 -0
- package/dist/esm/components/FolderTree/FilePreview.js +160 -0
- package/dist/esm/components/FolderTree/FilePreview.js.map +1 -0
- package/dist/esm/components/FolderTree/index.d.ts +5 -0
- package/dist/esm/components/FolderTree/index.js +393 -0
- package/dist/esm/components/FolderTree/index.js.map +1 -0
- package/dist/esm/components/FolderTree/styles.d.ts +50 -0
- package/dist/esm/components/FolderTree/styles.js +24 -0
- package/dist/esm/components/FolderTree/styles.js.map +1 -0
- package/dist/esm/components/FolderTree/types.d.ts +165 -0
- package/dist/esm/components/FolderTree/types.js +2 -0
- package/dist/esm/components/FolderTree/types.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +4 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +208 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +41 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +15 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +10 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +172 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +38 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js +12 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js +42 -0
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/index.d.ts +14 -0
- package/dist/esm/components/XAdkChatbot/index.js +611 -0
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/styles.d.ts +62 -0
- package/dist/esm/components/XAdkChatbot/styles.js +37 -0
- package/dist/esm/components/XAdkChatbot/styles.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 +33 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +190 -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 +26 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.js +179 -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 +44 -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 +37 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js +11 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +41 -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 +44 -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 +264 -0
- package/dist/esm/components/XAdkProvider/index.js.map +1 -0
- package/dist/esm/components/XAdkProvider/styles.d.ts +38 -0
- package/dist/esm/components/XAdkProvider/styles.js +13 -0
- package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
- package/dist/esm/components/XAdkSender/Switch.d.ts +16 -0
- package/dist/esm/components/XAdkSender/Switch.js +53 -0
- package/dist/esm/components/XAdkSender/Switch.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.d.ts +9 -0
- package/dist/esm/components/XAdkSender/index.js +677 -0
- package/dist/esm/components/XAdkSender/index.js.map +1 -0
- package/dist/esm/components/XAdkSender/styles.d.ts +47 -0
- package/dist/esm/components/XAdkSender/styles.js +33 -0
- package/dist/esm/components/XAdkSender/styles.js.map +1 -0
- package/dist/esm/components/XAdkThoughtChain/index.d.ts +4 -0
- package/dist/esm/components/XAdkThoughtChain/index.js +201 -0
- package/dist/esm/components/XAdkThoughtChain/index.js.map +1 -0
- package/dist/esm/components/XAdkThoughtChain/styles.d.ts +60 -0
- package/dist/esm/components/XAdkThoughtChain/styles.js +41 -0
- package/dist/esm/components/XAdkThoughtChain/styles.js.map +1 -0
- package/dist/esm/components/XAiChatbot/index.d.ts +10 -0
- package/dist/esm/components/XAiChatbot/index.js +588 -0
- package/dist/esm/components/XAiChatbot/index.js.map +1 -0
- package/dist/esm/components/XAiChatbot/styles.d.ts +68 -0
- package/dist/esm/components/XAiChatbot/styles.js +49 -0
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -0
- package/dist/esm/components/XAiConversations/index.d.ts +4 -0
- package/dist/esm/components/XAiConversations/index.js +157 -0
- package/dist/esm/components/XAiConversations/index.js.map +1 -0
- package/dist/esm/components/XAiConversations/styles.d.ts +50 -0
- package/dist/esm/components/XAiConversations/styles.js +39 -0
- package/dist/esm/components/XAiConversations/styles.js.map +1 -0
- package/dist/esm/components/XAiJsonView/index.d.ts +8 -0
- package/dist/esm/components/XAiJsonView/index.js +44 -0
- package/dist/esm/components/XAiJsonView/index.js.map +1 -0
- package/dist/esm/components/XAiJsonView/styles.d.ts +39 -0
- package/dist/esm/components/XAiJsonView/styles.js +19 -0
- package/dist/esm/components/XAiJsonView/styles.js.map +1 -0
- package/dist/esm/components/XAiProvider/demo.styles.d.ts +37 -0
- package/dist/esm/components/XAiProvider/demo.styles.js +12 -0
- package/dist/esm/components/XAiProvider/demo.styles.js.map +1 -0
- package/dist/esm/components/XAiProvider/index.d.ts +4 -0
- package/dist/esm/components/XAiProvider/index.js +492 -0
- package/dist/esm/components/XAiProvider/index.js.map +1 -0
- package/dist/esm/components/XAiSDK.d.ts +10 -0
- package/dist/esm/components/XAiSDK.js +29 -0
- package/dist/esm/components/XAiSDK.js.map +1 -0
- package/dist/esm/components/XAiSender/index.d.ts +4 -0
- package/dist/esm/components/XAiSender/index.js +248 -0
- package/dist/esm/components/XAiSender/index.js.map +1 -0
- package/dist/esm/components/XAiSender/styles.d.ts +44 -0
- package/dist/esm/components/XAiSender/styles.js +19 -0
- package/dist/esm/components/XAiSender/styles.js.map +1 -0
- package/dist/esm/constants/index.d.ts +3 -0
- package/dist/esm/constants/index.js +9 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/context/AiProviderContext.d.ts +15 -0
- package/dist/esm/context/AiProviderContext.js +63 -0
- package/dist/esm/context/AiProviderContext.js.map +1 -0
- package/dist/esm/context/ThemeContext.d.ts +20 -0
- package/dist/esm/context/ThemeContext.js +8 -0
- package/dist/esm/context/ThemeContext.js.map +1 -0
- package/dist/esm/hooks/useADKChat.d.ts +41 -0
- package/dist/esm/hooks/useADKChat.js +1373 -0
- package/dist/esm/hooks/useADKChat.js.map +1 -0
- package/dist/esm/hooks/useAgentGenerator.d.ts +94 -0
- package/dist/esm/hooks/useAgentGenerator.js +1240 -0
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -0
- package/dist/esm/hooks/useEventStreamRequest.d.ts +30 -0
- package/dist/esm/hooks/useEventStreamRequest.js +232 -0
- package/dist/esm/hooks/useEventStreamRequest.js.map +1 -0
- package/dist/esm/hooks/useProviderContext.d.ts +34 -0
- package/dist/esm/hooks/useProviderContext.js +115 -0
- package/dist/esm/hooks/useProviderContext.js.map +1 -0
- package/dist/esm/hooks/useXAiSDK.d.ts +14 -0
- package/dist/esm/hooks/useXAiSDK.js +49 -0
- package/dist/esm/hooks/useXAiSDK.js.map +1 -0
- package/dist/esm/index.d.ts +30 -0
- package/dist/esm/index.js +42 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/presets/xGroupAdk.d.ts +20 -0
- package/dist/esm/presets/xGroupAdk.js +122 -0
- package/dist/esm/presets/xGroupAdk.js.map +1 -0
- package/dist/esm/services/api.d.ts +162 -0
- package/dist/esm/services/api.js +223 -0
- package/dist/esm/services/api.js.map +1 -0
- package/dist/esm/styles/common.d.ts +73 -0
- package/dist/esm/styles/common.js +113 -0
- package/dist/esm/styles/common.js.map +1 -0
- package/dist/esm/styles/markdown.d.ts +3 -0
- package/dist/esm/styles/markdown.js +12 -0
- package/dist/esm/styles/markdown.js.map +1 -0
- package/dist/esm/types/ChatHook.d.ts +92 -0
- package/dist/esm/types/ChatHook.js +2 -0
- package/dist/esm/types/ChatHook.js.map +1 -0
- package/dist/esm/types/ChatStrategies.d.ts +45 -0
- package/dist/esm/types/ChatStrategies.js +2 -0
- package/dist/esm/types/ChatStrategies.js.map +1 -0
- package/dist/esm/types/FileGallery.d.ts +36 -0
- package/dist/esm/types/FileGallery.js +2 -0
- package/dist/esm/types/FileGallery.js.map +1 -0
- package/dist/esm/types/FunctionCallRender.d.ts +35 -0
- package/dist/esm/types/FunctionCallRender.js +14 -0
- package/dist/esm/types/FunctionCallRender.js.map +1 -0
- package/dist/esm/types/XAdkChatbot.d.ts +348 -0
- package/dist/esm/types/XAdkChatbot.js +2 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -0
- package/dist/esm/types/XAdkProvider.d.ts +224 -0
- package/dist/esm/types/XAdkProvider.js +33 -0
- package/dist/esm/types/XAdkProvider.js.map +1 -0
- package/dist/esm/types/XAdkSender.d.ts +114 -0
- package/dist/esm/types/XAdkSender.js +2 -0
- package/dist/esm/types/XAdkSender.js.map +1 -0
- package/dist/esm/types/XAdkThoughtChain.d.ts +35 -0
- package/dist/esm/types/XAdkThoughtChain.js +2 -0
- package/dist/esm/types/XAdkThoughtChain.js.map +1 -0
- package/dist/esm/types/XAiChatbot.d.ts +158 -0
- package/dist/esm/types/XAiChatbot.js +2 -0
- package/dist/esm/types/XAiChatbot.js.map +1 -0
- package/dist/esm/types/XAiConversations.d.ts +22 -0
- package/dist/esm/types/XAiConversations.js +2 -0
- package/dist/esm/types/XAiConversations.js.map +1 -0
- package/dist/esm/types/XAiMessage.d.ts +126 -0
- package/dist/esm/types/XAiMessage.js +65 -0
- package/dist/esm/types/XAiMessage.js.map +1 -0
- package/dist/esm/types/XAiProvider.d.ts +315 -0
- package/dist/esm/types/XAiProvider.js +106 -0
- package/dist/esm/types/XAiProvider.js.map +1 -0
- package/dist/esm/types/XAiSender.d.ts +29 -0
- package/dist/esm/types/XAiSender.js +2 -0
- package/dist/esm/types/XAiSender.js.map +1 -0
- package/dist/esm/types/common.d.ts +6 -0
- package/dist/esm/types/common.js +2 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/index.d.ts +13 -0
- package/dist/esm/types/index.js +14 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/mdx.d.ts +23 -0
- package/dist/esm/types/node.d.ts +10 -0
- package/dist/esm/types/node.js +2 -0
- package/dist/esm/types/node.js.map +1 -0
- package/dist/esm/utils/chat.d.ts +34 -0
- package/dist/esm/utils/chat.js +976 -0
- package/dist/esm/utils/chat.js.map +1 -0
- package/dist/esm/utils/file.d.ts +2 -0
- package/dist/esm/utils/file.js +10 -0
- package/dist/esm/utils/file.js.map +1 -0
- package/dist/esm/utils/index.d.ts +4 -0
- package/dist/esm/utils/index.js +26 -0
- package/dist/esm/utils/index.js.map +1 -0
- 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/providerManager.d.ts +23 -0
- package/dist/esm/utils/providerManager.js +70 -0
- package/dist/esm/utils/providerManager.js.map +1 -0
- package/dist/esm/utils/request.d.ts +78 -0
- package/dist/esm/utils/request.example.d.ts +39 -0
- package/dist/esm/utils/request.example.js +379 -0
- package/dist/esm/utils/request.example.js.map +1 -0
- package/dist/esm/utils/request.js +491 -0
- package/dist/esm/utils/request.js.map +1 -0
- package/dist/esm/utils/umdEntry.d.ts +170 -0
- package/dist/esm/utils/umdEntry.js +439 -0
- package/dist/esm/utils/umdEntry.js.map +1 -0
- package/dist/esm/utils/workflowNode.d.ts +2 -0
- package/dist/esm/utils/workflowNode.js +141 -0
- package/dist/esm/utils/workflowNode.js.map +1 -0
- package/dist/umd/chat-sdk.min.css +1 -0
- package/dist/umd/chat-sdk.min.js +1 -0
- package/dist/umd/static/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/dist/umd/static/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/dist/umd/static/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/dist/umd/static/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/dist/umd/static/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/dist/umd/static/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/dist/umd/static/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/dist/umd/static/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/dist/umd/static/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/dist/umd/static/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/dist/umd/static/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/dist/umd/static/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/dist/umd/static/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/dist/umd/static/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/dist/umd/static/KaTeX_Script-Regular.07505710.woff +0 -0
- package/dist/umd/static/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/dist/umd/static/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/dist/umd/static/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/dist/umd/static/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/dist/umd/static/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/dist/umd/static/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/dist/umd/static/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/dist/umd/static/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/dist/umd/static/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/dist/umd/static/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/dist/umd/static/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/dist/umd/static/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/package.json +10 -10
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useAgentGenerator.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-use-before-define */\n/* eslint-disable class-methods-use-this */\nimport { useState, useEffect, useMemo, useCallback, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { type Error, ErrorCode, type SendContent, type Success, SuccessCode, type SessionData } from '@/types';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from '@/constants';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, closeSession, updateSessionTitle } from '@/services/api';\nimport { getNodeTemplate } from '@/utils/workflowNode';\n// 图标导入\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\n// ==================== 类型定义 ====================\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE' | 'JSON';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n\nexport type Contents = ContentDef[];\n\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START',\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END',\n invokeToolStart = 'INVOKE_AGENT_TOOL_START',\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END',\n reasoning = 'REASONING',\n reasoningStart = 'REASONING_START',\n reasoningEnd = 'REASONING_END',\n componentStart = 'COMPONENT_START',\n componentStream = 'COMPONENT_STREAM',\n componentEnd = 'COMPONENT_END',\n suggest = 'FOLLOW_UP',\n response = 'RESPONSE',\n finish = 'FINISHED',\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled',\n enabled = 'enabled',\n remote = 'remote',\n}\n\nexport type ThinkStep = any;\n\nexport interface Action {\n name: string;\n description: string;\n jsonSchema: string;\n available?: ActionAvailability;\n}\n\nexport interface BaseFields {\n textSpeed?: number;\n onChatDone?: () => void;\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n textSpeed?: number;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: Messages) => void;\n}\n\n// ==================== 消息处理器 ====================\nclass MessageProcessor {\n private textSpeed: number;\n\n constructor(textSpeed = 60) {\n this.textSpeed = textSpeed;\n }\n\n // 获取知识图标\n private getKnowledgeIcons(knowledgeType: string) {\n return knowledgeType === 'DOCUMENT'\n ? { icon: documentIcon, expandIcon: documentExpandIcon }\n : { icon: qaIcon, expandIcon: qaExpandIcon };\n }\n\n // 获取工具图标\n private getToolIcons(toolType: string) {\n return toolType === 'SKILL'\n ? { icon: skillNoIcon, expandIcon: skillNoExpandIcon }\n : { icon: toolIcon, expandIcon: toolExpandIcon };\n }\n\n // 获取工作流图标(暂时不做区分)\n private getWorkflowIcon() {\n return { icon: skillNoIcon, expandIcon: skillNoExpandIcon };\n }\n\n // 更新工具执行事件\n private updateExecution(\n messages: Messages[],\n messageIndex: number,\n uniqueId: string,\n cost: number,\n name?: string,\n ) {\n const msg = messages[messageIndex] as TextMessage;\n if (msg?.execute) {\n const execution = msg.execute.find((item) => item.id === uniqueId);\n if (execution) {\n execution.extra.cost = cost ? (cost / 1000).toFixed(2) : 0;\n if (name) execution.name = name;\n }\n }\n }\n\n // 查找最后一个待处理的AI消息\n private findLastPendingAIMessage(messages: Messages[]): [number, TextMessage | null] {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === MessageRole.assistant\n && msg.type === 'TextMessage'\n && (msg.status === 'init' || msg.status === 'pending')) {\n return [i, msg as TextMessage];\n }\n }\n return [-1, null];\n }\n\n // 创建新的AI消息\n private createNewAIMessage(): TextMessage {\n return {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n execute: [],\n thinks: '',\n status: MessageStatus.init,\n };\n }\n\n // 确保存在待处理的AI消息\n private ensureAIMessageExists(messages: Messages[]): [Messages[], number, TextMessage] {\n const [index, existingMsg] = this.findLastPendingAIMessage(messages);\n\n if (index !== -1 && existingMsg) {\n return [[...messages], index, { ...existingMsg }];\n }\n\n const newMessage = this.createNewAIMessage();\n const newMessages = [...messages, newMessage];\n return [newMessages, newMessages.length - 1, newMessage];\n }\n\n // 处理建议\n handleSuggestion(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const newMessages = [...messages];\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n\n if (suggestIndex === -1) {\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{ key: uuidV4(), description: content }],\n };\n newMessages.push(newSuggestion);\n } else {\n const suggestion = newMessages[suggestIndex] as SuggestionMessage;\n suggestion?.content?.push({\n key: uuidV4(),\n description: content,\n });\n }\n\n return newMessages;\n }\n\n // 处理思考过程\n handleReasoning(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: (aiMsg.thinks || '') + content,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理思考过程结束\n handleReasoningEnd(messages: Messages[]): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: `${aiMsg.thinks || ''}\\n`,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理知识库调用开始\n handleRecallKnowledgeStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { args } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '开始搜索知识库',\n arguments: args,\n extra: {\n ...data,\n icon: documentIcon,\n expandIcon: documentExpandIcon,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理知识库调用结束\n handleRecallKnowledgeEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n const { uniqueId = uuidV4(), cost } = data || {};\n\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, uniqueId, cost, '已搜索知识库');\n return newMessages;\n }\n\n // 处理工具调用开始\n handleInvokeToolStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { args, toolType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getToolIcons(toolType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工具调用结束\n handleInvokeToolEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { toolType } = data?.data || {};\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, uniqueId, data.cost, toolType === 'SKILL' ? '已调用工作流组件' : '已调用工具');\n return newMessages;\n }\n\n // 处理工作流组件开始\n handleComponentStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { content } = data || {};\n const { nodeId, args, componentType } = content || {};\n const { name } = getNodeTemplate(componentType);\n aiMsg?.execute?.push({\n id: nodeId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: name ? `开始调用${name}组件` : '开始调用工作流组件',\n arguments: args,\n extra: {\n ...data,\n ...this.getWorkflowIcon(),\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件流消息\n handleComponentStream(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { nodeId = uuidV4, content } = data || {};\n const { processData } = content || {};\n aiMsg.raw = data.raw;\n aiMsg.stepContent = aiMsg.stepContent || [];\n aiMsg.stepContent.push({\n id: nodeId,\n content: processData,\n });\n\n // 消息状态改为接收中\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件结束\n handleComponentEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { content } = data || {};\n const { nodeId, componentType } = content || {};\n const { name } = getNodeTemplate(componentType);\n if (index === -1) return messages;\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, nodeId, data.cost, name ? `已调用完成${name}组件` : '已调用工作流组件');\n return newMessages;\n }\n\n // 处理响应正文\n handleResponse(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { contentType, content, success, errorMsg } = data;\n if (success) {\n aiMsg.raw = data.raw;\n // 消息状态改为接收中\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n // 文本类型数据\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n\n // JSON 格式数据\n if (contentType === 'JSON') {\n aiMsg.content.text += JSON.stringify(content);\n }\n } else {\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理完成\n handleFinish(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { data: { uniqueId = uuidV4() } = {}, cost, needExecuteDetail } = data || {};\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n const msg = newMessages[index] as TextMessage;\n if (needExecuteDetail) {\n msg.execute = msg.execute || [];\n msg.execute.push({\n id: uniqueId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: cost ? (cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n }\n\n msg.status = MessageStatus.done;\n return newMessages;\n }\n\n // 处理响应数据\n processResponse(messages: Messages[], responseData: any): Messages[] {\n if (!responseData?.data?.outputs) return messages;\n let response = responseData.data.outputs;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n const { action, data = {} } = response;\n\n switch (action) {\n case ActionType.suggest:\n return this.handleSuggestion(messages, data);\n\n case ActionType.reasoning:\n return this.handleReasoning(messages, data);\n\n case ActionType.reasoningEnd:\n return this.handleReasoningEnd(messages);\n\n case ActionType.componentStart:\n return this.handleComponentStart(messages, data);\n\n case ActionType.componentStream:\n return this.handleComponentStream(messages, data);\n\n case ActionType.componentEnd:\n return this.handleComponentEnd(messages, data);\n\n case ActionType.recallKnowledgeStart:\n return this.handleRecallKnowledgeStart(messages, data);\n\n case ActionType.recallKnowledgeEnd:\n return this.handleRecallKnowledgeEnd(messages, data);\n\n case ActionType.invokeToolStart:\n return this.handleInvokeToolStart(messages, data);\n\n case ActionType.invokeToolEnd:\n return this.handleInvokeToolEnd(messages, data);\n\n case ActionType.response:\n return this.handleResponse(messages, data);\n\n case ActionType.finish:\n return this.handleFinish(messages, data);\n\n default:\n return messages;\n }\n }\n}\n\nconst useAgentGenerator = (params: UseAgentGeneratorProps) => {\n const {\n url,\n token,\n config,\n onError,\n onMessage,\n onSuccess,\n textSpeed = 55,\n ...rest\n } = params;\n\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 聊天记录分页设置\n // const [messagePagination, setMessagePagination] = useState({ total: 0, pageNum: 1, pageSize: 999 });\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 会话请求是否加载中\n // const [sessionLoading, setSessionLoading] = useState<boolean>(false);\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo } = config || {};\n\n // 消息处理器\n const messageProcessor = useMemo(() => new MessageProcessor(textSpeed), [textSpeed]);\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const { data, result } = await fetchAppConfig({ url, ...config });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\n\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || '获取应用配置失败',\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取应用配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据流处理\n useEffect(() => {\n if (!responseData) return;\n\n setMessages((prev) => messageProcessor.processResponse(prev, responseData));\n }, [responseData, messageProcessor]);\n\n // 添加对话(非交互触发)\n const setMessage = useCallback(async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n if (prologueIndex === -1) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: { text: content },\n extra: { prologue: true, noFooter: true },\n };\n return [newMessage, ...prev];\n }\n\n return prev.map((item) => (item.extra?.prologue && item.content && 'text' in item.content\n ? { ...item, content: { text: content } } as any\n : item));\n });\n break;\n }\n\n case 'suggest': {\n setMessages((prev) => {\n const suggestIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n\n if (suggestIndex === -1) {\n const newMessages = [...prev];\n const insertIndex = prologueIndex === -1 ? 0 : prologueIndex + 1;\n newMessages.splice(insertIndex, 0, newSuggestion);\n return newMessages;\n }\n\n return prev.map((item) => (item.type === 'SuggestionMessage'\n ? { ...item, content }\n : item));\n });\n break;\n }\n\n default:\n console.warn(`Unknown message type: ${messageType}`);\n }\n }, []);\n\n // 简单对话\n const chat = useCallback(async (content: SendContent, extra?: any, insert = true) => {\n if (insert) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n extra,\n content,\n };\n\n setMessages((prev) => {\n const newMessages = prev.filter((item) => item.type !== 'SuggestionMessage');\n newMessages.push(newMessage);\n return newMessages;\n });\n }\n\n const requestBody: any = {\n appParams: {\n inputs_msg: content.text,\n },\n sessionId: currentSessionId,\n };\n\n start(\n `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`,\n requestBody,\n {\n Authorization: `Bearer ${token}`,\n },\n );\n }, [appNo, currentSessionId, start, token, url]);\n\n // 重新生成方法\n const reChat = useCallback(() => {\n setMessages((prev) => {\n const newMessages = [...prev];\n\n // 删除最新 AI 消息\n const lastAIIndex = newMessages?.findLastIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage'\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n\n // 删除建议消息\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestIndex !== -1) {\n newMessages.splice(suggestIndex, 1);\n }\n\n // 找到最后一条用户消息重新发送\n const lastUserMsg = newMessages.findLast(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n\n if (lastUserMsg?.content?.text) {\n setTimeout(() => {\n chat(lastUserMsg.content, lastUserMsg.extra, false);\n }, 0);\n }\n\n return newMessages;\n });\n }, [chat]);\n\n // 停止对话\n const stopChat = () => {\n stop();\n setMessages((prev) => prev.map((m) => {\n // 所有进行中的消息变更为结束\n if (m.status === MessageStatus.pending || m.status === MessageStatus.init) {\n const newMsg = { ...m, status: MessageStatus.done };\n if (m.type === 'TextMessage' && m.status === MessageStatus.init) {\n (newMsg as TextMessage).content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n return newMsg;\n }\n return m;\n }));\n };\n\n // 初始化历史记录\n const formatMessages = (data: any, init = false) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n execute: [],\n status: MessageStatus.done,\n isLike: item.isLike,\n raw: item.raw,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n if (init) {\n return [...initMessagesList];\n }\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n const { data = [], pagination, result } = await fetchSessionList({\n url,\n appNo,\n token,\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.startTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: sessionPagination.pageNum, pageSize: sessionPagination.pageSize, total: pagination?.total || 0 });\n const { sessionId } = data?.[0];\n fetchDetail && setCurrentSession(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 设置当前会话详情\n const setCurrentSession = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n const sessionsData = data?.reduce((acc: any[], cur) => {\n const sessionMessages = Array.isArray(cur.sessionMessages) ? cur.sessionMessages : [];\n const msgs = sessionMessages.map((msg: any) => ({\n ...msg,\n raw: cur,\n isLike: cur?.isLike,\n }));\n return [...acc, ...msgs];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData, true);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(uuidV4());\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await closeSession({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n createNewChat();\n }\n }\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const { result } = await updateSessionTitle({\n url,\n appNo,\n title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 生成新对话\n const createNewChat = () => {\n stopChat(); // 停止聊天\n setMessages([]); // 清空所有消息\n initPrologue(); // 初始化开场白和预置问题\n setCurrentSessionId(uuidV4()); // 设置会话 id\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionList,\n currentSessionId,\n sessionPagination,\n initAppConversations,\n reChat,\n chat,\n createNewChat,\n setCurrentSessionId,\n setCurrentSession,\n updateSession,\n deleteSession,\n setMessage,\n setMessages,\n stopChat,\n initPrologue,\n };\n};\n\nexport default useAgentGenerator;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ActionType", "ProcessStatus", "ActionAvailability", "documentIcon", "documentExpandIcon", "qaIcon", "qaExpandIcon", "skillNoIcon", "skillNoExpandIcon", "toolIcon", "toolExpandIcon", "uuidV4", "completedIcon", "completedExpandIcon"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
interface IResponseData {
|
|
2
|
+
code: string;
|
|
3
|
+
httpCode?: number;
|
|
4
|
+
data: string | {
|
|
5
|
+
message: string;
|
|
6
|
+
};
|
|
7
|
+
message: string;
|
|
8
|
+
content: string;
|
|
9
|
+
requestId: string;
|
|
10
|
+
sessionId: string;
|
|
11
|
+
error?: boolean;
|
|
12
|
+
success?: boolean;
|
|
13
|
+
}
|
|
14
|
+
interface UseEventStreamProps {
|
|
15
|
+
streaming: boolean;
|
|
16
|
+
options?: RequestInit;
|
|
17
|
+
onOpen?: (response: Response) => void;
|
|
18
|
+
onError?: (error: Error) => void;
|
|
19
|
+
onClose?: () => void;
|
|
20
|
+
textSpeed?: number;
|
|
21
|
+
}
|
|
22
|
+
interface UseEventStreamReturn {
|
|
23
|
+
responseData: IResponseData | Record<any, any>;
|
|
24
|
+
loading: boolean;
|
|
25
|
+
start: (url: string, values?: any, headers?: Record<string, string>) => void;
|
|
26
|
+
stop: () => void;
|
|
27
|
+
onError?: (error: Error) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const useEventStreamRequest: ({ onOpen, onError, streaming, onClose, textSpeed, }: UseEventStreamProps) => UseEventStreamReturn;
|
|
30
|
+
export default useEventStreamRequest;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/hooks/useEventStreamRequest.ts
|
|
20
|
+
var useEventStreamRequest_exports = {};
|
|
21
|
+
__export(useEventStreamRequest_exports, {
|
|
22
|
+
default: () => useEventStreamRequest_default,
|
|
23
|
+
useEventStreamRequest: () => useEventStreamRequest
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(useEventStreamRequest_exports);
|
|
26
|
+
var import_react = require("react");
|
|
27
|
+
var import_fetch_event_source = require("@microsoft/fetch-event-source");
|
|
28
|
+
var import_antd = require("antd");
|
|
29
|
+
var import_XAiMessage = require("../types/XAiMessage");
|
|
30
|
+
var import_utils = require("../utils/index");
|
|
31
|
+
var import_constants = require("../constants/index");
|
|
32
|
+
var import_request = require("../utils/request");
|
|
33
|
+
var useEventStreamRequest = ({
|
|
34
|
+
onOpen = () => {
|
|
35
|
+
},
|
|
36
|
+
onError = () => {
|
|
37
|
+
},
|
|
38
|
+
streaming = true,
|
|
39
|
+
onClose = () => {
|
|
40
|
+
},
|
|
41
|
+
textSpeed = 60
|
|
42
|
+
}) => {
|
|
43
|
+
const contentCacheRef = (0, import_react.useRef)([]);
|
|
44
|
+
const streamStatusRef = (0, import_react.useRef)(0);
|
|
45
|
+
const [loading, setLoading] = (0, import_react.useState)(false);
|
|
46
|
+
const loadingRef = (0, import_react.useRef)(loading);
|
|
47
|
+
const [responseData, setResponseData] = (0, import_react.useState)({ content: "" });
|
|
48
|
+
const controllerRef = (0, import_react.useRef)(null);
|
|
49
|
+
const stop = () => {
|
|
50
|
+
var _a;
|
|
51
|
+
(_a = controllerRef.current) == null ? void 0 : _a.abort();
|
|
52
|
+
contentCacheRef.current = [];
|
|
53
|
+
setLoading(false);
|
|
54
|
+
};
|
|
55
|
+
const start = async (url, values, headers = {}) => {
|
|
56
|
+
const prefixUrl = url;
|
|
57
|
+
setResponseData({});
|
|
58
|
+
setLoading(true);
|
|
59
|
+
controllerRef.current = new AbortController();
|
|
60
|
+
const params = {
|
|
61
|
+
...values
|
|
62
|
+
};
|
|
63
|
+
const { signal } = controllerRef.current;
|
|
64
|
+
if (streaming) {
|
|
65
|
+
(0, import_fetch_event_source.fetchEventSource)(prefixUrl, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
openWhenHidden: true,
|
|
68
|
+
headers: {
|
|
69
|
+
"Content-Type": "application/json",
|
|
70
|
+
"Cache-Control": "no-cache",
|
|
71
|
+
stream: "true",
|
|
72
|
+
...headers
|
|
73
|
+
},
|
|
74
|
+
signal,
|
|
75
|
+
body: JSON.stringify(params),
|
|
76
|
+
async onopen(response) {
|
|
77
|
+
streamStatusRef.current = 1;
|
|
78
|
+
if (response.ok && response.headers.get("content-type") === import_fetch_event_source.EventStreamContentType) {
|
|
79
|
+
onOpen == null ? void 0 : onOpen(response);
|
|
80
|
+
} else {
|
|
81
|
+
if (response.status === 401) {
|
|
82
|
+
import_antd.message.error("用户未登录,即将前往登录……");
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (response.status === 500) {
|
|
86
|
+
import_antd.message.error("服务器错误,请稍后重试。");
|
|
87
|
+
} else if (response.status > 500) {
|
|
88
|
+
import_antd.message.error("网络不给力,请稍后重试。");
|
|
89
|
+
}
|
|
90
|
+
if (response.status >= 500) {
|
|
91
|
+
setResponseData((prevResponseData) => {
|
|
92
|
+
return {
|
|
93
|
+
...prevResponseData,
|
|
94
|
+
content: "网络不给力,请稍后重试~~~~~",
|
|
95
|
+
requestId: "",
|
|
96
|
+
role: import_XAiMessage.MessageRole.assistant,
|
|
97
|
+
httpCode: response.status,
|
|
98
|
+
error: true,
|
|
99
|
+
code: ""
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
onError == null ? void 0 : onError(new Error(`Unexpected response status: ${response.status}`));
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
onmessage: (event) => {
|
|
107
|
+
var _a, _b;
|
|
108
|
+
const eventData = (0, import_utils.safeJsonParse)(event.data, {});
|
|
109
|
+
if (!(eventData == null ? void 0 : eventData.data) && !(eventData == null ? void 0 : eventData.content))
|
|
110
|
+
return;
|
|
111
|
+
if (((_a = eventData == null ? void 0 : eventData.result) == null ? void 0 : _a.code) !== import_constants.API_SUCCESS_CODE) {
|
|
112
|
+
setResponseData({
|
|
113
|
+
...eventData,
|
|
114
|
+
code: eventData.code,
|
|
115
|
+
content: eventData.message || "网络不给力,请稍后重试~~",
|
|
116
|
+
requestId: eventData.requestId,
|
|
117
|
+
role: import_XAiMessage.MessageRole.assistant,
|
|
118
|
+
httpCode: 200,
|
|
119
|
+
error: true
|
|
120
|
+
});
|
|
121
|
+
stop();
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
(_b = contentCacheRef.current) == null ? void 0 : _b.push(eventData);
|
|
125
|
+
},
|
|
126
|
+
onerror: (error) => {
|
|
127
|
+
streamStatusRef.current = 2;
|
|
128
|
+
setLoading(false);
|
|
129
|
+
onError == null ? void 0 : onError(error);
|
|
130
|
+
},
|
|
131
|
+
onclose: () => {
|
|
132
|
+
streamStatusRef.current = 2;
|
|
133
|
+
onClose();
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
} else {
|
|
137
|
+
try {
|
|
138
|
+
const response = await import_request.request.post(url, params);
|
|
139
|
+
setResponseData(response);
|
|
140
|
+
setLoading(false);
|
|
141
|
+
} catch (error) {
|
|
142
|
+
onError == null ? void 0 : onError(error);
|
|
143
|
+
setLoading(false);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
(0, import_react.useEffect)(() => {
|
|
148
|
+
loadingRef.current = loading;
|
|
149
|
+
}, [loading]);
|
|
150
|
+
(0, import_react.useEffect)(() => {
|
|
151
|
+
const timer = setInterval(() => {
|
|
152
|
+
var _a, _b;
|
|
153
|
+
if (((_a = contentCacheRef.current) == null ? void 0 : _a.length) > 0) {
|
|
154
|
+
const eventData = (_b = contentCacheRef.current) == null ? void 0 : _b.shift();
|
|
155
|
+
const newData = eventData == null ? void 0 : eventData.data;
|
|
156
|
+
setResponseData((prevResponseData) => {
|
|
157
|
+
const prevContent = prevResponseData.content ?? "";
|
|
158
|
+
return {
|
|
159
|
+
...eventData,
|
|
160
|
+
code: eventData == null ? void 0 : eventData.code,
|
|
161
|
+
content: `${prevContent}${newData}`,
|
|
162
|
+
requestId: eventData == null ? void 0 : eventData.requestId,
|
|
163
|
+
role: import_XAiMessage.MessageRole.assistant
|
|
164
|
+
};
|
|
165
|
+
});
|
|
166
|
+
} else if (streamStatusRef.current === 2 && loadingRef.current) {
|
|
167
|
+
streamStatusRef.current = 0;
|
|
168
|
+
setLoading(false);
|
|
169
|
+
}
|
|
170
|
+
}, textSpeed);
|
|
171
|
+
return () => clearInterval(timer);
|
|
172
|
+
}, []);
|
|
173
|
+
(0, import_react.useEffect)(() => {
|
|
174
|
+
return () => {
|
|
175
|
+
stop();
|
|
176
|
+
};
|
|
177
|
+
}, []);
|
|
178
|
+
return {
|
|
179
|
+
responseData,
|
|
180
|
+
loading,
|
|
181
|
+
start,
|
|
182
|
+
stop,
|
|
183
|
+
onError
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
var useEventStreamRequest_default = useEventStreamRequest;
|
|
187
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
188
|
+
0 && (module.exports = {
|
|
189
|
+
useEventStreamRequest
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=useEventStreamRequest.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useEventStreamRequest.ts"],
|
|
4
|
+
"sourcesContent": ["import { useState, useEffect, useRef } from 'react';\nimport { fetchEventSource, EventStreamContentType } from '@microsoft/fetch-event-source';\nimport { message } from 'antd';\nimport { MessageRole } from '@/types/XAiMessage';\nimport { safeJsonParse } from '@/utils/index';\nimport { API_SUCCESS_CODE } from '@/constants/index';\nimport { request } from '@/utils/request';\n\ninterface IResponseData {\n code: string;\n httpCode?: number;\n data: string | { message: string };\n message: string;\n content: string;\n requestId: string;\n sessionId: string;\n error?: boolean;\n success?: boolean;\n}\ninterface UseEventStreamProps {\n streaming: boolean;\n options?: RequestInit;\n onOpen?: (response: Response) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n textSpeed?: number;\n}\n\ninterface UseEventStreamReturn {\n responseData: IResponseData | Record<any, any>;\n loading: boolean;\n start: (url: string, values?: any, headers?: Record<string, string>) => void;\n stop: () => void;\n onError?: (error: Error) => void;\n}\n\nexport const useEventStreamRequest = ({\n onOpen = () => {},\n onError = () => {},\n streaming = true,\n onClose = () => {},\n textSpeed = 60,\n}: UseEventStreamProps): UseEventStreamReturn => {\n // 使用 useRef 作为临时缓存区,降低 setState 频率\n const contentCacheRef = useRef<IResponseData[]>([]); // 存放当前完整文本\n const streamStatusRef = useRef<number>(0); // 流式接收状态 0: 未开始 1: 进行中 2: 结束\n const [loading, setLoading] = useState<boolean>(false);\n const loadingRef = useRef(loading);\n const [responseData, setResponseData] = useState<IResponseData | Record<any, any>>({ content: '' });\n const controllerRef = useRef<AbortController | null>(null);\n\n // 停止接收请求\n const stop = () => {\n controllerRef.current?.abort();\n contentCacheRef.current = []; // 立即清空缓存区\n setLoading(false);\n };\n\n const start = async (url: string, values?: any, headers = {}) => {\n const prefixUrl = url;\n setResponseData({});\n setLoading(true);\n controllerRef.current = new AbortController();\n const params = {\n ...values,\n };\n\n const { signal } = controllerRef.current;\n\n if (streaming) {\n fetchEventSource(prefixUrl, {\n method: 'POST',\n openWhenHidden: true,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache',\n stream: 'true',\n ...headers,\n },\n signal,\n body: JSON.stringify(params),\n async onopen(response) {\n streamStatusRef.current = 1;\n if (response.ok && response.headers.get('content-type') === EventStreamContentType) {\n onOpen?.(response);\n } else {\n if (response.status === 401) {\n message.error('用户未登录,即将前往登录……');\n // todo 需要修改\n return;\n } if (response.status === 500) {\n message.error('服务器错误,请稍后重试。'); // 使用Antd的message组件给出提示\n } else if (response.status > 500) {\n message.error('网络不给力,请稍后重试。');\n }\n if (response.status >= 500) {\n setResponseData((prevResponseData: IResponseData) => {\n return {\n ...prevResponseData,\n content: '网络不给力,请稍后重试~~~~~',\n requestId: '',\n role: MessageRole.assistant,\n httpCode: response.status,\n error: true,\n code: '',\n };\n });\n }\n onError?.(new Error(`Unexpected response status: ${response.status}`));\n }\n },\n onmessage: (event: { data: string }) => {\n // 解析事件数据\n const eventData = safeJsonParse(event.data, {});\n // 空消息处理\n if (!eventData?.data && !eventData?.content) return;\n // 如果请求失败,则停止请求\n if (eventData?.result?.code !== API_SUCCESS_CODE) {\n setResponseData({\n ...eventData,\n code: eventData.code,\n content: eventData.message || '网络不给力,请稍后重试~~',\n requestId: eventData.requestId,\n role: MessageRole.assistant,\n httpCode: 200,\n error: true,\n });\n stop();\n return;\n }\n // 推送内容到缓存区,后续通过Interval定时器,将缓存区内容设置到响应数据中\n contentCacheRef.current?.push(eventData);\n },\n onerror: (error: Error) => {\n streamStatusRef.current = 2;\n setLoading(false);\n onError?.(error);\n },\n onclose: () => {\n streamStatusRef.current = 2;\n onClose();\n },\n });\n } else {\n try {\n const response = await request.post(url, params);\n setResponseData(response);\n setLoading(false);\n } catch (error: any) {\n onError?.(error);\n setLoading(false);\n }\n }\n };\n\n useEffect(() => {\n loadingRef.current = loading;\n }, [loading]);\n\n // 初始化定时器 将缓存区有新内容时设置到响应数据中\n useEffect(() => {\n const timer = setInterval(() => {\n if (contentCacheRef.current?.length > 0) {\n // 如果缓存区有新内容,则设置到响应数据中\n const eventData = contentCacheRef.current?.shift();\n const newData = eventData?.data;\n setResponseData((prevResponseData: IResponseData) => {\n const prevContent = prevResponseData.content ?? '';\n return {\n ...eventData,\n code: eventData?.code,\n content: `${prevContent}${newData}`,\n requestId: eventData?.requestId,\n role: MessageRole.assistant,\n };\n });\n } else if (streamStatusRef.current === 2 && loadingRef.current) {\n streamStatusRef.current = 0;\n setLoading(false);\n }\n }, textSpeed); // 渲染间隔\n\n return () => clearInterval(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n return () => {\n stop();\n };\n }, []);\n\n return {\n responseData,\n loading,\n start,\n stop,\n onError,\n };\n};\n\nexport default useEventStreamRequest;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { XAiContextType } from "../context/AiProviderContext";
|
|
2
|
+
import type { SendContent } from "../types";
|
|
3
|
+
export interface UseProviderContextOptions<T> {
|
|
4
|
+
props: T;
|
|
5
|
+
providerProps?: (keyof XAiContextType)[];
|
|
6
|
+
mergeLogic?: (props: T, context: XAiContextType | undefined) => T;
|
|
7
|
+
}
|
|
8
|
+
export interface UseProviderContextReturn<T> {
|
|
9
|
+
mergedProps: T;
|
|
10
|
+
isInProvider: boolean;
|
|
11
|
+
context: XAiContextType | undefined;
|
|
12
|
+
getProviderValue: <K extends keyof XAiContextType>(key: K) => XAiContextType[K] | undefined;
|
|
13
|
+
}
|
|
14
|
+
export type MethodCaller<T extends any[] = any[], R = any> = (...args: T) => R;
|
|
15
|
+
export interface ProviderMethods {
|
|
16
|
+
isInProvider: boolean;
|
|
17
|
+
sendMessage: MethodCaller<[SendContent], void>;
|
|
18
|
+
stopGeneration: MethodCaller<[], void>;
|
|
19
|
+
clearMessages: MethodCaller<[], void>;
|
|
20
|
+
regenerateLastMessage: MethodCaller<[string], void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 通用的 Provider 上下文 Hook
|
|
24
|
+
* 用于判断组件是否在 XAiProvider 中,并合并相关属性
|
|
25
|
+
*/
|
|
26
|
+
export declare const useProviderContext: <T extends Record<string, any>>(options: UseProviderContextOptions<T>) => UseProviderContextReturn<T>;
|
|
27
|
+
/**
|
|
28
|
+
* 专门为 XAiChatbot 设计的 Hook
|
|
29
|
+
*/
|
|
30
|
+
export declare const useChatbotContext: (componentProps: any) => UseProviderContextReturn<any>;
|
|
31
|
+
/**
|
|
32
|
+
* 通用的 Provider 方法调用 Hook
|
|
33
|
+
*/
|
|
34
|
+
export declare const useProviderMethods: () => ProviderMethods;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/hooks/useProviderContext.ts
|
|
20
|
+
var useProviderContext_exports = {};
|
|
21
|
+
__export(useProviderContext_exports, {
|
|
22
|
+
useChatbotContext: () => useChatbotContext,
|
|
23
|
+
useProviderContext: () => useProviderContext,
|
|
24
|
+
useProviderMethods: () => useProviderMethods
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(useProviderContext_exports);
|
|
27
|
+
var import_AiProviderContext = require("../context/AiProviderContext");
|
|
28
|
+
var useProviderContext = (options) => {
|
|
29
|
+
const { props, providerProps, mergeLogic } = options;
|
|
30
|
+
const context = (0, import_AiProviderContext.useXAi)();
|
|
31
|
+
const isInProvider = !!(context == null ? void 0 : context.isInProvider);
|
|
32
|
+
let mergedProps;
|
|
33
|
+
if (mergeLogic) {
|
|
34
|
+
mergedProps = mergeLogic(props, context);
|
|
35
|
+
} else if (context && isInProvider) {
|
|
36
|
+
mergedProps = { ...props, ...context };
|
|
37
|
+
} else {
|
|
38
|
+
mergedProps = props;
|
|
39
|
+
}
|
|
40
|
+
const getProviderValue = (key) => {
|
|
41
|
+
return context == null ? void 0 : context[key];
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
mergedProps,
|
|
45
|
+
isInProvider,
|
|
46
|
+
context,
|
|
47
|
+
getProviderValue
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
var useChatbotContext = (componentProps) => {
|
|
51
|
+
return useProviderContext({
|
|
52
|
+
props: componentProps,
|
|
53
|
+
mergeLogic: (props, context) => {
|
|
54
|
+
if (!(context == null ? void 0 : context.isInProvider)) {
|
|
55
|
+
return props;
|
|
56
|
+
}
|
|
57
|
+
const { messages: contextMessages, loading: contextLoading, ...restContext } = context;
|
|
58
|
+
return {
|
|
59
|
+
...props,
|
|
60
|
+
...restContext,
|
|
61
|
+
// 优先使用 Provider 的状态,如果没有则使用 props
|
|
62
|
+
messages: contextMessages || props.messages || [],
|
|
63
|
+
loading: contextLoading || props.loading || false,
|
|
64
|
+
// 确保 onSend 等回调函数也被合并
|
|
65
|
+
onSend: context.onSend || props.onSend,
|
|
66
|
+
onClear: context.onClear || props.onClear,
|
|
67
|
+
onStop: context.onStop || props.onStop,
|
|
68
|
+
onSuggestMessageClick: context.onSuggestMessageClick || props.onSuggestMessageClick,
|
|
69
|
+
onMessagesActionsCallback: context.onMessagesActionsCallback || props.onMessagesActionsCallback
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
var useProviderMethods = () => {
|
|
75
|
+
const context = (0, import_AiProviderContext.useXAi)();
|
|
76
|
+
const callMethod = (methodName, ...args) => {
|
|
77
|
+
if ((context == null ? void 0 : context.isInProvider) && typeof context[methodName] === "function") {
|
|
78
|
+
return context[methodName](...args);
|
|
79
|
+
}
|
|
80
|
+
return void 0;
|
|
81
|
+
};
|
|
82
|
+
const createMethodCaller = (providerMethod, argsTransformer) => {
|
|
83
|
+
return (...args) => {
|
|
84
|
+
if ((context == null ? void 0 : context.isInProvider) && typeof context[providerMethod] === "function") {
|
|
85
|
+
const transformedArgs = argsTransformer ? argsTransformer(args) : args;
|
|
86
|
+
return context[providerMethod](...transformedArgs);
|
|
87
|
+
}
|
|
88
|
+
return void 0;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
isInProvider: !!(context == null ? void 0 : context.isInProvider),
|
|
93
|
+
sendMessage: createMethodCaller("onSend"),
|
|
94
|
+
stopGeneration: createMethodCaller("onStop"),
|
|
95
|
+
clearMessages: createMethodCaller("onClear"),
|
|
96
|
+
regenerateLastMessage: createMethodCaller("onSend")
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
+
0 && (module.exports = {
|
|
101
|
+
useChatbotContext,
|
|
102
|
+
useProviderContext,
|
|
103
|
+
useProviderMethods
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=useProviderContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useProviderContext.ts"],
|
|
4
|
+
"sourcesContent": ["import { useXAi } from '@/context/AiProviderContext';\nimport type { XAiContextType } from '@/context/AiProviderContext';\nimport type { SendContent } from '@/types';\n\nexport interface UseProviderContextOptions<T> {\n // 组件自身的 props\n props: T;\n // 需要从 Provider 中获取的属性\n providerProps?: (keyof XAiContextType)[];\n // 自定义合并逻辑\n mergeLogic?: (props: T, context: XAiContextType | undefined) => T;\n}\n\nexport interface UseProviderContextReturn<T> {\n // 合并后的 props\n mergedProps: T;\n // 是否在 Provider 中\n isInProvider: boolean;\n // Provider 上下文\n context: XAiContextType | undefined;\n // 从 Provider 中获取特定属性\n getProviderValue: <K extends keyof XAiContextType>(key: K) => XAiContextType[K] | undefined;\n}\n\n// 定义方法调用器的类型\nexport type MethodCaller<T extends any[] = any[], R = any> = (...args: T) => R;\n\n// 定义 Provider 方法的类型\nexport interface ProviderMethods {\n isInProvider: boolean;\n sendMessage: MethodCaller<[SendContent], void>;\n stopGeneration: MethodCaller<[], void>;\n clearMessages: MethodCaller<[], void>;\n regenerateLastMessage: MethodCaller<[string], void>;\n}\n\n/**\n * 通用的 Provider 上下文 Hook\n * 用于判断组件是否在 XAiProvider 中,并合并相关属性\n */\nexport const useProviderContext = <T extends Record<string, any>>(\n options: UseProviderContextOptions<T>,\n): UseProviderContextReturn<T> => {\n const { props, providerProps, mergeLogic } = options;\n\n // 获取 Provider 上下文\n const context = useXAi();\n\n // 判断是否在 Provider 中\n const isInProvider = !!context?.isInProvider;\n\n // 合并 props 和 context\n let mergedProps: T;\n if (mergeLogic) {\n mergedProps = mergeLogic(props, context);\n } else if (context && isInProvider) {\n mergedProps = { ...props, ...context };\n } else {\n mergedProps = props;\n }\n\n // 获取 Provider 中的特定值\n const getProviderValue = <K extends keyof XAiContextType>(key: K): XAiContextType[K] | undefined => {\n return context?.[key];\n };\n\n return {\n mergedProps,\n isInProvider,\n context,\n getProviderValue,\n };\n};\n\n/**\n * 专门为 XAiChatbot 设计的 Hook\n */\nexport const useChatbotContext = (componentProps: any) => {\n return useProviderContext({\n props: componentProps,\n mergeLogic: (props, context) => {\n if (!context?.isInProvider) {\n return props;\n }\n\n // 智能合并逻辑 - 合并所有 Provider 提供的属性\n const { messages: contextMessages, loading: contextLoading, ...restContext } = context;\n return {\n ...props,\n ...restContext,\n // 优先使用 Provider 的状态,如果没有则使用 props\n messages: contextMessages || props.messages || [],\n loading: contextLoading || props.loading || false,\n // 确保 onSend 等回调函数也被合并\n onSend: context.onSend || props.onSend,\n onClear: context.onClear || props.onClear,\n onStop: context.onStop || props.onStop,\n onSuggestMessageClick: context.onSuggestMessageClick || props.onSuggestMessageClick,\n onMessagesActionsCallback: context.onMessagesActionsCallback || props.onMessagesActionsCallback,\n };\n },\n });\n};\n\n/**\n * 通用的 Provider 方法调用 Hook\n */\nexport const useProviderMethods = (): ProviderMethods => {\n const context = useXAi();\n\n const callMethod = (methodName: keyof XAiContextType, ...args: any[]) => {\n if (context?.isInProvider && typeof context[methodName] === 'function') {\n return (context[methodName] as Function)(...args);\n }\n return undefined;\n };\n\n // 创建统一的方法调用器,支持参数转换\n const createMethodCaller = (\n providerMethod: string,\n argsTransformer?: (args: any[]) => any[],\n ): MethodCaller => {\n return (...args: any[]) => {\n // 如果 Provider 方法存在,直接调用并返回\n if (context?.isInProvider && typeof context[providerMethod as keyof XAiContextType] === 'function') {\n const transformedArgs = argsTransformer ? argsTransformer(args) : args;\n return (context[providerMethod as keyof XAiContextType] as Function)(...transformedArgs);\n }\n return undefined;\n };\n };\n\n return {\n isInProvider: !!context?.isInProvider,\n sendMessage: createMethodCaller('onSend'),\n stopGeneration: createMethodCaller('onStop'),\n clearMessages: createMethodCaller('onClear'),\n regenerateLastMessage: createMethodCaller('onSend'),\n };\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAuB;AAwChB,IAAM,qBAAqB,CAChC,YACgC;AAChC,QAAM,EAAE,OAAO,eAAe,WAAW,IAAI;AAG7C,QAAM,cAAU,iCAAO;AAGvB,QAAM,eAAe,CAAC,EAAC,mCAAS;AAGhC,MAAI;AACJ,MAAI,YAAY;AACd,kBAAc,WAAW,OAAO,OAAO;AAAA,EACzC,WAAW,WAAW,cAAc;AAClC,kBAAc,EAAE,GAAG,OAAO,GAAG,QAAQ;AAAA,EACvC,OAAO;AACL,kBAAc;AAAA,EAChB;AAGA,QAAM,mBAAmB,CAAiC,QAA0C;AAClG,WAAO,mCAAU;AAAA,EACnB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAKO,IAAM,oBAAoB,CAAC,mBAAwB;AACxD,SAAO,mBAAmB;AAAA,IACxB,OAAO;AAAA,IACP,YAAY,CAAC,OAAO,YAAY;AAC9B,UAAI,EAAC,mCAAS,eAAc;AAC1B,eAAO;AAAA,MACT;AAGA,YAAM,EAAE,UAAU,iBAAiB,SAAS,gBAAgB,GAAG,YAAY,IAAI;AAC/E,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,QAEH,UAAU,mBAAmB,MAAM,YAAY,CAAC;AAAA,QAChD,SAAS,kBAAkB,MAAM,WAAW;AAAA;AAAA,QAE5C,QAAQ,QAAQ,UAAU,MAAM;AAAA,QAChC,SAAS,QAAQ,WAAW,MAAM;AAAA,QAClC,QAAQ,QAAQ,UAAU,MAAM;AAAA,QAChC,uBAAuB,QAAQ,yBAAyB,MAAM;AAAA,QAC9D,2BAA2B,QAAQ,6BAA6B,MAAM;AAAA,MACxE;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAKO,IAAM,qBAAqB,MAAuB;AACvD,QAAM,cAAU,iCAAO;AAEvB,QAAM,aAAa,CAAC,eAAqC,SAAgB;AACvE,SAAI,mCAAS,iBAAgB,OAAO,QAAQ,UAAU,MAAM,YAAY;AACtE,aAAQ,QAAQ,UAAU,EAAe,GAAG,IAAI;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AAGA,QAAM,qBAAqB,CACzB,gBACA,oBACiB;AACjB,WAAO,IAAI,SAAgB;AAEzB,WAAI,mCAAS,iBAAgB,OAAO,QAAQ,cAAsC,MAAM,YAAY;AAClG,cAAM,kBAAkB,kBAAkB,gBAAgB,IAAI,IAAI;AAClE,eAAQ,QAAQ,cAAsC,EAAe,GAAG,eAAe;AAAA,MACzF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL,cAAc,CAAC,EAAC,mCAAS;AAAA,IACzB,aAAa,mBAAmB,QAAQ;AAAA,IACxC,gBAAgB,mBAAmB,QAAQ;AAAA,IAC3C,eAAe,mBAAmB,SAAS;AAAA,IAC3C,uBAAuB,mBAAmB,QAAQ;AAAA,EACpD;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { XAiProviderProps } from "../types/XAiProvider";
|
|
3
|
+
export interface UseXAiSDKOptions extends XAiProviderProps {
|
|
4
|
+
containerId?: string;
|
|
5
|
+
width?: string | number;
|
|
6
|
+
height?: string | number;
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
}
|
|
10
|
+
export declare const useXAiSDK: (options: UseXAiSDKOptions) => {
|
|
11
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
12
|
+
render: () => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
export default useXAiSDK;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/hooks/useXAiSDK.tsx
|
|
30
|
+
var useXAiSDK_exports = {};
|
|
31
|
+
__export(useXAiSDK_exports, {
|
|
32
|
+
default: () => useXAiSDK_default,
|
|
33
|
+
useXAiSDK: () => useXAiSDK
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(useXAiSDK_exports);
|
|
36
|
+
var import_react = require("react");
|
|
37
|
+
var import_XAiProvider = __toESM(require("../components/XAiProvider"));
|
|
38
|
+
var import_XAiChatbot = __toESM(require("../components/XAiChatbot"));
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
+
var useXAiSDK = (options) => {
|
|
41
|
+
const containerRef = (0, import_react.useRef)(null);
|
|
42
|
+
const {
|
|
43
|
+
containerId = "xai-chatbot-container",
|
|
44
|
+
width = "400px",
|
|
45
|
+
height = "600px",
|
|
46
|
+
className,
|
|
47
|
+
style,
|
|
48
|
+
...providerProps
|
|
49
|
+
} = options;
|
|
50
|
+
(0, import_react.useEffect)(() => {
|
|
51
|
+
if (containerRef.current) {
|
|
52
|
+
const container = containerRef.current;
|
|
53
|
+
if (!container.querySelector(".xai-chatbot-wrapper")) {
|
|
54
|
+
const wrapper = document.createElement("div");
|
|
55
|
+
wrapper.className = "xai-chatbot-wrapper";
|
|
56
|
+
wrapper.style.width = typeof width === "number" ? `${width}px` : width;
|
|
57
|
+
wrapper.style.height = typeof height === "number" ? `${height}px` : height;
|
|
58
|
+
if (className)
|
|
59
|
+
wrapper.className += ` ${className}`;
|
|
60
|
+
if (style)
|
|
61
|
+
Object.assign(wrapper.style, style);
|
|
62
|
+
container.appendChild(wrapper);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}, [containerId, width, height, className, style]);
|
|
66
|
+
return {
|
|
67
|
+
containerRef,
|
|
68
|
+
render: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: containerRef, id: containerId, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAiProvider.default, { ...providerProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAiChatbot.default, {}) }) })
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
var useXAiSDK_default = useXAiSDK;
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
useXAiSDK
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=useXAiSDK.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useXAiSDK.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useEffect, useRef } from 'react';\nimport { XAiProviderProps } from '@/types/XAiProvider';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\n\nexport interface UseXAiSDKOptions extends XAiProviderProps {\n containerId?: string;\n width?: string | number;\n height?: string | number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const useXAiSDK = (options: UseXAiSDKOptions) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const {\n containerId = 'xai-chatbot-container',\n width = '400px',\n height = '600px',\n className,\n style,\n ...providerProps\n } = options;\n\n useEffect(() => {\n if (containerRef.current) {\n // 确保容器存在\n const container = containerRef.current;\n if (!container.querySelector('.xai-chatbot-wrapper')) {\n // 创建包装器\n const wrapper = document.createElement('div');\n wrapper.className = 'xai-chatbot-wrapper';\n wrapper.style.width = typeof width === 'number' ? `${width}px` : width;\n wrapper.style.height = typeof height === 'number' ? `${height}px` : height;\n if (className) wrapper.className += ` ${className}`;\n if (style) Object.assign(wrapper.style, style);\n \n container.appendChild(wrapper);\n }\n }\n }, [containerId, width, height, className, style]);\n\n return {\n containerRef,\n render: () => (\n <div ref={containerRef} id={containerId}>\n <XAiProvider {...providerProps}>\n <XAiChatbot />\n </XAiProvider>\n </div>\n ),\n };\n};\n\nexport default useXAiSDK; "],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AAEzC,yBAAwB;AACxB,wBAAuB;AA4Cb;AAlCH,IAAM,YAAY,CAAC,YAA8B;AACtD,QAAM,mBAAe,qBAAuB,IAAI;AAChD,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,8BAAU,MAAM;AACd,QAAI,aAAa,SAAS;AAExB,YAAM,YAAY,aAAa;AAC/B,UAAI,CAAC,UAAU,cAAc,sBAAsB,GAAG;AAEpD,cAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,gBAAQ,YAAY;AACpB,gBAAQ,MAAM,QAAQ,OAAO,UAAU,WAAW,GAAG,YAAY;AACjE,gBAAQ,MAAM,SAAS,OAAO,WAAW,WAAW,GAAG,aAAa;AACpE,YAAI;AAAW,kBAAQ,aAAa,IAAI;AACxC,YAAI;AAAO,iBAAO,OAAO,QAAQ,OAAO,KAAK;AAE7C,kBAAU,YAAY,OAAO;AAAA,MAC/B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAa,OAAO,QAAQ,WAAW,KAAK,CAAC;AAEjD,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,MACN,4CAAC,SAAI,KAAK,cAAc,IAAI,aAC1B,sDAAC,mBAAAA,SAAA,EAAa,GAAG,eACf,sDAAC,kBAAAC,SAAA,EAAW,GACd,GACF;AAAA,EAEJ;AACF;AAEA,IAAO,oBAAQ;",
|
|
6
|
+
"names": ["XAiProvider", "XAiChatbot"]
|
|
7
|
+
}
|