@ai-group/chat-sdk 3.5.3 → 3.5.5
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/package.json +1 -1
- package/dist/cjs/assets/add-chat.svg +0 -13
- 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 +0 -16
- package/dist/cjs/assets/empty.png +0 -0
- package/dist/cjs/assets/flash-open.svg +0 -14
- 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 +0 -3
- package/dist/cjs/assets/svg/AddChatIcon.js +0 -31
- package/dist/cjs/assets/svg/AddChatIcon.js.map +0 -7
- 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 +0 -9
- package/dist/cjs/client/base.js +0 -18
- package/dist/cjs/client/base.js.map +0 -7
- package/dist/cjs/client/restClient.d.ts +0 -0
- package/dist/cjs/client/restClient.js +0 -1
- package/dist/cjs/client/restClient.js.map +0 -7
- package/dist/cjs/client/wsClient.d.ts +0 -0
- package/dist/cjs/client/wsClient.js +0 -1
- package/dist/cjs/client/wsClient.js.map +0 -7
- package/dist/cjs/components/DislikeFeedback.d.ts +0 -8
- package/dist/cjs/components/DislikeFeedback.js +0 -113
- package/dist/cjs/components/DislikeFeedback.js.map +0 -7
- package/dist/cjs/components/FeedbackTags.d.ts +0 -7
- package/dist/cjs/components/FeedbackTags.js +0 -52
- package/dist/cjs/components/FeedbackTags.js.map +0 -7
- package/dist/cjs/components/FileGallery/index.d.ts +0 -34
- package/dist/cjs/components/FileGallery/index.js +0 -324
- package/dist/cjs/components/FileGallery/index.js.map +0 -7
- package/dist/cjs/components/FileGallery/styles.d.ts +0 -49
- package/dist/cjs/components/FileGallery/styles.js +0 -194
- package/dist/cjs/components/FileGallery/styles.js.map +0 -7
- package/dist/cjs/components/FolderTree/DirectoryTree.d.ts +0 -22
- package/dist/cjs/components/FolderTree/DirectoryTree.js +0 -209
- package/dist/cjs/components/FolderTree/DirectoryTree.js.map +0 -7
- package/dist/cjs/components/FolderTree/FilePreview.d.ts +0 -17
- package/dist/cjs/components/FolderTree/FilePreview.js +0 -163
- package/dist/cjs/components/FolderTree/FilePreview.js.map +0 -7
- package/dist/cjs/components/FolderTree/index.d.ts +0 -5
- package/dist/cjs/components/FolderTree/index.js +0 -257
- package/dist/cjs/components/FolderTree/index.js.map +0 -7
- package/dist/cjs/components/FolderTree/styles.d.ts +0 -49
- package/dist/cjs/components/FolderTree/styles.js +0 -174
- package/dist/cjs/components/FolderTree/styles.js.map +0 -7
- package/dist/cjs/components/FolderTree/types.d.ts +0 -106
- package/dist/cjs/components/FolderTree/types.js +0 -18
- package/dist/cjs/components/FolderTree/types.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +0 -4
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +0 -217
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +0 -41
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +0 -70
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +0 -10
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +0 -186
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +0 -38
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js +0 -119
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.d.ts +0 -8
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js +0 -64
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/index.d.ts +0 -14
- package/dist/cjs/components/XAdkChatbot/index.js +0 -509
- package/dist/cjs/components/XAdkChatbot/index.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +0 -62
- package/dist/cjs/components/XAdkChatbot/styles.js +0 -234
- package/dist/cjs/components/XAdkChatbot/styles.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +0 -30
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +0 -64
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +0 -33
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +0 -248
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +0 -8
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +0 -117
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +0 -7
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +0 -64
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +0 -25
- package/dist/cjs/components/XAdkProvider/compound/Header.js +0 -70
- package/dist/cjs/components/XAdkProvider/compound/Header.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +0 -26
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +0 -159
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +0 -27
- package/dist/cjs/components/XAdkProvider/compound/Sender.js +0 -58
- package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +0 -24
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +0 -151
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +0 -6
- package/dist/cjs/components/XAdkProvider/compound/Welcome.js +0 -60
- package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/index.d.ts +0 -17
- package/dist/cjs/components/XAdkProvider/compound/index.js +0 -55
- package/dist/cjs/components/XAdkProvider/compound/index.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +0 -38
- package/dist/cjs/components/XAdkProvider/compound/styles.js +0 -65
- package/dist/cjs/components/XAdkProvider/compound/styles.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +0 -41
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +0 -40
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +0 -44
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +0 -42
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +0 -29
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js +0 -40
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/context/index.d.ts +0 -7
- package/dist/cjs/components/XAdkProvider/context/index.js +0 -28
- package/dist/cjs/components/XAdkProvider/context/index.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/index.d.ts +0 -55
- package/dist/cjs/components/XAdkProvider/index.js +0 -263
- package/dist/cjs/components/XAdkProvider/index.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/styles.d.ts +0 -38
- package/dist/cjs/components/XAdkProvider/styles.js +0 -51
- package/dist/cjs/components/XAdkProvider/styles.js.map +0 -7
- package/dist/cjs/components/XAdkSender/Switch.d.ts +0 -16
- package/dist/cjs/components/XAdkSender/Switch.js +0 -95
- package/dist/cjs/components/XAdkSender/Switch.js.map +0 -7
- package/dist/cjs/components/XAdkSender/index.d.ts +0 -9
- package/dist/cjs/components/XAdkSender/index.js +0 -581
- package/dist/cjs/components/XAdkSender/index.js.map +0 -7
- package/dist/cjs/components/XAdkSender/styles.d.ts +0 -47
- package/dist/cjs/components/XAdkSender/styles.js +0 -211
- package/dist/cjs/components/XAdkSender/styles.js.map +0 -7
- package/dist/cjs/components/XAdkThoughtChain/index.d.ts +0 -4
- package/dist/cjs/components/XAdkThoughtChain/index.js +0 -189
- package/dist/cjs/components/XAdkThoughtChain/index.js.map +0 -7
- package/dist/cjs/components/XAdkThoughtChain/styles.d.ts +0 -60
- package/dist/cjs/components/XAdkThoughtChain/styles.js +0 -206
- package/dist/cjs/components/XAdkThoughtChain/styles.js.map +0 -7
- package/dist/cjs/components/XAiChatbot/index.d.ts +0 -10
- package/dist/cjs/components/XAiChatbot/index.js +0 -431
- package/dist/cjs/components/XAiChatbot/index.js.map +0 -7
- package/dist/cjs/components/XAiChatbot/styles.d.ts +0 -68
- package/dist/cjs/components/XAiChatbot/styles.js +0 -386
- package/dist/cjs/components/XAiChatbot/styles.js.map +0 -7
- package/dist/cjs/components/XAiConversations/index.d.ts +0 -4
- package/dist/cjs/components/XAiConversations/index.js +0 -140
- package/dist/cjs/components/XAiConversations/index.js.map +0 -7
- package/dist/cjs/components/XAiConversations/styles.d.ts +0 -50
- package/dist/cjs/components/XAiConversations/styles.js +0 -198
- package/dist/cjs/components/XAiConversations/styles.js.map +0 -7
- package/dist/cjs/components/XAiJsonView/index.d.ts +0 -8
- package/dist/cjs/components/XAiJsonView/index.js +0 -81
- package/dist/cjs/components/XAiJsonView/index.js.map +0 -7
- package/dist/cjs/components/XAiJsonView/styles.d.ts +0 -39
- package/dist/cjs/components/XAiJsonView/styles.js +0 -58
- package/dist/cjs/components/XAiJsonView/styles.js.map +0 -7
- package/dist/cjs/components/XAiProvider/demo.styles.d.ts +0 -37
- package/dist/cjs/components/XAiProvider/demo.styles.js +0 -37
- package/dist/cjs/components/XAiProvider/demo.styles.js.map +0 -7
- package/dist/cjs/components/XAiProvider/index.d.ts +0 -4
- package/dist/cjs/components/XAiProvider/index.js +0 -385
- package/dist/cjs/components/XAiProvider/index.js.map +0 -7
- package/dist/cjs/components/XAiSDK.d.ts +0 -10
- package/dist/cjs/components/XAiSDK.js +0 -53
- package/dist/cjs/components/XAiSDK.js.map +0 -7
- package/dist/cjs/components/XAiSender/index.d.ts +0 -4
- package/dist/cjs/components/XAiSender/index.js +0 -228
- package/dist/cjs/components/XAiSender/index.js.map +0 -7
- package/dist/cjs/components/XAiSender/styles.d.ts +0 -44
- package/dist/cjs/components/XAiSender/styles.js +0 -157
- package/dist/cjs/components/XAiSender/styles.js.map +0 -7
- package/dist/cjs/constants/index.d.ts +0 -3
- package/dist/cjs/constants/index.js +0 -36
- package/dist/cjs/constants/index.js.map +0 -7
- package/dist/cjs/context/AiProviderContext.d.ts +0 -15
- package/dist/cjs/context/AiProviderContext.js +0 -74
- package/dist/cjs/context/AiProviderContext.js.map +0 -7
- package/dist/cjs/context/ThemeContext.d.ts +0 -20
- package/dist/cjs/context/ThemeContext.js +0 -37
- package/dist/cjs/context/ThemeContext.js.map +0 -7
- package/dist/cjs/hooks/useADKChat.d.ts +0 -41
- package/dist/cjs/hooks/useADKChat.js +0 -1027
- package/dist/cjs/hooks/useADKChat.js.map +0 -7
- package/dist/cjs/hooks/useAgentGenerator.d.ts +0 -94
- package/dist/cjs/hooks/useAgentGenerator.js +0 -804
- package/dist/cjs/hooks/useAgentGenerator.js.map +0 -7
- package/dist/cjs/hooks/useEventStreamRequest.d.ts +0 -30
- package/dist/cjs/hooks/useEventStreamRequest.js +0 -191
- package/dist/cjs/hooks/useEventStreamRequest.js.map +0 -7
- package/dist/cjs/hooks/useProviderContext.d.ts +0 -34
- package/dist/cjs/hooks/useProviderContext.js +0 -105
- package/dist/cjs/hooks/useProviderContext.js.map +0 -7
- package/dist/cjs/hooks/useXAiSDK.d.ts +0 -14
- package/dist/cjs/hooks/useXAiSDK.js +0 -76
- package/dist/cjs/hooks/useXAiSDK.js.map +0 -7
- package/dist/cjs/index.d.ts +0 -30
- package/dist/cjs/index.js +0 -123
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/presets/xGroupAdk.d.ts +0 -20
- package/dist/cjs/presets/xGroupAdk.js +0 -130
- package/dist/cjs/presets/xGroupAdk.js.map +0 -7
- package/dist/cjs/services/api.d.ts +0 -162
- package/dist/cjs/services/api.js +0 -101
- package/dist/cjs/services/api.js.map +0 -7
- package/dist/cjs/styles/common.d.ts +0 -73
- package/dist/cjs/styles/common.js +0 -174
- package/dist/cjs/styles/common.js.map +0 -7
- package/dist/cjs/styles/markdown.d.ts +0 -3
- package/dist/cjs/styles/markdown.js +0 -185
- package/dist/cjs/styles/markdown.js.map +0 -7
- package/dist/cjs/types/ChatHook.d.ts +0 -92
- package/dist/cjs/types/ChatHook.js +0 -18
- package/dist/cjs/types/ChatHook.js.map +0 -7
- package/dist/cjs/types/ChatStrategies.d.ts +0 -45
- package/dist/cjs/types/ChatStrategies.js +0 -18
- package/dist/cjs/types/ChatStrategies.js.map +0 -7
- package/dist/cjs/types/FileGallery.d.ts +0 -36
- package/dist/cjs/types/FileGallery.js +0 -18
- package/dist/cjs/types/FileGallery.js.map +0 -7
- package/dist/cjs/types/FunctionCallRender.d.ts +0 -35
- package/dist/cjs/types/FunctionCallRender.js +0 -32
- package/dist/cjs/types/FunctionCallRender.js.map +0 -7
- package/dist/cjs/types/XAdkChatbot.d.ts +0 -348
- package/dist/cjs/types/XAdkChatbot.js +0 -18
- package/dist/cjs/types/XAdkChatbot.js.map +0 -7
- package/dist/cjs/types/XAdkProvider.d.ts +0 -224
- package/dist/cjs/types/XAdkProvider.js +0 -34
- package/dist/cjs/types/XAdkProvider.js.map +0 -7
- package/dist/cjs/types/XAdkSender.d.ts +0 -112
- package/dist/cjs/types/XAdkSender.js +0 -18
- package/dist/cjs/types/XAdkSender.js.map +0 -7
- package/dist/cjs/types/XAdkThoughtChain.d.ts +0 -35
- package/dist/cjs/types/XAdkThoughtChain.js +0 -18
- package/dist/cjs/types/XAdkThoughtChain.js.map +0 -7
- package/dist/cjs/types/XAiChatbot.d.ts +0 -158
- package/dist/cjs/types/XAiChatbot.js +0 -18
- package/dist/cjs/types/XAiChatbot.js.map +0 -7
- package/dist/cjs/types/XAiConversations.d.ts +0 -22
- package/dist/cjs/types/XAiConversations.js +0 -18
- package/dist/cjs/types/XAiConversations.js.map +0 -7
- package/dist/cjs/types/XAiMessage.d.ts +0 -126
- package/dist/cjs/types/XAiMessage.js +0 -55
- package/dist/cjs/types/XAiMessage.js.map +0 -7
- package/dist/cjs/types/XAiProvider.d.ts +0 -315
- package/dist/cjs/types/XAiProvider.js +0 -78
- package/dist/cjs/types/XAiProvider.js.map +0 -7
- package/dist/cjs/types/XAiSender.d.ts +0 -29
- package/dist/cjs/types/XAiSender.js +0 -18
- package/dist/cjs/types/XAiSender.js.map +0 -7
- package/dist/cjs/types/common.d.ts +0 -6
- package/dist/cjs/types/common.js +0 -18
- package/dist/cjs/types/common.js.map +0 -7
- package/dist/cjs/types/index.d.ts +0 -13
- package/dist/cjs/types/index.js +0 -48
- package/dist/cjs/types/index.js.map +0 -7
- package/dist/cjs/types/mdx.d.ts +0 -23
- package/dist/cjs/types/node.d.ts +0 -10
- package/dist/cjs/types/node.js +0 -18
- package/dist/cjs/types/node.js.map +0 -7
- package/dist/cjs/utils/chat.d.ts +0 -34
- package/dist/cjs/utils/chat.js +0 -1
- package/dist/cjs/utils/chat.js.map +0 -7
- package/dist/cjs/utils/file.d.ts +0 -2
- package/dist/cjs/utils/file.js +0 -33
- package/dist/cjs/utils/file.js.map +0 -7
- package/dist/cjs/utils/index.d.ts +0 -4
- package/dist/cjs/utils/index.js +0 -59
- package/dist/cjs/utils/index.js.map +0 -7
- package/dist/cjs/utils/parseAgentMessage.d.ts +0 -81
- package/dist/cjs/utils/parseAgentMessage.js +0 -180
- package/dist/cjs/utils/parseAgentMessage.js.map +0 -7
- package/dist/cjs/utils/providerManager.d.ts +0 -23
- package/dist/cjs/utils/providerManager.js +0 -73
- package/dist/cjs/utils/providerManager.js.map +0 -7
- package/dist/cjs/utils/request.d.ts +0 -78
- package/dist/cjs/utils/request.example.d.ts +0 -39
- package/dist/cjs/utils/request.example.js +0 -211
- package/dist/cjs/utils/request.example.js.map +0 -7
- package/dist/cjs/utils/request.js +0 -231
- package/dist/cjs/utils/request.js.map +0 -7
- package/dist/cjs/utils/umdEntry.d.ts +0 -170
- package/dist/cjs/utils/umdEntry.js +0 -354
- package/dist/cjs/utils/umdEntry.js.map +0 -7
- package/dist/cjs/utils/workflowNode.d.ts +0 -2
- package/dist/cjs/utils/workflowNode.js +0 -169
- package/dist/cjs/utils/workflowNode.js.map +0 -7
- package/dist/esm/assets/add-chat.svg +0 -13
- 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 +0 -16
- package/dist/esm/assets/empty.png +0 -0
- package/dist/esm/assets/flash-open.svg +0 -14
- 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 +0 -3
- package/dist/esm/assets/svg/AddChatIcon.js +0 -40
- package/dist/esm/assets/svg/AddChatIcon.js.map +0 -1
- 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 +0 -9
- package/dist/esm/client/base.js +0 -2
- package/dist/esm/client/base.js.map +0 -1
- package/dist/esm/client/restClient.d.ts +0 -0
- package/dist/esm/client/restClient.js +0 -2
- package/dist/esm/client/restClient.js.map +0 -1
- package/dist/esm/client/wsClient.d.ts +0 -0
- package/dist/esm/client/wsClient.js +0 -2
- package/dist/esm/client/wsClient.js.map +0 -1
- package/dist/esm/components/DislikeFeedback.d.ts +0 -8
- package/dist/esm/components/DislikeFeedback.js +0 -127
- package/dist/esm/components/DislikeFeedback.js.map +0 -1
- package/dist/esm/components/FeedbackTags.d.ts +0 -7
- package/dist/esm/components/FeedbackTags.js +0 -34
- package/dist/esm/components/FeedbackTags.js.map +0 -1
- package/dist/esm/components/FileGallery/index.d.ts +0 -34
- package/dist/esm/components/FileGallery/index.js +0 -464
- package/dist/esm/components/FileGallery/index.js.map +0 -1
- package/dist/esm/components/FileGallery/styles.d.ts +0 -49
- package/dist/esm/components/FileGallery/styles.js +0 -23
- package/dist/esm/components/FileGallery/styles.js.map +0 -1
- package/dist/esm/components/FolderTree/DirectoryTree.d.ts +0 -22
- package/dist/esm/components/FolderTree/DirectoryTree.js +0 -167
- package/dist/esm/components/FolderTree/DirectoryTree.js.map +0 -1
- package/dist/esm/components/FolderTree/FilePreview.d.ts +0 -17
- package/dist/esm/components/FolderTree/FilePreview.js +0 -160
- package/dist/esm/components/FolderTree/FilePreview.js.map +0 -1
- package/dist/esm/components/FolderTree/index.d.ts +0 -5
- package/dist/esm/components/FolderTree/index.js +0 -278
- package/dist/esm/components/FolderTree/index.js.map +0 -1
- package/dist/esm/components/FolderTree/styles.d.ts +0 -49
- package/dist/esm/components/FolderTree/styles.js +0 -23
- package/dist/esm/components/FolderTree/styles.js.map +0 -1
- package/dist/esm/components/FolderTree/types.d.ts +0 -106
- package/dist/esm/components/FolderTree/types.js +0 -2
- package/dist/esm/components/FolderTree/types.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +0 -4
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +0 -208
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +0 -41
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +0 -15
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +0 -10
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +0 -172
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +0 -38
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js +0 -12
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.d.ts +0 -8
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js +0 -42
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/index.d.ts +0 -14
- package/dist/esm/components/XAdkChatbot/index.js +0 -589
- package/dist/esm/components/XAdkChatbot/index.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/styles.d.ts +0 -62
- package/dist/esm/components/XAdkChatbot/styles.js +0 -37
- package/dist/esm/components/XAdkChatbot/styles.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +0 -30
- package/dist/esm/components/XAdkProvider/compound/Chatbot.js +0 -47
- package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +0 -33
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +0 -192
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +0 -8
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +0 -122
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +0 -7
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +0 -34
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/Header.d.ts +0 -25
- package/dist/esm/components/XAdkProvider/compound/Header.js +0 -79
- package/dist/esm/components/XAdkProvider/compound/Header.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +0 -26
- package/dist/esm/components/XAdkProvider/compound/Messages.js +0 -179
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +0 -27
- package/dist/esm/components/XAdkProvider/compound/Sender.js +0 -44
- package/dist/esm/components/XAdkProvider/compound/Sender.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +0 -24
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js +0 -142
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +0 -6
- package/dist/esm/components/XAdkProvider/compound/Welcome.js +0 -36
- package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/index.d.ts +0 -17
- package/dist/esm/components/XAdkProvider/compound/index.js +0 -13
- package/dist/esm/components/XAdkProvider/compound/index.js.map +0 -1
- package/dist/esm/components/XAdkProvider/compound/styles.d.ts +0 -38
- package/dist/esm/components/XAdkProvider/compound/styles.js +0 -12
- package/dist/esm/components/XAdkProvider/compound/styles.js.map +0 -1
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +0 -41
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +0 -23
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +0 -1
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +0 -44
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +0 -23
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +0 -1
- package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +0 -29
- package/dist/esm/components/XAdkProvider/context/SessionContext.js +0 -22
- package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +0 -1
- package/dist/esm/components/XAdkProvider/context/index.d.ts +0 -7
- package/dist/esm/components/XAdkProvider/context/index.js +0 -9
- package/dist/esm/components/XAdkProvider/context/index.js.map +0 -1
- package/dist/esm/components/XAdkProvider/index.d.ts +0 -55
- package/dist/esm/components/XAdkProvider/index.js +0 -264
- package/dist/esm/components/XAdkProvider/index.js.map +0 -1
- package/dist/esm/components/XAdkProvider/styles.d.ts +0 -38
- package/dist/esm/components/XAdkProvider/styles.js +0 -13
- package/dist/esm/components/XAdkProvider/styles.js.map +0 -1
- package/dist/esm/components/XAdkSender/Switch.d.ts +0 -16
- package/dist/esm/components/XAdkSender/Switch.js +0 -53
- package/dist/esm/components/XAdkSender/Switch.js.map +0 -1
- package/dist/esm/components/XAdkSender/index.d.ts +0 -9
- package/dist/esm/components/XAdkSender/index.js +0 -675
- package/dist/esm/components/XAdkSender/index.js.map +0 -1
- package/dist/esm/components/XAdkSender/styles.d.ts +0 -47
- package/dist/esm/components/XAdkSender/styles.js +0 -33
- package/dist/esm/components/XAdkSender/styles.js.map +0 -1
- package/dist/esm/components/XAdkThoughtChain/index.d.ts +0 -4
- package/dist/esm/components/XAdkThoughtChain/index.js +0 -201
- package/dist/esm/components/XAdkThoughtChain/index.js.map +0 -1
- package/dist/esm/components/XAdkThoughtChain/styles.d.ts +0 -60
- package/dist/esm/components/XAdkThoughtChain/styles.js +0 -41
- package/dist/esm/components/XAdkThoughtChain/styles.js.map +0 -1
- package/dist/esm/components/XAiChatbot/index.d.ts +0 -10
- package/dist/esm/components/XAiChatbot/index.js +0 -588
- package/dist/esm/components/XAiChatbot/index.js.map +0 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +0 -68
- package/dist/esm/components/XAiChatbot/styles.js +0 -49
- package/dist/esm/components/XAiChatbot/styles.js.map +0 -1
- package/dist/esm/components/XAiConversations/index.d.ts +0 -4
- package/dist/esm/components/XAiConversations/index.js +0 -157
- package/dist/esm/components/XAiConversations/index.js.map +0 -1
- package/dist/esm/components/XAiConversations/styles.d.ts +0 -50
- package/dist/esm/components/XAiConversations/styles.js +0 -39
- package/dist/esm/components/XAiConversations/styles.js.map +0 -1
- package/dist/esm/components/XAiJsonView/index.d.ts +0 -8
- package/dist/esm/components/XAiJsonView/index.js +0 -44
- package/dist/esm/components/XAiJsonView/index.js.map +0 -1
- package/dist/esm/components/XAiJsonView/styles.d.ts +0 -39
- package/dist/esm/components/XAiJsonView/styles.js +0 -19
- package/dist/esm/components/XAiJsonView/styles.js.map +0 -1
- package/dist/esm/components/XAiProvider/demo.styles.d.ts +0 -37
- package/dist/esm/components/XAiProvider/demo.styles.js +0 -12
- package/dist/esm/components/XAiProvider/demo.styles.js.map +0 -1
- package/dist/esm/components/XAiProvider/index.d.ts +0 -4
- package/dist/esm/components/XAiProvider/index.js +0 -492
- package/dist/esm/components/XAiProvider/index.js.map +0 -1
- package/dist/esm/components/XAiSDK.d.ts +0 -10
- package/dist/esm/components/XAiSDK.js +0 -29
- package/dist/esm/components/XAiSDK.js.map +0 -1
- package/dist/esm/components/XAiSender/index.d.ts +0 -4
- package/dist/esm/components/XAiSender/index.js +0 -248
- package/dist/esm/components/XAiSender/index.js.map +0 -1
- package/dist/esm/components/XAiSender/styles.d.ts +0 -44
- package/dist/esm/components/XAiSender/styles.js +0 -19
- package/dist/esm/components/XAiSender/styles.js.map +0 -1
- package/dist/esm/constants/index.d.ts +0 -3
- package/dist/esm/constants/index.js +0 -9
- package/dist/esm/constants/index.js.map +0 -1
- package/dist/esm/context/AiProviderContext.d.ts +0 -15
- package/dist/esm/context/AiProviderContext.js +0 -63
- package/dist/esm/context/AiProviderContext.js.map +0 -1
- package/dist/esm/context/ThemeContext.d.ts +0 -20
- package/dist/esm/context/ThemeContext.js +0 -8
- package/dist/esm/context/ThemeContext.js.map +0 -1
- package/dist/esm/hooks/useADKChat.d.ts +0 -41
- package/dist/esm/hooks/useADKChat.js +0 -1373
- package/dist/esm/hooks/useADKChat.js.map +0 -1
- package/dist/esm/hooks/useAgentGenerator.d.ts +0 -94
- package/dist/esm/hooks/useAgentGenerator.js +0 -1240
- package/dist/esm/hooks/useAgentGenerator.js.map +0 -1
- package/dist/esm/hooks/useEventStreamRequest.d.ts +0 -30
- package/dist/esm/hooks/useEventStreamRequest.js +0 -232
- package/dist/esm/hooks/useEventStreamRequest.js.map +0 -1
- package/dist/esm/hooks/useProviderContext.d.ts +0 -34
- package/dist/esm/hooks/useProviderContext.js +0 -115
- package/dist/esm/hooks/useProviderContext.js.map +0 -1
- package/dist/esm/hooks/useXAiSDK.d.ts +0 -14
- package/dist/esm/hooks/useXAiSDK.js +0 -49
- package/dist/esm/hooks/useXAiSDK.js.map +0 -1
- package/dist/esm/index.d.ts +0 -30
- package/dist/esm/index.js +0 -42
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/presets/xGroupAdk.d.ts +0 -20
- package/dist/esm/presets/xGroupAdk.js +0 -122
- package/dist/esm/presets/xGroupAdk.js.map +0 -1
- package/dist/esm/services/api.d.ts +0 -162
- package/dist/esm/services/api.js +0 -223
- package/dist/esm/services/api.js.map +0 -1
- package/dist/esm/styles/common.d.ts +0 -73
- package/dist/esm/styles/common.js +0 -113
- package/dist/esm/styles/common.js.map +0 -1
- package/dist/esm/styles/markdown.d.ts +0 -3
- package/dist/esm/styles/markdown.js +0 -12
- package/dist/esm/styles/markdown.js.map +0 -1
- package/dist/esm/types/ChatHook.d.ts +0 -92
- package/dist/esm/types/ChatHook.js +0 -2
- package/dist/esm/types/ChatHook.js.map +0 -1
- package/dist/esm/types/ChatStrategies.d.ts +0 -45
- package/dist/esm/types/ChatStrategies.js +0 -2
- package/dist/esm/types/ChatStrategies.js.map +0 -1
- package/dist/esm/types/FileGallery.d.ts +0 -36
- package/dist/esm/types/FileGallery.js +0 -2
- package/dist/esm/types/FileGallery.js.map +0 -1
- package/dist/esm/types/FunctionCallRender.d.ts +0 -35
- package/dist/esm/types/FunctionCallRender.js +0 -14
- package/dist/esm/types/FunctionCallRender.js.map +0 -1
- package/dist/esm/types/XAdkChatbot.d.ts +0 -348
- package/dist/esm/types/XAdkChatbot.js +0 -2
- package/dist/esm/types/XAdkChatbot.js.map +0 -1
- package/dist/esm/types/XAdkProvider.d.ts +0 -224
- package/dist/esm/types/XAdkProvider.js +0 -33
- package/dist/esm/types/XAdkProvider.js.map +0 -1
- package/dist/esm/types/XAdkSender.d.ts +0 -112
- package/dist/esm/types/XAdkSender.js +0 -2
- package/dist/esm/types/XAdkSender.js.map +0 -1
- package/dist/esm/types/XAdkThoughtChain.d.ts +0 -35
- package/dist/esm/types/XAdkThoughtChain.js +0 -2
- package/dist/esm/types/XAdkThoughtChain.js.map +0 -1
- package/dist/esm/types/XAiChatbot.d.ts +0 -158
- package/dist/esm/types/XAiChatbot.js +0 -2
- package/dist/esm/types/XAiChatbot.js.map +0 -1
- package/dist/esm/types/XAiConversations.d.ts +0 -22
- package/dist/esm/types/XAiConversations.js +0 -2
- package/dist/esm/types/XAiConversations.js.map +0 -1
- package/dist/esm/types/XAiMessage.d.ts +0 -126
- package/dist/esm/types/XAiMessage.js +0 -65
- package/dist/esm/types/XAiMessage.js.map +0 -1
- package/dist/esm/types/XAiProvider.d.ts +0 -315
- package/dist/esm/types/XAiProvider.js +0 -106
- package/dist/esm/types/XAiProvider.js.map +0 -1
- package/dist/esm/types/XAiSender.d.ts +0 -29
- package/dist/esm/types/XAiSender.js +0 -2
- package/dist/esm/types/XAiSender.js.map +0 -1
- package/dist/esm/types/common.d.ts +0 -6
- package/dist/esm/types/common.js +0 -2
- package/dist/esm/types/common.js.map +0 -1
- package/dist/esm/types/index.d.ts +0 -13
- package/dist/esm/types/index.js +0 -14
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/mdx.d.ts +0 -23
- package/dist/esm/types/node.d.ts +0 -10
- package/dist/esm/types/node.js +0 -2
- package/dist/esm/types/node.js.map +0 -1
- package/dist/esm/utils/chat.d.ts +0 -34
- package/dist/esm/utils/chat.js +0 -976
- package/dist/esm/utils/chat.js.map +0 -1
- package/dist/esm/utils/file.d.ts +0 -2
- package/dist/esm/utils/file.js +0 -10
- package/dist/esm/utils/file.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -4
- package/dist/esm/utils/index.js +0 -26
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/parseAgentMessage.d.ts +0 -81
- package/dist/esm/utils/parseAgentMessage.js +0 -286
- package/dist/esm/utils/parseAgentMessage.js.map +0 -1
- package/dist/esm/utils/providerManager.d.ts +0 -23
- package/dist/esm/utils/providerManager.js +0 -70
- package/dist/esm/utils/providerManager.js.map +0 -1
- package/dist/esm/utils/request.d.ts +0 -78
- package/dist/esm/utils/request.example.d.ts +0 -39
- package/dist/esm/utils/request.example.js +0 -379
- package/dist/esm/utils/request.example.js.map +0 -1
- package/dist/esm/utils/request.js +0 -491
- package/dist/esm/utils/request.js.map +0 -1
- package/dist/esm/utils/umdEntry.d.ts +0 -170
- package/dist/esm/utils/umdEntry.js +0 -439
- package/dist/esm/utils/umdEntry.js.map +0 -1
- package/dist/esm/utils/workflowNode.d.ts +0 -2
- package/dist/esm/utils/workflowNode.js +0 -141
- package/dist/esm/utils/workflowNode.js.map +0 -1
- package/dist/umd/chat-sdk.min.css +0 -1
- package/dist/umd/chat-sdk.min.js +0 -1
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/utils/chat.ts"],"sourcesContent":["// import { fetchEventSource } from '@microsoft/fetch-event-source';\n// import { message as messageAnt } from 'antd';\n// import { getTokenAndServiceName } from '@/api/sso';\n\n/**\n * 处理发送消息并接收流式响应\n * @param {Object} params - 参数对象\n * @param {string} params.message - 用户输入的消息\n * @param {Array} params.files - 上传的文件列表\n * @param {string} params.workspaceNo - 机器人编号\n * @param {string} params.agentNo - 代理编号\n * @param {string} params.agentVersionNo - 代理版本编号\n * @param {string} params.sessionId - 会话ID\n * @param {string} params.botPrefix - API前缀\n * @param {string} params.mode - 模式\n * @param {Function} params.setMessages - 设置消息列表的函数\n * @param {Function} params.setLoading - 设置加载状态的函数\n * @param {Function} params.setContent - 设置输入内容的函数\n * @param {Function} params.setSessionId - 设置会话ID的函数\n * @param {Function} params.scrollToBottom - 滚动到底部的函数\n * @param {Object} params.controllerRef - AbortController引用\n * @param {Object} params.timeoutRef - 超时计时器引用\n * @param {Function} params.setServerTime - 设置服务器时间的函数\n * @param {Function} params.processActionData - 处理动作数据的函数\n * @param {Function} params.handleNeedApprove - 处理需要授权的回调函数\n * @param {boolean} params.isJsonMode - 是否为JSON模式\n * @param {boolean} params.skipUserMessage - 是否跳过添加用户消息(用于授权后重新发送)\n * @param {string} params.aiMessageId - 已创建的AI消息ID(配合skipUserMessage使用)\n * @returns {Promise<void>}\n */\n// export const handleSendMessage = async ({\n// isChat,\n// message,\n// files = [],\n// workspaceNo,\n// agentNo,\n// agentVersionNo,\n// sessionId,\n// botPrefix,\n// mode,\n// setMessages,\n// setLoading,\n// setContent,\n// setSessionId,\n// scrollToBottom,\n// controllerRef,\n// timeoutRef,\n// setServerTime,\n// processActionData,\n// handleNeedApprove,\n// isJsonMode = false,\n// skipUserMessage = false,\n// aiMessageId = null,\n// metaAgentSessionVariables,\n// }) => {\n// if (!message && files.length === 0) return;\n\n// // 清除之前的超时计时器\n// if (timeoutRef.current) {\n// clearTimeout(timeoutRef.current);\n// timeoutRef.current = null;\n// }\n\n// // 如果不是跳过添加用户消息的情况,则添加用户消息\n// if (!skipUserMessage) {\n// // Add user message to chat\n// const userMessageId = Date.now().toString();\n// setMessages((prev) => [\n// ...prev,\n// {\n// id: userMessageId,\n// message,\n// status: 'local',\n// files,\n// },\n// ]);\n\n// setContent('');\n// }\n\n// setLoading(true);\n\n// // Prepare contents array for API request\n// const contents = [];\n\n// // Add text content if exists\n// if (message) {\n// // 根据模式和isJsonMode决定如何构建contents\n// if (mode === 'single_agent_skill_mode' && isJsonMode) {\n// // 工作流模式下的JSON格式化处理\n// try {\n// // 确保message是有效的JSON字符串\n// const jsonMessage = typeof message === 'string' ? message : JSON.stringify(message);\n\n// contents.push({\n// contentType: 'TEXT',\n// content: {\n// text: jsonMessage,\n// },\n// });\n// } catch (error) {\n// console.error('JSON formatting error:', error);\n// // 如果出错,使用原始消息\n// contents.push({\n// contentType: 'TEXT',\n// content: {\n// text: message,\n// },\n// });\n// }\n// } else {\n// // 普通文本模式\n// contents.push({\n// contentType: 'TEXT',\n// content: {\n// text: message,\n// },\n// });\n// }\n// }\n\n// // Add file contents if any\n// files.forEach((file) => {\n// if (file.type.startsWith('image/')) {\n// contents.push({\n// contentType: 'IMAGE',\n// content: {\n// imageUrl: {\n// url: file.url,\n// },\n// },\n// });\n// } else {\n// contents.push({\n// contentType: 'FILE',\n// content: {\n// fileUrl: {\n// url: file.url,\n// fileName: file.name,\n// suffix: file.name.split('.').pop(),\n// },\n// },\n// });\n// }\n// });\n\n// // Create a new AbortController for this request\n// const controller = new AbortController();\n// controllerRef.current = controller;\n\n// // Create AI message placeholder if not already provided\n// const aiMessageIdToUse = aiMessageId || (Date.now() + 1).toString();\n\n// // 如果不是跳过用户消息的情况,或者没有提供aiMessageId,则创建新的AI消息\n// if (!skipUserMessage || !aiMessageId) {\n// setMessages((prev) => [\n// ...prev,\n// {\n// id: aiMessageIdToUse,\n// message: '',\n// status: 'ai',\n// loading: true,\n// serverActions: [],\n// },\n// ]);\n// }\n\n// try {\n// await fetchEventSource(\n// isChat\n// ? `${botPrefix}/bots/${workspaceNo}/agents/${agentNo}/chat`\n// : `${botPrefix}/bots/${workspaceNo}/agents/${agentNo}/${agentVersionNo}/debug`,\n// {\n// method: 'POST',\n// headers: {\n// 'Content-Type': 'application/json',\n// 'Cache-Control': 'no-cache',\n// 'x-service-name': 'za-open-bot',\n// 'X-Usercenter-Session': getTokenAndServiceName().token,\n// ...(isChat ? { stream: true } : {}),\n// ...(sessionId ? { 'X-Session-Id': sessionId } : ''),\n// },\n// body: JSON.stringify({\n// sessionId,\n// contents,\n// metaAgentSessionVariables,\n// }),\n// signal: controller.signal,\n// // 添加 keepalive 配置,保持连接活跃\n// keepalive: true,\n// // 配置重试机制\n// openWhenHidden: true, // 允许在页面隐藏时保持连接\n// retry: {\n// maxRetries: 3, // 最大重试次数\n// retryDelay: 1000, // 重试延迟时间(毫秒)\n// onRetry: (err, retryCount) => {\n// console.log(`重试连接 (${retryCount}/3):`, err);\n// return true; // 继续重试\n// },\n// },\n// onmessage(event) {\n// // 收到消息时重置超时计时器\n// if (timeoutRef.current) {\n// clearTimeout(timeoutRef.current);\n// }\n\n// // 设置新的超时计时器,如果300秒内没有新消息,则关闭连接\n// timeoutRef.current = setTimeout(() => {\n// console.log('Response timeout, closing connection');\n// controller.abort();\n// setLoading(false);\n// }, 300000);\n\n// try {\n// const parsedData = JSON.parse(event.data);\n\n// // Update sessionId if it's returned\n// if (parsedData.sessionId) {\n// setSessionId(parsedData.sessionId);\n// }\n\n// // 检查是否需要授权\n// if (\n// parsedData.data\n// && typeof parsedData.data === 'string'\n// && parsedData.data.includes('\"action\":\"NEED_APPROVE\"')\n// ) {\n// try {\n// const innerData = JSON.parse(parsedData.data);\n// if (innerData.action === 'NEED_APPROVE' && innerData.data) {\n// console.log('Need approve:', innerData.data);\n\n// // 提取需要授权的工具列表\n// const { waitForApproveTools } = innerData.data;\n\n// if (\n// waitForApproveTools\n// && Array.isArray(waitForApproveTools)\n// && waitForApproveTools.length > 0\n// ) {\n// // 收到NEED_APPROVE时终止流连接,需要重新请求\n// controller.abort();\n// setLoading(false);\n\n// // 记录上一次消息内容,用于授权后重新发送\n// const lastMessage = {\n// message,\n// files,\n// aiMessageId: aiMessageIdToUse,\n// };\n\n// // 调用授权处理回调\n// if (handleNeedApprove && typeof handleNeedApprove === 'function') {\n// handleNeedApprove(waitForApproveTools, lastMessage, sessionId);\n// }\n\n// // 终止后续处理\n// return;\n// }\n// }\n// } catch (e) {\n// console.error('Error parsing NEED_APPROVE data:', e);\n// }\n// }\n\n// // 记录服务器时间戳,用于计算响应时间\n// const serverTime = processActionData(parsedData)?.cost || 0;\n\n// // 尝试从内部数据中提取cost\n// let responseCost = 0;\n// try {\n// if (\n// parsedData.data\n// && typeof parsedData.data === 'string'\n// && parsedData.data.includes('\"action\":\"RESPONSE\"')\n// ) {\n// const innerData = JSON.parse(parsedData.data);\n// if (innerData.data && innerData.data.cost) {\n// responseCost = innerData.data.cost;\n// }\n// }\n// } catch (e) {\n// console.error('Error extracting cost from inner data:', e);\n// }\n\n// // 计算响应时间(秒),并保留一位小数\n// const responseTimeInSeconds = responseCost > 0 ? (responseCost / 1000).toFixed(2) : 0;\n\n// console.log('serverTime', responseTimeInSeconds);\n\n// // 更新组件状态中的服务器时间,仅当新值更大时才更新\n// if (responseTimeInSeconds > 0) {\n// setServerTime((prevTime) => {\n// const prevTimeNum = parseFloat(prevTime || 0);\n// return responseTimeInSeconds > prevTimeNum ? responseTimeInSeconds : prevTime;\n// });\n// }\n\n// // Process action data for headers if processActionData function is provided\n// if (processActionData && typeof processActionData === 'function') {\n// const actionData = processActionData(parsedData);\n// console.log('Received stream data:', actionData);\n\n// if (actionData) {\n// // Only process non-RESPONSE actions for headers\n// if (actionData.actionType !== 'RESPONSE') {\n// // Add this action to serverActions array in the message\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// // Check if action with this uniqueId already exists\n// const existingActionIndex = updatedMessages[\n// aiMessageIndex\n// ].serverActions?.findIndex((act) => act.uniqueId === actionData.uniqueId);\n\n// if (existingActionIndex !== -1) {\n// // Update existing action with new data\n// updatedMessages[aiMessageIndex].serverActions[existingActionIndex] = {\n// ...updatedMessages[aiMessageIndex].serverActions[existingActionIndex],\n// ...actionData,\n// };\n// } else {\n// // Add new action to the list\n// if (!updatedMessages[aiMessageIndex].serverActions) {\n// updatedMessages[aiMessageIndex].serverActions = [];\n// }\n// updatedMessages[aiMessageIndex].serverActions.push(actionData);\n// }\n// }\n\n// return updatedMessages;\n// });\n// }\n// }\n// }\n\n// // Handle streaming data\n// if (parsedData.data) {\n// try {\n// // Handle the specific format from the example\n// // data:{\"data\":\"{\\\"action\\\":\\\"RESPONSE\\\",\\\"data\\\":{\\\"executeResult\\\":\\\"你好!...\\\"}}\",\"code\":\"200\",...}\n// if (\n// typeof parsedData.data === 'string'\n// && parsedData.data.includes('\"action\":\"RESPONSE\"')\n// ) {\n// try {\n// const innerData = JSON.parse(parsedData.data);\n// if (innerData.action === 'RESPONSE' && innerData.data) {\n// // 检查是否有错误信息\n// if (innerData.data.errorMsg) {\n// // 提取错误信息\n// let errorMessage = innerData.data.errorMsg;\n// try {\n// // 展示完整的错误信息,而不是只提取message部分\n// if (typeof errorMessage === 'string') {\n// // 如果包含转义字符,去除转义符号\n// errorMessage = errorMessage.replace(/\\\\\"/g, '\"');\n\n// // 不再尝试提取json中的message字段,而是保留完整错误信息\n// // 只做最基本的格式化处理\n// if (\n// errorMessage.includes('ERROR_CODE')\n// || errorMessage.includes('Exception')\n// || errorMessage.includes('statusCode')\n// ) {\n// errorMessage = `错误详情: ${errorMessage}`;\n// }\n// }\n// } catch (e) {\n// console.error('Error processing error message:', e);\n// }\n\n// // 更新消息状态为错误\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n// updatedMessages[aiMessageIndex].message = `[错误] ${errorMessage}`;\n\n// // 更新serverActions中的错误状态\n// if (updatedMessages[aiMessageIndex].serverActions) {\n// updatedMessages[aiMessageIndex].serverActions = updatedMessages[\n// aiMessageIndex\n// ].serverActions.map((action) => ({\n// ...action,\n// processStatus: 'ERROR',\n// errorMsg: errorMessage,\n// }));\n// }\n// }\n\n// return updatedMessages;\n// });\n\n// // 显示错误提示\n// // messageAnt.error(errorMessage)\n// return;\n// }\n\n// if (innerData.data.executeResult) {\n// // Get the new content to add\n// const newContent = innerData.data.executeResult;\n\n// // 先检查当前消息内容\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n\n// // 如果新内容已包含在当前内容中,不做更新\n// if (currentMessage.includes(newContent)) {\n// return prev; // 这里直接返回,跳过后续所有处理\n// }\n\n// // 检查是否是英文内容,如果是英文则直接显示完整内容,避免逐字符显示造成的重复问题\n// if (!currentMessage && /^[a-zA-Z0-9\\s\\p{P}]*$/u.test(newContent)) {\n// // 如果是纯英文内容,直接全部显示,避免字符重复问题\n// updatedMessages[aiMessageIndex].message = newContent;\n// return updatedMessages;\n// }\n// }\n\n// return updatedMessages;\n// });\n\n// // 只对中文内容进行流式显示,避免乱序\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n\n// // 如果当前无内容,开始流式显示\n// if (!currentMessage) {\n// // 根据内容长度决定流式输出参数\n// const isLongContent = newContent.length > 10000; // 超过1万字的长内容\n// const initialChunkSize = isLongContent\n// ? 10\n// : Math.min(3, newContent.length);\n// const chunkSize = isLongContent ? 10 : 2; // 长内容每次处理10个字符,短内容2个字符\n// const delayTime = isLongContent ? 10 : 20; // 长内容10毫秒延迟,短内容20毫秒延迟\n\n// // 初始显示部分字符\n// updatedMessages[aiMessageIndex].message = newContent.substring(\n// 0,\n// initialChunkSize,\n// );\n\n// // 如果内容较短,直接显示全部\n// if (newContent.length <= initialChunkSize) {\n// return updatedMessages;\n// }\n\n// // 剩余部分流式显示\n// setTimeout(() => {\n// let currentIndex = initialChunkSize;\n\n// const streamInterval = setInterval(() => {\n// if (currentIndex >= newContent.length) {\n// clearInterval(streamInterval);\n// return;\n// }\n\n// const endIndex = Math.min(\n// currentIndex + chunkSize,\n// newContent.length,\n// );\n// const chunk = newContent.substring(currentIndex, endIndex);\n\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].message += chunk;\n// }\n\n// return updatedMessages;\n// });\n\n// currentIndex = endIndex;\n// setTimeout(scrollToBottom, 0);\n// }, delayTime); // 使用动态延迟时间\n// }, 0);\n// }\n// }\n\n// return updatedMessages;\n// });\n\n// return; // Skip the rest of the processing\n// }\n// }\n\n// // Check for END action in the specific format\n// if (innerData.action === 'END') {\n// controller.abort();\n\n// setLoading(false);\n// return;\n// }\n// } catch (innerError) {\n// console.error('Failed to parse inner data:', innerError, parsedData.data);\n// }\n// }\n\n// // Continue with existing parsing logic for other formats\n// const streamData = typeof parsedData.data === 'string'\n// ? JSON.parse(parsedData.data)\n// : parsedData.data;\n\n// // Update the AI message with the streamed content\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// // Handle different types of streaming data based on the new format\n// if (streamData.action === 'RESPONSE' && streamData.data) {\n// // Check if data.executeResult exists (new format)\n// if (streamData.data.executeResult) {\n// // 这部分逻辑已经在上面处理过了,跳过避免重复处理\n// return updatedMessages;\n// }\n// // Fallback to old format\n// if (streamData.data.content) {\n// // 简化处理,避免重复逻辑\n// const newContent = streamData.data.content;\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n\n// // 检查是否重复内容\n// if (!currentMessage.includes(newContent)) {\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n// updatedMessages[aiMessageIndex].message = currentMessage + newContent;\n// }\n// }\n// }\n// // Remove duplicate condition and handle other cases\n// else if (streamData.data && typeof streamData.data === 'string') {\n// // 简化处理字符串数据\n// const newContent = streamData.data;\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n\n// // 检查是否重复内容\n// if (!currentMessage.includes(newContent)) {\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n// updatedMessages[aiMessageIndex].message = currentMessage + newContent;\n// }\n// }\n// }\n\n// return updatedMessages;\n// });\n\n// // Handle different types of streaming data based on the new format\n// if (streamData.action === 'RESPONSE' && streamData.data) {\n// // Check if data.executeResult exists (new format)\n// if (streamData.data.executeResult) {\n// // Get the new content to add\n// const newContent = streamData.data.executeResult;\n\n// // First update to turn off loading state and add serverTime\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n// }\n\n// return updatedMessages;\n// });\n\n// // Update the message one character at a time\n// let currentIndex = 0;\n// const streamInterval = setInterval(() => {\n// if (currentIndex >= newContent.length) {\n// clearInterval(streamInterval);\n// return;\n// }\n\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n// updatedMessages[aiMessageIndex].message = currentMessage + newContent.charAt(currentIndex);\n// }\n\n// return updatedMessages;\n// });\n\n// currentIndex++;\n// // 使用多个延时确保在不同渲染阶段都能滚动到底部\n// setTimeout(scrollToBottom, 0);\n// setTimeout(scrollToBottom, 50);\n// }, 20); // Adjust timing as needed\n// }\n// // Fallback to old format\n// else if (streamData.data.content) {\n// // Get the new content to add\n// const newContent = streamData.data.content;\n\n// // First update to turn off loading state and add serverTime\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n// }\n\n// return updatedMessages;\n// });\n\n// // Update the message one character at a time\n// let currentIndex = 0;\n// const streamInterval = setInterval(() => {\n// if (currentIndex >= newContent.length) {\n// clearInterval(streamInterval);\n// return;\n// }\n\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n// updatedMessages[aiMessageIndex].message = currentMessage + newContent.charAt(currentIndex);\n// }\n\n// return updatedMessages;\n// });\n\n// currentIndex++;\n// // 使用多个延时确保在不同渲染阶段都能滚动到底部\n// setTimeout(scrollToBottom, 0);\n// setTimeout(scrollToBottom, 50);\n// }, 20); // Adjust timing as needed\n// }\n// }\n// // Remove duplicate condition and handle other cases\n// else if (streamData.data && typeof streamData.data === 'string') {\n// // Get the new content to add\n// const newContent = streamData.data;\n\n// // First update to turn off loading state and add serverTime\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// updatedMessages[aiMessageIndex].serverTime = responseTimeInSeconds;\n// }\n\n// return updatedMessages;\n// });\n\n// // Update the message one character at a time\n// let currentIndex = 0;\n// const streamInterval = setInterval(() => {\n// if (currentIndex >= newContent.length) {\n// clearInterval(streamInterval);\n// return;\n// }\n\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n// updatedMessages[aiMessageIndex].message = currentMessage + newContent.charAt(currentIndex);\n// }\n\n// return updatedMessages;\n// });\n\n// currentIndex++;\n// // 使用多个延时确保在不同渲染阶段都能滚动到底部\n// setTimeout(scrollToBottom, 0);\n// setTimeout(scrollToBottom, 50);\n// }, 20); // Adjust timing as needed\n// }\n\n// // 检查是否是结束标志\n// if (streamData.action === 'END' || streamData.processStatus === 'END') {\n// // 收到结束标志,主动关闭连接\n// controller.abort();\n\n// setLoading(false);\n// }\n\n// // Scroll to bottom with each update\n// setTimeout(scrollToBottom, 0);\n// } catch (error) {\n// console.error('Failed to parse stream data:', error, parsedData.data);\n\n// // Display error in the message if parsing fails\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// // Turn off loading state\n// updatedMessages[aiMessageIndex].loading = false;\n// }\n\n// return updatedMessages;\n// });\n\n// // Try to extract any text content from the raw data\n// try {\n// const rawData = typeof parsedData.data === 'string'\n// ? parsedData.data\n// : JSON.stringify(parsedData.data);\n\n// let contentToAdd = '[解析响应时出错]';\n\n// // 检查是否包含具有完整错误信息的格式:\"data\":\"{\\\"action\\\":\\\"RESPONSE\\\",\\\"data\\\":{\\\"success\\\":false,\\\"errorMsg\\\":\\\"...\\\"}}\n// if (\n// rawData.includes('\"action\":\"RESPONSE\"')\n// && rawData.includes('\"success\":false')\n// ) {\n// try {\n// // 尝试解析出errorMsg部分\n// const innerData = typeof parsedData.data === 'string'\n// ? JSON.parse(parsedData.data)\n// : parsedData.data;\n\n// if (\n// innerData.action === 'RESPONSE'\n// && innerData.data\n// && innerData.data.errorMsg\n// ) {\n// const { errorMsg } = innerData.data;\n\n// // 展示完整的错误信息,不只是提取message部分\n// if (typeof errorMsg === 'string') {\n// // 如果包含转义字符,去除转义符号\n// const completeErrorMessage = errorMsg.replace(/\\\\\"/g, '\"');\n// contentToAdd = `[错误] 调用失败: ${completeErrorMessage}`;\n// } else {\n// contentToAdd = `[错误] ${errorMsg}`;\n// }\n// }\n// } catch (e) {\n// // 如果以上解析失败,再尝试正则表达式提取\n// const errorMsgMatch = rawData.match(/\"errorMsg\":\"([^\"]+)\"/);\n// if (errorMsgMatch && errorMsgMatch[1]) {\n// const fullError = errorMsgMatch[1].replace(/\\\\\"/g, '\"');\n// contentToAdd = `[错误] ${fullError}`;\n// }\n// }\n// }\n// // 检查是否包含HTML错误消息(如<span style=\"color: red\">...错误信息...</span>)\n// else if (rawData.includes('<span') && rawData.includes('</span>')) {\n// // 提取span标签中的错误消息\n// const spanMatch = rawData.match(/<span[^>]*>(.*?)<\\/span>/);\n// if (spanMatch && spanMatch[1]) {\n// contentToAdd = spanMatch[1];\n// }\n// } else if (rawData.includes('executeResult')) {\n// const match = rawData.match(/\"executeResult\":\"([^\"]+)\"/);\n// if (match && match[1]) {\n// contentToAdd = match[1];\n// } else {\n// contentToAdd = '[解析响应时出错,但尝试显示内容]';\n// }\n// }\n\n// // Update the message one character at a time\n// let currentIndex = 0;\n// const streamInterval = setInterval(() => {\n// if (currentIndex >= contentToAdd.length) {\n// clearInterval(streamInterval);\n// return;\n// }\n\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n// updatedMessages[aiMessageIndex].message = currentMessage + contentToAdd.charAt(currentIndex);\n// }\n\n// return updatedMessages;\n// });\n\n// currentIndex++;\n// // 使用多个延时确保在不同渲染阶段都能滚动到底部\n// setTimeout(scrollToBottom, 0);\n// setTimeout(scrollToBottom, 50);\n// }, 20); // Adjust timing as needed\n// } catch (e) {\n// // If all else fails, show a simple error message\n// const contentToAdd = '[解析响应时出错]';\n\n// // Update the message one character at a time\n// let currentIndex = 0;\n// const streamInterval = setInterval(() => {\n// if (currentIndex >= contentToAdd.length) {\n// clearInterval(streamInterval);\n// return;\n// }\n\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex(\n// (msg) => msg.id === aiMessageIdToUse,\n// );\n\n// if (aiMessageIndex !== -1) {\n// const currentMessage = updatedMessages[aiMessageIndex].message || '';\n// updatedMessages[aiMessageIndex].message = currentMessage + contentToAdd.charAt(currentIndex);\n// }\n\n// return updatedMessages;\n// });\n\n// currentIndex++;\n// // 使用多个延时确保在不同渲染阶段都能滚动到底部\n// setTimeout(scrollToBottom, 0);\n// setTimeout(scrollToBottom, 50);\n// }, 20); // Adjust timing as needed\n// }\n// }\n// }\n// } catch (error) {\n// console.error('Failed to parse message:', error, event.data);\n// }\n// },\n// onclose() {\n// // 连接关闭时清除超时计时器\n// if (timeoutRef.current) {\n// clearTimeout(timeoutRef.current);\n// timeoutRef.current = null;\n// }\n\n// // Turn off loading state\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex((msg) => msg.id === aiMessageIdToUse);\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// }\n\n// return updatedMessages;\n// });\n\n// setLoading(false);\n// setTimeout(scrollToBottom, 0);\n// },\n// onerror(error) {\n// // 发生错误时清除超时计时器\n// if (timeoutRef.current) {\n// clearTimeout(timeoutRef.current);\n// timeoutRef.current = null;\n// }\n\n// // Turn off loading state\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// const aiMessageIndex = updatedMessages.findIndex((msg) => msg.id === aiMessageIdToUse);\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// }\n\n// return updatedMessages;\n// });\n\n// console.error('Stream failed:', error);\n// setLoading(false);\n// controller.abort();\n\n// // Add error message\n// messageAnt.error('对话请求失败,请重试');\n// },\n// },\n// );\n// } catch (error) {\n// // 发生异常时清除超时计时器\n// if (timeoutRef.current) {\n// clearTimeout(timeoutRef.current);\n// timeoutRef.current = null;\n// }\n\n// console.error('Failed to send message:', error);\n// setLoading(false);\n// }\n// };\n\n/**\n * 停止生成响应\n * @param {Object} params - 参数对象\n * @param {Object} params.controllerRef - AbortController引用\n * @param {Object} params.timeoutRef - 超时计时器引用\n * @param {Function} params.setLoading - 设置加载状态的函数\n * @param {Function} params.setMessages - 设置消息列表的函数\n */\n// export const handleStopGenerate = ({ controllerRef, timeoutRef, setLoading, setMessages }) => {\n// if (controllerRef.current) {\n// controllerRef.current.abort();\n// controllerRef.current = null;\n// setLoading(false);\n// }\n\n// // 清除超时计时器\n// if (timeoutRef.current) {\n// clearTimeout(timeoutRef.current);\n// timeoutRef.current = null;\n// }\n\n// // Turn off loading state for the last AI message\n// setMessages((prev) => {\n// const updatedMessages = [...prev];\n// // Find the last AI message\n// const aiMessageIndex = updatedMessages.findIndex((msg) => msg.status === 'ai' && msg.loading);\n\n// if (aiMessageIndex !== -1) {\n// updatedMessages[aiMessageIndex].loading = false;\n// }\n\n// return updatedMessages;\n// });\n// };\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA"}
|
package/dist/esm/utils/file.d.ts
DELETED
package/dist/esm/utils/file.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// 获取文件后缀
|
|
2
|
-
export var getExt = function getExt(file) {
|
|
3
|
-
var _file$name$split$pop;
|
|
4
|
-
return ((_file$name$split$pop = file.name.split(".").pop()) === null || _file$name$split$pop === void 0 ? void 0 : _file$name$split$pop.toLowerCase()) || "";
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// export const sanitizeFileName = (name: string) => {
|
|
8
|
-
// return name.replace(/[^a-zA-Z0-9.\-_]/g, "_");
|
|
9
|
-
// };
|
|
10
|
-
//# sourceMappingURL=file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getExt","file","_file$name$split$pop","name","split","pop","toLowerCase"],"sources":["../../../src/utils/file.ts"],"sourcesContent":["import { LocalFile } from \"@/types\";\n\n// 获取文件后缀\nexport const getExt = (file: File | LocalFile) => {\n return file.name.split(\".\").pop()?.toLowerCase() || \"\";\n};\n\n// export const sanitizeFileName = (name: string) => {\n// return name.replace(/[^a-zA-Z0-9.\\-_]/g, \"_\");\n// };\n"],"mappings":"AAEA;AACA,OAAO,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAIC,IAAsB,EAAK;EAAA,IAAAC,oBAAA;EAChD,OAAO,EAAAA,oBAAA,GAAAD,IAAI,CAACE,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,cAAAH,oBAAA,uBAA1BA,oBAAA,CAA4BI,WAAW,CAAC,CAAC,KAAI,EAAE;AACxD,CAAC;;AAED;AACA;AACA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const safeJsonParse: <T = any>(str?: string, defaultValue?: any) => T;
|
|
2
|
-
export declare const safeJsonStringify: <T = any>(obj?: T, defaultValue?: any) => string;
|
|
3
|
-
export declare function cleanProcessText(text: string): string;
|
|
4
|
-
export * from './parseAgentMessage';
|
package/dist/esm/utils/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export var safeJsonParse = function safeJsonParse(str) {
|
|
2
|
-
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3
|
-
if (!str) return defaultValue;
|
|
4
|
-
try {
|
|
5
|
-
return JSON.parse(str) || defaultValue;
|
|
6
|
-
} catch (error) {
|
|
7
|
-
return defaultValue;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
export var safeJsonStringify = function safeJsonStringify(obj) {
|
|
11
|
-
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
12
|
-
if (!obj) return defaultValue;
|
|
13
|
-
try {
|
|
14
|
-
return JSON.stringify(obj) || defaultValue;
|
|
15
|
-
} catch (error) {
|
|
16
|
-
return defaultValue;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
export function cleanProcessText(text) {
|
|
20
|
-
if (!text) return "";
|
|
21
|
-
return text.replace(/\/\*(PLANNING|REPLANNING|REASONING|ACTION|FINAL_ANSWER)\*\//g, "").trim();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// 导出新的解析工具
|
|
25
|
-
export * from "./parseAgentMessage";
|
|
26
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["safeJsonParse","str","defaultValue","arguments","length","undefined","JSON","parse","error","safeJsonStringify","obj","stringify","cleanProcessText","text","replace","trim"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export const safeJsonParse = <T = any>(\n str?: string,\n defaultValue: any = {},\n): T => {\n if (!str) return defaultValue as T;\n try {\n return JSON.parse(str) || defaultValue;\n } catch (error) {\n return defaultValue as T;\n }\n};\n\nexport const safeJsonStringify = <T = any>(\n obj?: T,\n defaultValue: any = {},\n): string => {\n if (!obj) return defaultValue as string;\n try {\n return JSON.stringify(obj) || defaultValue;\n } catch (error) {\n return defaultValue as string;\n }\n};\n\nexport function cleanProcessText(text: string): string {\n if (!text) return \"\";\n return text\n .replace(/\\/\\*(PLANNING|REPLANNING|REASONING|ACTION|FINAL_ANSWER)\\*\\//g, \"\")\n .trim();\n}\n\n// 导出新的解析工具\nexport * from './parseAgentMessage';\n"],"mappings":"AAAA,OAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CACxBC,GAAY,EAEN;EAAA,IADNC,YAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEtB,IAAI,CAACF,GAAG,EAAE,OAAOC,YAAY;EAC7B,IAAI;IACF,OAAOI,IAAI,CAACC,KAAK,CAACN,GAAG,CAAC,IAAIC,YAAY;EACxC,CAAC,CAAC,OAAOM,KAAK,EAAE;IACd,OAAON,YAAY;EACrB;AACF,CAAC;AAED,OAAO,IAAMO,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAAO,EAEI;EAAA,IADXR,YAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEtB,IAAI,CAACO,GAAG,EAAE,OAAOR,YAAY;EAC7B,IAAI;IACF,OAAOI,IAAI,CAACK,SAAS,CAACD,GAAG,CAAC,IAAIR,YAAY;EAC5C,CAAC,CAAC,OAAOM,KAAK,EAAE;IACd,OAAON,YAAY;EACrB;AACF,CAAC;AAED,OAAO,SAASU,gBAAgBA,CAACC,IAAY,EAAU;EACrD,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;EACpB,OAAOA,IAAI,CACRC,OAAO,CAAC,8DAA8D,EAAE,EAAE,CAAC,CAC3EC,IAAI,CAAC,CAAC;AACX;;AAEA;AACA"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 解析后的消息片段类型
|
|
3
|
-
*/
|
|
4
|
-
export interface ParsedPart {
|
|
5
|
-
type: 'text' | 'planning' | 'replanning' | 'reasoning' | 'action_log' | 'final_result' | 'process_text';
|
|
6
|
-
content: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* 解析规则配置
|
|
10
|
-
*/
|
|
11
|
-
export interface ParseAgentMessageOptions {
|
|
12
|
-
/**
|
|
13
|
-
* 解析模式
|
|
14
|
-
* - 'xml': XML 标签模式 <reasoning>...</reasoning>
|
|
15
|
-
* - 'comment': 注释标签模式 /*REASONING*\/
|
|
16
|
-
* - 'custom': 自定义正则模式
|
|
17
|
-
*/
|
|
18
|
-
mode?: 'xml' | 'comment' | 'custom';
|
|
19
|
-
/**
|
|
20
|
-
* 自定义正则规则 (mode='custom' 时使用)
|
|
21
|
-
* @example
|
|
22
|
-
* [
|
|
23
|
-
* { regex: /\[REASONING\]([\s\S]*?)\[\/REASONING\]/g, type: 'reasoning' },
|
|
24
|
-
* { regex: /\[PLANNING\]([\s\S]*?)\[\/PLANNING\]/g, type: 'planning' }
|
|
25
|
-
* ]
|
|
26
|
-
*/
|
|
27
|
-
customPatterns?: Array<{
|
|
28
|
-
regex: RegExp;
|
|
29
|
-
type: ParsedPart['type'];
|
|
30
|
-
}>;
|
|
31
|
-
/**
|
|
32
|
-
* 最终答案标记 (comment 模式使用)
|
|
33
|
-
* @default '/*FINAL_ANSWER*\/'
|
|
34
|
-
*/
|
|
35
|
-
finalMarker?: string;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* 清理 process 文本
|
|
39
|
-
* - 移除多余的换行
|
|
40
|
-
* - 移除 JSON 代码块标记
|
|
41
|
-
*/
|
|
42
|
-
export declare function cleanProcessText(text: string): string;
|
|
43
|
-
/**
|
|
44
|
-
* 解析 Agent 消息 (支持多种格式)
|
|
45
|
-
*
|
|
46
|
-
* @param text 原始消息文本
|
|
47
|
-
* @param options 解析选项
|
|
48
|
-
* @returns 解析后的消息片段数组
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* // XML 模式 (默认)
|
|
52
|
-
* const parts1 = parseAgentMessage(`
|
|
53
|
-
* <reasoning>分析用户需求...</reasoning>
|
|
54
|
-
* 最终回复内容
|
|
55
|
-
* `);
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* // 注释模式 (业务项目格式)
|
|
59
|
-
* const parts2 = parseAgentMessage(`
|
|
60
|
-
* /*REASONING*\/分析用户需求...
|
|
61
|
-
* /*FINAL_ANSWER*\/最终回复内容
|
|
62
|
-
* `, { mode: 'comment' });
|
|
63
|
-
*
|
|
64
|
-
* @example
|
|
65
|
-
* // 自定义模式
|
|
66
|
-
* const parts3 = parseAgentMessage(text, {
|
|
67
|
-
* mode: 'custom',
|
|
68
|
-
* customPatterns: [
|
|
69
|
-
* { regex: /\[REASONING\]([\s\S]*?)\[\/REASONING\]/g, type: 'reasoning' }
|
|
70
|
-
* ]
|
|
71
|
-
* });
|
|
72
|
-
*/
|
|
73
|
-
export declare function parseAgentMessage(text: string, options?: ParseAgentMessageOptions): ParsedPart[];
|
|
74
|
-
/**
|
|
75
|
-
* 检查是否包含 process 内容
|
|
76
|
-
*/
|
|
77
|
-
export declare function hasProcessContent(parts: ParsedPart[]): boolean;
|
|
78
|
-
/**
|
|
79
|
-
* 获取纯文本内容(不包含 process 标签)
|
|
80
|
-
*/
|
|
81
|
-
export declare function getPlainText(parts: ParsedPart[]): string;
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 解析后的消息片段类型
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* 解析规则配置
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* 清理 process 文本
|
|
11
|
-
* - 移除多余的换行
|
|
12
|
-
* - 移除 JSON 代码块标记
|
|
13
|
-
*/
|
|
14
|
-
export function cleanProcessText(text) {
|
|
15
|
-
return text.replace(/```json\s*/g, '').replace(/```\s*/g, '').replace(/^\n+/, '').replace(/\n+$/, '').trim();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* XML 模式解析 (默认)
|
|
20
|
-
* 识别标签: <reasoning>、<planning>、<replanning>、<action_log>
|
|
21
|
-
*/
|
|
22
|
-
function parseXmlMode(text) {
|
|
23
|
-
var parts = [];
|
|
24
|
-
|
|
25
|
-
// 定义标签模式
|
|
26
|
-
var tagPatterns = [{
|
|
27
|
-
regex: /<reasoning>([\s\S]*?)<\/reasoning>/g,
|
|
28
|
-
type: 'reasoning'
|
|
29
|
-
}, {
|
|
30
|
-
regex: /<planning>([\s\S]*?)<\/planning>/g,
|
|
31
|
-
type: 'planning'
|
|
32
|
-
}, {
|
|
33
|
-
regex: /<replanning>([\s\S]*?)<\/replanning>/g,
|
|
34
|
-
type: 'replanning'
|
|
35
|
-
}, {
|
|
36
|
-
regex: /<action_log>([\s\S]*?)<\/action_log>/g,
|
|
37
|
-
type: 'action_log'
|
|
38
|
-
}];
|
|
39
|
-
|
|
40
|
-
// 收集所有标签位置
|
|
41
|
-
|
|
42
|
-
var matches = [];
|
|
43
|
-
tagPatterns.forEach(function (_ref) {
|
|
44
|
-
var regex = _ref.regex,
|
|
45
|
-
type = _ref.type;
|
|
46
|
-
var match;
|
|
47
|
-
var tempRegex = new RegExp(regex);
|
|
48
|
-
while ((match = tempRegex.exec(text)) !== null) {
|
|
49
|
-
matches.push({
|
|
50
|
-
type: type,
|
|
51
|
-
start: match.index,
|
|
52
|
-
end: match.index + match[0].length,
|
|
53
|
-
content: match[1].trim()
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
// 按位置排序
|
|
59
|
-
matches.sort(function (a, b) {
|
|
60
|
-
return a.start - b.start;
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
// 提取文本和标签
|
|
64
|
-
var currentPos = 0;
|
|
65
|
-
matches.forEach(function (match) {
|
|
66
|
-
// 添加标签前的文本
|
|
67
|
-
if (match.start > currentPos) {
|
|
68
|
-
var textBefore = text.substring(currentPos, match.start).trim();
|
|
69
|
-
if (textBefore) {
|
|
70
|
-
parts.push({
|
|
71
|
-
type: 'text',
|
|
72
|
-
content: textBefore
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// 添加标签内容
|
|
78
|
-
parts.push({
|
|
79
|
-
type: match.type,
|
|
80
|
-
content: match.content
|
|
81
|
-
});
|
|
82
|
-
currentPos = match.end;
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
// 添加最后的文本
|
|
86
|
-
if (currentPos < text.length) {
|
|
87
|
-
var textAfter = text.substring(currentPos).trim();
|
|
88
|
-
if (textAfter) {
|
|
89
|
-
parts.push({
|
|
90
|
-
type: 'text',
|
|
91
|
-
content: textAfter
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return parts;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* 注释模式解析 (/*PLANNING*\/ 格式)
|
|
100
|
-
* 适用于业务项目的格式
|
|
101
|
-
*/
|
|
102
|
-
function parseCommentMode(text) {
|
|
103
|
-
var finalMarker = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '/*FINAL_ANSWER*/';
|
|
104
|
-
// 如果完全没有 Agent 推理标记,则整段文本视为最终结果
|
|
105
|
-
if (!text.includes('/*')) {
|
|
106
|
-
return [{
|
|
107
|
-
type: 'final_result',
|
|
108
|
-
content: text
|
|
109
|
-
}];
|
|
110
|
-
}
|
|
111
|
-
var results = [];
|
|
112
|
-
var finalIndex = text.indexOf(finalMarker);
|
|
113
|
-
var processText = text;
|
|
114
|
-
var finalText = '';
|
|
115
|
-
if (finalIndex !== -1) {
|
|
116
|
-
processText = text.substring(0, finalIndex);
|
|
117
|
-
finalText = text.substring(finalIndex + finalMarker.length);
|
|
118
|
-
}
|
|
119
|
-
var regex = /(\/\*PLANNING\*\/|\/\*REPLANNING\*\/|\/\*REASONING\*\/|\/\*ACTION\*\/)/g;
|
|
120
|
-
var parts = processText.split(regex);
|
|
121
|
-
var currentType = 'process_text';
|
|
122
|
-
parts.forEach(function (part) {
|
|
123
|
-
if (part === '/*PLANNING*/') {
|
|
124
|
-
currentType = 'planning';
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
if (part === '/*REPLANNING*/') {
|
|
128
|
-
currentType = 'replanning';
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (part === '/*REASONING*/') {
|
|
132
|
-
currentType = 'reasoning';
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (part === '/*ACTION*/') {
|
|
136
|
-
currentType = 'action_log';
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (part && part.trim().length > 0) {
|
|
140
|
-
results.push({
|
|
141
|
-
type: currentType,
|
|
142
|
-
content: part
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
if (finalText.trim()) {
|
|
147
|
-
results.push({
|
|
148
|
-
type: 'final_result',
|
|
149
|
-
content: finalText
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
return results;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* 自定义模式解析
|
|
157
|
-
*/
|
|
158
|
-
function parseCustomMode(text, patterns) {
|
|
159
|
-
var parts = [];
|
|
160
|
-
var matches = [];
|
|
161
|
-
patterns.forEach(function (_ref2) {
|
|
162
|
-
var regex = _ref2.regex,
|
|
163
|
-
type = _ref2.type;
|
|
164
|
-
var match;
|
|
165
|
-
var tempRegex = new RegExp(regex);
|
|
166
|
-
while ((match = tempRegex.exec(text)) !== null) {
|
|
167
|
-
var _match$;
|
|
168
|
-
matches.push({
|
|
169
|
-
type: type,
|
|
170
|
-
start: match.index,
|
|
171
|
-
end: match.index + match[0].length,
|
|
172
|
-
content: ((_match$ = match[1]) === null || _match$ === void 0 ? void 0 : _match$.trim()) || match[0]
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
matches.sort(function (a, b) {
|
|
177
|
-
return a.start - b.start;
|
|
178
|
-
});
|
|
179
|
-
var currentPos = 0;
|
|
180
|
-
matches.forEach(function (match) {
|
|
181
|
-
if (match.start > currentPos) {
|
|
182
|
-
var textBefore = text.substring(currentPos, match.start).trim();
|
|
183
|
-
if (textBefore) {
|
|
184
|
-
parts.push({
|
|
185
|
-
type: 'text',
|
|
186
|
-
content: textBefore
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
parts.push({
|
|
191
|
-
type: match.type,
|
|
192
|
-
content: match.content
|
|
193
|
-
});
|
|
194
|
-
currentPos = match.end;
|
|
195
|
-
});
|
|
196
|
-
if (currentPos < text.length) {
|
|
197
|
-
var textAfter = text.substring(currentPos).trim();
|
|
198
|
-
if (textAfter) {
|
|
199
|
-
parts.push({
|
|
200
|
-
type: 'text',
|
|
201
|
-
content: textAfter
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return parts;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* 解析 Agent 消息 (支持多种格式)
|
|
210
|
-
*
|
|
211
|
-
* @param text 原始消息文本
|
|
212
|
-
* @param options 解析选项
|
|
213
|
-
* @returns 解析后的消息片段数组
|
|
214
|
-
*
|
|
215
|
-
* @example
|
|
216
|
-
* // XML 模式 (默认)
|
|
217
|
-
* const parts1 = parseAgentMessage(`
|
|
218
|
-
* <reasoning>分析用户需求...</reasoning>
|
|
219
|
-
* 最终回复内容
|
|
220
|
-
* `);
|
|
221
|
-
*
|
|
222
|
-
* @example
|
|
223
|
-
* // 注释模式 (业务项目格式)
|
|
224
|
-
* const parts2 = parseAgentMessage(`
|
|
225
|
-
* /*REASONING*\/分析用户需求...
|
|
226
|
-
* /*FINAL_ANSWER*\/最终回复内容
|
|
227
|
-
* `, { mode: 'comment' });
|
|
228
|
-
*
|
|
229
|
-
* @example
|
|
230
|
-
* // 自定义模式
|
|
231
|
-
* const parts3 = parseAgentMessage(text, {
|
|
232
|
-
* mode: 'custom',
|
|
233
|
-
* customPatterns: [
|
|
234
|
-
* { regex: /\[REASONING\]([\s\S]*?)\[\/REASONING\]/g, type: 'reasoning' }
|
|
235
|
-
* ]
|
|
236
|
-
* });
|
|
237
|
-
*/
|
|
238
|
-
export function parseAgentMessage(text) {
|
|
239
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
240
|
-
if (!text) return [];
|
|
241
|
-
var _options$mode = options.mode,
|
|
242
|
-
mode = _options$mode === void 0 ? 'xml' : _options$mode,
|
|
243
|
-
customPatterns = options.customPatterns,
|
|
244
|
-
finalMarker = options.finalMarker;
|
|
245
|
-
|
|
246
|
-
// 根据模式选择解析器
|
|
247
|
-
if (mode === 'comment') {
|
|
248
|
-
return parseCommentMode(text, finalMarker);
|
|
249
|
-
}
|
|
250
|
-
if (mode === 'custom' && customPatterns) {
|
|
251
|
-
return parseCustomMode(text, customPatterns);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// 默认 XML 模式
|
|
255
|
-
var parts = parseXmlMode(text);
|
|
256
|
-
|
|
257
|
-
// 如果没有任何标签,返回整个文本
|
|
258
|
-
if (parts.length === 0) {
|
|
259
|
-
return [{
|
|
260
|
-
type: 'text',
|
|
261
|
-
content: text
|
|
262
|
-
}];
|
|
263
|
-
}
|
|
264
|
-
return parts;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* 检查是否包含 process 内容
|
|
269
|
-
*/
|
|
270
|
-
export function hasProcessContent(parts) {
|
|
271
|
-
return parts.some(function (part) {
|
|
272
|
-
return ['planning', 'replanning', 'reasoning', 'action_log', 'process_text'].includes(part.type);
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* 获取纯文本内容(不包含 process 标签)
|
|
278
|
-
*/
|
|
279
|
-
export function getPlainText(parts) {
|
|
280
|
-
return parts.filter(function (part) {
|
|
281
|
-
return part.type === 'text' || part.type === 'final_result';
|
|
282
|
-
}).map(function (part) {
|
|
283
|
-
return part.content;
|
|
284
|
-
}).join('\n\n').trim();
|
|
285
|
-
}
|
|
286
|
-
//# sourceMappingURL=parseAgentMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["cleanProcessText","text","replace","trim","parseXmlMode","parts","tagPatterns","regex","type","matches","forEach","_ref","match","tempRegex","RegExp","exec","push","start","index","end","length","content","sort","a","b","currentPos","textBefore","substring","textAfter","parseCommentMode","finalMarker","arguments","undefined","includes","results","finalIndex","indexOf","processText","finalText","split","currentType","part","parseCustomMode","patterns","_ref2","_match$","parseAgentMessage","options","_options$mode","mode","customPatterns","hasProcessContent","some","getPlainText","filter","map","join"],"sources":["../../../src/utils/parseAgentMessage.ts"],"sourcesContent":["/**\n * 解析后的消息片段类型\n */\nexport interface ParsedPart {\n type: 'text' | 'planning' | 'replanning' | 'reasoning' | 'action_log' | 'final_result' | 'process_text';\n content: string;\n}\n\n/**\n * 解析规则配置\n */\nexport interface ParseAgentMessageOptions {\n /**\n * 解析模式\n * - 'xml': XML 标签模式 <reasoning>...</reasoning>\n * - 'comment': 注释标签模式 /*REASONING*\\/\n * - 'custom': 自定义正则模式\n */\n mode?: 'xml' | 'comment' | 'custom';\n\n /**\n * 自定义正则规则 (mode='custom' 时使用)\n * @example\n * [\n * { regex: /\\[REASONING\\]([\\s\\S]*?)\\[\\/REASONING\\]/g, type: 'reasoning' },\n * { regex: /\\[PLANNING\\]([\\s\\S]*?)\\[\\/PLANNING\\]/g, type: 'planning' }\n * ]\n */\n customPatterns?: Array<{\n regex: RegExp;\n type: ParsedPart['type'];\n }>;\n\n /**\n * 最终答案标记 (comment 模式使用)\n * @default '/*FINAL_ANSWER*\\/'\n */\n finalMarker?: string;\n}\n\n/**\n * 清理 process 文本\n * - 移除多余的换行\n * - 移除 JSON 代码块标记\n */\nexport function cleanProcessText(text: string): string {\n return text\n .replace(/```json\\s*/g, '')\n .replace(/```\\s*/g, '')\n .replace(/^\\n+/, '')\n .replace(/\\n+$/, '')\n .trim();\n}\n\n/**\n * XML 模式解析 (默认)\n * 识别标签: <reasoning>、<planning>、<replanning>、<action_log>\n */\nfunction parseXmlMode(text: string): ParsedPart[] {\n const parts: ParsedPart[] = [];\n\n // 定义标签模式\n const tagPatterns: Array<{\n regex: RegExp;\n type: ParsedPart['type'];\n }> = [\n { regex: /<reasoning>([\\s\\S]*?)<\\/reasoning>/g, type: 'reasoning' },\n { regex: /<planning>([\\s\\S]*?)<\\/planning>/g, type: 'planning' },\n { regex: /<replanning>([\\s\\S]*?)<\\/replanning>/g, type: 'replanning' },\n { regex: /<action_log>([\\s\\S]*?)<\\/action_log>/g, type: 'action_log' },\n ];\n\n // 收集所有标签位置\n interface TagMatch {\n type: ParsedPart['type'];\n start: number;\n end: number;\n content: string;\n }\n\n const matches: TagMatch[] = [];\n\n tagPatterns.forEach(({ regex, type }) => {\n let match;\n const tempRegex = new RegExp(regex);\n while ((match = tempRegex.exec(text)) !== null) {\n matches.push({\n type,\n start: match.index,\n end: match.index + match[0].length,\n content: match[1].trim(),\n });\n }\n });\n\n // 按位置排序\n matches.sort((a, b) => a.start - b.start);\n\n // 提取文本和标签\n let currentPos = 0;\n\n matches.forEach((match) => {\n // 添加标签前的文本\n if (match.start > currentPos) {\n const textBefore = text.substring(currentPos, match.start).trim();\n if (textBefore) {\n parts.push({ type: 'text', content: textBefore });\n }\n }\n\n // 添加标签内容\n parts.push({ type: match.type, content: match.content });\n\n currentPos = match.end;\n });\n\n // 添加最后的文本\n if (currentPos < text.length) {\n const textAfter = text.substring(currentPos).trim();\n if (textAfter) {\n parts.push({ type: 'text', content: textAfter });\n }\n }\n\n return parts;\n}\n\n/**\n * 注释模式解析 (/*PLANNING*\\/ 格式)\n * 适用于业务项目的格式\n */\nfunction parseCommentMode(text: string, finalMarker: string = '/*FINAL_ANSWER*/'): ParsedPart[] {\n // 如果完全没有 Agent 推理标记,则整段文本视为最终结果\n if (!text.includes('/*')) {\n return [{ type: 'final_result', content: text }];\n }\n\n const results: ParsedPart[] = [];\n const finalIndex = text.indexOf(finalMarker);\n\n let processText = text;\n let finalText = '';\n\n if (finalIndex !== -1) {\n processText = text.substring(0, finalIndex);\n finalText = text.substring(finalIndex + finalMarker.length);\n }\n\n const regex = /(\\/\\*PLANNING\\*\\/|\\/\\*REPLANNING\\*\\/|\\/\\*REASONING\\*\\/|\\/\\*ACTION\\*\\/)/g;\n const parts = processText.split(regex);\n\n let currentType: ParsedPart['type'] = 'process_text';\n\n parts.forEach((part) => {\n if (part === '/*PLANNING*/') {\n currentType = 'planning';\n return;\n }\n if (part === '/*REPLANNING*/') {\n currentType = 'replanning';\n return;\n }\n if (part === '/*REASONING*/') {\n currentType = 'reasoning';\n return;\n }\n if (part === '/*ACTION*/') {\n currentType = 'action_log';\n return;\n }\n\n if (part && part.trim().length > 0) {\n results.push({ type: currentType, content: part });\n }\n });\n\n if (finalText.trim()) {\n results.push({ type: 'final_result', content: finalText });\n }\n\n return results;\n}\n\n/**\n * 自定义模式解析\n */\nfunction parseCustomMode(text: string, patterns: Array<{ regex: RegExp; type: ParsedPart['type'] }>): ParsedPart[] {\n const parts: ParsedPart[] = [];\n const matches: Array<{ type: ParsedPart['type']; start: number; end: number; content: string }> = [];\n\n patterns.forEach(({ regex, type }) => {\n let match;\n const tempRegex = new RegExp(regex);\n while ((match = tempRegex.exec(text)) !== null) {\n matches.push({\n type,\n start: match.index,\n end: match.index + match[0].length,\n content: match[1]?.trim() || match[0],\n });\n }\n });\n\n matches.sort((a, b) => a.start - b.start);\n\n let currentPos = 0;\n matches.forEach((match) => {\n if (match.start > currentPos) {\n const textBefore = text.substring(currentPos, match.start).trim();\n if (textBefore) {\n parts.push({ type: 'text', content: textBefore });\n }\n }\n parts.push({ type: match.type, content: match.content });\n currentPos = match.end;\n });\n\n if (currentPos < text.length) {\n const textAfter = text.substring(currentPos).trim();\n if (textAfter) {\n parts.push({ type: 'text', content: textAfter });\n }\n }\n\n return parts;\n}\n\n/**\n * 解析 Agent 消息 (支持多种格式)\n *\n * @param text 原始消息文本\n * @param options 解析选项\n * @returns 解析后的消息片段数组\n *\n * @example\n * // XML 模式 (默认)\n * const parts1 = parseAgentMessage(`\n * <reasoning>分析用户需求...</reasoning>\n * 最终回复内容\n * `);\n *\n * @example\n * // 注释模式 (业务项目格式)\n * const parts2 = parseAgentMessage(`\n * /*REASONING*\\/分析用户需求...\n * /*FINAL_ANSWER*\\/最终回复内容\n * `, { mode: 'comment' });\n *\n * @example\n * // 自定义模式\n * const parts3 = parseAgentMessage(text, {\n * mode: 'custom',\n * customPatterns: [\n * { regex: /\\[REASONING\\]([\\s\\S]*?)\\[\\/REASONING\\]/g, type: 'reasoning' }\n * ]\n * });\n */\nexport function parseAgentMessage(text: string, options: ParseAgentMessageOptions = {}): ParsedPart[] {\n if (!text) return [];\n\n const { mode = 'xml', customPatterns, finalMarker } = options;\n\n // 根据模式选择解析器\n if (mode === 'comment') {\n return parseCommentMode(text, finalMarker);\n }\n\n if (mode === 'custom' && customPatterns) {\n return parseCustomMode(text, customPatterns);\n }\n\n // 默认 XML 模式\n const parts = parseXmlMode(text);\n\n // 如果没有任何标签,返回整个文本\n if (parts.length === 0) {\n return [{ type: 'text', content: text }];\n }\n\n return parts;\n}\n\n/**\n * 检查是否包含 process 内容\n */\nexport function hasProcessContent(parts: ParsedPart[]): boolean {\n return parts.some((part) =>\n ['planning', 'replanning', 'reasoning', 'action_log', 'process_text'].includes(part.type)\n );\n}\n\n/**\n * 获取纯文本内容(不包含 process 标签)\n */\nexport function getPlainText(parts: ParsedPart[]): string {\n return parts\n .filter((part) => part.type === 'text' || part.type === 'final_result')\n .map((part) => part.content)\n .join('\\n\\n')\n .trim();\n}\n"],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { MessageType } from '../client/base';
|
|
2
|
-
export interface ProviderState {
|
|
3
|
-
client: any;
|
|
4
|
-
messages: MessageType[];
|
|
5
|
-
token: string;
|
|
6
|
-
url: string;
|
|
7
|
-
}
|
|
8
|
-
declare class ProviderManager {
|
|
9
|
-
private providers;
|
|
10
|
-
register(providerId: string, data: {
|
|
11
|
-
client: any;
|
|
12
|
-
token: string;
|
|
13
|
-
url: string;
|
|
14
|
-
}): void;
|
|
15
|
-
unregister(providerId: string): void;
|
|
16
|
-
getProvider(providerId: string): ProviderState | undefined;
|
|
17
|
-
addMessage(providerId: string, message: MessageType): void;
|
|
18
|
-
clearMessages(providerId: string): void;
|
|
19
|
-
getProviderIds(): string[];
|
|
20
|
-
}
|
|
21
|
-
export declare const providerManager: ProviderManager;
|
|
22
|
-
export declare const useProviderManager: () => ProviderManager;
|
|
23
|
-
export {};
|