@ai-group/chat-sdk 3.7.5 → 3.8.0-alpha.1
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/README.md +36 -0
- package/dist/cjs/components/DislikeFeedback.js.map +2 -2
- package/dist/cjs/components/FileGallery/index.js +2 -1
- package/dist/cjs/components/FileGallery/index.js.map +3 -3
- package/dist/cjs/components/FolderTree/DirectoryTree.js.map +2 -2
- package/dist/cjs/components/Sources/components/CarouselCard.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +94 -18
- package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +3 -0
- package/dist/cjs/components/XAdkChatbot/styles.js +29 -0
- package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/utils.d.ts +14 -0
- package/dist/cjs/components/XAdkChatbot/utils.js +79 -0
- package/dist/cjs/components/XAdkChatbot/utils.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +2 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +2 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +3 -0
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/InputTags.js.map +2 -2
- package/dist/cjs/components/XAdkThoughtChain/index.js +23 -28
- package/dist/cjs/components/XAdkThoughtChain/index.js.map +2 -2
- package/dist/cjs/components/XAdkThoughtChain/styles.d.ts +3 -1
- package/dist/cjs/components/XAdkThoughtChain/styles.js +63 -29
- package/dist/cjs/components/XAdkThoughtChain/styles.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +2 -1
- package/dist/cjs/components/XAiConversations/index.js.map +3 -3
- package/dist/cjs/components/XAiProvider/index.js.map +2 -2
- package/dist/cjs/components/XAiSender/index.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.d.ts +6 -1
- package/dist/cjs/hooks/useADKChat.js +15 -1
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/hooks/useADKMessageQueue.d.ts +22 -0
- package/dist/cjs/hooks/useADKMessageQueue.js +105 -0
- package/dist/cjs/hooks/useADKMessageQueue.js.map +7 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/react/index.d.ts +2 -0
- package/dist/cjs/react/index.js +3 -0
- package/dist/cjs/react/index.js.map +2 -2
- package/dist/cjs/types/XAdkChatbot.d.ts +13 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +7 -0
- package/dist/cjs/types/XAdkProvider.js.map +2 -2
- package/dist/cjs/types/XAdkThoughtChain.d.ts +2 -0
- package/dist/cjs/types/XAdkThoughtChain.js.map +1 -1
- package/dist/cjs/types/antdx.d.ts +2 -2
- package/dist/cjs/types/antdx.js.map +1 -1
- package/dist/esm/components/DislikeFeedback.js.map +1 -1
- package/dist/esm/components/FileGallery/index.js +2 -1
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/FolderTree/DirectoryTree.js.map +1 -1
- package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +89 -14
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/styles.d.ts +3 -0
- package/dist/esm/components/XAdkChatbot/styles.js +25 -22
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/utils.d.ts +14 -0
- package/dist/esm/components/XAdkChatbot/utils.js +66 -0
- package/dist/esm/components/XAdkChatbot/utils.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.js +5 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +2 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.js +4 -2
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/InputTags.js.map +1 -1
- package/dist/esm/components/XAdkThoughtChain/index.js +52 -78
- package/dist/esm/components/XAdkThoughtChain/index.js.map +1 -1
- package/dist/esm/components/XAdkThoughtChain/styles.d.ts +3 -1
- package/dist/esm/components/XAdkThoughtChain/styles.js +28 -26
- package/dist/esm/components/XAdkThoughtChain/styles.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +2 -1
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +6 -1
- package/dist/esm/hooks/useADKChat.js +18 -1
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/hooks/useADKMessageQueue.d.ts +22 -0
- package/dist/esm/hooks/useADKMessageQueue.js +157 -0
- package/dist/esm/hooks/useADKMessageQueue.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react/index.d.ts +2 -0
- package/dist/esm/react/index.js +1 -0
- package/dist/esm/react/index.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +13 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +7 -0
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkThoughtChain.d.ts +2 -0
- package/dist/esm/types/XAdkThoughtChain.js.map +1 -1
- package/dist/esm/types/antdx.d.ts +2 -2
- package/dist/esm/types/antdx.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","message","Tooltip","Flex","LikeFilled","LikeOutlined","ReloadOutlined","CopyOutlined","copy","XAdkChatbot","DislikeFeedback","useChatState","useChatActions","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Messages","_ref","actions","actionsExtra","className","style","showFnCallDetail","renderFunctionCall","strategiesProp","strategies","_useChatState","messages","loading","prologue","suggestions","initialized","showFeedback","appInfo","onFileClick","_useChatActions","suggestChat","reChat","likeMessage","confirmFnCall","primaryColor","appTheme","defaultActions","_ref2","_group$isLike","group","isLastBotMsg","lastMsg","msgs","length","invocationId","isLikeVal","isLike","fullText","filter","m","functionCall","functionResponse","map","text","join","gap","align","padding","color","children","title","cursor","onClick","success","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ok","wrap","_callee$","_context","prev","next","warning","abrupt","sent","error","stop","msg","activeColor","onSubmit","_ref4","_callee2","formData","_callee2$","_context2","_x","apply","arguments","onSuggest","onConfirm","enableGrouping","enableProcessParsing","_objectSpread"],"sources":["../../../../../src/components/XAdkProvider/compound/Messages.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { message, Tooltip, Flex } from \"antd\";\nimport {\n LikeFilled,\n LikeOutlined,\n ReloadOutlined,\n CopyOutlined,\n} from \"@ant-design/icons\";\nimport copy from \"copy-to-clipboard\";\nimport XAdkChatbot from \"../../XAdkChatbot\";\nimport DislikeFeedback from \"./DislikeFeedBack\";\nimport { useChatState } from \"../context/ChatStateContext\";\nimport { useChatActions } from \"../context/ChatActionContext\";\nimport type { ActionExtraProps, ActionProps } from \"@/types\";\nimport type { ChatStrategies } from \"@/types\";\n\nexport interface XAdkMessagesProps {\n /** 自定义操作栏渲染 */\n actions?: ActionProps;\n /** 追加在操作栏之后的内容 */\n actionsExtra?: ActionExtraProps;\n /** 类名 */\n className?: string;\n /** 样式 */\n style?: React.CSSProperties;\n /** 是否显示函数调用详情 */\n showFnCallDetail?: boolean;\n /** 自定义工具调用渲染函数,返回 null 则降级使用默认渲染 */\n renderFunctionCall?: (msg: import(\"@/types\").IMessage) => React.ReactNode | null;\n /** 局部策略覆盖,优先级高于 Provider preset/strategies */\n strategies?: ChatStrategies;\n}\n\n/**\n * Messages - XAdkProvider 的消息展示组件\n *\n * 使用 XAdkChatbot 渲染消息列表\n */\nconst Messages: React.FC<XAdkMessagesProps> = ({\n actions,\n actionsExtra,\n className,\n style,\n showFnCallDetail,\n renderFunctionCall,\n strategies: strategiesProp,\n}) => {\n const {\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n showFeedback,\n appInfo,\n onFileClick,\n strategies,\n } = useChatState();\n const { suggestChat, reChat, likeMessage, confirmFnCall } = useChatActions();\n\n const primaryColor = appInfo?.appTheme || \"#1677ff\";\n\n const defaultActions = useCallback<ActionProps>(\n ({ message: group, isLastBotMsg }) => {\n // 取该组最后一条 bot 消息的 invocationId 和 isLike 状态\n const lastMsg = group.msgs[group.msgs.length - 1];\n const invocationId = lastMsg?.invocationId;\n const isLikeVal = group.isLike ?? 0;\n\n const fullText = group.msgs\n .filter((m) => !m.functionCall && !m.functionResponse)\n .map((m) => m.text || \"\")\n .join(\"\");\n\n return (\n <Flex\n gap={16}\n align=\"center\"\n style={{ padding: \"4px 0\", color: \"#81858c\" }}\n >\n {isLastBotMsg && (\n <Tooltip title=\"重新生成\">\n <ReloadOutlined style={{ cursor: \"pointer\" }} onClick={reChat} />\n </Tooltip>\n )}\n <Tooltip title=\"复制内容\">\n <CopyOutlined\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n copy(fullText);\n message.success(\"复制成功\");\n }}\n />\n </Tooltip>\n {showFeedback && invocationId && (\n <>\n <Tooltip title=\"赞\">\n {isLikeVal === 1 ? (\n <LikeFilled\n style={{ color: primaryColor, cursor: \"pointer\" }}\n />\n ) : (\n <LikeOutlined\n style={{ cursor: \"pointer\" }}\n onClick={async () => {\n if (isLikeVal !== 0) {\n message.warning(\"已收到您的反馈,无需重复提交\");\n return;\n }\n const ok = await likeMessage(invocationId, 1);\n if (ok) message.success(\"感谢您的反馈\");\n else message.error(\"反馈失败,请稍后再试\");\n }}\n />\n )}\n </Tooltip>\n <DislikeFeedback\n msg={group}\n activeColor={primaryColor}\n onSubmit={async (formData) => {\n const ok = await likeMessage(invocationId, -1, formData);\n if (ok) message.success(\"已收到您的反馈,我们会努力做得更好\");\n else message.error(\"反馈失败,请稍后再试\");\n return ok;\n }}\n />\n </>\n )}\n </Flex>\n );\n },\n [reChat, likeMessage, showFeedback, primaryColor],\n );\n\n return (\n <XAdkChatbot\n messages={messages}\n loading={loading}\n prologue={prologue}\n suggestions={suggestions}\n onSuggest={suggestChat}\n onConfirm={confirmFnCall}\n // 操作栏:使用外部传入的 actions,否则用内置默认 actions\n actions={actions ?? defaultActions}\n actionsExtra={actionsExtra}\n // 启用分组和解析\n enableGrouping={true}\n enableProcessParsing={true}\n initialized={initialized}\n showFnCallDetail={showFnCallDetail}\n // 文件点击回调\n onFileClick={onFileClick}\n // 样式\n className={className}\n style={style}\n // 自定义工具调用渲染\n renderFunctionCall={renderFunctionCall}\n strategies={{ ...strategies, ...strategiesProp }}\n />\n );\n};\n\nexport default Messages;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useCallback","message","Tooltip","Flex","LikeFilled","LikeOutlined","ReloadOutlined","CopyOutlined","copy","XAdkChatbot","DislikeFeedback","useChatState","useChatActions","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Messages","_ref","actions","actionsExtra","className","style","showFnCallDetail","renderFunctionCall","strategiesProp","strategies","_useChatState","messages","loading","prologue","suggestions","initialized","showFeedback","showUserActions","appInfo","onFileClick","_useChatActions","suggestChat","reChat","likeMessage","confirmFnCall","primaryColor","appTheme","defaultActions","_ref2","_group$isLike","group","isLastBotMsg","lastMsg","msgs","length","invocationId","isLikeVal","isLike","fullText","filter","m","functionCall","functionResponse","map","text","join","gap","align","padding","color","children","title","cursor","onClick","success","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ok","wrap","_callee$","_context","prev","next","warning","abrupt","sent","error","stop","msg","activeColor","onSubmit","_ref4","_callee2","formData","_callee2$","_context2","_x","apply","arguments","onSuggest","onConfirm","enableGrouping","enableProcessParsing","_objectSpread"],"sources":["../../../../../src/components/XAdkProvider/compound/Messages.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { message, Tooltip, Flex } from \"antd\";\nimport {\n LikeFilled,\n LikeOutlined,\n ReloadOutlined,\n CopyOutlined,\n} from \"@ant-design/icons\";\nimport copy from \"copy-to-clipboard\";\nimport XAdkChatbot from \"../../XAdkChatbot\";\nimport DislikeFeedback from \"./DislikeFeedBack\";\nimport { useChatState } from \"../context/ChatStateContext\";\nimport { useChatActions } from \"../context/ChatActionContext\";\nimport type { ActionExtraProps, ActionProps } from \"@/types\";\nimport type { ChatStrategies } from \"@/types\";\n\nexport interface XAdkMessagesProps {\n /** 自定义操作栏渲染 */\n actions?: ActionProps;\n /** 追加在操作栏之后的内容 */\n actionsExtra?: ActionExtraProps;\n /** 类名 */\n className?: string;\n /** 样式 */\n style?: React.CSSProperties;\n /** 是否显示函数调用详情 */\n showFnCallDetail?: boolean;\n /** 自定义工具调用渲染函数,返回 null 则降级使用默认渲染 */\n renderFunctionCall?: (msg: import(\"@/types\").IMessage) => React.ReactNode | null;\n /** 局部策略覆盖,优先级高于 Provider preset/strategies */\n strategies?: ChatStrategies;\n}\n\n/**\n * Messages - XAdkProvider 的消息展示组件\n *\n * 使用 XAdkChatbot 渲染消息列表\n */\nconst Messages: React.FC<XAdkMessagesProps> = ({\n actions,\n actionsExtra,\n className,\n style,\n showFnCallDetail,\n renderFunctionCall,\n strategies: strategiesProp,\n}) => {\n const {\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n showFeedback,\n showUserActions,\n appInfo,\n onFileClick,\n strategies,\n } = useChatState();\n const { suggestChat, reChat, likeMessage, confirmFnCall } = useChatActions();\n\n const primaryColor = appInfo?.appTheme || \"#1677ff\";\n\n const defaultActions = useCallback<ActionProps>(\n ({ message: group, isLastBotMsg }) => {\n // 取该组最后一条 bot 消息的 invocationId 和 isLike 状态\n const lastMsg = group.msgs[group.msgs.length - 1];\n const invocationId = lastMsg?.invocationId;\n const isLikeVal = group.isLike ?? 0;\n\n const fullText = group.msgs\n .filter((m) => !m.functionCall && !m.functionResponse)\n .map((m) => m.text || \"\")\n .join(\"\");\n\n return (\n <Flex\n gap={16}\n align=\"center\"\n style={{ padding: \"4px 0\", color: \"#81858c\" }}\n >\n {isLastBotMsg && (\n <Tooltip title=\"重新生成\">\n <ReloadOutlined style={{ cursor: \"pointer\" }} onClick={reChat} />\n </Tooltip>\n )}\n <Tooltip title=\"复制内容\">\n <CopyOutlined\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n copy(fullText);\n message.success(\"复制成功\");\n }}\n />\n </Tooltip>\n {showFeedback && invocationId && (\n <>\n <Tooltip title=\"赞\">\n {isLikeVal === 1 ? (\n <LikeFilled\n style={{ color: primaryColor, cursor: \"pointer\" }}\n />\n ) : (\n <LikeOutlined\n style={{ cursor: \"pointer\" }}\n onClick={async () => {\n if (isLikeVal !== 0) {\n message.warning(\"已收到您的反馈,无需重复提交\");\n return;\n }\n const ok = await likeMessage(invocationId, 1);\n if (ok) message.success(\"感谢您的反馈\");\n else message.error(\"反馈失败,请稍后再试\");\n }}\n />\n )}\n </Tooltip>\n <DislikeFeedback\n msg={group}\n activeColor={primaryColor}\n onSubmit={async (formData) => {\n const ok = await likeMessage(invocationId, -1, formData);\n if (ok) message.success(\"已收到您的反馈,我们会努力做得更好\");\n else message.error(\"反馈失败,请稍后再试\");\n return ok;\n }}\n />\n </>\n )}\n </Flex>\n );\n },\n [reChat, likeMessage, showFeedback, primaryColor],\n );\n\n return (\n <XAdkChatbot\n messages={messages}\n loading={loading}\n prologue={prologue}\n suggestions={suggestions}\n onSuggest={suggestChat}\n onConfirm={confirmFnCall}\n // 操作栏:使用外部传入的 actions,否则用内置默认 actions\n actions={actions ?? defaultActions}\n actionsExtra={actionsExtra}\n // 启用分组和解析\n enableGrouping={true}\n enableProcessParsing={true}\n initialized={initialized}\n showFnCallDetail={showFnCallDetail}\n // 文件点击回调\n onFileClick={onFileClick}\n // 样式\n className={className}\n style={style}\n // 自定义工具调用渲染\n renderFunctionCall={renderFunctionCall}\n // 用户消息 hover 操作栏\n showUserActions={showUserActions}\n strategies={{ ...strategies, ...strategiesProp }}\n />\n );\n};\n\nexport default Messages;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","message","Modal","Input","ExclamationCircleFilled","XAiConversations","useChatState","useChatActions","useSession","useChatSenderState","jsx","_jsx","confirm","Sidebar","_ref","_ref$isNarrow","isNarrow","style","className","_useChatState","currentSessionId","_useChatActions","clearChat","_useSession","sessionList","deleteSession","updateSession","setCurrentSession","_useChatSenderState","setSenderValue","handleActiveChange","key","handleNewChat","defaultMenuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","title","icon","content","defaultValue","autoFocus","width","onChange","e","target","value","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","error","Promise","reject","onCancel","okType","activeKey","onActiveChange","onNewChat","menu","displayName"],"sources":["../../../../../src/components/XAdkProvider/compound/Sidebar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { message, Modal, Input } from 'antd';\nimport { ExclamationCircleFilled } from '@ant-design/icons';\nimport type { ConversationsProps } from '@/types/antdx';\nimport XAiConversations from '@/components/XAiConversations';\nimport { useChatState } from '../context/ChatStateContext';\nimport { useChatActions } from '../context/ChatActionContext';\nimport { useSession } from '../context/SessionContext';\nimport { useChatSenderState } from '../context/ChatSenderStateContext';\n\nconst { confirm } = Modal;\n\n/**\n * XAdkProvider.Sidebar - 会话列表侧边栏组件\n *\n * 从 Context 获取会话数据并提供会话管理界面\n * 基于 XAiConversations 组件实现(带展开/收起功能)\n *\n * @example\n * ```tsx\n * <XAdkProvider url=\"...\" token=\"...\">\n * <XAdkProvider.Sidebar isNarrow={false} />\n * </XAdkProvider>\n * ```\n */\nexport interface XAdkSidebarProps {\n /** 额外的样式 */\n style?: React.CSSProperties;\n /** 额外的类名 */\n className?: string;\n /** 是否为窄屏模式 */\n isNarrow?: boolean;\n}\n\nconst Sidebar: React.FC<XAdkSidebarProps> = ({\n isNarrow = false,\n style,\n className,\n}) => {\n const { currentSessionId } = useChatState();\n const { clearChat } = useChatActions();\n const { sessionList, deleteSession, updateSession, setCurrentSession } = useSession();\n const { setSenderValue } = useChatSenderState();\n\n // 切换会话\n const handleActiveChange = useCallback((key: string) => {\n setCurrentSession(key);\n setSenderValue('');\n }, [setCurrentSession, setSenderValue]);\n\n // 新建对话\n const handleNewChat = useCallback(() => {\n clearChat();\n setSenderValue('');\n }, [clearChat, setSenderValue]);\n\n // 默认会话菜单配置\n const defaultMenuConfig: ConversationsProps['menu'] = useCallback((conversation: any) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo: any) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = (conversation.label as string) || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={(e) => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: {\n background: '#000',\n borderColor: '#000',\n color: '#fff',\n },\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n updateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: {\n background: '#ff4d4f',\n borderColor: '#ff4d4f',\n color: '#fff',\n },\n },\n onOk() {\n deleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n }), [deleteSession, updateSession]);\n\n return (\n <XAiConversations\n isNarrow={isNarrow}\n sessionList={sessionList}\n activeKey={currentSessionId}\n onActiveChange={handleActiveChange}\n onNewChat={handleNewChat}\n menu={defaultMenuConfig}\n style={style}\n />\n );\n};\n\nSidebar.displayName = 'XAdkProvider.Sidebar';\n\nexport default Sidebar;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,OAAO,EAAEC,KAAK,EAAEC,KAAK,QAAQ,MAAM;AAC5C,SAASC,uBAAuB,QAAQ,mBAAmB;AAE3D,OAAOC,gBAAgB;AACvB,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,UAAU;AACnB,SAASC,kBAAkB;AAA4C,SAAAC,GAAA,IAAAC,IAAA;AAEvE,IAAQC,OAAO,GAAKV,KAAK,CAAjBU,OAAO;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,IAAMC,OAAmC,GAAG,SAAtCA,OAAmCA,CAAAC,IAAA,EAInC;EAAA,IAAAC,aAAA,GAAAD,IAAA,CAHJE,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAChBE,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,SAAS,GAAAJ,IAAA,CAATI,SAAS;EAET,IAAAC,aAAA,GAA6Bb,YAAY,CAAC,CAAC;IAAnCc,gBAAgB,GAAAD,aAAA,CAAhBC,gBAAgB;EACxB,IAAAC,eAAA,GAAsBd,cAAc,CAAC,CAAC;IAA9Be,SAAS,GAAAD,eAAA,CAATC,SAAS;EACjB,IAAAC,WAAA,GAAyEf,UAAU,CAAC,CAAC;IAA7EgB,WAAW,GAAAD,WAAA,CAAXC,WAAW;IAAEC,aAAa,GAAAF,WAAA,CAAbE,aAAa;IAAEC,aAAa,GAAAH,WAAA,CAAbG,aAAa;IAAEC,iBAAiB,GAAAJ,WAAA,CAAjBI,iBAAiB;EACpE,IAAAC,mBAAA,GAA2BnB,kBAAkB,CAAC,CAAC;IAAvCoB,cAAc,GAAAD,mBAAA,CAAdC,cAAc;;EAEtB;EACA,IAAMC,kBAAkB,GAAG9B,WAAW,CAAC,UAAC+B,GAAW,EAAK;IACtDJ,iBAAiB,CAACI,GAAG,CAAC;IACtBF,cAAc,CAAC,EAAE,CAAC;EACpB,CAAC,EAAE,CAACF,iBAAiB,EAAEE,cAAc,CAAC,CAAC;;EAEvC;EACA,IAAMG,aAAa,GAAGhC,WAAW,CAAC,YAAM;IACtCsB,SAAS,CAAC,CAAC;IACXO,cAAc,CAAC,EAAE,CAAC;EACpB,CAAC,EAAE,CAACP,SAAS,EAAEO,cAAc,CAAC,CAAC;;EAE/B;EACA,IAAMI,iBAA6C,GAAGjC,WAAW,CAAC,UAACkC,YAAiB;IAAA,OAAM;MACxFC,KAAK,EAAE,CACL;QACEC,KAAK,EAAE,KAAK;QACZL,GAAG,EAAE;MACP,CAAC,EACD;QACEK,KAAK,EAAE,IAAI;QACXL,GAAG,EAAE,QAAQ;QACbM,MAAM,EAAE;MACV,CAAC,CACF;MACDC,OAAO,EAAE,SAAAA,QAACC,QAAa,EAAK;QAC1BA,QAAQ,CAACC,QAAQ,CAACC,eAAe,CAAC,CAAC;QACnC,IAAQV,GAAG,GAAKQ,QAAQ,CAAhBR,GAAG;QACX,QAAQA,GAAG;UACT,KAAK,MAAM;YAAE;cACX,IAAIW,UAAU,GAAIR,YAAY,CAACE,KAAK,IAAe,EAAE;cACrDxB,OAAO,CAAC;gBACN+B,KAAK,EAAE,QAAQ;gBACfC,IAAI,EAAE,IAAI;gBACVC,OAAO,eACLlC,IAAA,CAACR,KAAK;kBACJ2C,YAAY,EAAEJ,UAAW;kBACzBK,SAAS;kBACT9B,KAAK,EAAE;oBAAE+B,KAAK,EAAE;kBAAO,CAAE;kBACzBC,QAAQ,EAAE,SAAAA,SAACC,
|
|
1
|
+
{"version":3,"names":["React","useCallback","message","Modal","Input","ExclamationCircleFilled","XAiConversations","useChatState","useChatActions","useSession","useChatSenderState","jsx","_jsx","confirm","Sidebar","_ref","_ref$isNarrow","isNarrow","style","className","_useChatState","currentSessionId","_useChatActions","clearChat","_useSession","sessionList","deleteSession","updateSession","setCurrentSession","_useChatSenderState","setSenderValue","handleActiveChange","key","handleNewChat","defaultMenuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","title","icon","content","defaultValue","autoFocus","width","onChange","e","target","value","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","error","Promise","reject","onCancel","okType","activeKey","onActiveChange","onNewChat","menu","displayName"],"sources":["../../../../../src/components/XAdkProvider/compound/Sidebar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { message, Modal, Input } from 'antd';\nimport { ExclamationCircleFilled } from '@ant-design/icons';\nimport type { ConversationsProps } from '@/types/antdx';\nimport XAiConversations from '@/components/XAiConversations';\nimport { useChatState } from '../context/ChatStateContext';\nimport { useChatActions } from '../context/ChatActionContext';\nimport { useSession } from '../context/SessionContext';\nimport { useChatSenderState } from '../context/ChatSenderStateContext';\n\nconst { confirm } = Modal;\n\n/**\n * XAdkProvider.Sidebar - 会话列表侧边栏组件\n *\n * 从 Context 获取会话数据并提供会话管理界面\n * 基于 XAiConversations 组件实现(带展开/收起功能)\n *\n * @example\n * ```tsx\n * <XAdkProvider url=\"...\" token=\"...\">\n * <XAdkProvider.Sidebar isNarrow={false} />\n * </XAdkProvider>\n * ```\n */\nexport interface XAdkSidebarProps {\n /** 额外的样式 */\n style?: React.CSSProperties;\n /** 额外的类名 */\n className?: string;\n /** 是否为窄屏模式 */\n isNarrow?: boolean;\n}\n\nconst Sidebar: React.FC<XAdkSidebarProps> = ({\n isNarrow = false,\n style,\n className,\n}) => {\n const { currentSessionId } = useChatState();\n const { clearChat } = useChatActions();\n const { sessionList, deleteSession, updateSession, setCurrentSession } = useSession();\n const { setSenderValue } = useChatSenderState();\n\n // 切换会话\n const handleActiveChange = useCallback((key: string) => {\n setCurrentSession(key);\n setSenderValue('');\n }, [setCurrentSession, setSenderValue]);\n\n // 新建对话\n const handleNewChat = useCallback(() => {\n clearChat();\n setSenderValue('');\n }, [clearChat, setSenderValue]);\n\n // 默认会话菜单配置\n const defaultMenuConfig: ConversationsProps['menu'] = useCallback((conversation: any) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo: any) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = (conversation.label as string) || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: {\n background: '#000',\n borderColor: '#000',\n color: '#fff',\n },\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n updateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: {\n background: '#ff4d4f',\n borderColor: '#ff4d4f',\n color: '#fff',\n },\n },\n onOk() {\n deleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n }), [deleteSession, updateSession]);\n\n return (\n <XAiConversations\n isNarrow={isNarrow}\n sessionList={sessionList}\n activeKey={currentSessionId}\n onActiveChange={handleActiveChange}\n onNewChat={handleNewChat}\n menu={defaultMenuConfig}\n style={style}\n />\n );\n};\n\nSidebar.displayName = 'XAdkProvider.Sidebar';\n\nexport default Sidebar;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","ChatStateContext","useChatState","context","Error"],"sources":["../../../../../src/components/XAdkProvider/context/ChatStateContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { IMessage, FileItem, UploadRequestFn, ChatStrategies } from \"@/types\";\nimport type { ChatConfig } from \"@/services/api\";\n\n/**\n * 聊天状态 Context\n * 只包含状态数据,不包含操作方法\n * 这样可以避免不必要的 rerender\n */\nexport interface ChatStateContextType {\n /** 请求地址 */\n url: string;\n /** 会话令牌 */\n token: string;\n /** 消息列表 */\n messages: IMessage[];\n /** 加载状态 */\n loading: boolean;\n /** 当前会话 ID */\n currentSessionId: string;\n /** 开场白 */\n prologue: string;\n /** 建议问题列表 */\n suggestions: string[];\n /** 应用配置信息 */\n appInfo: ChatConfig | null;\n /** 是否已初始化 */\n initialized: boolean;\n /** 是否展示点赞/点踩 */\n showFeedback: boolean;\n /** 点击附件回调 */\n onFileClick?: (file: FileItem) => void;\n // 确认工具执行回调 */\n onConfirm?: () => void;\n /** 自定义上传函数 */\n uploadRequest?: UploadRequestFn;\n /** 当前 Provider 生效的聊天策略 */\n strategies: ChatStrategies;\n}\n\nexport const ChatStateContext = createContext<ChatStateContextType | null>(\n null,\n);\n\n/**\n * 使用聊天状态 Hook\n * @returns ChatStateContextType\n * @throws Error 如果在 XAdkProvider 外部使用\n */\nexport const useChatState = () => {\n const context = useContext(ChatStateContext);\n if (!context) {\n throw new Error(\"useChatState must be used within XAdkProvider\");\n }\n return context;\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAIjD;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","ChatStateContext","useChatState","context","Error"],"sources":["../../../../../src/components/XAdkProvider/context/ChatStateContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { IMessage, FileItem, UploadRequestFn, ChatStrategies } from \"@/types\";\nimport type { ChatConfig } from \"@/services/api\";\n\n/**\n * 聊天状态 Context\n * 只包含状态数据,不包含操作方法\n * 这样可以避免不必要的 rerender\n */\nexport interface ChatStateContextType {\n /** 请求地址 */\n url: string;\n /** 会话令牌 */\n token: string;\n /** 消息列表 */\n messages: IMessage[];\n /** 加载状态 */\n loading: boolean;\n /** 当前会话 ID */\n currentSessionId: string;\n /** 开场白 */\n prologue: string;\n /** 建议问题列表 */\n suggestions: string[];\n /** 应用配置信息 */\n appInfo: ChatConfig | null;\n /** 是否已初始化 */\n initialized: boolean;\n /** 是否展示点赞/点踩 */\n showFeedback: boolean;\n /** 是否启用用户消息 hover 操作栏 */\n showUserActions: boolean;\n /** 点击附件回调 */\n onFileClick?: (file: FileItem) => void;\n // 确认工具执行回调 */\n onConfirm?: () => void;\n /** 自定义上传函数 */\n uploadRequest?: UploadRequestFn;\n /** 当前 Provider 生效的聊天策略 */\n strategies: ChatStrategies;\n}\n\nexport const ChatStateContext = createContext<ChatStateContextType | null>(\n null,\n);\n\n/**\n * 使用聊天状态 Hook\n * @returns ChatStateContextType\n * @throws Error 如果在 XAdkProvider 外部使用\n */\nexport const useChatState = () => {\n const context = useContext(ChatStateContext);\n if (!context) {\n throw new Error(\"useChatState must be used within XAdkProvider\");\n }\n return context;\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAIjD;AACA;AACA;AACA;AACA;;AAkCA,OAAO,IAAMC,gBAAgB,gBAAGF,aAAa,CAC3C,IACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EAChC,IAAMC,OAAO,GAAGH,UAAU,CAACC,gBAAgB,CAAC;EAC5C,IAAI,CAACE,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,+CAA+C,CAAC;EAClE;EACA,OAAOD,OAAO;AAChB,CAAC"}
|
|
@@ -62,7 +62,7 @@ import { mergeChatStrategies, resolvePresetUploadRequest } from "../../presets/r
|
|
|
62
62
|
* </XAdkProvider>
|
|
63
63
|
*/
|
|
64
64
|
var XAdkProviderComponent = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
65
|
-
var _config$showFeedback, _config$allowUpload, _config$draggable, _config$uploadRequest;
|
|
65
|
+
var _config$showFeedback, _config$showUserActio, _config$allowUpload, _config$draggable, _config$uploadRequest;
|
|
66
66
|
var _ref$url = _ref.url,
|
|
67
67
|
url = _ref$url === void 0 ? window.location.origin : _ref$url,
|
|
68
68
|
token = _ref.token,
|
|
@@ -133,6 +133,7 @@ var XAdkProviderComponent = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
133
133
|
_data$setStateDelta = data.setStateDelta,
|
|
134
134
|
setStateDelta = _data$setStateDelta === void 0 ? function () {} : _data$setStateDelta;
|
|
135
135
|
var showFeedback = (_config$showFeedback = config === null || config === void 0 ? void 0 : config.showFeedback) !== null && _config$showFeedback !== void 0 ? _config$showFeedback : true;
|
|
136
|
+
var showUserActions = (_config$showUserActio = config === null || config === void 0 ? void 0 : config.showUserActions) !== null && _config$showUserActio !== void 0 ? _config$showUserActio : true;
|
|
136
137
|
var onFileClick = config === null || config === void 0 ? void 0 : config.onFileClick;
|
|
137
138
|
var allowUpload = (_config$allowUpload = config === null || config === void 0 ? void 0 : config.allowUpload) !== null && _config$allowUpload !== void 0 ? _config$allowUpload : false;
|
|
138
139
|
var draggable = (_config$draggable = config === null || config === void 0 ? void 0 : config.draggable) !== null && _config$draggable !== void 0 ? _config$draggable : true;
|
|
@@ -183,11 +184,12 @@ var XAdkProviderComponent = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
183
184
|
url: url,
|
|
184
185
|
token: token,
|
|
185
186
|
showFeedback: showFeedback,
|
|
187
|
+
showUserActions: showUserActions,
|
|
186
188
|
onFileClick: onFileClick,
|
|
187
189
|
uploadRequest: uploadRequest,
|
|
188
190
|
strategies: mergedStrategies
|
|
189
191
|
};
|
|
190
|
-
}, [messages, loading, currentSessionId, prologue, suggestions, appInfo, initialized, url, token, showFeedback, onFileClick, uploadRequest, mergedStrategies]);
|
|
192
|
+
}, [messages, loading, currentSessionId, prologue, suggestions, appInfo, initialized, url, token, showFeedback, showUserActions, onFileClick, uploadRequest, mergedStrategies]);
|
|
191
193
|
|
|
192
194
|
// 动作 Context Value - 函数引用稳定,不需要每次都创建新对象
|
|
193
195
|
var chatActionValue = useMemo(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useImperativeHandle","useMemo","useState","ConfigProvider","XProvider","ChatStateContext","ChatActionContext","SessionContext","ChatSenderStateContext","useADKChat","primaryBlue","cssVarStyle","mergeChatStrategies","resolvePresetUploadRequest","XAdkProviderComponent","_ref","ref","_config$showFeedback","_config$allowUpload","_config$draggable","_config$uploadRequest","_ref$url","url","window","location","origin","token","config","preset","strategies","chatData","_ref$providerId","providerId","onSuccess","onError","onMessage","onStream","children","mergedStrategies","_objectSpread","internalData","enabled","data","appInfo","startChat","stopChat","reChat","clearChat","suggestChat","confirmFnCall","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","prologue","suggestions","initialized","setCurrentSession","setMessages","_data$likeMessage","likeMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","stop","_data$setStateDelta","setStateDelta","showFeedback","onFileClick","allowUpload","draggable","presetUploadRequest","appNo","uploadRequest","getAppInfo","getMessages","getSessions","chatStateValue","chatActionValue","chat","sessionValue","_useState","_useState2","_slicedToArray","senderValue","setSenderValue","senderStateValue","_jsx","theme","colorPrimary","appTheme","Provider","value","style","display","height","width","position","displayName","Header","Sidebar","Messages","Sender","Chatbot","Welcome","DefaultLayout","jsx","XAdkProvider"],"sources":["../../../../src/components/XAdkProvider/index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\";\nimport { ConfigProvider } from \"antd\";\nimport { XProvider } from \"@ant-design/x\";\nimport { ChatStateContext } from \"./context/ChatStateContext\";\nimport { ChatActionContext } from \"./context/ChatActionContext\";\nimport { SessionContext } from \"./context/SessionContext\";\nimport { ChatSenderStateContext } from \"./context/ChatSenderStateContext\";\nimport useADKChat from \"@/hooks/useADKChat\";\nimport { primaryBlue } from \"@/styles/common\";\nimport { cssVarStyle } from \"@/styles/tokens\";\nimport type {\n XAdkProviderProps,\n XAdkProviderHandle,\n XAdkProviderConfig,\n} from \"@/types/XAdkProvider\";\nimport type { ChatHookResult } from \"@/types/ChatHook\";\nimport {\n mergeChatStrategies,\n resolvePresetUploadRequest,\n} from \"@/presets/runtime\";\n\n/**\n * XAdkProvider Props (扩展版)\n *\n * 支持两种使用方式:\n * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat\n * 2. 自定义协议: 提供 chatData,使用自己的 Hook\n */\nexport interface XAdkProviderPropsExtended extends Omit<\n XAdkProviderProps,\n \"url\" | \"token\" | \"config\"\n> {\n /**\n * 选项 A: 使用标准协议 (内置 useADKChat)\n */\n url?: string;\n token: string;\n config?: XAdkProviderConfig;\n\n /**\n * 选项 B: 使用自定义 Hook 数据\n * 如果提供此参数,将忽略 url/token/config\n *\n * @example\n * // GraphQL 协议\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n *\n * @example\n * // WebSocket 协议\n * const chatData = useWebSocketChat({ url: 'ws://...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n */\n chatData?: ChatHookResult;\n\n children: React.ReactNode;\n}\n\n/**\n * XAdkProvider - AI 聊天 SDK 核心 Provider\n *\n * 采用 Compound Components 架构:\n * - 只负责数据和状态管理\n * - 不包含 UI 布局\n * - 通过 Context 向子组件提供数据\n * - 支持完全自定义的组件组合\n * - 支持协议解耦,可使用自定义 Hook\n *\n * @example\n * // 基础用法 - 标准协议\n * <XAdkProvider url=\"...\" token=\"...\" config={...}>\n * <XAdkProvider.Chatbot />\n * </XAdkProvider>\n *\n * @example\n * // 自定义协议 - GraphQL\n * function App() {\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * return (\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n * );\n * }\n *\n * @example\n * // 自定义布局\n * <XAdkProvider url=\"...\" token=\"...\">\n * <div style={{ display: 'flex' }}>\n * <XAdkProvider.Sidebar />\n * <div>\n * <XAdkProvider.Messages />\n * <XAdkProvider.Sender />\n * </div>\n * </div>\n * </XAdkProvider>\n */\nconst XAdkProviderComponent = forwardRef<\n XAdkProviderHandle,\n XAdkProviderPropsExtended\n>(\n (\n {\n url = window.location.origin,\n token,\n config,\n preset,\n strategies,\n chatData, // 自定义 Hook 数据\n providerId = \"defaultId\",\n onSuccess,\n onError,\n onMessage,\n onStream,\n children,\n },\n ref,\n ) => {\n const mergedStrategies = useMemo(\n () =>\n mergeChatStrategies(preset ?? config?.preset, {\n ...config?.strategies,\n ...strategies,\n }),\n [preset, strategies, config?.preset, config?.strategies],\n );\n\n // 内置 Hook 数据 (仅在没有提供 chatData 时调用)\n const internalData = useADKChat({\n url,\n token: token || \"\",\n config: config || {},\n strategies: mergedStrategies,\n onError,\n onSuccess,\n onMessage,\n onStream,\n // 仅在提供了 url 和 token 时才初始化\n enabled: !chatData && !!url && !!token,\n });\n\n // 使用外部数据或内部数据\n const data = chatData || internalData;\n\n // 解构数据\n const {\n appInfo,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n setCurrentSession,\n setMessages,\n likeMessage = async () => false,\n setStateDelta = () => {},\n } = data;\n\n const showFeedback = config?.showFeedback ?? true;\n const onFileClick = config?.onFileClick;\n const allowUpload = config?.allowUpload ?? false;\n const draggable = config?.draggable ?? true;\n const presetUploadRequest = useMemo(\n () =>\n resolvePresetUploadRequest(preset ?? config?.preset, {\n url,\n token,\n appNo: config?.appNo,\n }),\n [preset, config?.preset, url, token, config?.appNo],\n );\n const uploadRequest = config?.uploadRequest ?? presetUploadRequest;\n\n // 暴露 API 给 ref\n useImperativeHandle(\n ref,\n () => ({\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSession,\n setStateDelta,\n }),\n [\n appInfo,\n messages,\n sessionList,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setMessages,\n setCurrentSession,\n setStateDelta,\n ],\n );\n\n // 状态 Context Value - 使用 useMemo 避免不必要的 rerender\n const chatStateValue = useMemo(\n () => ({\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n showFeedback,\n onFileClick,\n uploadRequest,\n strategies: mergedStrategies,\n }),\n [\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n showFeedback,\n onFileClick,\n uploadRequest,\n mergedStrategies,\n ],\n );\n\n // 动作 Context Value - 函数引用稳定,不需要每次都创建新对象\n const chatActionValue = useMemo(\n () => ({\n chat: startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n }),\n [\n startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n ],\n );\n\n // 会话 Context Value\n const sessionValue = useMemo(\n () => ({\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n }),\n [\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n ],\n );\n\n // Sender 输入框受控状态\n const [senderValue, setSenderValue] = useState(\"\");\n\n // Sender 专用状态 — 不包含 messages,避免轮询更新消息时导致 Sender 重渲染和焦点丢失\n const senderStateValue = useMemo(\n () => ({\n loading,\n uploadRequest,\n allowUpload,\n draggable,\n senderValue,\n setSenderValue,\n }),\n [loading, uploadRequest, allowUpload, draggable, senderValue],\n );\n\n return (\n <ConfigProvider\n theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <ChatStateContext.Provider value={chatStateValue}>\n <ChatActionContext.Provider value={chatActionValue}>\n <SessionContext.Provider value={sessionValue}>\n <ChatSenderStateContext.Provider value={senderStateValue}>\n <div\n style={\n {\n ...cssVarStyle,\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n position: \"relative\",\n } as React.CSSProperties\n }\n >\n {children}\n </div>\n </ChatSenderStateContext.Provider>\n </SessionContext.Provider>\n </ChatActionContext.Provider>\n </ChatStateContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n },\n);\n\nXAdkProviderComponent.displayName = \"XAdkProvider\";\n\n// 导入 Compound Components\nimport Header from \"./compound/Header\";\nimport Sidebar from \"./compound/Sidebar\";\nimport Messages from \"./compound/Messages\";\nimport Sender from \"./compound/Sender\";\nimport Chatbot from \"./compound/Chatbot\";\nimport Welcome from \"./compound/Welcome\";\nimport DefaultLayout from \"./compound/DefaultLayout\";\n\n// 导出时会挂载 Compound Components\nconst XAdkProvider = XAdkProviderComponent as typeof XAdkProviderComponent & {\n Header: typeof Header;\n Sidebar: typeof Sidebar;\n Messages: typeof Messages;\n Sender: typeof Sender;\n Chatbot: typeof Chatbot;\n Welcome: typeof Welcome;\n DefaultLayout: typeof DefaultLayout;\n};\n\n// 挂载 Compound Components\nXAdkProvider.Header = Header;\nXAdkProvider.Sidebar = Sidebar;\nXAdkProvider.Messages = Messages;\nXAdkProvider.Sender = Sender;\nXAdkProvider.Chatbot = Chatbot;\nXAdkProvider.DefaultLayout = DefaultLayout;\nXAdkProvider.Welcome = Welcome;\n\nexport default XAdkProvider;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useImperativeHandle","useMemo","useState","ConfigProvider","XProvider","ChatStateContext","ChatActionContext","SessionContext","ChatSenderStateContext","useADKChat","primaryBlue","cssVarStyle","mergeChatStrategies","resolvePresetUploadRequest","XAdkProviderComponent","_ref","ref","_config$showFeedback","_config$showUserActio","_config$allowUpload","_config$draggable","_config$uploadRequest","_ref$url","url","window","location","origin","token","config","preset","strategies","chatData","_ref$providerId","providerId","onSuccess","onError","onMessage","onStream","children","mergedStrategies","_objectSpread","internalData","enabled","data","appInfo","startChat","stopChat","reChat","clearChat","suggestChat","confirmFnCall","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","prologue","suggestions","initialized","setCurrentSession","setMessages","_data$likeMessage","likeMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","stop","_data$setStateDelta","setStateDelta","showFeedback","showUserActions","onFileClick","allowUpload","draggable","presetUploadRequest","appNo","uploadRequest","getAppInfo","getMessages","getSessions","chatStateValue","chatActionValue","chat","sessionValue","_useState","_useState2","_slicedToArray","senderValue","setSenderValue","senderStateValue","_jsx","theme","colorPrimary","appTheme","Provider","value","style","display","height","width","position","displayName","Header","Sidebar","Messages","Sender","Chatbot","Welcome","DefaultLayout","jsx","XAdkProvider"],"sources":["../../../../src/components/XAdkProvider/index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\";\nimport { ConfigProvider } from \"antd\";\nimport { XProvider } from \"@ant-design/x\";\nimport { ChatStateContext } from \"./context/ChatStateContext\";\nimport { ChatActionContext } from \"./context/ChatActionContext\";\nimport { SessionContext } from \"./context/SessionContext\";\nimport { ChatSenderStateContext } from \"./context/ChatSenderStateContext\";\nimport useADKChat from \"@/hooks/useADKChat\";\nimport { primaryBlue } from \"@/styles/common\";\nimport { cssVarStyle } from \"@/styles/tokens\";\nimport type {\n XAdkProviderProps,\n XAdkProviderHandle,\n XAdkProviderConfig,\n} from \"@/types/XAdkProvider\";\nimport type { ChatHookResult } from \"@/types/ChatHook\";\nimport {\n mergeChatStrategies,\n resolvePresetUploadRequest,\n} from \"@/presets/runtime\";\n\n/**\n * XAdkProvider Props (扩展版)\n *\n * 支持两种使用方式:\n * 1. 标准协议: 提供 url/token/config,使用内置 useADKChat\n * 2. 自定义协议: 提供 chatData,使用自己的 Hook\n */\nexport interface XAdkProviderPropsExtended extends Omit<\n XAdkProviderProps,\n \"url\" | \"token\" | \"config\"\n> {\n /**\n * 选项 A: 使用标准协议 (内置 useADKChat)\n */\n url?: string;\n token: string;\n config?: XAdkProviderConfig;\n\n /**\n * 选项 B: 使用自定义 Hook 数据\n * 如果提供此参数,将忽略 url/token/config\n *\n * @example\n * // GraphQL 协议\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n *\n * @example\n * // WebSocket 协议\n * const chatData = useWebSocketChat({ url: 'ws://...' });\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n */\n chatData?: ChatHookResult;\n\n children: React.ReactNode;\n}\n\n/**\n * XAdkProvider - AI 聊天 SDK 核心 Provider\n *\n * 采用 Compound Components 架构:\n * - 只负责数据和状态管理\n * - 不包含 UI 布局\n * - 通过 Context 向子组件提供数据\n * - 支持完全自定义的组件组合\n * - 支持协议解耦,可使用自定义 Hook\n *\n * @example\n * // 基础用法 - 标准协议\n * <XAdkProvider url=\"...\" token=\"...\" config={...}>\n * <XAdkProvider.Chatbot />\n * </XAdkProvider>\n *\n * @example\n * // 自定义协议 - GraphQL\n * function App() {\n * const chatData = useMyGraphQLChat({ endpoint: '...' });\n * return (\n * <XAdkProvider chatData={chatData}>\n * <XAdkProvider.DefaultLayout />\n * </XAdkProvider>\n * );\n * }\n *\n * @example\n * // 自定义布局\n * <XAdkProvider url=\"...\" token=\"...\">\n * <div style={{ display: 'flex' }}>\n * <XAdkProvider.Sidebar />\n * <div>\n * <XAdkProvider.Messages />\n * <XAdkProvider.Sender />\n * </div>\n * </div>\n * </XAdkProvider>\n */\nconst XAdkProviderComponent = forwardRef<\n XAdkProviderHandle,\n XAdkProviderPropsExtended\n>(\n (\n {\n url = window.location.origin,\n token,\n config,\n preset,\n strategies,\n chatData, // 自定义 Hook 数据\n providerId = \"defaultId\",\n onSuccess,\n onError,\n onMessage,\n onStream,\n children,\n },\n ref,\n ) => {\n const mergedStrategies = useMemo(\n () =>\n mergeChatStrategies(preset ?? config?.preset, {\n ...config?.strategies,\n ...strategies,\n }),\n [preset, strategies, config?.preset, config?.strategies],\n );\n\n // 内置 Hook 数据 (仅在没有提供 chatData 时调用)\n const internalData = useADKChat({\n url,\n token: token || \"\",\n config: config || {},\n strategies: mergedStrategies,\n onError,\n onSuccess,\n onMessage,\n onStream,\n // 仅在提供了 url 和 token 时才初始化\n enabled: !chatData && !!url && !!token,\n });\n\n // 使用外部数据或内部数据\n const data = chatData || internalData;\n\n // 解构数据\n const {\n appInfo,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n prologue,\n suggestions,\n initialized,\n setCurrentSession,\n setMessages,\n likeMessage = async () => false,\n setStateDelta = () => {},\n } = data;\n\n const showFeedback = config?.showFeedback ?? true;\n const showUserActions = config?.showUserActions ?? true;\n const onFileClick = config?.onFileClick;\n const allowUpload = config?.allowUpload ?? false;\n const draggable = config?.draggable ?? true;\n const presetUploadRequest = useMemo(\n () =>\n resolvePresetUploadRequest(preset ?? config?.preset, {\n url,\n token,\n appNo: config?.appNo,\n }),\n [preset, config?.preset, url, token, config?.appNo],\n );\n const uploadRequest = config?.uploadRequest ?? presetUploadRequest;\n\n // 暴露 API 给 ref\n useImperativeHandle(\n ref,\n () => ({\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSession,\n setStateDelta,\n }),\n [\n appInfo,\n messages,\n sessionList,\n startChat,\n stopChat,\n reChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setMessages,\n setCurrentSession,\n setStateDelta,\n ],\n );\n\n // 状态 Context Value - 使用 useMemo 避免不必要的 rerender\n const chatStateValue = useMemo(\n () => ({\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n showFeedback,\n showUserActions,\n onFileClick,\n uploadRequest,\n strategies: mergedStrategies,\n }),\n [\n messages,\n loading,\n currentSessionId,\n prologue,\n suggestions,\n appInfo,\n initialized,\n url,\n token,\n showFeedback,\n showUserActions,\n onFileClick,\n uploadRequest,\n mergedStrategies,\n ],\n );\n\n // 动作 Context Value - 函数引用稳定,不需要每次都创建新对象\n const chatActionValue = useMemo(\n () => ({\n chat: startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n }),\n [\n startChat,\n stopChat,\n clearChat,\n reChat,\n suggestChat,\n confirmFnCall,\n setMessages,\n likeMessage,\n setStateDelta,\n ],\n );\n\n // 会话 Context Value\n const sessionValue = useMemo(\n () => ({\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n }),\n [\n sessionList,\n sessionPagination,\n deleteSession,\n updateSession,\n setCurrentSession,\n ],\n );\n\n // Sender 输入框受控状态\n const [senderValue, setSenderValue] = useState(\"\");\n\n // Sender 专用状态 — 不包含 messages,避免轮询更新消息时导致 Sender 重渲染和焦点丢失\n const senderStateValue = useMemo(\n () => ({\n loading,\n uploadRequest,\n allowUpload,\n draggable,\n senderValue,\n setSenderValue,\n }),\n [loading, uploadRequest, allowUpload, draggable, senderValue],\n );\n\n return (\n <ConfigProvider\n theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <ChatStateContext.Provider value={chatStateValue}>\n <ChatActionContext.Provider value={chatActionValue}>\n <SessionContext.Provider value={sessionValue}>\n <ChatSenderStateContext.Provider value={senderStateValue}>\n <div\n style={\n {\n ...cssVarStyle,\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n position: \"relative\",\n } as React.CSSProperties\n }\n >\n {children}\n </div>\n </ChatSenderStateContext.Provider>\n </SessionContext.Provider>\n </ChatActionContext.Provider>\n </ChatStateContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n },\n);\n\nXAdkProviderComponent.displayName = \"XAdkProvider\";\n\n// 导入 Compound Components\nimport Header from \"./compound/Header\";\nimport Sidebar from \"./compound/Sidebar\";\nimport Messages from \"./compound/Messages\";\nimport Sender from \"./compound/Sender\";\nimport Chatbot from \"./compound/Chatbot\";\nimport Welcome from \"./compound/Welcome\";\nimport DefaultLayout from \"./compound/DefaultLayout\";\n\n// 导出时会挂载 Compound Components\nconst XAdkProvider = XAdkProviderComponent as typeof XAdkProviderComponent & {\n Header: typeof Header;\n Sidebar: typeof Sidebar;\n Messages: typeof Messages;\n Sender: typeof Sender;\n Chatbot: typeof Chatbot;\n Welcome: typeof Welcome;\n DefaultLayout: typeof DefaultLayout;\n};\n\n// 挂载 Compound Components\nXAdkProvider.Header = Header;\nXAdkProvider.Sidebar = Sidebar;\nXAdkProvider.Messages = Messages;\nXAdkProvider.Sender = Sender;\nXAdkProvider.Chatbot = Chatbot;\nXAdkProvider.DefaultLayout = DefaultLayout;\nXAdkProvider.Welcome = Welcome;\n\nexport default XAdkProvider;\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IACVC,UAAU,EACVC,mBAAmB,EACnBC,OAAO,EACPC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,QAAQ,MAAM;AACrC,SAASC,SAAS,QAAQ,eAAe;AACzC,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,cAAc;AACvB,SAASC,sBAAsB;AAC/B,OAAOC,UAAU;AACjB,SAASC,WAAW;AACpB,SAASC,WAAW;AAOpB,SACEC,mBAAmB,EACnBC,0BAA0B;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA;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,IAAMC,qBAAqB,gBAAGf,UAAU,CAItC,UAAAgB,IAAA,EAeEC,GAAG,EACA;EAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,iBAAA,EAAAC,qBAAA;EAAA,IAAAC,QAAA,GAAAP,IAAA,CAdDQ,GAAG;IAAHA,GAAG,GAAAD,QAAA,cAAGE,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAAJ,QAAA;IAC5BK,KAAK,GAAAZ,IAAA,CAALY,KAAK;IACLC,MAAM,GAAAb,IAAA,CAANa,MAAM;IACNC,MAAM,GAAAd,IAAA,CAANc,MAAM;IACNC,UAAU,GAAAf,IAAA,CAAVe,UAAU;IACVC,QAAQ,GAAAhB,IAAA,CAARgB,QAAQ;IAAAC,eAAA,GAAAjB,IAAA,CACRkB,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,WAAW,GAAAA,eAAA;IACxBE,SAAS,GAAAnB,IAAA,CAATmB,SAAS;IACTC,OAAO,GAAApB,IAAA,CAAPoB,OAAO;IACPC,SAAS,GAAArB,IAAA,CAATqB,SAAS;IACTC,QAAQ,GAAAtB,IAAA,CAARsB,QAAQ;IACRC,QAAQ,GAAAvB,IAAA,CAARuB,QAAQ;EAIV,IAAMC,gBAAgB,GAAGtC,OAAO,CAC9B;IAAA,OACEW,mBAAmB,CAACiB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAID,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,MAAM,EAAAW,aAAA,CAAAA,aAAA,KACvCZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,UAAU,GAClBA,UAAU,CACd,CAAC;EAAA,GACJ,CAACD,MAAM,EAAEC,UAAU,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,MAAM,EAAED,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,UAAU,CACzD,CAAC;;EAED;EACA,IAAMW,YAAY,GAAGhC,UAAU,CAAC;IAC9Bc,GAAG,EAAHA,GAAG;IACHI,KAAK,EAAEA,KAAK,IAAI,EAAE;IAClBC,MAAM,EAAEA,MAAM,IAAI,CAAC,CAAC;IACpBE,UAAU,EAAES,gBAAgB;IAC5BJ,OAAO,EAAPA,OAAO;IACPD,SAAS,EAATA,SAAS;IACTE,SAAS,EAATA,SAAS;IACTC,QAAQ,EAARA,QAAQ;IACR;IACAK,OAAO,EAAE,CAACX,QAAQ,IAAI,CAAC,CAACR,GAAG,IAAI,CAAC,CAACI;EACnC,CAAC,CAAC;;EAEF;EACA,IAAMgB,IAAI,GAAGZ,QAAQ,IAAIU,YAAY;;EAErC;EACA,IACEG,OAAO,GAqBLD,IAAI,CArBNC,OAAO;IACPC,SAAS,GAoBPF,IAAI,CApBNE,SAAS;IACTC,QAAQ,GAmBNH,IAAI,CAnBNG,QAAQ;IACRC,MAAM,GAkBJJ,IAAI,CAlBNI,MAAM;IACNC,SAAS,GAiBPL,IAAI,CAjBNK,SAAS;IACTC,WAAW,GAgBTN,IAAI,CAhBNM,WAAW;IACXC,aAAa,GAeXP,IAAI,CAfNO,aAAa;IACbC,aAAa,GAcXR,IAAI,CAdNQ,aAAa;IACbC,aAAa,GAaXT,IAAI,CAbNS,aAAa;IACbC,gBAAgB,GAYdV,IAAI,CAZNU,gBAAgB;IAChBC,iBAAiB,GAWfX,IAAI,CAXNW,iBAAiB;IACjBC,WAAW,GAUTZ,IAAI,CAVNY,WAAW;IACXC,QAAQ,GASNb,IAAI,CATNa,QAAQ;IACRC,OAAO,GAQLd,IAAI,CARNc,OAAO;IACPC,QAAQ,GAONf,IAAI,CAPNe,QAAQ;IACRC,WAAW,GAMThB,IAAI,CANNgB,WAAW;IACXC,WAAW,GAKTjB,IAAI,CALNiB,WAAW;IACXC,iBAAiB,GAIflB,IAAI,CAJNkB,iBAAiB;IACjBC,WAAW,GAGTnB,IAAI,CAHNmB,WAAW;IAAAC,iBAAA,GAGTpB,IAAI,CAFNqB,WAAW;IAAXA,WAAW,GAAAD,iBAAA,2BAAAE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAAA;MAAA,OAAAF,mBAAA,GAAAG,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAY,KAAK;UAAA;UAAA;YAAA,OAAAH,QAAA,CAAAI,IAAA;QAAA;MAAA,GAAAP,OAAA;IAAA,MAAAL,iBAAA;IAAAa,mBAAA,GAE7BjC,IAAI,CADNkC,aAAa;IAAbA,aAAa,GAAAD,mBAAA,cAAG,YAAM,CAAC,CAAC,GAAAA,mBAAA;EAG1B,IAAME,YAAY,IAAA7D,oBAAA,GAAGW,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkD,YAAY,cAAA7D,oBAAA,cAAAA,oBAAA,GAAI,IAAI;EACjD,IAAM8D,eAAe,IAAA7D,qBAAA,GAAGU,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEmD,eAAe,cAAA7D,qBAAA,cAAAA,qBAAA,GAAI,IAAI;EACvD,IAAM8D,WAAW,GAAGpD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEoD,WAAW;EACvC,IAAMC,WAAW,IAAA9D,mBAAA,GAAGS,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqD,WAAW,cAAA9D,mBAAA,cAAAA,mBAAA,GAAI,KAAK;EAChD,IAAM+D,SAAS,IAAA9D,iBAAA,GAAGQ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEsD,SAAS,cAAA9D,iBAAA,cAAAA,iBAAA,GAAI,IAAI;EAC3C,IAAM+D,mBAAmB,GAAGlF,OAAO,CACjC;IAAA,OACEY,0BAA0B,CAACgB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAID,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,MAAM,EAAE;MACnDN,GAAG,EAAHA,GAAG;MACHI,KAAK,EAALA,KAAK;MACLyD,KAAK,EAAExD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEwD;IACjB,CAAC,CAAC;EAAA,GACJ,CAACvD,MAAM,EAAED,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,MAAM,EAAEN,GAAG,EAAEI,KAAK,EAAEC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEwD,KAAK,CACpD,CAAC;EACD,IAAMC,aAAa,IAAAhE,qBAAA,GAAGO,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEyD,aAAa,cAAAhE,qBAAA,cAAAA,qBAAA,GAAI8D,mBAAmB;;EAElE;EACAnF,mBAAmB,CACjBgB,GAAG,EACH;IAAA,OAAO;MACL6B,SAAS,EAATA,SAAS;MACTC,QAAQ,EAARA,QAAQ;MACRC,MAAM,EAANA,MAAM;MACNC,SAAS,EAATA,SAAS;MACTC,WAAW,EAAXA,WAAW;MACXE,aAAa,EAAbA,aAAa;MACbC,aAAa,EAAbA,aAAa;MACbkC,UAAU,EAAE,SAAAA,WAAA;QAAA,OAAM1C,OAAO;MAAA;MACzB2C,WAAW,EAAE,SAAAA,YAAA;QAAA,OAAM/B,QAAQ;MAAA;MAC3BgC,WAAW,EAAE,SAAAA,YAAA;QAAA,OAAMjC,WAAW;MAAA;MAC9BO,WAAW,EAAXA,WAAW;MACXD,iBAAiB,EAAjBA,iBAAiB;MACjBgB,aAAa,EAAbA;IACF,CAAC;EAAA,CAAC,EACF,CACEjC,OAAO,EACPY,QAAQ,EACRD,WAAW,EACXV,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,SAAS,EACTC,WAAW,EACXE,aAAa,EACbC,aAAa,EACbU,WAAW,EACXD,iBAAiB,EACjBgB,aAAa,CAEjB,CAAC;;EAED;EACA,IAAMY,cAAc,GAAGxF,OAAO,CAC5B;IAAA,OAAO;MACLuD,QAAQ,EAARA,QAAQ;MACRC,OAAO,EAAPA,OAAO;MACPJ,gBAAgB,EAAhBA,gBAAgB;MAChBK,QAAQ,EAARA,QAAQ;MACRC,WAAW,EAAXA,WAAW;MACXf,OAAO,EAAPA,OAAO;MACPgB,WAAW,EAAXA,WAAW;MACXrC,GAAG,EAAHA,GAAG;MACHI,KAAK,EAALA,KAAK;MACLmD,YAAY,EAAZA,YAAY;MACZC,eAAe,EAAfA,eAAe;MACfC,WAAW,EAAXA,WAAW;MACXK,aAAa,EAAbA,aAAa;MACbvD,UAAU,EAAES;IACd,CAAC;EAAA,CAAC,EACF,CACEiB,QAAQ,EACRC,OAAO,EACPJ,gBAAgB,EAChBK,QAAQ,EACRC,WAAW,EACXf,OAAO,EACPgB,WAAW,EACXrC,GAAG,EACHI,KAAK,EACLmD,YAAY,EACZC,eAAe,EACfC,WAAW,EACXK,aAAa,EACb9C,gBAAgB,CAEpB,CAAC;;EAED;EACA,IAAMmD,eAAe,GAAGzF,OAAO,CAC7B;IAAA,OAAO;MACL0F,IAAI,EAAE9C,SAAS;MACfC,QAAQ,EAARA,QAAQ;MACRE,SAAS,EAATA,SAAS;MACTD,MAAM,EAANA,MAAM;MACNE,WAAW,EAAXA,WAAW;MACXC,aAAa,EAAbA,aAAa;MACbY,WAAW,EAAXA,WAAW;MACXE,WAAW,EAAXA,WAAW;MACXa,aAAa,EAAbA;IACF,CAAC;EAAA,CAAC,EACF,CACEhC,SAAS,EACTC,QAAQ,EACRE,SAAS,EACTD,MAAM,EACNE,WAAW,EACXC,aAAa,EACbY,WAAW,EACXE,WAAW,EACXa,aAAa,CAEjB,CAAC;;EAED;EACA,IAAMe,YAAY,GAAG3F,OAAO,CAC1B;IAAA,OAAO;MACLsD,WAAW,EAAXA,WAAW;MACXD,iBAAiB,EAAjBA,iBAAiB;MACjBH,aAAa,EAAbA,aAAa;MACbC,aAAa,EAAbA,aAAa;MACbS,iBAAiB,EAAjBA;IACF,CAAC;EAAA,CAAC,EACF,CACEN,WAAW,EACXD,iBAAiB,EACjBH,aAAa,EACbC,aAAa,EACbS,iBAAiB,CAErB,CAAC;;EAED;EACA,IAAAgC,SAAA,GAAsC3F,QAAQ,CAAC,EAAE,CAAC;IAAA4F,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA3CG,WAAW,GAAAF,UAAA;IAAEG,cAAc,GAAAH,UAAA;;EAElC;EACA,IAAMI,gBAAgB,GAAGjG,OAAO,CAC9B;IAAA,OAAO;MACLwD,OAAO,EAAPA,OAAO;MACP4B,aAAa,EAAbA,aAAa;MACbJ,WAAW,EAAXA,WAAW;MACXC,SAAS,EAATA,SAAS;MACTc,WAAW,EAAXA,WAAW;MACXC,cAAc,EAAdA;IACF,CAAC;EAAA,CAAC,EACF,CAACxC,OAAO,EAAE4B,aAAa,EAAEJ,WAAW,EAAEC,SAAS,EAAEc,WAAW,CAC9D,CAAC;EAED,oBACEG,IAAA,CAAChG,cAAc;IACbiG,KAAK,EAAE;MACLzE,KAAK,EAAE;QACL0E,YAAY,EAAE,CAAAzD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0D,QAAQ,KAAI5F;MACrC;IACF,CAAE;IAAA4B,QAAA,eAEF6D,IAAA,CAAC/F,SAAS;MAAAkC,QAAA,eACR6D,IAAA,CAAC9F,gBAAgB,CAACkG,QAAQ;QAACC,KAAK,EAAEf,cAAe;QAAAnD,QAAA,eAC/C6D,IAAA,CAAC7F,iBAAiB,CAACiG,QAAQ;UAACC,KAAK,EAAEd,eAAgB;UAAApD,QAAA,eACjD6D,IAAA,CAAC5F,cAAc,CAACgG,QAAQ;YAACC,KAAK,EAAEZ,YAAa;YAAAtD,QAAA,eAC3C6D,IAAA,CAAC3F,sBAAsB,CAAC+F,QAAQ;cAACC,KAAK,EAAEN,gBAAiB;cAAA5D,QAAA,eACvD6D,IAAA;gBACEM,KAAK,EAAAjE,aAAA,CAAAA,aAAA,KAEE7B,WAAW;kBACd+F,OAAO,EAAE,MAAM;kBACfC,MAAM,EAAE,MAAM;kBACdC,KAAK,EAAE,MAAM;kBACbC,QAAQ,EAAE;gBAAU,EAEvB;gBAAAvE,QAAA,EAEAA;cAAQ,CACN;YAAC,CACyB;UAAC,CACX;QAAC,CACA;MAAC,CACJ;IAAC,CACnB;EAAC,CACE,CAAC;AAErB,CACF,CAAC;AAEDxB,qBAAqB,CAACgG,WAAW,GAAG,cAAc;;AAElD;AACA,OAAOC,MAAM;AACb,OAAOC,OAAO;AACd,OAAOC,QAAQ;AACf,OAAOC,MAAM;AACb,OAAOC,OAAO;AACd,OAAOC,OAAO;AACd,OAAOC,aAAa;;AAEpB;AAAA,SAAAC,GAAA,IAAAnB,IAAA;AACA,IAAMoB,YAAY,GAAGzG,qBAQpB;;AAED;AACAyG,YAAY,CAACR,MAAM,GAAGA,MAAM;AAC5BQ,YAAY,CAACP,OAAO,GAAGA,OAAO;AAC9BO,YAAY,CAACN,QAAQ,GAAGA,QAAQ;AAChCM,YAAY,CAACL,MAAM,GAAGA,MAAM;AAC5BK,YAAY,CAACJ,OAAO,GAAGA,OAAO;AAC9BI,YAAY,CAACF,aAAa,GAAGA,aAAa;AAC1CE,YAAY,CAACH,OAAO,GAAGA,OAAO;AAE9B,eAAeG,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Tag","CloseOutlined","useStyles","jsx","_jsx","InputTags","_ref","mentions","onRemove","styles","length","className","inputTags","children","map","mention","inputTag","closable","onClose","e","preventDefault","id","closeIcon","style","fontSize","color","icon","displayName","label"],"sources":["../../../../src/components/XAdkSender/InputTags.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tag } from \"antd\";\nimport { CloseOutlined } from \"@ant-design/icons\";\nimport type { MentionTag } from \"@/types\";\nimport { useStyles } from \"./styles\";\n\nexport interface InputTagsProps {\n mentions: MentionTag[];\n onRemove: (id: string) => void;\n}\n\n// 输入框上方展示\nconst InputTags: React.FC<InputTagsProps> = ({ mentions, onRemove }) => {\n const styles = useStyles();\n\n if (!mentions.length) return null;\n\n // 非 inlineTags 模式下,Mention 以独立区域展示;inlineTags 模式由 InlineTagInput 接管混排和删除。\n return (\n <div className={styles.inputTags}>\n {mentions.map((mention) => (\n <Tag\n key={mention.id}\n className={styles.inputTag}\n closable\n onClose={(e) => {\n e.preventDefault();\n onRemove(mention.id);\n }}\n closeIcon={<CloseOutlined style={{ fontSize: 10 }} />}\n color={mention.color}\n icon={mention.icon}\n >\n {mention.displayName || mention.label}\n </Tag>\n ))}\n </div>\n );\n};\n\nexport default InputTags;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,QAAQ,MAAM;AAC1B,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,SAASC,SAAS;AAAmB,SAAAC,GAAA,IAAAC,IAAA;AAOrC;AACA,IAAMC,SAAmC,GAAG,SAAtCA,SAAmCA,CAAAC,IAAA,EAA+B;EAAA,IAAzBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAC/D,IAAMC,MAAM,GAAGP,SAAS,CAAC,CAAC;EAE1B,IAAI,CAACK,QAAQ,CAACG,MAAM,EAAE,OAAO,IAAI;;EAEjC;EACA,oBACEN,IAAA;IAAKO,SAAS,EAAEF,MAAM,CAACG,SAAU;IAAAC,QAAA,EAC9BN,QAAQ,CAACO,GAAG,CAAC,UAACC,OAAO;MAAA,oBACpBX,IAAA,CAACJ,GAAG;QAEFW,SAAS,EAAEF,MAAM,CAACO,QAAS;QAC3BC,QAAQ;QACRC,OAAO,EAAE,SAAAA,QAACC,
|
|
1
|
+
{"version":3,"names":["React","Tag","CloseOutlined","useStyles","jsx","_jsx","InputTags","_ref","mentions","onRemove","styles","length","className","inputTags","children","map","mention","inputTag","closable","onClose","e","preventDefault","id","closeIcon","style","fontSize","color","icon","displayName","label"],"sources":["../../../../src/components/XAdkSender/InputTags.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tag } from \"antd\";\nimport { CloseOutlined } from \"@ant-design/icons\";\nimport type { MentionTag } from \"@/types\";\nimport { useStyles } from \"./styles\";\n\nexport interface InputTagsProps {\n mentions: MentionTag[];\n onRemove: (id: string) => void;\n}\n\n// 输入框上方展示\nconst InputTags: React.FC<InputTagsProps> = ({ mentions, onRemove }) => {\n const styles = useStyles();\n\n if (!mentions.length) return null;\n\n // 非 inlineTags 模式下,Mention 以独立区域展示;inlineTags 模式由 InlineTagInput 接管混排和删除。\n return (\n <div className={styles.inputTags}>\n {mentions.map((mention) => (\n <Tag\n key={mention.id}\n className={styles.inputTag}\n closable\n onClose={(e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n onRemove(mention.id);\n }}\n closeIcon={<CloseOutlined style={{ fontSize: 10 }} />}\n color={mention.color}\n icon={mention.icon}\n >\n {mention.displayName || mention.label}\n </Tag>\n ))}\n </div>\n );\n};\n\nexport default InputTags;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,QAAQ,MAAM;AAC1B,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,SAASC,SAAS;AAAmB,SAAAC,GAAA,IAAAC,IAAA;AAOrC;AACA,IAAMC,SAAmC,GAAG,SAAtCA,SAAmCA,CAAAC,IAAA,EAA+B;EAAA,IAAzBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAC/D,IAAMC,MAAM,GAAGP,SAAS,CAAC,CAAC;EAE1B,IAAI,CAACK,QAAQ,CAACG,MAAM,EAAE,OAAO,IAAI;;EAEjC;EACA,oBACEN,IAAA;IAAKO,SAAS,EAAEF,MAAM,CAACG,SAAU;IAAAC,QAAA,EAC9BN,QAAQ,CAACO,GAAG,CAAC,UAACC,OAAO;MAAA,oBACpBX,IAAA,CAACJ,GAAG;QAEFW,SAAS,EAAEF,MAAM,CAACO,QAAS;QAC3BC,QAAQ;QACRC,OAAO,EAAE,SAAAA,QAACC,CAAgC,EAAK;UAC7CA,CAAC,CAACC,cAAc,CAAC,CAAC;UAClBZ,QAAQ,CAACO,OAAO,CAACM,EAAE,CAAC;QACtB,CAAE;QACFC,SAAS,eAAElB,IAAA,CAACH,aAAa;UAACsB,KAAK,EAAE;YAAEC,QAAQ,EAAE;UAAG;QAAE,CAAE,CAAE;QACtDC,KAAK,EAAEV,OAAO,CAACU,KAAM;QACrBC,IAAI,EAAEX,OAAO,CAACW,IAAK;QAAAb,QAAA,EAElBE,OAAO,CAACY,WAAW,IAAIZ,OAAO,CAACa;MAAK,GAXhCb,OAAO,CAACM,EAYV,CAAC;IAAA,CACP;EAAC,CACC,CAAC;AAEV,CAAC;AAED,eAAehB,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import React, { useState, useEffect } from "react";
|
|
3
|
-
import {
|
|
2
|
+
import React, { useState, useEffect, useRef } from "react";
|
|
3
|
+
import { ThunderboltOutlined, PartitionOutlined, RightOutlined, DownOutlined } from "@ant-design/icons";
|
|
4
4
|
import MarkdownRender from "../XAdkChatbot/components/MarkdownRender";
|
|
5
5
|
import FunctionCallRender from "../XAdkChatbot/components/FunctionCallRender";
|
|
6
6
|
import { useStyles } from "./styles";
|
|
@@ -92,7 +92,7 @@ var TimelineToolItem = function TimelineToolItem(_ref3) {
|
|
|
92
92
|
children: toolName
|
|
93
93
|
}), isDone && /*#__PURE__*/_jsx("span", {
|
|
94
94
|
className: styles.toolStatusTag,
|
|
95
|
-
children: "\
|
|
95
|
+
children: "\u5DF2\u5B8C\u6210"
|
|
96
96
|
})]
|
|
97
97
|
});
|
|
98
98
|
return /*#__PURE__*/_jsxs(TimelineItem, {
|
|
@@ -117,58 +117,29 @@ var TimelineToolItem = function TimelineToolItem(_ref3) {
|
|
|
117
117
|
})]
|
|
118
118
|
});
|
|
119
119
|
};
|
|
120
|
-
var
|
|
121
|
-
var
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return /*#__PURE__*/_jsx(ClockCircleOutlined, {
|
|
144
|
-
style: {
|
|
145
|
-
color: "#8c8c8c"
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
var XAdkThoughtChain = function XAdkThoughtChain(_ref5) {
|
|
151
|
-
var _ref5$collapsible = _ref5.collapsible,
|
|
152
|
-
showCollapsibleHeader = _ref5$collapsible === void 0 ? false : _ref5$collapsible,
|
|
153
|
-
status = _ref5.status,
|
|
154
|
-
className = _ref5.className,
|
|
155
|
-
style = _ref5.style,
|
|
156
|
-
_ref5$defaultOpen = _ref5.defaultOpen,
|
|
157
|
-
defaultOpen = _ref5$defaultOpen === void 0 ? false : _ref5$defaultOpen,
|
|
158
|
-
_ref5$showFnCallDetai = _ref5.showFnCallDetail,
|
|
159
|
-
showFnCallDetail = _ref5$showFnCallDetai === void 0 ? false : _ref5$showFnCallDetai,
|
|
160
|
-
_ref5$title = _ref5.title,
|
|
161
|
-
title = _ref5$title === void 0 ? "思维链已完成" : _ref5$title,
|
|
162
|
-
_ref5$items = _ref5.items,
|
|
163
|
-
items = _ref5$items === void 0 ? [] : _ref5$items,
|
|
164
|
-
loading = _ref5.loading,
|
|
165
|
-
_ref5$blink = _ref5.blink,
|
|
166
|
-
blink = _ref5$blink === void 0 ? false : _ref5$blink,
|
|
167
|
-
onConfirm = _ref5.onConfirm,
|
|
168
|
-
renderFunctionCall = _ref5.renderFunctionCall,
|
|
169
|
-
_ref5$toolKindResolve = _ref5.toolKindResolver,
|
|
170
|
-
toolKindResolver = _ref5$toolKindResolve === void 0 ? defaultToolKindResolver : _ref5$toolKindResolve,
|
|
171
|
-
strategies = _ref5.strategies;
|
|
120
|
+
var XAdkThoughtChain = function XAdkThoughtChain(_ref4) {
|
|
121
|
+
var _ref4$collapsible = _ref4.collapsible,
|
|
122
|
+
showCollapsibleHeader = _ref4$collapsible === void 0 ? false : _ref4$collapsible,
|
|
123
|
+
status = _ref4.status,
|
|
124
|
+
className = _ref4.className,
|
|
125
|
+
style = _ref4.style,
|
|
126
|
+
_ref4$defaultOpen = _ref4.defaultOpen,
|
|
127
|
+
defaultOpen = _ref4$defaultOpen === void 0 ? false : _ref4$defaultOpen,
|
|
128
|
+
_ref4$showFnCallDetai = _ref4.showFnCallDetail,
|
|
129
|
+
showFnCallDetail = _ref4$showFnCallDetai === void 0 ? false : _ref4$showFnCallDetai,
|
|
130
|
+
_ref4$title = _ref4.title,
|
|
131
|
+
title = _ref4$title === void 0 ? "思维链已完成" : _ref4$title,
|
|
132
|
+
activeStep = _ref4.activeStep,
|
|
133
|
+
_ref4$items = _ref4.items,
|
|
134
|
+
items = _ref4$items === void 0 ? [] : _ref4$items,
|
|
135
|
+
loading = _ref4.loading,
|
|
136
|
+
_ref4$blink = _ref4.blink,
|
|
137
|
+
blink = _ref4$blink === void 0 ? false : _ref4$blink,
|
|
138
|
+
onConfirm = _ref4.onConfirm,
|
|
139
|
+
renderFunctionCall = _ref4.renderFunctionCall,
|
|
140
|
+
_ref4$toolKindResolve = _ref4.toolKindResolver,
|
|
141
|
+
toolKindResolver = _ref4$toolKindResolve === void 0 ? defaultToolKindResolver : _ref4$toolKindResolve,
|
|
142
|
+
strategies = _ref4.strategies;
|
|
172
143
|
var styles = useStyles();
|
|
173
144
|
|
|
174
145
|
// status 优先,loading 向后兼容
|
|
@@ -178,12 +149,12 @@ var XAdkThoughtChain = function XAdkThoughtChain(_ref5) {
|
|
|
178
149
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
179
150
|
isOpen = _useState4[0],
|
|
180
151
|
setIsOpen = _useState4[1];
|
|
152
|
+
var wasLoading = useRef(isLoading);
|
|
181
153
|
useEffect(function () {
|
|
182
|
-
if (isLoading)
|
|
183
|
-
|
|
184
|
-
});
|
|
154
|
+
if (wasLoading.current && !isLoading) setIsOpen(false);
|
|
155
|
+
wasLoading.current = isLoading;
|
|
185
156
|
}, [isLoading]);
|
|
186
|
-
var shouldBlink = blink && isLoading;
|
|
157
|
+
var shouldBlink = blink && isLoading && !showCollapsibleHeader;
|
|
187
158
|
var renderTimeline = function renderTimeline() {
|
|
188
159
|
return /*#__PURE__*/_jsx("div", {
|
|
189
160
|
className: styles.timeline,
|
|
@@ -217,30 +188,33 @@ var XAdkThoughtChain = function XAdkThoughtChain(_ref5) {
|
|
|
217
188
|
});
|
|
218
189
|
}
|
|
219
190
|
|
|
220
|
-
//
|
|
191
|
+
// 显示可折叠的执行过程入口
|
|
221
192
|
return /*#__PURE__*/_jsxs("div", {
|
|
222
|
-
className: "".concat(styles.thoughtChainBlock).concat(className ? " ".concat(className) : ""),
|
|
193
|
+
className: "".concat(styles.thoughtChainBlock, " ").concat(styles.groupedBlock).concat(className ? " ".concat(className) : ""),
|
|
223
194
|
style: style,
|
|
224
|
-
children: [/*#__PURE__*/
|
|
195
|
+
children: [/*#__PURE__*/_jsxs("button", {
|
|
196
|
+
type: "button",
|
|
225
197
|
className: styles.thoughtHeader,
|
|
198
|
+
"aria-expanded": isOpen,
|
|
226
199
|
onClick: function onClick() {
|
|
227
|
-
return setIsOpen(
|
|
200
|
+
return setIsOpen(function (open) {
|
|
201
|
+
return !open;
|
|
202
|
+
});
|
|
228
203
|
},
|
|
229
|
-
children: /*#__PURE__*/
|
|
230
|
-
className: styles.
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
})
|
|
204
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
205
|
+
className: "".concat(styles.caret, " ").concat(isOpen ? "open" : ""),
|
|
206
|
+
"aria-hidden": "true",
|
|
207
|
+
children: /*#__PURE__*/_jsx(RightOutlined, {})
|
|
208
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
209
|
+
className: styles.headerTitle,
|
|
210
|
+
children: isLoading ? "执行中" : title
|
|
211
|
+
}), isLoading && (activeStep === null || activeStep === void 0 ? void 0 : activeStep.trim()) && /*#__PURE__*/_jsx("span", {
|
|
212
|
+
className: styles.activeStep,
|
|
213
|
+
children: activeStep.trim()
|
|
214
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
215
|
+
className: styles.headerAction,
|
|
216
|
+
children: isOpen ? "收起执行过程" : "查看执行过程"
|
|
217
|
+
})]
|
|
244
218
|
}), isOpen && /*#__PURE__*/_jsx("div", {
|
|
245
219
|
className: styles.thinkingBody,
|
|
246
220
|
children: renderTimeline()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","CheckCircleFilled","CloseCircleFilled","ClockCircleOutlined","SyncOutlined","ThunderboltOutlined","PartitionOutlined","RightOutlined","DownOutlined","MarkdownRender","FunctionCallRender","useStyles","defaultToolKindResolver","cleanProcessText","jsx","_jsx","jsxs","_jsxs","TimelineItem","_ref","icon","title","children","_ref$collapsible","collapsible","_ref$defaultOpen","defaultOpen","blink","_useState","_useState2","_slicedToArray","isOpen","setIsOpen","styles","className","timelineItem","timelineLeft","timelineConnector","timelineRight","collapsibleHeader","onClick","undefined","arrowIcon","stepContent","TimelineTextItem","_ref2","item","timelineIcon","titleText","text","content","TimelineToolItem","_ref3","_msg$functionCall","_msg$functionCall2","_msg$functionCall3","_msg$functionResponse","_msg$functionResponse2","_renderFunctionCall","msg","onConfirm","showFnCallDetail","renderFunctionCall","toolKindResolver","strategies","fnName","functionCall","name","kind","needsConfirm","functionResponse","isDone","toolName","args","componentName","statusInfo","response","processData","output","titleNode","toolTitleGroup","toolStatusTag","timelineIconTool","showDetail","renderApproval","renderHandoff","StatusIcon","_ref4","status","spin","style","color","XAdkThoughtChain","_ref5","_ref5$collapsible","showCollapsibleHeader","_ref5$defaultOpen","_ref5$showFnCallDetai","_ref5$title","_ref5$items","items","loading","_ref5$blink","_ref5$toolKindResolve","effectiveStatus","isLoading","_useState3","_useState4","Promise","resolve","then","shouldBlink","renderTimeline","timeline","map","i","type","key","concat","thoughtChainBlock","thinkingBody","thoughtHeader","headerLeft","statusIcon","headerTitle","caret"],"sources":["../../../../src/components/XAdkThoughtChain/index.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport {\n CheckCircleFilled,\n CloseCircleFilled,\n ClockCircleOutlined,\n SyncOutlined,\n ThunderboltOutlined,\n PartitionOutlined,\n RightOutlined,\n DownOutlined,\n} from \"@ant-design/icons\";\nimport MarkdownRender from \"@/components/XAdkChatbot/components/MarkdownRender\";\nimport FunctionCallRender from \"@/components/XAdkChatbot/components/FunctionCallRender\";\nimport { useStyles } from \"./styles\";\nimport {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n ThoughtChainStatus,\n TimelineItemProps,\n FunctionCall,\n IMessage,\n RenderFunctionCall,\n ToolRenderKind,\n} from \"@/types\";\nimport { defaultToolKindResolver } from \"@/types/FunctionCallRender\";\nimport { cleanProcessText } from \"@/utils\";\n\nconst TimelineItem = ({\n icon,\n title,\n children,\n collapsible = true,\n defaultOpen = true,\n blink,\n}: TimelineItemProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const styles = useStyles();\n\n return (\n <div className={styles.timelineItem}>\n <div className={styles.timelineLeft}>\n {icon}\n <div className={styles.timelineConnector} />\n </div>\n <div className={styles.timelineRight}>\n <div\n className={styles.collapsibleHeader}\n onClick={() => (collapsible ? setIsOpen(!isOpen) : undefined)}\n >\n <div className={blink ? styles.blink : undefined}>{title}</div>\n {collapsible && (\n <span className={styles.arrowIcon}>\n {isOpen ? <DownOutlined /> : <RightOutlined />}\n </span>\n )}\n </div>\n\n {isOpen && <div className={styles.stepContent}>{children}</div>}\n </div>\n </div>\n );\n};\n\nconst TimelineTextItem: React.FC<{\n item: ThoughtChainItemType;\n blink?: boolean;\n}> = ({ item, blink }) => {\n return (\n <TimelineItem\n icon={\n <span className={useStyles().timelineIcon}>\n <PartitionOutlined />\n </span>\n }\n title={<span className={useStyles().titleText}>{item.title}</span>}\n blink={blink}\n >\n <MarkdownRender text={cleanProcessText(item.content)} />\n </TimelineItem>\n );\n};\n\nconst TimelineToolItem: React.FC<{\n msg: IMessage;\n collapsible?: boolean;\n showFnCallDetail: boolean;\n onConfirm?: (fnCall: FunctionCall, confirmed: boolean) => void;\n blink?: boolean;\n renderFunctionCall?: RenderFunctionCall;\n toolKindResolver: (name: string | undefined) => ToolRenderKind;\n strategies?: XAdkThoughtChainProps[\"strategies\"];\n}> = ({\n msg,\n collapsible,\n onConfirm,\n showFnCallDetail,\n blink,\n renderFunctionCall,\n toolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n const fnName = msg.functionCall?.name;\n const kind = toolKindResolver(fnName);\n const needsConfirm = msg.functionCall && !msg.functionResponse;\n const isDone = !!msg.functionResponse;\n\n const toolName =\n msg.functionCall?.args?.componentName ||\n msg.functionCall?.name ||\n \"组件执行\";\n\n const statusInfo =\n msg.functionResponse?.response?.processData ||\n msg.functionResponse?.response?.output;\n\n const titleNode = (\n <div className={styles.toolTitleGroup}>\n <span className={styles.toolName}>{toolName}</span>\n {isDone && <span className={styles.toolStatusTag}>执行成功</span>}\n </div>\n );\n\n return (\n <TimelineItem\n icon={\n <span className={styles.timelineIconTool}>\n <ThunderboltOutlined />\n </span>\n }\n title={titleNode}\n collapsible={collapsible}\n defaultOpen={needsConfirm}\n blink={blink}\n >\n {statusInfo && typeof statusInfo === \"string\" && (\n <div className={styles.statusInfo}>{statusInfo}</div>\n )}\n {renderFunctionCall?.(msg) ?? (\n <FunctionCallRender\n msg={msg}\n showDetail={showFnCallDetail}\n onConfirm={onConfirm}\n kind={kind}\n renderApproval={strategies?.renderApproval}\n renderHandoff={strategies?.renderHandoff}\n />\n )}\n </TimelineItem>\n );\n};\n\nconst StatusIcon: React.FC<{ status: ThoughtChainStatus }> = ({ status }) => {\n switch (status) {\n case \"loading\":\n return <SyncOutlined spin style={{ color: \"#1677ff\" }} />;\n case \"success\":\n return <CheckCircleFilled style={{ color: \"#52c41a\" }} />;\n case \"error\":\n return <CloseCircleFilled style={{ color: \"#ff4d4f\" }} />;\n case \"pending\":\n return <ClockCircleOutlined style={{ color: \"#8c8c8c\" }} />;\n }\n};\n\nconst XAdkThoughtChain: React.FC<XAdkThoughtChainProps> = ({\n collapsible: showCollapsibleHeader = false,\n status,\n className,\n style,\n defaultOpen = false,\n showFnCallDetail = false,\n title = \"思维链已完成\",\n items = [],\n loading,\n blink = false,\n onConfirm,\n renderFunctionCall,\n toolKindResolver = defaultToolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n\n // status 优先,loading 向后兼容\n const effectiveStatus: ThoughtChainStatus =\n status ?? (loading ? \"loading\" : \"success\");\n const isLoading = effectiveStatus === \"loading\";\n\n const [isOpen, setIsOpen] = useState(defaultOpen);\n useEffect(() => {\n if (isLoading) Promise.resolve().then(() => setIsOpen(true));\n }, [isLoading]);\n\n const shouldBlink = blink && isLoading;\n\n const renderTimeline = () => (\n <div className={styles.timeline}>\n {items.map((item, i) =>\n item.type === \"text\" ? (\n <TimelineTextItem\n key={item.key || i}\n item={item}\n blink={shouldBlink}\n />\n ) : (\n <TimelineToolItem\n key={`tool-${item.key || i}`}\n msg={item.msg!}\n collapsible={item.collapsible}\n showFnCallDetail={showFnCallDetail}\n onConfirm={onConfirm}\n blink={shouldBlink}\n renderFunctionCall={renderFunctionCall}\n toolKindResolver={toolKindResolver}\n strategies={strategies}\n />\n ),\n )}\n </div>\n );\n\n // 不显示外层 header,直接渲染 timeline\n if (!showCollapsibleHeader) {\n return (\n <div\n className={`${styles.thoughtChainBlock}${className ? ` ${className}` : \"\"}`}\n style={style}\n >\n <div className={styles.thinkingBody}>{renderTimeline()}</div>\n </div>\n );\n }\n\n // 显示可折叠 header\n return (\n <div\n className={`${styles.thoughtChainBlock}${className ? ` ${className}` : \"\"}`}\n style={style}\n >\n <div className={styles.thoughtHeader} onClick={() => setIsOpen(!isOpen)}>\n <div className={styles.headerLeft}>\n <div className={styles.statusIcon}>\n <StatusIcon status={effectiveStatus} />\n </div>\n <span\n className={`${styles.headerTitle}${shouldBlink ? ` ${styles.blink}` : \"\"}`}\n >\n {isLoading ? \"深度思考与执行中...\" : title}\n </span>\n <div className={`${styles.caret} ${isOpen ? \"open\" : \"\"}`}>\n <RightOutlined />\n </div>\n </div>\n </div>\n {isOpen && (\n <div className={styles.thinkingBody}>{renderTimeline()}</div>\n )}\n </div>\n );\n};\n\nexport default XAdkThoughtChain;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,SACEC,iBAAiB,EACjBC,iBAAiB,EACjBC,mBAAmB,EACnBC,YAAY,EACZC,mBAAmB,EACnBC,iBAAiB,EACjBC,aAAa,EACbC,YAAY,QACP,mBAAmB;AAC1B,OAAOC,cAAc;AACrB,OAAOC,kBAAkB;AACzB,SAASC,SAAS;AAWlB,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AAAkB,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3C,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAOO;EAAA,IANvBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAAC,gBAAA,GAAAJ,IAAA,CACRK,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,IAAI,GAAAA,gBAAA;IAAAE,gBAAA,GAAAN,IAAA,CAClBO,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,IAAI,GAAAA,gBAAA;IAClBE,KAAK,GAAAR,IAAA,CAALQ,KAAK;EAEL,IAAAC,SAAA,GAA4B7B,QAAQ,CAAC2B,WAAW,CAAC;IAAAG,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA1CG,MAAM,GAAAF,UAAA;IAAEG,SAAS,GAAAH,UAAA;EACxB,IAAMI,MAAM,GAAGtB,SAAS,CAAC,CAAC;EAE1B,oBACEM,KAAA;IAAKiB,SAAS,EAAED,MAAM,CAACE,YAAa;IAAAb,QAAA,gBAClCL,KAAA;MAAKiB,SAAS,EAAED,MAAM,CAACG,YAAa;MAAAd,QAAA,GACjCF,IAAI,eACLL,IAAA;QAAKmB,SAAS,EAAED,MAAM,CAACI;MAAkB,CAAE,CAAC;IAAA,CACzC,CAAC,eACNpB,KAAA;MAAKiB,SAAS,EAAED,MAAM,CAACK,aAAc;MAAAhB,QAAA,gBACnCL,KAAA;QACEiB,SAAS,EAAED,MAAM,CAACM,iBAAkB;QACpCC,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAOhB,WAAW,GAAGQ,SAAS,CAAC,CAACD,MAAM,CAAC,GAAGU,SAAS;QAAA,CAAE;QAAAnB,QAAA,gBAE9DP,IAAA;UAAKmB,SAAS,EAAEP,KAAK,GAAGM,MAAM,CAACN,KAAK,GAAGc,SAAU;UAAAnB,QAAA,EAAED;QAAK,CAAM,CAAC,EAC9DG,WAAW,iBACVT,IAAA;UAAMmB,SAAS,EAAED,MAAM,CAACS,SAAU;UAAApB,QAAA,EAC/BS,MAAM,gBAAGhB,IAAA,CAACP,YAAY,IAAE,CAAC,gBAAGO,IAAA,CAACR,aAAa,IAAE;QAAC,CAC1C,CACP;MAAA,CACE,CAAC,EAELwB,MAAM,iBAAIhB,IAAA;QAAKmB,SAAS,EAAED,MAAM,CAACU,WAAY;QAAArB,QAAA,EAAEA;MAAQ,CAAM,CAAC;IAAA,CAC5D,CAAC;EAAA,CACH,CAAC;AAEV,CAAC;AAED,IAAMsB,gBAGJ,GAAG,SAHCA,gBAGJA,CAAAC,KAAA,EAAwB;EAAA,IAAlBC,IAAI,GAAAD,KAAA,CAAJC,IAAI;IAAEnB,KAAK,GAAAkB,KAAA,CAALlB,KAAK;EACjB,oBACEZ,IAAA,CAACG,YAAY;IACXE,IAAI,eACFL,IAAA;MAAMmB,SAAS,EAAEvB,SAAS,CAAC,CAAC,CAACoC,YAAa;MAAAzB,QAAA,eACxCP,IAAA,CAACT,iBAAiB,IAAE;IAAC,CACjB,CACP;IACDe,KAAK,eAAEN,IAAA;MAAMmB,SAAS,EAAEvB,SAAS,CAAC,CAAC,CAACqC,SAAU;MAAA1B,QAAA,EAAEwB,IAAI,CAACzB;IAAK,CAAO,CAAE;IACnEM,KAAK,EAAEA,KAAM;IAAAL,QAAA,eAEbP,IAAA,CAACN,cAAc;MAACwC,IAAI,EAAEpC,gBAAgB,CAACiC,IAAI,CAACI,OAAO;IAAE,CAAE;EAAC,CAC5C,CAAC;AAEnB,CAAC;AAED,IAAMC,gBASJ,GAAG,SATCA,gBASJA,CAAAC,KAAA,EASI;EAAA,IAAAC,iBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,mBAAA;EAAA,IARJC,GAAG,GAAAP,KAAA,CAAHO,GAAG;IACHnC,WAAW,GAAA4B,KAAA,CAAX5B,WAAW;IACXoC,SAAS,GAAAR,KAAA,CAATQ,SAAS;IACTC,gBAAgB,GAAAT,KAAA,CAAhBS,gBAAgB;IAChBlC,KAAK,GAAAyB,KAAA,CAALzB,KAAK;IACLmC,kBAAkB,GAAAV,KAAA,CAAlBU,kBAAkB;IAClBC,gBAAgB,GAAAX,KAAA,CAAhBW,gBAAgB;IAChBC,UAAU,GAAAZ,KAAA,CAAVY,UAAU;EAEV,IAAM/B,MAAM,GAAGtB,SAAS,CAAC,CAAC;EAC1B,IAAMsD,MAAM,IAAAZ,iBAAA,GAAGM,GAAG,CAACO,YAAY,cAAAb,iBAAA,uBAAhBA,iBAAA,CAAkBc,IAAI;EACrC,IAAMC,IAAI,GAAGL,gBAAgB,CAACE,MAAM,CAAC;EACrC,IAAMI,YAAY,GAAGV,GAAG,CAACO,YAAY,IAAI,CAACP,GAAG,CAACW,gBAAgB;EAC9D,IAAMC,MAAM,GAAG,CAAC,CAACZ,GAAG,CAACW,gBAAgB;EAErC,IAAME,QAAQ,GACZ,EAAAlB,kBAAA,GAAAK,GAAG,CAACO,YAAY,cAAAZ,kBAAA,gBAAAA,kBAAA,GAAhBA,kBAAA,CAAkBmB,IAAI,cAAAnB,kBAAA,uBAAtBA,kBAAA,CAAwBoB,aAAa,OAAAnB,kBAAA,GACrCI,GAAG,CAACO,YAAY,cAAAX,kBAAA,uBAAhBA,kBAAA,CAAkBY,IAAI,KACtB,MAAM;EAER,IAAMQ,UAAU,GACd,EAAAnB,qBAAA,GAAAG,GAAG,CAACW,gBAAgB,cAAAd,qBAAA,gBAAAA,qBAAA,GAApBA,qBAAA,CAAsBoB,QAAQ,cAAApB,qBAAA,uBAA9BA,qBAAA,CAAgCqB,WAAW,OAAApB,sBAAA,GAC3CE,GAAG,CAACW,gBAAgB,cAAAb,sBAAA,gBAAAA,sBAAA,GAApBA,sBAAA,CAAsBmB,QAAQ,cAAAnB,sBAAA,uBAA9BA,sBAAA,CAAgCqB,MAAM;EAExC,IAAMC,SAAS,gBACb9D,KAAA;IAAKiB,SAAS,EAAED,MAAM,CAAC+C,cAAe;IAAA1D,QAAA,gBACpCP,IAAA;MAAMmB,SAAS,EAAED,MAAM,CAACuC,QAAS;MAAAlD,QAAA,EAAEkD;IAAQ,CAAO,CAAC,EAClDD,MAAM,iBAAIxD,IAAA;MAAMmB,SAAS,EAAED,MAAM,CAACgD,aAAc;MAAA3D,QAAA,EAAC;IAAI,CAAM,CAAC;EAAA,CAC1D,CACN;EAED,oBACEL,KAAA,CAACC,YAAY;IACXE,IAAI,eACFL,IAAA;MAAMmB,SAAS,EAAED,MAAM,CAACiD,gBAAiB;MAAA5D,QAAA,eACvCP,IAAA,CAACV,mBAAmB,IAAE;IAAC,CACnB,CACP;IACDgB,KAAK,EAAE0D,SAAU;IACjBvD,WAAW,EAAEA,WAAY;IACzBE,WAAW,EAAE2C,YAAa;IAC1B1C,KAAK,EAAEA,KAAM;IAAAL,QAAA,GAEZqD,UAAU,IAAI,OAAOA,UAAU,KAAK,QAAQ,iBAC3C5D,IAAA;MAAKmB,SAAS,EAAED,MAAM,CAAC0C,UAAW;MAAArD,QAAA,EAAEqD;IAAU,CAAM,CACrD,GAAAjB,mBAAA,GACAI,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAGH,GAAG,CAAC,cAAAD,mBAAA,cAAAA,mBAAA,gBACxB3C,IAAA,CAACL,kBAAkB;MACjBiD,GAAG,EAAEA,GAAI;MACTwB,UAAU,EAAEtB,gBAAiB;MAC7BD,SAAS,EAAEA,SAAU;MACrBQ,IAAI,EAAEA,IAAK;MACXgB,cAAc,EAAEpB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEoB,cAAe;MAC3CC,aAAa,EAAErB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqB;IAAc,CAC1C,CAAC;EAAA,CAEQ,CAAC;AAEnB,CAAC;AAED,IAAMC,UAAoD,GAAG,SAAvDA,UAAoDA,CAAAC,KAAA,EAAmB;EAAA,IAAbC,MAAM,GAAAD,KAAA,CAANC,MAAM;EACpE,QAAQA,MAAM;IACZ,KAAK,SAAS;MACZ,oBAAOzE,IAAA,CAACX,YAAY;QAACqF,IAAI;QAACC,KAAK,EAAE;UAAEC,KAAK,EAAE;QAAU;MAAE,CAAE,CAAC;IAC3D,KAAK,SAAS;MACZ,oBAAO5E,IAAA,CAACd,iBAAiB;QAACyF,KAAK,EAAE;UAAEC,KAAK,EAAE;QAAU;MAAE,CAAE,CAAC;IAC3D,KAAK,OAAO;MACV,oBAAO5E,IAAA,CAACb,iBAAiB;QAACwF,KAAK,EAAE;UAAEC,KAAK,EAAE;QAAU;MAAE,CAAE,CAAC;IAC3D,KAAK,SAAS;MACZ,oBAAO5E,IAAA,CAACZ,mBAAmB;QAACuF,KAAK,EAAE;UAAEC,KAAK,EAAE;QAAU;MAAE,CAAE,CAAC;EAC/D;AACF,CAAC;AAED,IAAMC,gBAAiD,GAAG,SAApDA,gBAAiDA,CAAAC,KAAA,EAejD;EAAA,IAAAC,iBAAA,GAAAD,KAAA,CAdJrE,WAAW;IAAEuE,qBAAqB,GAAAD,iBAAA,cAAG,KAAK,GAAAA,iBAAA;IAC1CN,MAAM,GAAAK,KAAA,CAANL,MAAM;IACNtD,SAAS,GAAA2D,KAAA,CAAT3D,SAAS;IACTwD,KAAK,GAAAG,KAAA,CAALH,KAAK;IAAAM,iBAAA,GAAAH,KAAA,CACLnE,WAAW;IAAXA,WAAW,GAAAsE,iBAAA,cAAG,KAAK,GAAAA,iBAAA;IAAAC,qBAAA,GAAAJ,KAAA,CACnBhC,gBAAgB;IAAhBA,gBAAgB,GAAAoC,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAAC,WAAA,GAAAL,KAAA,CACxBxE,KAAK;IAALA,KAAK,GAAA6E,WAAA,cAAG,QAAQ,GAAAA,WAAA;IAAAC,WAAA,GAAAN,KAAA,CAChBO,KAAK;IAALA,KAAK,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA;IACVE,OAAO,GAAAR,KAAA,CAAPQ,OAAO;IAAAC,WAAA,GAAAT,KAAA,CACPlE,KAAK;IAALA,KAAK,GAAA2E,WAAA,cAAG,KAAK,GAAAA,WAAA;IACb1C,SAAS,GAAAiC,KAAA,CAATjC,SAAS;IACTE,kBAAkB,GAAA+B,KAAA,CAAlB/B,kBAAkB;IAAAyC,qBAAA,GAAAV,KAAA,CAClB9B,gBAAgB;IAAhBA,gBAAgB,GAAAwC,qBAAA,cAAG3F,uBAAuB,GAAA2F,qBAAA;IAC1CvC,UAAU,GAAA6B,KAAA,CAAV7B,UAAU;EAEV,IAAM/B,MAAM,GAAGtB,SAAS,CAAC,CAAC;;EAE1B;EACA,IAAM6F,eAAmC,GACvChB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAKa,OAAO,GAAG,SAAS,GAAG,SAAU;EAC7C,IAAMI,SAAS,GAAGD,eAAe,KAAK,SAAS;EAE/C,IAAAE,UAAA,GAA4B3G,QAAQ,CAAC2B,WAAW,CAAC;IAAAiF,UAAA,GAAA7E,cAAA,CAAA4E,UAAA;IAA1C3E,MAAM,GAAA4E,UAAA;IAAE3E,SAAS,GAAA2E,UAAA;EACxB3G,SAAS,CAAC,YAAM;IACd,IAAIyG,SAAS,EAAEG,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC;MAAA,OAAM9E,SAAS,CAAC,IAAI,CAAC;IAAA,EAAC;EAC9D,CAAC,EAAE,CAACyE,SAAS,CAAC,CAAC;EAEf,IAAMM,WAAW,GAAGpF,KAAK,IAAI8E,SAAS;EAEtC,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAAA;IAAA,oBAClBjG,IAAA;MAAKmB,SAAS,EAAED,MAAM,CAACgF,QAAS;MAAA3F,QAAA,EAC7B8E,KAAK,CAACc,GAAG,CAAC,UAACpE,IAAI,EAAEqE,CAAC;QAAA,OACjBrE,IAAI,CAACsE,IAAI,KAAK,MAAM,gBAClBrG,IAAA,CAAC6B,gBAAgB;UAEfE,IAAI,EAAEA,IAAK;UACXnB,KAAK,EAAEoF;QAAY,GAFdjE,IAAI,CAACuE,GAAG,IAAIF,CAGlB,CAAC,gBAEFpG,IAAA,CAACoC,gBAAgB;UAEfQ,GAAG,EAAEb,IAAI,CAACa,GAAK;UACfnC,WAAW,EAAEsB,IAAI,CAACtB,WAAY;UAC9BqC,gBAAgB,EAAEA,gBAAiB;UACnCD,SAAS,EAAEA,SAAU;UACrBjC,KAAK,EAAEoF,WAAY;UACnBjD,kBAAkB,EAAEA,kBAAmB;UACvCC,gBAAgB,EAAEA,gBAAiB;UACnCC,UAAU,EAAEA;QAAW,WAAAsD,MAAA,CARVxE,IAAI,CAACuE,GAAG,IAAIF,CAAC,CAS3B,CACF;MAAA,CACH;IAAC,CACE,CAAC;EAAA,CACP;;EAED;EACA,IAAI,CAACpB,qBAAqB,EAAE;IAC1B,oBACEhF,IAAA;MACEmB,SAAS,KAAAoF,MAAA,CAAKrF,MAAM,CAACsF,iBAAiB,EAAAD,MAAA,CAAGpF,SAAS,OAAAoF,MAAA,CAAOpF,SAAS,IAAK,EAAE,CAAG;MAC5EwD,KAAK,EAAEA,KAAM;MAAApE,QAAA,eAEbP,IAAA;QAAKmB,SAAS,EAAED,MAAM,CAACuF,YAAa;QAAAlG,QAAA,EAAE0F,cAAc,CAAC;MAAC,CAAM;IAAC,CAC1D,CAAC;EAEV;;EAEA;EACA,oBACE/F,KAAA;IACEiB,SAAS,KAAAoF,MAAA,CAAKrF,MAAM,CAACsF,iBAAiB,EAAAD,MAAA,CAAGpF,SAAS,OAAAoF,MAAA,CAAOpF,SAAS,IAAK,EAAE,CAAG;IAC5EwD,KAAK,EAAEA,KAAM;IAAApE,QAAA,gBAEbP,IAAA;MAAKmB,SAAS,EAAED,MAAM,CAACwF,aAAc;MAACjF,OAAO,EAAE,SAAAA,QAAA;QAAA,OAAMR,SAAS,CAAC,CAACD,MAAM,CAAC;MAAA,CAAC;MAAAT,QAAA,eACtEL,KAAA;QAAKiB,SAAS,EAAED,MAAM,CAACyF,UAAW;QAAApG,QAAA,gBAChCP,IAAA;UAAKmB,SAAS,EAAED,MAAM,CAAC0F,UAAW;UAAArG,QAAA,eAChCP,IAAA,CAACuE,UAAU;YAACE,MAAM,EAAEgB;UAAgB,CAAE;QAAC,CACpC,CAAC,eACNzF,IAAA;UACEmB,SAAS,KAAAoF,MAAA,CAAKrF,MAAM,CAAC2F,WAAW,EAAAN,MAAA,CAAGP,WAAW,OAAAO,MAAA,CAAOrF,MAAM,CAACN,KAAK,IAAK,EAAE,CAAG;UAAAL,QAAA,EAE1EmF,SAAS,GAAG,aAAa,GAAGpF;QAAK,CAC9B,CAAC,eACPN,IAAA;UAAKmB,SAAS,KAAAoF,MAAA,CAAKrF,MAAM,CAAC4F,KAAK,OAAAP,MAAA,CAAIvF,MAAM,GAAG,MAAM,GAAG,EAAE,CAAG;UAAAT,QAAA,eACxDP,IAAA,CAACR,aAAa,IAAE;QAAC,CACd,CAAC;MAAA,CACH;IAAC,CACH,CAAC,EACLwB,MAAM,iBACLhB,IAAA;MAAKmB,SAAS,EAAED,MAAM,CAACuF,YAAa;MAAAlG,QAAA,EAAE0F,cAAc,CAAC;IAAC,CAAM,CAC7D;EAAA,CACE,CAAC;AAEV,CAAC;AAED,eAAepB,gBAAgB"}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useRef","ThunderboltOutlined","PartitionOutlined","RightOutlined","DownOutlined","MarkdownRender","FunctionCallRender","useStyles","defaultToolKindResolver","cleanProcessText","jsx","_jsx","jsxs","_jsxs","TimelineItem","_ref","icon","title","children","_ref$collapsible","collapsible","_ref$defaultOpen","defaultOpen","blink","_useState","_useState2","_slicedToArray","isOpen","setIsOpen","styles","className","timelineItem","timelineLeft","timelineConnector","timelineRight","collapsibleHeader","onClick","undefined","arrowIcon","stepContent","TimelineTextItem","_ref2","item","timelineIcon","titleText","text","content","TimelineToolItem","_ref3","_msg$functionCall","_msg$functionCall2","_msg$functionCall3","_msg$functionResponse","_msg$functionResponse2","_renderFunctionCall","msg","onConfirm","showFnCallDetail","renderFunctionCall","toolKindResolver","strategies","fnName","functionCall","name","kind","needsConfirm","functionResponse","isDone","toolName","args","componentName","statusInfo","response","processData","output","titleNode","toolTitleGroup","toolStatusTag","timelineIconTool","showDetail","renderApproval","renderHandoff","XAdkThoughtChain","_ref4","_ref4$collapsible","showCollapsibleHeader","status","style","_ref4$defaultOpen","_ref4$showFnCallDetai","_ref4$title","activeStep","_ref4$items","items","loading","_ref4$blink","_ref4$toolKindResolve","effectiveStatus","isLoading","_useState3","_useState4","wasLoading","current","shouldBlink","renderTimeline","timeline","map","i","type","key","concat","thoughtChainBlock","thinkingBody","groupedBlock","thoughtHeader","open","caret","headerTitle","trim","headerAction"],"sources":["../../../../src/components/XAdkThoughtChain/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from \"react\";\nimport {\n ThunderboltOutlined,\n PartitionOutlined,\n RightOutlined,\n DownOutlined,\n} from \"@ant-design/icons\";\nimport MarkdownRender from \"@/components/XAdkChatbot/components/MarkdownRender\";\nimport FunctionCallRender from \"@/components/XAdkChatbot/components/FunctionCallRender\";\nimport { useStyles } from \"./styles\";\nimport {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n TimelineItemProps,\n FunctionCall,\n IMessage,\n RenderFunctionCall,\n ToolRenderKind,\n} from \"@/types\";\nimport { defaultToolKindResolver } from \"@/types/FunctionCallRender\";\nimport { cleanProcessText } from \"@/utils\";\n\nconst TimelineItem = ({\n icon,\n title,\n children,\n collapsible = true,\n defaultOpen = true,\n blink,\n}: TimelineItemProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const styles = useStyles();\n\n return (\n <div className={styles.timelineItem}>\n <div className={styles.timelineLeft}>\n {icon}\n <div className={styles.timelineConnector} />\n </div>\n <div className={styles.timelineRight}>\n <div\n className={styles.collapsibleHeader}\n onClick={() => (collapsible ? setIsOpen(!isOpen) : undefined)}\n >\n <div className={blink ? styles.blink : undefined}>{title}</div>\n {collapsible && (\n <span className={styles.arrowIcon}>\n {isOpen ? <DownOutlined /> : <RightOutlined />}\n </span>\n )}\n </div>\n\n {isOpen && <div className={styles.stepContent}>{children}</div>}\n </div>\n </div>\n );\n};\n\nconst TimelineTextItem: React.FC<{\n item: ThoughtChainItemType;\n blink?: boolean;\n}> = ({ item, blink }) => {\n return (\n <TimelineItem\n icon={\n <span className={useStyles().timelineIcon}>\n <PartitionOutlined />\n </span>\n }\n title={<span className={useStyles().titleText}>{item.title}</span>}\n blink={blink}\n >\n <MarkdownRender text={cleanProcessText(item.content)} />\n </TimelineItem>\n );\n};\n\nconst TimelineToolItem: React.FC<{\n msg: IMessage;\n collapsible?: boolean;\n showFnCallDetail: boolean;\n onConfirm?: (fnCall: FunctionCall, confirmed: boolean) => void;\n blink?: boolean;\n renderFunctionCall?: RenderFunctionCall;\n toolKindResolver: (name: string | undefined) => ToolRenderKind;\n strategies?: XAdkThoughtChainProps[\"strategies\"];\n}> = ({\n msg,\n collapsible,\n onConfirm,\n showFnCallDetail,\n blink,\n renderFunctionCall,\n toolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n const fnName = msg.functionCall?.name;\n const kind = toolKindResolver(fnName);\n const needsConfirm = msg.functionCall && !msg.functionResponse;\n const isDone = !!msg.functionResponse;\n\n const toolName =\n msg.functionCall?.args?.componentName ||\n msg.functionCall?.name ||\n \"组件执行\";\n\n const statusInfo =\n msg.functionResponse?.response?.processData ||\n msg.functionResponse?.response?.output;\n\n const titleNode = (\n <div className={styles.toolTitleGroup}>\n <span className={styles.toolName}>{toolName}</span>\n {isDone && <span className={styles.toolStatusTag}>已完成</span>}\n </div>\n );\n\n return (\n <TimelineItem\n icon={\n <span className={styles.timelineIconTool}>\n <ThunderboltOutlined />\n </span>\n }\n title={titleNode}\n collapsible={collapsible}\n defaultOpen={needsConfirm}\n blink={blink}\n >\n {statusInfo && typeof statusInfo === \"string\" && (\n <div className={styles.statusInfo}>{statusInfo}</div>\n )}\n {renderFunctionCall?.(msg) ?? (\n <FunctionCallRender\n msg={msg}\n showDetail={showFnCallDetail}\n onConfirm={onConfirm}\n kind={kind}\n renderApproval={strategies?.renderApproval}\n renderHandoff={strategies?.renderHandoff}\n />\n )}\n </TimelineItem>\n );\n};\n\nconst XAdkThoughtChain: React.FC<XAdkThoughtChainProps> = ({\n collapsible: showCollapsibleHeader = false,\n status,\n className,\n style,\n defaultOpen = false,\n showFnCallDetail = false,\n title = \"思维链已完成\",\n activeStep,\n items = [],\n loading,\n blink = false,\n onConfirm,\n renderFunctionCall,\n toolKindResolver = defaultToolKindResolver,\n strategies,\n}) => {\n const styles = useStyles();\n\n // status 优先,loading 向后兼容\n const effectiveStatus = status ?? (loading ? \"loading\" : \"success\");\n const isLoading = effectiveStatus === \"loading\";\n\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const wasLoading = useRef(isLoading);\n useEffect(() => {\n if (wasLoading.current && !isLoading) setIsOpen(false);\n wasLoading.current = isLoading;\n }, [isLoading]);\n\n const shouldBlink = blink && isLoading && !showCollapsibleHeader;\n\n const renderTimeline = () => (\n <div className={styles.timeline}>\n {items.map((item, i) =>\n item.type === \"text\" ? (\n <TimelineTextItem\n key={item.key || i}\n item={item}\n blink={shouldBlink}\n />\n ) : (\n <TimelineToolItem\n key={`tool-${item.key || i}`}\n msg={item.msg!}\n collapsible={item.collapsible}\n showFnCallDetail={showFnCallDetail}\n onConfirm={onConfirm}\n blink={shouldBlink}\n renderFunctionCall={renderFunctionCall}\n toolKindResolver={toolKindResolver}\n strategies={strategies}\n />\n ),\n )}\n </div>\n );\n\n // 不显示外层 header,直接渲染 timeline\n if (!showCollapsibleHeader) {\n return (\n <div\n className={`${styles.thoughtChainBlock}${className ? ` ${className}` : \"\"}`}\n style={style}\n >\n <div className={styles.thinkingBody}>{renderTimeline()}</div>\n </div>\n );\n }\n\n // 显示可折叠的执行过程入口\n return (\n <div\n className={`${styles.thoughtChainBlock} ${styles.groupedBlock}${className ? ` ${className}` : \"\"}`}\n style={style}\n >\n <button\n type=\"button\"\n className={styles.thoughtHeader}\n aria-expanded={isOpen}\n onClick={() => setIsOpen((open) => !open)}\n >\n <span className={`${styles.caret} ${isOpen ? \"open\" : \"\"}`} aria-hidden=\"true\">\n <RightOutlined />\n </span>\n <span className={styles.headerTitle}>\n {isLoading ? \"执行中\" : title}\n </span>\n {isLoading && activeStep?.trim() && (\n <span className={styles.activeStep}>{activeStep.trim()}</span>\n )}\n <span className={styles.headerAction}>\n {isOpen ? \"收起执行过程\" : \"查看执行过程\"}\n </span>\n </button>\n {isOpen && (\n <div className={styles.thinkingBody}>{renderTimeline()}</div>\n )}\n </div>\n );\n};\n\nexport default XAdkThoughtChain;\n"],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export declare const useStyles: () => {
|
|
2
2
|
thoughtChainBlock: string;
|
|
3
|
+
groupedBlock: string;
|
|
3
4
|
thoughtHeader: string;
|
|
4
5
|
headerLeft: string;
|
|
5
6
|
caret: string;
|
|
6
7
|
statusIcon: string;
|
|
7
8
|
headerTitle: string;
|
|
8
|
-
|
|
9
|
+
headerAction: string;
|
|
10
|
+
activeStep: string;
|
|
9
11
|
thinkingBody: string;
|
|
10
12
|
timeline: string;
|
|
11
13
|
timelineItem: string;
|