@ai-group/chat-sdk 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/svg/AddChatIcon.js +5 -12
- package/dist/cjs/assets/svg/AddChatIcon.js.map +2 -2
- package/dist/cjs/components/DislikeFeedback.js +33 -25
- package/dist/cjs/components/DislikeFeedback.js.map +2 -2
- package/dist/cjs/components/FeedbackTags.js +5 -15
- package/dist/cjs/components/FeedbackTags.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +178 -86
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +3 -3
- package/dist/cjs/components/XAiChatbot/index.js +199 -131
- package/dist/cjs/components/XAiChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAiChatbot/styles.js +5 -15
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +10 -10
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +61 -41
- package/dist/cjs/components/XAiConversations/index.js.map +3 -3
- package/dist/cjs/components/XAiConversations/styles.js +5 -15
- package/dist/cjs/components/XAiConversations/styles.js.map +3 -3
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +63 -54
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiProvider/index.js +110 -99
- package/dist/cjs/components/XAiProvider/index.js.map +3 -3
- package/dist/cjs/components/XAiSDK.js +2 -2
- package/dist/cjs/components/XAiSDK.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +23 -8
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +3 -3
- package/dist/cjs/components/XAiSender/index.js +161 -89
- package/dist/cjs/components/XAiSender/index.js.map +3 -3
- package/dist/cjs/components/XAiSender/styles.d.ts +0 -3
- package/dist/cjs/components/XAiSender/styles.js +29 -28
- package/dist/cjs/components/XAiSender/styles.js.map +2 -2
- package/dist/cjs/components/XAiWebSDKWrapper.js +3 -2
- package/dist/cjs/components/XAiWebSDKWrapper.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.d.ts +3 -3
- package/dist/cjs/hooks/useAgentGenerator.js +5 -5
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/hooks/useProviderContext.d.ts +2 -1
- package/dist/cjs/hooks/useProviderContext.js.map +2 -2
- package/dist/cjs/hooks/useXAiSDK.js +3 -2
- package/dist/cjs/hooks/useXAiSDK.js.map +2 -2
- package/dist/cjs/styles/common.js.map +2 -2
- package/dist/cjs/styles/markdown.js +5 -15
- package/dist/cjs/styles/markdown.js.map +2 -2
- package/dist/cjs/types/XAiChatbot.d.ts +8 -6
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +2 -2
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/XAiMessage.d.ts +2 -1
- package/dist/cjs/types/XAiMessage.js.map +2 -2
- package/dist/cjs/types/XAiProvider.d.ts +3 -3
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/types/XAiSender.d.ts +16 -2
- package/dist/cjs/types/XAiSender.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/umdEntry.d.ts +3 -2
- package/dist/cjs/utils/umdEntry.js +12 -5
- package/dist/cjs/utils/umdEntry.js.map +3 -3
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +60 -6
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.js +84 -72
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +2 -2
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +3 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiProvider/index.js +1 -1
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js +33 -13
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js +99 -57
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/components/XAiSender/styles.d.ts +0 -3
- package/dist/esm/components/XAiSender/styles.js +3 -5
- package/dist/esm/components/XAiSender/styles.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.d.ts +3 -3
- package/dist/esm/hooks/useAgentGenerator.js +7 -8
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/hooks/useProviderContext.d.ts +2 -1
- package/dist/esm/hooks/useProviderContext.js.map +1 -1
- package/dist/esm/styles/common.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +8 -6
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +2 -2
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/XAiMessage.d.ts +2 -1
- package/dist/esm/types/XAiMessage.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +3 -3
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/XAiSender.d.ts +16 -2
- package/dist/esm/types/XAiSender.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +3 -2
- package/dist/esm/utils/umdEntry.js +2 -2
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +30 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Sender","Button","Popover","Space","Tooltip","Spin","ArrowUpOutlined","ClearOutlined","useChatbotContext","clsx","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","footerTips","clearBtnShow","value","onSend","onChange","onClear","onStop","onSubmit","_mergedProps$loading","loading","propLoading","resetProps","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","disabled","_setDisabled","_useState3","_useState4","mode","_setMode","_useState5","_useState6","fileUploading","setFileUploading","_useState7","_useState8","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","fileInputRef","handleFileSelect","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","iconZengjiaDisabled","iconZengjiaNormal","current","_fileInputRef$current","click","ref","style","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","text","_objectSpread","sendWrapper","placeholder","actions","_","info","_info$components","components","SendButton","LoadingButton","w","visibility","iconHuihuarenqun","divider","stopButton","sendButton","icon","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["// 文件: components/XAiSender/index.tsx\nimport React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n Popover,\n Space,\n Tooltip,\n Spin,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n} from '@ant-design/icons';\nimport {\n XAiSenderProps\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n footerTips,\n clearBtnShow,\n value,\n onSend,\n onChange,\n onClear,\n onStop,\n onSubmit,\n loading: propLoading = false,\n ...resetProps\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n\n const [disabled, _setDisabled] = useState<boolean>(false); // 是否禁止输入\n const [mode, _setMode] = useState<string>(''); // todo 模式\n const [fileUploading, setFileUploading] = useState(false); // 文件上传进度条\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.('text', value);\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 选择文件\n const handleFileSelect = () => {};\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title={\n mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传'\n }\n >\n {fileUploading\n ? (\n <Spin size=\"small\" />\n )\n : (\n <i\n className={\n mode === 'single_agent_skill_mode'\n ? styles.iconZengjiaDisabled\n : styles.iconZengjiaNormal\n }\n onClick={() => {\n if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n )}\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n style={{ display: 'none' }}\n accept=\"*/*\"\n disabled={fileUploading || mode === 'single_agent_skill_mode'}\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n { clearBtnShow && <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover> }\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n actions={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\">\n <div className={styles.w(20)} />\n\n {mode !== 'single_agent_skill_mode' && uploadButton}\n {mode === 'meta_agent_mode' && (\n <div\n className={styles.flexCenterGap2}\n style={{ visibility: 'hidden' }}\n >\n <i className={styles.iconHuihuarenqun} />\n </div>\n )}\n\n <div className={styles.divider} />\n\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","message","Popover","Space","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","uploading","some","file","status","handleSend","warning","hasText","trim","hasFiles","length","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","i","_attachmentsRef$curre","upload","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","padding","customRequest","items","imageProps","preview","mask","_ref2","getDropContainer","_senderRef$current","nativeElement","actions","_","info","_info$components","components","SendButton","LoadingButton","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["// 文件: components/XAiSender/index.tsx\nimport React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n message,\n Popover,\n Space,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport { AttachmentsRef } from '@ant-design/x/es/attachments';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n const uploading = files?.some((file) => file.status === 'uploading');\n\n // 触发发送\n const handleSend = () => {\n if (uploading) {\n message.warning('文件正在上传中');\n return;\n }\n const hasText = value && value.trim();\n const hasFiles = files?.length;\n if (hasText || hasFiles) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files,\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover>\n )}\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled || uploading}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n ref={attachmentsRef}\n customRequest={uploadRequest}\n multiple\n items={files}\n imageProps={{\n preview: {\n mask: true,\n },\n }}\n onChange={({ fileList }) => {\n onChangeFiles?.(fileList);\n }}\n getDropContainer={() => senderRef.current?.nativeElement}\n />\n </Sender.Header>\n )}\n actions={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\">\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
@@ -8,9 +8,6 @@ export declare const useStyles: () => {
|
|
|
8
8
|
stopButton: string;
|
|
9
9
|
divider: string;
|
|
10
10
|
sendWrapper: string;
|
|
11
|
-
iconHuihuarenqun: string;
|
|
12
|
-
iconZengjiaDisabled: string;
|
|
13
|
-
iconZengjiaNormal: string;
|
|
14
11
|
} & {
|
|
15
12
|
w: (width: string | number) => string;
|
|
16
13
|
h: (height: string | number) => string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
2
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
3
|
+
/* eslint-disable import/prefer-default-export */
|
|
3
4
|
import { css } from '@emotion/css';
|
|
4
5
|
import { withBasicStyles, lightBlue, primaryBlue } from "../../styles/common";
|
|
5
6
|
export var useStyles = withBasicStyles(function () {
|
|
@@ -12,10 +13,7 @@ export var useStyles = withBasicStyles(function () {
|
|
|
12
13
|
clearBtn: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n "]))),
|
|
13
14
|
stopButton: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
|
|
14
15
|
divider: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
|
|
15
|
-
sendWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n "])))
|
|
16
|
-
iconHuihuarenqun: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n "]))),
|
|
17
|
-
iconZengjiaDisabled: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n "]))),
|
|
18
|
-
iconZengjiaNormal: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n "])))
|
|
16
|
+
sendWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n .ant-attachment-list-card-type-preview {\n width: 52px;\n height: 52px;\n }\n .ant-attachment .ant-attachment-list-upload-btn {\n width: 52px;\n height: 52px;\n font-size: 24px;\n }\n .ant-attachment-list-card-type-overview {\n padding: 9px;\n line-height: 1;\n border: 1px solid rgba(0,0,0,0.1);\n }\n .ant-attachment-list-card-type-overview .ant-attachment-list-card-icon {\n display: flex;\n padding-top: 0px;\n }\n .ant-attachment-list-card .ant-attachment-list-card-name {\n margin-bottom: 4px;\n }\n .ant-attachment-list-card-motion-leave-active {\n display: none;\n }\n .ant-progress-inner {\n width: 44px!important;\n height: 44px!important;\n }\n .ant-progress-text {\n font-size: 12px;\n }\n "])))
|
|
19
17
|
};
|
|
20
18
|
});
|
|
21
19
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","withBasicStyles","lightBlue","primaryBlue","useStyles","chatFooter","_templateObject","_taggedTemplateLiteral","footerTips","_templateObject2","popoverFooter","_templateObject3","sendButton","_templateObject4","uploadBtn","_templateObject5","clearBtn","_templateObject6","stopButton","_templateObject7","divider","_templateObject8","sendWrapper","_templateObject9"
|
|
1
|
+
{"version":3,"names":["css","withBasicStyles","lightBlue","primaryBlue","useStyles","chatFooter","_templateObject","_taggedTemplateLiteral","footerTips","_templateObject2","popoverFooter","_templateObject3","sendButton","_templateObject4","uploadBtn","_templateObject5","clearBtn","_templateObject6","stopButton","_templateObject7","divider","_templateObject8","sendWrapper","_templateObject9"],"sources":["../../../../src/components/XAiSender/styles.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { css } from '@emotion/css';\nimport { withBasicStyles, lightBlue, primaryBlue } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n sendButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n `,\n\n clearBtn: css`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n `,\n\n stopButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n\n divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\n .ant-attachment-list-card-type-preview {\n width: 52px;\n height: 52px;\n }\n .ant-attachment .ant-attachment-list-upload-btn {\n width: 52px;\n height: 52px;\n font-size: 24px;\n }\n .ant-attachment-list-card-type-overview {\n padding: 9px;\n line-height: 1;\n border: 1px solid rgba(0,0,0,0.1);\n }\n .ant-attachment-list-card-type-overview .ant-attachment-list-card-icon {\n display: flex;\n padding-top: 0px;\n }\n .ant-attachment-list-card .ant-attachment-list-card-name {\n margin-bottom: 4px;\n }\n .ant-attachment-list-card-motion-leave-active {\n display: none;\n }\n .ant-progress-inner {\n width: 44px!important;\n height: 44px!important;\n }\n .ant-progress-text {\n font-size: 12px;\n }\n `,\n}));\n"],"mappings":";;AAAA;AACA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe,EAAEC,SAAS,EAAEC,WAAW;AAEhD,OAAO,IAAMC,SAAS,GAAGH,eAAe,CAAC;EAAA,OAAO;IAC9CI,UAAU,EAAEL,GAAG,CAAAM,eAAA,KAAAA,eAAA,GAAAC,sBAAA,wGAKd;IAEDC,UAAU,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,oKAOd;IAEDG,aAAa,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,0EAIjB;IAEDK,UAAU,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,slBAqBSL,SAAS,CAGhC;IAEDY,SAAS,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,yWAKQJ,WAAW,CAYhC;IAEDa,QAAQ,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,qPAUZ;IAEDW,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,kPASd;IAEDa,OAAO,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,yHAMX;IAEDe,WAAW,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA;EAmClB,CAAC;AAAA,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Messages } from "../types/XAiMessage";
|
|
3
|
-
import { Error, Success,
|
|
3
|
+
import { type Error, type SendContent, type Success, type SessionData } from "../types";
|
|
4
4
|
export type ContentType = 'TEXT' | 'IMAGE' | 'FILE' | 'JSON';
|
|
5
5
|
export interface ImageUrl {
|
|
6
6
|
url: string;
|
|
@@ -71,7 +71,7 @@ declare const useAgentGenerator: (params: UseAgentGeneratorProps) => {
|
|
|
71
71
|
messages: Messages[];
|
|
72
72
|
loading: boolean;
|
|
73
73
|
content: any;
|
|
74
|
-
sessionList:
|
|
74
|
+
sessionList: SessionData[];
|
|
75
75
|
currentSessionId: string;
|
|
76
76
|
sessionPagination: {
|
|
77
77
|
total: number;
|
|
@@ -80,7 +80,7 @@ declare const useAgentGenerator: (params: UseAgentGeneratorProps) => {
|
|
|
80
80
|
};
|
|
81
81
|
initAppConversations: (fetchDetail?: boolean) => Promise<void>;
|
|
82
82
|
reChat: () => void;
|
|
83
|
-
chat:
|
|
83
|
+
chat: (content: SendContent, extra?: any, insert?: boolean) => Promise<void>;
|
|
84
84
|
createNewChat: () => void;
|
|
85
85
|
setCurrentSessionId: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
86
86
|
setCurrentSessionDetail: (sessionId: string) => Promise<void>;
|
|
@@ -8,6 +8,7 @@ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
|
8
8
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
9
9
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
10
10
|
var _excluded = ["url", "token", "config", "onError", "onMessage", "onSuccess", "textSpeed"];
|
|
11
|
+
/* eslint-disable class-methods-use-this */
|
|
11
12
|
import { useState, useEffect, useMemo, useCallback, useRef } from 'react';
|
|
12
13
|
import { v4 as uuidV4 } from 'uuid';
|
|
13
14
|
import { useEventStreamRequest } from "./useEventStreamRequest";
|
|
@@ -768,7 +769,7 @@ var useAgentGenerator = function useAgentGenerator(params) {
|
|
|
768
769
|
}(), []);
|
|
769
770
|
|
|
770
771
|
// 简单对话
|
|
771
|
-
var chat = /*#__PURE__*/function () {
|
|
772
|
+
var chat = useCallback( /*#__PURE__*/function () {
|
|
772
773
|
var _ref18 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(content, extra) {
|
|
773
774
|
var insert,
|
|
774
775
|
newMessage,
|
|
@@ -786,9 +787,7 @@ var useAgentGenerator = function useAgentGenerator(params) {
|
|
|
786
787
|
role: MessageRole.user,
|
|
787
788
|
status: MessageStatus.done,
|
|
788
789
|
extra: extra,
|
|
789
|
-
content:
|
|
790
|
-
text: content
|
|
791
|
-
}
|
|
790
|
+
content: content
|
|
792
791
|
};
|
|
793
792
|
setMessages(function (prev) {
|
|
794
793
|
var newMessages = prev.filter(function (item) {
|
|
@@ -800,7 +799,7 @@ var useAgentGenerator = function useAgentGenerator(params) {
|
|
|
800
799
|
}
|
|
801
800
|
requestBody = {
|
|
802
801
|
appParams: {
|
|
803
|
-
inputs_msg: content
|
|
802
|
+
inputs_msg: content.text
|
|
804
803
|
},
|
|
805
804
|
sessionId: currentSessionId
|
|
806
805
|
};
|
|
@@ -813,10 +812,10 @@ var useAgentGenerator = function useAgentGenerator(params) {
|
|
|
813
812
|
}
|
|
814
813
|
}, _callee3);
|
|
815
814
|
}));
|
|
816
|
-
return function
|
|
815
|
+
return function (_x3, _x4) {
|
|
817
816
|
return _ref18.apply(this, arguments);
|
|
818
817
|
};
|
|
819
|
-
}();
|
|
818
|
+
}(), [appNo, currentSessionId, start, token, url]);
|
|
820
819
|
|
|
821
820
|
// 重新生成方法
|
|
822
821
|
var reChat = useCallback(function () {
|
|
@@ -846,7 +845,7 @@ var useAgentGenerator = function useAgentGenerator(params) {
|
|
|
846
845
|
});
|
|
847
846
|
if (lastUserMsg !== null && lastUserMsg !== void 0 && (_lastUserMsg$content = lastUserMsg.content) !== null && _lastUserMsg$content !== void 0 && _lastUserMsg$content.text) {
|
|
848
847
|
setTimeout(function () {
|
|
849
|
-
chat(lastUserMsg.content
|
|
848
|
+
chat(lastUserMsg.content, lastUserMsg.extra, false);
|
|
850
849
|
}, 0);
|
|
851
850
|
}
|
|
852
851
|
return newMessages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useMemo","useCallback","useRef","v4","uuidV4","useEventStreamRequest","MessageRole","MessageStatus","ErrorCode","SuccessCode","request","safeJsonParse","SESSION_PAGE_SIZE","API_SUCCESS_CODE","fetchAppConfig","fetchSessionList","fetchSessionDetail","delSessionId","updateSessionTitle","getNodeTemplate","documentIcon","completedIcon","completedExpandIcon","documentExpandIcon","qaIcon","qaExpandIcon","skillNoIcon","skillNoExpandIcon","toolIcon","toolExpandIcon","ActionType","ProcessStatus","ActionAvailability","MessageProcessor","textSpeed","arguments","length","undefined","_classCallCheck","_defineProperty","_createClass","key","value","getKnowledgeIcons","knowledgeType","icon","expandIcon","getToolIcons","toolType","getWorkflowIcon","updateExecution","messages","messageIndex","uniqueId","cost","name","msg","execute","execution","find","item","id","extra","toFixed","findLastPendingAIMessage","i","role","assistant","type","status","createNewAIMessage","createdAt","Date","content","text","thinks","init","ensureAIMessageExists","_this$findLastPending","_this$findLastPending2","_slicedToArray","index","existingMsg","_toConsumableArray","_objectSpread","newMessage","newMessages","concat","handleSuggestion","data","suggestIndex","findIndex","newSuggestion","done","suggestion","description","push","_suggestion$content","handleReasoning","_this$ensureAIMessage","_this$ensureAIMessage2","aiMsg","updatedMsg","pending","updatedMessages","handleReasoningEnd","_this$ensureAIMessage3","_this$ensureAIMessage4","handleRecallKnowledgeStart","_this$ensureAIMessage5","_this$ensureAIMessage6","_ref","_ref$uniqueId","_ref2","args","handleRecallKnowledgeEnd","_this$findLastPending3","_this$findLastPending4","_aiMsg","_ref3","_ref3$uniqueId","handleInvokeToolStart","_this$ensureAIMessage7","_this$ensureAIMessage8","_ref4","_ref4$uniqueId","_ref5","icons","handleInvokeToolEnd","_this$findLastPending5","_this$findLastPending6","_ref6","_ref6$uniqueId","_ref7","handleComponentStart","_aiMsg$execute","_this$ensureAIMessage9","_this$ensureAIMessage10","_ref8","_ref9","nodeId","componentType","_getNodeTemplate","handleComponentStream","_this$ensureAIMessage11","_this$ensureAIMessage12","_ref10","_ref10$nodeId","_ref11","processData","raw","stepContent","handleComponentEnd","_this$findLastPending7","_this$findLastPending8","_ref12","_ref13","_getNodeTemplate2","handleResponse","_this$ensureAIMessage13","_this$ensureAIMessage14","contentType","success","errorMsg","JSON","stringify","failed","handleFinish","_this$findLastPending9","_this$findLastPending10","_ref14","_ref14$data","_ref14$data2","_ref14$data2$uniqueId","needExecuteDetail","processResponse","responseData","response","action","_response","_response$data","suggest","reasoning","reasoningEnd","componentStart","componentStream","componentEnd","recallKnowledgeStart","recallKnowledgeEnd","invokeToolStart","invokeToolEnd","finish","useAgentGenerator","params","url","token","config","onError","onMessage","onSuccess","_params$textSpeed","rest","_objectWithoutProperties","_excluded","_useState","_useState2","setMessages","_useState3","_useState4","sessionList","setSessionList","_useState5","total","pageNum","pageSize","_useState6","sessionPagination","setSessionPagination","_useState7","_useState8","currentSessionId","setCurrentSessionId","_useState9","_useState10","appInfo","setAppInfo","requestInfo","_ref15","appNo","messageProcessor","initConfig","_ref16","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$fetchAppConfig","_data","result","wrap","_callee$","_context","prev","next","sent","code","APP_CONFIG_INIT_SUCCESS","message","APP_NOT_FOUND","t0","API_ERROR","stop","apply","_useEventStreamReques","streaming","onClose","setTimeout","_requestInfo$current","_requestInfo$current2","current","sensitiveWords","requestId","post","onOpen","res","console","log","start","loading","setMessage","_ref17","_callee2","messageType","_callee2$","_context2","prologueIndex","_item$extra","prologue","noFooter","map","_item$extra2","abrupt","_item$extra3","insertIndex","splice","warn","_x","_x2","chat","_ref18","_callee3","insert","requestBody","_args3","_callee3$","_context3","user","filter","appParams","inputs_msg","sessionId","Authorization","_x3","_x4","reChat","_lastUserMsg$content","lastAIIndex","findLastIndex","m","lastUserMsg","findLast","stopChat","newMsg","formatMessages","initMessagesList","forEach","_ref19","messageTime","isLike","initPrologue","_ref20","_callee4","_appInfo$onboardingIn","onboardingInfo","_ref21","_ref21$suggested_ques","suggested_questions","_ref21$prologue","formatSuggests","suggestMessages","hasMessages","_callee4$","_context4","_item$extra4","some","_item$extra5","initAppConversations","_ref22","_callee5","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","_data2","pagination","formatSessions","_data2$","_args5","_callee5$","_context5","label","title","timestamp","gmtCreated","getTime","meta","setCurrentSessionDetail","APP_MESSAGES_INIT_SUCCESS","_ref23","_callee6","_yield$fetchSessionDe","_data3","sessionsData","_callee6$","_context6","reduce","acc","cur","sessionMessages","Array","isArray","msgs","_x5","deleteSession","_ref24","_callee7","_yield$delSessionId","_callee7$","_context7","createNewChat","_x6","updateSession","_ref25","_callee8","_yield$updateSessionT","_callee8$","_context8","_x7","_x8"],"sources":["../../../src/hooks/useAgentGenerator.ts"],"sourcesContent":["import { useState, useEffect, useMemo, useCallback, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { Error, ErrorCode, Success, SuccessCode, sessionData } from '@/types';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from '@/constants';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, delSessionId, updateSessionTitle } from '@/services/api';\nimport { getNodeTemplate } from '@/utils/workflowNode';\n// 图标导入\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\n// ==================== 类型定义 ====================\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE' | 'JSON';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n\nexport type Contents = ContentDef[];\n\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START',\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END',\n invokeToolStart = 'INVOKE_AGENT_TOOL_START',\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END',\n reasoning = 'REASONING',\n reasoningStart = 'REASONING_START',\n reasoningEnd = 'REASONING_END',\n componentStart = 'COMPONENT_START',\n componentStream = 'COMPONENT_STREAM',\n componentEnd = 'COMPONENT_END',\n suggest = 'FOLLOW_UP',\n response = 'RESPONSE',\n finish = 'FINISHED',\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled',\n enabled = 'enabled',\n remote = 'remote',\n}\n\nexport type ThinkStep = any;\n\nexport interface Action {\n name: string;\n description: string;\n jsonSchema: string;\n available?: ActionAvailability;\n}\n\nexport interface BaseFields {\n textSpeed?: number;\n onChatDone?: () => void;\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n textSpeed?: number;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: Messages) => void;\n}\n\n// ==================== 消息处理器 ====================\nclass MessageProcessor {\n private textSpeed: number;\n\n constructor(textSpeed = 60) {\n this.textSpeed = textSpeed;\n }\n\n // 获取知识图标\n private getKnowledgeIcons(knowledgeType: string) {\n return knowledgeType === 'DOCUMENT'\n ? { icon: documentIcon, expandIcon: documentExpandIcon }\n : { icon: qaIcon, expandIcon: qaExpandIcon };\n }\n\n // 获取工具图标\n private getToolIcons(toolType: string) {\n return toolType === 'SKILL'\n ? { icon: skillNoIcon, expandIcon: skillNoExpandIcon }\n : { icon: toolIcon, expandIcon: toolExpandIcon };\n }\n\n // 获取工作流图标(暂时不做区分)\n private getWorkflowIcon() {\n return { icon: skillNoIcon, expandIcon: skillNoExpandIcon };\n }\n\n // 更新工具执行事件\n private updateExecution(\n messages: Messages[],\n messageIndex: number,\n uniqueId: string,\n cost: number,\n name?: string,\n ) {\n const msg = messages[messageIndex] as TextMessage;\n if (msg?.execute) {\n const execution = msg.execute.find((item) => item.id === uniqueId);\n if (execution) {\n execution.extra.cost = cost ? (cost / 1000).toFixed(2) : 0;\n if (name) execution.name = name;\n }\n }\n }\n\n // 查找最后一个待处理的AI消息\n private findLastPendingAIMessage(messages: Messages[]): [number, TextMessage | null] {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === MessageRole.assistant\n && msg.type === 'TextMessage'\n && (msg.status === 'init' || msg.status === 'pending')) {\n return [i, msg as TextMessage];\n }\n }\n return [-1, null];\n }\n\n // 创建新的AI消息\n private createNewAIMessage(): TextMessage {\n return {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n execute: [],\n thinks: '',\n status: MessageStatus.init,\n };\n }\n\n // 确保存在待处理的AI消息\n private ensureAIMessageExists(messages: Messages[]): [Messages[], number, TextMessage] {\n const [index, existingMsg] = this.findLastPendingAIMessage(messages);\n\n if (index !== -1 && existingMsg) {\n return [[...messages], index, { ...existingMsg }];\n }\n\n const newMessage = this.createNewAIMessage();\n const newMessages = [...messages, newMessage];\n return [newMessages, newMessages.length - 1, newMessage];\n }\n\n // 处理建议\n handleSuggestion(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const newMessages = [...messages];\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n\n if (suggestIndex === -1) {\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{ key: uuidV4(), description: content }],\n };\n newMessages.push(newSuggestion);\n } else {\n const suggestion = newMessages[suggestIndex] as SuggestionMessage;\n suggestion?.content?.push({\n key: uuidV4(),\n description: content,\n });\n }\n\n return newMessages;\n }\n\n // 处理思考过程\n handleReasoning(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: (aiMsg.thinks || '') + content,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理思考过程结束\n handleReasoningEnd(messages: Messages[]): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: `${aiMsg.thinks || ''}\\n`,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理知识库调用开始\n handleRecallKnowledgeStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { args } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '开始搜索知识库',\n arguments: args,\n extra: {\n ...data,\n icon: documentIcon,\n expandIcon: documentExpandIcon,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理知识库调用结束\n handleRecallKnowledgeEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n const { uniqueId = uuidV4(), cost } = data || {};\n\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, uniqueId, cost, '已搜索知识库');\n return newMessages;\n }\n\n // 处理工具调用开始\n handleInvokeToolStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { args, toolType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getToolIcons(toolType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工具调用结束\n handleInvokeToolEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { toolType } = data?.data || {};\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, uniqueId, data.cost, toolType === 'SKILL' ? '已调用工作流组件' : '已调用工具');\n return newMessages;\n }\n\n // 处理工作流组件开始\n handleComponentStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { content } = data || {};\n const { nodeId, args, componentType } = content || {};\n const { name } = getNodeTemplate(componentType);\n aiMsg?.execute?.push({\n id: nodeId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: name ? `开始调用${name}组件` : '开始调用工作流组件',\n arguments: args,\n extra: {\n ...data,\n ...this.getWorkflowIcon(),\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件流消息\n handleComponentStream(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { nodeId = uuidV4, content } = data || {};\n const { processData } = content || {};\n aiMsg.raw = data.raw;\n aiMsg.stepContent = aiMsg.stepContent || [];\n aiMsg.stepContent.push({\n id: nodeId,\n content: processData,\n });\n\n // 消息状态改为接收中\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件结束\n handleComponentEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { content } = data || {};\n const { nodeId, componentType } = content || {};\n const { name } = getNodeTemplate(componentType);\n if (index === -1) return messages;\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, nodeId, data.cost, name ? `已调用完成${name}组件` : '已调用工作流组件');\n return newMessages;\n }\n\n // 处理响应正文\n handleResponse(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { contentType, content, success, errorMsg } = data;\n if (success) {\n aiMsg.raw = data.raw;\n // 消息状态改为接收中\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n // 文本类型数据\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n\n // JSON 格式数据\n if (contentType === 'JSON') {\n aiMsg.content.text += JSON.stringify(content);\n }\n\n } else {\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理完成\n handleFinish(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { data: { uniqueId = uuidV4() } = {}, cost, needExecuteDetail } = data || {};\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n const msg = newMessages[index] as TextMessage;\n if (needExecuteDetail) {\n msg.execute = msg.execute || [];\n msg.execute.push({\n id: uniqueId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: cost ? (cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n }\n\n msg.status = MessageStatus.done;\n return newMessages;\n }\n\n // 处理响应数据\n processResponse(messages: Messages[], responseData: any): Messages[] {\n if (!responseData?.content && !responseData?.data) return messages;\n\n let response = responseData.data || responseData.content;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n const { action, data = {} } = response;\n\n data.raw = responseData;\n\n switch (action) {\n case ActionType.suggest:\n return this.handleSuggestion(messages, data);\n\n case ActionType.reasoning:\n return this.handleReasoning(messages, data);\n\n case ActionType.reasoningEnd:\n return this.handleReasoningEnd(messages);\n\n case ActionType.componentStart:\n return this.handleComponentStart(messages, data);\n\n case ActionType.componentStream:\n return this.handleComponentStream(messages, data);\n\n case ActionType.componentEnd:\n return this.handleComponentEnd(messages, data);\n\n case ActionType.recallKnowledgeStart:\n return this.handleRecallKnowledgeStart(messages, data);\n\n case ActionType.recallKnowledgeEnd:\n return this.handleRecallKnowledgeEnd(messages, data);\n\n case ActionType.invokeToolStart:\n return this.handleInvokeToolStart(messages, data);\n\n case ActionType.invokeToolEnd:\n return this.handleInvokeToolEnd(messages, data);\n\n case ActionType.response:\n return this.handleResponse(messages, data);\n\n case ActionType.finish:\n return this.handleFinish(messages, data);\n\n default:\n return messages;\n }\n }\n}\n\nconst useAgentGenerator = (params: UseAgentGeneratorProps) => {\n const {\n url,\n token,\n config,\n onError,\n onMessage,\n onSuccess,\n textSpeed = 55,\n ...rest\n } = params;\n\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 聊天记录分页设置\n // const [messagePagination, setMessagePagination] = useState({ total: 0, pageNum: 1, pageSize: 999 });\n // 会话记录\n const [sessionList, setSessionList] = useState<sessionData[]>([]);\n // 会话请求是否加载中\n // const [sessionLoading, setSessionLoading] = useState<boolean>(false);\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo } = config || {};\n\n // 消息处理器\n const messageProcessor = useMemo(() => new MessageProcessor(textSpeed), [textSpeed]);\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const { data, result } = await fetchAppConfig({ url, ...config });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\n\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || '获取应用配置失败',\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取应用配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据流处理\n useEffect(() => {\n if (!responseData) return;\n\n setMessages((prev) => messageProcessor.processResponse(prev, responseData));\n }, [responseData, messageProcessor]);\n\n // 添加对话(非交互触发)\n const setMessage = useCallback(async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n if (prologueIndex === -1) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: { text: content },\n extra: { prologue: true, noFooter: true },\n };\n return [newMessage, ...prev];\n }\n\n return prev.map((item) => (item.extra?.prologue && item.content && 'text' in item.content\n ? { ...item, content: { text: content } } as TextMessage\n : item));\n });\n break;\n }\n\n case 'suggest': {\n setMessages((prev) => {\n const suggestIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n\n if (suggestIndex === -1) {\n const newMessages = [...prev];\n const insertIndex = prologueIndex === -1 ? 0 : prologueIndex + 1;\n newMessages.splice(insertIndex, 0, newSuggestion);\n return newMessages;\n }\n\n return prev.map((item) => (item.type === 'SuggestionMessage'\n ? { ...item, content }\n : item));\n });\n break;\n }\n\n default:\n console.warn(`Unknown message type: ${messageType}`);\n }\n }, []);\n\n // 简单对话\n const chat = async <T = any>(content: T, extra?: any, insert = true) => {\n if (insert) {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n extra,\n content: { text: content as string },\n };\n\n setMessages((prev) => {\n const newMessages = prev.filter((item) => item.type !== 'SuggestionMessage');\n newMessages.push(newMessage);\n return newMessages;\n });\n }\n\n const requestBody: any = {\n appParams: {\n inputs_msg: content,\n },\n sessionId: currentSessionId,\n };\n\n start(\n `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsg`,\n requestBody,\n {\n Authorization: `Bearer ${token}`,\n },\n );\n };\n\n // 重新生成方法\n const reChat = useCallback(() => {\n setMessages((prev) => {\n const newMessages = [...prev];\n\n // 删除最新 AI 消息\n const lastAIIndex = newMessages?.findLastIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage'\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n\n // 删除建议消息\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestIndex !== -1) {\n newMessages.splice(suggestIndex, 1);\n }\n\n // 找到最后一条用户消息重新发送\n const lastUserMsg = newMessages.findLast(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n\n if (lastUserMsg?.content?.text) {\n setTimeout(() => {\n chat(lastUserMsg.content.text as string, lastUserMsg.extra, false);\n }, 0);\n }\n\n return newMessages;\n });\n }, [chat]);\n\n // 停止对话\n const stopChat = () => {\n stop();\n setMessages((prev) => prev.map((m) => {\n // 所有进行中的消息变更为结束\n if (m.status === MessageStatus.pending || m.status === MessageStatus.init) {\n const newMsg = { ...m, status: MessageStatus.done };\n if (m.type === 'TextMessage' && m.status === MessageStatus.init) {\n (newMsg as TextMessage).content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n return newMsg;\n }\n return m;\n }));\n };\n\n // 初始化历史记录\n const formatMessages = (data: any, init = false) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n execute: [],\n status: MessageStatus.done,\n isLike: item.isLike,\n raw: item.raw,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n if (init) {\n return [...initMessagesList];\n }\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n const { data = [], pagination, result } = await fetchSessionList({\n url,\n appNo,\n token,\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.gmtCreated).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: sessionPagination.pageNum, pageSize: sessionPagination.pageSize, total: pagination?.total || 0 });\n const { sessionId } = data?.[0];\n fetchDetail && setCurrentSessionDetail(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 设置当前会话详情\n const setCurrentSessionDetail = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n const sessionsData = data?.reduce((acc: any[], cur) => {\n const sessionMessages = Array.isArray(cur.sessionMessages) ? cur.sessionMessages : [];\n const msgs = sessionMessages.map((msg: any) => ({\n ...msg,\n raw: cur,\n isLike: cur?.isLike,\n }));\n return [...acc, ...msgs];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData, true);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(uuidV4());\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await delSessionId({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n createNewChat();\n }\n }\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const { result } = await updateSessionTitle({\n url,\n appNo,\n title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 生成新对话\n const createNewChat = () => {\n stopChat(); // 停止聊天\n setMessages([]); // 清空所有消息\n initPrologue(); // 初始化开场白和预置问题\n setCurrentSessionId(uuidV4()); // 设置会话 id\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionList,\n currentSessionId,\n sessionPagination,\n initAppConversations,\n reChat,\n chat,\n createNewChat,\n setCurrentSessionId,\n setCurrentSessionDetail,\n updateSession,\n deleteSession,\n setMessage,\n setMessages,\n stopChat,\n initPrologue,\n };\n};\n\nexport default useAgentGenerator;\n"],"mappings":";;;;;;;;;;AAAA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AACzE,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,qBAAqB;AAC9B,SAASC,WAAW,EAAEC,aAAa;AACnC,SAAgBC,SAAS,EAAWC,WAAW;AAC/C,SAASC,OAAO;AAChB,SAASC,aAAa;AACtB,SAASC,iBAAiB,EAAEC,gBAAgB;AAC5C,SAASC,cAAc,EAAEC,gBAAgB,EAAEC,kBAAkB,EAAEC,YAAY,EAAEC,kBAAkB;AAC/F,SAASC,eAAe;AACxB;AACA,OAAOC,YAAY;AACnB,OAAOC,aAAa;AACpB,OAAOC,mBAAmB;AAC1B,OAAOC,kBAAkB;AACzB,OAAOC,MAAM;AACb,OAAOC,YAAY;AACnB,OAAOC,WAAW;AAClB,OAAOC,iBAAiB;AACxB,OAAOC,QAAQ;AACf,OAAOC,cAAc;;AAErB;;AA4BA,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAgBtB,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAKzB,WAAYC,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AA8B9B;AAAA,IACMC,gBAAgB;EAGpB,SAAAA,iBAAA,EAA4B;IAAA,IAAhBC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAAAG,eAAA,OAAAL,gBAAA;IAAAM,eAAA;IACxB,IAAI,CAACL,SAAS,GAAGA,SAAS;EAC5B;;EAEA;EAAAM,YAAA,CAAAP,gBAAA;IAAAQ,GAAA;IAAAC,KAAA,EACA,SAAAC,kBAA0BC,aAAqB,EAAE;MAC/C,OAAOA,aAAa,KAAK,UAAU,GAC/B;QAAEC,IAAI,EAAEzB,YAAY;QAAE0B,UAAU,EAAEvB;MAAmB,CAAC,GACtD;QAAEsB,IAAI,EAAErB,MAAM;QAAEsB,UAAU,EAAErB;MAAa,CAAC;IAChD;;IAEA;EAAA;IAAAgB,GAAA;IAAAC,KAAA,EACA,SAAAK,aAAqBC,QAAgB,EAAE;MACrC,OAAOA,QAAQ,KAAK,OAAO,GACvB;QAAEH,IAAI,EAAEnB,WAAW;QAAEoB,UAAU,EAAEnB;MAAkB,CAAC,GACpD;QAAEkB,IAAI,EAAEjB,QAAQ;QAAEkB,UAAU,EAAEjB;MAAe,CAAC;IACpD;;IAEA;EAAA;IAAAY,GAAA;IAAAC,KAAA,EACA,SAAAO,gBAAA,EAA0B;MACxB,OAAO;QAAEJ,IAAI,EAAEnB,WAAW;QAAEoB,UAAU,EAAEnB;MAAkB,CAAC;IAC7D;;IAEA;EAAA;IAAAc,GAAA;IAAAC,KAAA,EACA,SAAAQ,gBACEC,QAAoB,EACpBC,YAAoB,EACpBC,QAAgB,EAChBC,IAAY,EACZC,IAAa,EACb;MACA,IAAMC,GAAG,GAAGL,QAAQ,CAACC,YAAY,CAAgB;MACjD,IAAII,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEC,OAAO,EAAE;QAChB,IAAMC,SAAS,GAAGF,GAAG,CAACC,OAAO,CAACE,IAAI,CAAC,UAACC,IAAI;UAAA,OAAKA,IAAI,CAACC,EAAE,KAAKR,QAAQ;QAAA,EAAC;QAClE,IAAIK,SAAS,EAAE;UACbA,SAAS,CAACI,KAAK,CAACR,IAAI,GAAGA,IAAI,GAAG,CAACA,IAAI,GAAG,IAAI,EAAES,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;UAC1D,IAAIR,IAAI,EAAEG,SAAS,CAACH,IAAI,GAAGA,IAAI;QACjC;MACF;IACF;;IAEA;EAAA;IAAAd,GAAA;IAAAC,KAAA,EACA,SAAAsB,yBAAiCb,QAAoB,EAAgC;MACnF,KAAK,IAAIc,CAAC,GAAGd,QAAQ,CAACf,MAAM,GAAG,CAAC,EAAE6B,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC7C,IAAMT,GAAG,GAAGL,QAAQ,CAACc,CAAC,CAAC;QACvB,IAAIT,GAAG,CAACU,IAAI,KAAK5D,WAAW,CAAC6D,SAAS,IAC/BX,GAAG,CAACY,IAAI,KAAK,aAAa,KACzBZ,GAAG,CAACa,MAAM,KAAK,MAAM,IAAIb,GAAG,CAACa,MAAM,KAAK,SAAS,CAAC,EAAE;UAC1D,OAAO,CAACJ,CAAC,EAAET,GAAG,CAAgB;QAChC;MACF;MACA,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACnB;;IAEA;EAAA;IAAAf,GAAA;IAAAC,KAAA,EACA,SAAA4B,mBAAA,EAA0C;MACxC,OAAO;QACLT,EAAE,EAAEzD,MAAM,CAAC,CAAC;QACZgE,IAAI,EAAE,aAAa;QACnBG,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;QACrBN,IAAI,EAAE5D,WAAW,CAAC6D,SAAS;QAC3BM,OAAO,EAAE;UAAEC,IAAI,EAAE;QAAG,CAAC;QACrBjB,OAAO,EAAE,EAAE;QACXkB,MAAM,EAAE,EAAE;QACVN,MAAM,EAAE9D,aAAa,CAACqE;MACxB,CAAC;IACH;;IAEA;EAAA;IAAAnC,GAAA;IAAAC,KAAA,EACA,SAAAmC,sBAA8B1B,QAAoB,EAAqC;MACrF,IAAA2B,qBAAA,GAA6B,IAAI,CAACd,wBAAwB,CAACb,QAAQ,CAAC;QAAA4B,sBAAA,GAAAC,cAAA,CAAAF,qBAAA;QAA7DG,KAAK,GAAAF,sBAAA;QAAEG,WAAW,GAAAH,sBAAA;MAEzB,IAAIE,KAAK,KAAK,CAAC,CAAC,IAAIC,WAAW,EAAE;QAC/B,OAAO,CAAAC,kBAAA,CAAKhC,QAAQ,GAAG8B,KAAK,EAAAG,aAAA,KAAOF,WAAW,EAAG;MACnD;MAEA,IAAMG,UAAU,GAAG,IAAI,CAACf,kBAAkB,CAAC,CAAC;MAC5C,IAAMgB,WAAW,MAAAC,MAAA,CAAAJ,kBAAA,CAAOhC,QAAQ,IAAEkC,UAAU,EAAC;MAC7C,OAAO,CAACC,WAAW,EAAEA,WAAW,CAAClD,MAAM,GAAG,CAAC,EAAEiD,UAAU,CAAC;IAC1D;;IAEA;EAAA;IAAA5C,GAAA;IAAAC,KAAA,EACA,SAAA8C,iBAAiBrC,QAAoB,EAAEsC,IAAS,EAAc;MAC5D,IAAQhB,OAAO,GAAKgB,IAAI,CAAhBhB,OAAO;MACf,IAAMa,WAAW,GAAAH,kBAAA,CAAOhC,QAAQ,CAAC;MACjC,IAAMuC,YAAY,GAAGJ,WAAW,CAACK,SAAS,CAAC,UAAC/B,IAAI;QAAA,OAAKA,IAAI,CAACQ,IAAI,KAAK,mBAAmB;MAAA,EAAC;MAEvF,IAAIsB,YAAY,KAAK,CAAC,CAAC,EAAE;QACvB,IAAME,aAAgC,GAAG;UACvC/B,EAAE,EAAEzD,MAAM,CAAC,CAAC;UACZgE,IAAI,EAAE,mBAAmB;UACzBG,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;UACrBH,MAAM,EAAE9D,aAAa,CAACsF,IAAI;UAC1B3B,IAAI,EAAE5D,WAAW,CAACwF,UAAU;UAC5BrB,OAAO,EAAE,CAAC;YAAEhC,GAAG,EAAErC,MAAM,CAAC,CAAC;YAAE2F,WAAW,EAAEtB;UAAQ,CAAC;QACnD,CAAC;QACDa,WAAW,CAACU,IAAI,CAACJ,aAAa,CAAC;MACjC,CAAC,MAAM;QAAA,IAAAK,mBAAA;QACL,IAAMH,UAAU,GAAGR,WAAW,CAACI,YAAY,CAAsB;QACjEI,UAAU,aAAVA,UAAU,gBAAAG,mBAAA,GAAVH,UAAU,CAAErB,OAAO,cAAAwB,mBAAA,eAAnBA,mBAAA,CAAqBD,IAAI,CAAC;UACxBvD,GAAG,EAAErC,MAAM,CAAC,CAAC;UACb2F,WAAW,EAAEtB;QACf,CAAC,CAAC;MACJ;MAEA,OAAOa,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAAwD,gBAAgB/C,QAAoB,EAAEsC,IAAS,EAAc;MAC3D,IAAQhB,OAAO,GAAKgB,IAAI,CAAhBhB,OAAO;MACf,IAAA0B,qBAAA,GAAoC,IAAI,CAACtB,qBAAqB,CAAC1B,QAAQ,CAAC;QAAAiD,sBAAA,GAAApB,cAAA,CAAAmB,qBAAA;QAAjEb,WAAW,GAAAc,sBAAA;QAAEnB,KAAK,GAAAmB,sBAAA;QAAEC,KAAK,GAAAD,sBAAA;;MAEhC;MACA,IAAME,UAAoB,GAAAlB,aAAA,CAAAA,aAAA,KACrBiB,KAAK;QACR1B,MAAM,EAAE,CAAC0B,KAAK,CAAC1B,MAAM,IAAI,EAAE,IAAIF,OAAO;QACtCJ,MAAM,EAAEgC,KAAK,CAAChC,MAAM,KAAK9D,aAAa,CAACqE,IAAI,GAAGrE,aAAa,CAACgG,OAAO,GAAGF,KAAK,CAAChC;MAAM,EACnF;MAED,IAAMmC,eAAe,GAAArB,kBAAA,CAAOG,WAAW,CAAC;MACxCkB,eAAe,CAACvB,KAAK,CAAC,GAAGqB,UAAU;MAEnC,OAAOE,eAAe;IACxB;;IAEA;EAAA;IAAA/D,GAAA;IAAAC,KAAA,EACA,SAAA+D,mBAAmBtD,QAAoB,EAAc;MACnD,IAAAuD,sBAAA,GAAoC,IAAI,CAAC7B,qBAAqB,CAAC1B,QAAQ,CAAC;QAAAwD,sBAAA,GAAA3B,cAAA,CAAA0B,sBAAA;QAAjEpB,WAAW,GAAAqB,sBAAA;QAAE1B,KAAK,GAAA0B,sBAAA;QAAEN,KAAK,GAAAM,sBAAA;;MAEhC;MACA,IAAML,UAAoB,GAAAlB,aAAA,CAAAA,aAAA,KACrBiB,KAAK;QACR1B,MAAM,KAAAY,MAAA,CAAKc,KAAK,CAAC1B,MAAM,IAAI,EAAE,OAAI;QACjCN,MAAM,EAAEgC,KAAK,CAAChC,MAAM,KAAK9D,aAAa,CAACqE,IAAI,GAAGrE,aAAa,CAACgG,OAAO,GAAGF,KAAK,CAAChC;MAAM,EACnF;MAED,IAAMmC,eAAe,GAAArB,kBAAA,CAAOG,WAAW,CAAC;MACxCkB,eAAe,CAACvB,KAAK,CAAC,GAAGqB,UAAU;MAEnC,OAAOE,eAAe;IACxB;;IAEA;EAAA;IAAA/D,GAAA;IAAAC,KAAA,EACA,SAAAkE,2BAA2BzD,QAAoB,EAAEsC,IAAS,EAAc;MACtE,IAAAoB,sBAAA,GAAoC,IAAI,CAAChC,qBAAqB,CAAC1B,QAAQ,CAAC;QAAA2D,sBAAA,GAAA9B,cAAA,CAAA6B,sBAAA;QAAjEvB,WAAW,GAAAwB,sBAAA;QAAE7B,KAAK,GAAA6B,sBAAA;QAAET,KAAK,GAAAS,sBAAA;MAChC,IAAAC,IAAA,GAAgCtB,IAAI,IAAI,CAAC,CAAC;QAAAuB,aAAA,GAAAD,IAAA,CAAlC1D,QAAQ;QAARA,QAAQ,GAAA2D,aAAA,cAAG5G,MAAM,CAAC,CAAC,GAAA4G,aAAA;MAC3B,IAAAC,KAAA,GAAiB,CAAAxB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEA,IAAI,KAAI,CAAC,CAAC;QAAzByB,IAAI,GAAAD,KAAA,CAAJC,IAAI;MAEZb,KAAK,CAAC5C,OAAO,GAAG4C,KAAK,CAAC5C,OAAO,IAAI,EAAE;MAEnC4C,KAAK,CAAC5C,OAAO,CAACuC,IAAI,CAAC;QACjBnC,EAAE,EAAER,QAAQ;QACZkB,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;QACrBJ,IAAI,EAAE,wBAAwB;QAC9Bb,IAAI,EAAE,SAAS;QACfpB,SAAS,EAAE+E,IAAI;QACfpD,KAAK,EAAAsB,aAAA,CAAAA,aAAA,KACAK,IAAI;UACP5C,IAAI,EAAEzB,YAAY;UAClB0B,UAAU,EAAEvB;QAAkB;MAElC,CAAC,CAAC;MAEF+D,WAAW,CAACL,KAAK,CAAC,GAAGoB,KAAK;MAC1B,OAAOf,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAAyE,yBAAyBhE,QAAoB,EAAEsC,IAAS,EAAc;MACpE,IAAA2B,sBAAA,GAAwB,IAAI,CAACpD,wBAAwB,CAACb,QAAQ,CAAC;QAAAkE,sBAAA,GAAArC,cAAA,CAAAoC,sBAAA;QAAxDnC,KAAK,GAAAoC,sBAAA;QAAEC,MAAM,GAAAD,sBAAA;MACpB,IAAIpC,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO9B,QAAQ;MACjC,IAAAoE,KAAA,GAAsC9B,IAAI,IAAI,CAAC,CAAC;QAAA+B,cAAA,GAAAD,KAAA,CAAxClE,QAAQ;QAARA,QAAQ,GAAAmE,cAAA,cAAGpH,MAAM,CAAC,CAAC,GAAAoH,cAAA;QAAElE,IAAI,GAAAiE,KAAA,CAAJjE,IAAI;MAEjC,IAAMgC,WAAW,GAAAH,kBAAA,CAAOhC,QAAQ,CAAC;MACjC,IAAI,CAACD,eAAe,CAACoC,WAAW,EAAEL,KAAK,EAAE5B,QAAQ,EAAEC,IAAI,EAAE,QAAQ,CAAC;MAClE,OAAOgC,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAA+E,sBAAsBtE,QAAoB,EAAEsC,IAAS,EAAc;MACjE,IAAAiC,sBAAA,GAAoC,IAAI,CAAC7C,qBAAqB,CAAC1B,QAAQ,CAAC;QAAAwE,sBAAA,GAAA3C,cAAA,CAAA0C,sBAAA;QAAjEpC,WAAW,GAAAqC,sBAAA;QAAE1C,KAAK,GAAA0C,sBAAA;QAAEtB,KAAK,GAAAsB,sBAAA;MAChC,IAAAC,KAAA,GAAgCnC,IAAI,IAAI,CAAC,CAAC;QAAAoC,cAAA,GAAAD,KAAA,CAAlCvE,QAAQ;QAARA,QAAQ,GAAAwE,cAAA,cAAGzH,MAAM,CAAC,CAAC,GAAAyH,cAAA;MAC3B,IAAAC,KAAA,GAA2B,CAAArC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEA,IAAI,KAAI,CAAC,CAAC;QAAnCyB,IAAI,GAAAY,KAAA,CAAJZ,IAAI;QAAElE,QAAQ,GAAA8E,KAAA,CAAR9E,QAAQ;MAEtBqD,KAAK,CAAC5C,OAAO,GAAG4C,KAAK,CAAC5C,OAAO,IAAI,EAAE;MACnC,IAAMsE,KAAK,GAAG,IAAI,CAAChF,YAAY,CAACC,QAAQ,CAAC;MAEzCqD,KAAK,CAAC5C,OAAO,CAACuC,IAAI,CAAC;QACjBnC,EAAE,EAAER,QAAQ;QACZkB,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;QACrBJ,IAAI,EAAE,wBAAwB;QAC9Bb,IAAI,EAAEP,QAAQ,KAAK,OAAO,GAAG,QAAQ,GAAG,OAAO;QAC/Cb,SAAS,EAAE+E,IAAI;QACfpD,KAAK,EAAAsB,aAAA,CAAAA,aAAA,KACAK,IAAI,GACJsC,KAAK;MAEZ,CAAC,CAAC;MAEFzC,WAAW,CAACL,KAAK,CAAC,GAAGoB,KAAK;MAC1B,OAAOf,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAAsF,oBAAoB7E,QAAoB,EAAEsC,IAAS,EAAc;MAC/D,IAAAwC,sBAAA,GAAwB,IAAI,CAACjE,wBAAwB,CAACb,QAAQ,CAAC;QAAA+E,sBAAA,GAAAlD,cAAA,CAAAiD,sBAAA;QAAxDhD,KAAK,GAAAiD,sBAAA;QAAEZ,MAAM,GAAAY,sBAAA;MACpB,IAAAC,KAAA,GAAgC1C,IAAI,IAAI,CAAC,CAAC;QAAA2C,cAAA,GAAAD,KAAA,CAAlC9E,QAAQ;QAARA,QAAQ,GAAA+E,cAAA,cAAGhI,MAAM,CAAC,CAAC,GAAAgI,cAAA;MAC3B,IAAAC,KAAA,GAAqB,CAAA5C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEA,IAAI,KAAI,CAAC,CAAC;QAA7BzC,QAAQ,GAAAqF,KAAA,CAARrF,QAAQ;MAChB,IAAIiC,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO9B,QAAQ;MAEjC,IAAMmC,WAAW,GAAAH,kBAAA,CAAOhC,QAAQ,CAAC;MACjC,IAAI,CAACD,eAAe,CAACoC,WAAW,EAAEL,KAAK,EAAE5B,QAAQ,EAAEoC,IAAI,CAACnC,IAAI,EAAEN,QAAQ,KAAK,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;MAC1G,OAAOsC,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAA4F,qBAAqBnF,QAAoB,EAAEsC,IAAS,EAAc;MAAA,IAAA8C,cAAA;MAChE,IAAAC,sBAAA,GAAoC,IAAI,CAAC3D,qBAAqB,CAAC1B,QAAQ,CAAC;QAAAsF,uBAAA,GAAAzD,cAAA,CAAAwD,sBAAA;QAAjElD,WAAW,GAAAmD,uBAAA;QAAExD,KAAK,GAAAwD,uBAAA;QAAEpC,KAAK,GAAAoC,uBAAA;MAChC,IAAAC,KAAA,GAAoBjD,IAAI,IAAI,CAAC,CAAC;QAAtBhB,OAAO,GAAAiE,KAAA,CAAPjE,OAAO;MACf,IAAAkE,KAAA,GAAwClE,OAAO,IAAI,CAAC,CAAC;QAA7CmE,MAAM,GAAAD,KAAA,CAANC,MAAM;QAAE1B,IAAI,GAAAyB,KAAA,CAAJzB,IAAI;QAAE2B,aAAa,GAAAF,KAAA,CAAbE,aAAa;MACnC,IAAAC,gBAAA,GAAiB3H,eAAe,CAAC0H,aAAa,CAAC;QAAvCtF,IAAI,GAAAuF,gBAAA,CAAJvF,IAAI;MACZ8C,KAAK,aAALA,KAAK,gBAAAkC,cAAA,GAALlC,KAAK,CAAE5C,OAAO,cAAA8E,cAAA,eAAdA,cAAA,CAAgBvC,IAAI,CAAC;QACnBnC,EAAE,EAAE+E,MAAM,IAAIxI,MAAM,CAAC,CAAC;QACtBmE,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;QACrBJ,IAAI,EAAE,wBAAwB;QAC9Bb,IAAI,EAAEA,IAAI,8BAAAgC,MAAA,CAAUhC,IAAI,oBAAO,WAAW;QAC1CpB,SAAS,EAAE+E,IAAI;QACfpD,KAAK,EAAAsB,aAAA,CAAAA,aAAA,KACAK,IAAI,GACJ,IAAI,CAACxC,eAAe,CAAC,CAAC;MAE7B,CAAC,CAAC;MAEFqC,WAAW,CAACL,KAAK,CAAC,GAAGoB,KAAK;MAC1B,OAAOf,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAAqG,sBAAsB5F,QAAoB,EAAEsC,IAAS,EAAc;MACjE,IAAAuD,uBAAA,GAAoC,IAAI,CAACnE,qBAAqB,CAAC1B,QAAQ,CAAC;QAAA8F,uBAAA,GAAAjE,cAAA,CAAAgE,uBAAA;QAAjE1D,WAAW,GAAA2D,uBAAA;QAAEhE,KAAK,GAAAgE,uBAAA;QAAE5C,KAAK,GAAA4C,uBAAA;MAChC,IAAAC,MAAA,GAAqCzD,IAAI,IAAI,CAAC,CAAC;QAAA0D,aAAA,GAAAD,MAAA,CAAvCN,MAAM;QAANA,MAAM,GAAAO,aAAA,cAAG/I,MAAM,GAAA+I,aAAA;QAAE1E,OAAO,GAAAyE,MAAA,CAAPzE,OAAO;MAChC,IAAA2E,MAAA,GAAwB3E,OAAO,IAAI,CAAC,CAAC;QAA7B4E,WAAW,GAAAD,MAAA,CAAXC,WAAW;MACnBhD,KAAK,CAACiD,GAAG,GAAG7D,IAAI,CAAC6D,GAAG;MACpBjD,KAAK,CAACkD,WAAW,GAAGlD,KAAK,CAACkD,WAAW,IAAI,EAAE;MAC3ClD,KAAK,CAACkD,WAAW,CAACvD,IAAI,CAAC;QACrBnC,EAAE,EAAE+E,MAAM;QACVnE,OAAO,EAAE4E;MACX,CAAC,CAAC;;MAEF;MACA,IAAIhD,KAAK,CAAChC,MAAM,KAAK9D,aAAa,CAACqE,IAAI,EAAE;QACvCyB,KAAK,CAAChC,MAAM,GAAG9D,aAAa,CAACgG,OAAO;MACtC;MAEAjB,WAAW,CAACL,KAAK,CAAC,GAAGoB,KAAK;MAC1B,OAAOf,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAA8G,mBAAmBrG,QAAoB,EAAEsC,IAAS,EAAc;MAC9D,IAAAgE,sBAAA,GAAwB,IAAI,CAACzF,wBAAwB,CAACb,QAAQ,CAAC;QAAAuG,sBAAA,GAAA1E,cAAA,CAAAyE,sBAAA;QAAxDxE,KAAK,GAAAyE,sBAAA;QAAEpC,MAAM,GAAAoC,sBAAA;MACpB,IAAAC,MAAA,GAAoBlE,IAAI,IAAI,CAAC,CAAC;QAAtBhB,OAAO,GAAAkF,MAAA,CAAPlF,OAAO;MACf,IAAAmF,MAAA,GAAkCnF,OAAO,IAAI,CAAC,CAAC;QAAvCmE,MAAM,GAAAgB,MAAA,CAANhB,MAAM;QAAEC,aAAa,GAAAe,MAAA,CAAbf,aAAa;MAC7B,IAAAgB,iBAAA,GAAiB1I,eAAe,CAAC0H,aAAa,CAAC;QAAvCtF,IAAI,GAAAsG,iBAAA,CAAJtG,IAAI;MACZ,IAAI0B,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO9B,QAAQ;MACjC,IAAMmC,WAAW,GAAAH,kBAAA,CAAOhC,QAAQ,CAAC;MACjC,IAAI,CAACD,eAAe,CAACoC,WAAW,EAAEL,KAAK,EAAE2D,MAAM,EAAEnD,IAAI,CAACnC,IAAI,EAAEC,IAAI,oCAAAgC,MAAA,CAAWhC,IAAI,oBAAO,UAAU,CAAC;MACjG,OAAO+B,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAAoH,eAAe3G,QAAoB,EAAEsC,IAAS,EAAc;MAC1D,IAAAsE,uBAAA,GAAoC,IAAI,CAAClF,qBAAqB,CAAC1B,QAAQ,CAAC;QAAA6G,uBAAA,GAAAhF,cAAA,CAAA+E,uBAAA;QAAjEzE,WAAW,GAAA0E,uBAAA;QAAE/E,KAAK,GAAA+E,uBAAA;QAAE3D,KAAK,GAAA2D,uBAAA;MAChC,IAAQC,WAAW,GAAiCxE,IAAI,CAAhDwE,WAAW;QAAExF,OAAO,GAAwBgB,IAAI,CAAnChB,OAAO;QAAEyF,OAAO,GAAezE,IAAI,CAA1ByE,OAAO;QAAEC,QAAQ,GAAK1E,IAAI,CAAjB0E,QAAQ;MAC/C,IAAID,OAAO,EAAE;QACX7D,KAAK,CAACiD,GAAG,GAAG7D,IAAI,CAAC6D,GAAG;QACpB;QACA,IAAIjD,KAAK,CAAChC,MAAM,KAAK9D,aAAa,CAACqE,IAAI,EAAE;UACvCyB,KAAK,CAAChC,MAAM,GAAG9D,aAAa,CAACgG,OAAO;QACtC;QACA;QACA,IAAI0D,WAAW,KAAK,MAAM,IAAI,MAAM,IAAI5D,KAAK,CAAC5B,OAAO,EAAE;UACrD4B,KAAK,CAAC5B,OAAO,CAACC,IAAI,IAAID,OAAO;QAC/B;;QAEA;QACA,IAAIwF,WAAW,KAAK,MAAM,EAAE;UAC1B5D,KAAK,CAAC5B,OAAO,CAACC,IAAI,IAAI0F,IAAI,CAACC,SAAS,CAAC5F,OAAO,CAAC;QAC/C;MAEF,CAAC,MAAM;QACL4B,KAAK,CAAChC,MAAM,GAAG9D,aAAa,CAAC+J,MAAM;QACnCjE,KAAK,CAAC5B,OAAO,CAACC,IAAI,yCAAAa,MAAA,CAAkC4E,QAAQ,YAAS;MACvE;MAEA7E,WAAW,CAACL,KAAK,CAAC,GAAGoB,KAAK;MAC1B,OAAOf,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAA6H,aAAapH,QAAoB,EAAEsC,IAAS,EAAc;MACxD,IAAA+E,sBAAA,GAAwB,IAAI,CAACxG,wBAAwB,CAACb,QAAQ,CAAC;QAAAsH,uBAAA,GAAAzF,cAAA,CAAAwF,sBAAA;QAAxDvF,KAAK,GAAAwF,uBAAA;QAAEnD,MAAM,GAAAmD,uBAAA;MACpB,IAAAC,MAAA,GAAwEjF,IAAI,IAAI,CAAC,CAAC;QAAAkF,WAAA,GAAAD,MAAA,CAA1EjF,IAAI;QAAAmF,YAAA,GAAAD,WAAA,cAA4B,CAAC,CAAC,GAAAA,WAAA;QAAAE,qBAAA,GAAAD,YAAA,CAA1BvH,QAAQ;QAARA,QAAQ,GAAAwH,qBAAA,cAAGzK,MAAM,CAAC,CAAC,GAAAyK,qBAAA;QAASvH,IAAI,GAAAoH,MAAA,CAAJpH,IAAI;QAAEwH,iBAAiB,GAAAJ,MAAA,CAAjBI,iBAAiB;MACnE,IAAI7F,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO9B,QAAQ;MAEjC,IAAMmC,WAAW,GAAAH,kBAAA,CAAOhC,QAAQ,CAAC;MACjC,IAAMK,GAAG,GAAG8B,WAAW,CAACL,KAAK,CAAgB;MAC7C,IAAI6F,iBAAiB,EAAE;QACrBtH,GAAG,CAACC,OAAO,GAAGD,GAAG,CAACC,OAAO,IAAI,EAAE;QAC/BD,GAAG,CAACC,OAAO,CAACuC,IAAI,CAAC;UACfnC,EAAE,EAAER,QAAQ,IAAIjD,MAAM,CAAC,CAAC;UACxBmE,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;UACrBJ,IAAI,EAAE,wBAAwB;UAC9Bb,IAAI,EAAE,MAAM;UACZO,KAAK,EAAAsB,aAAA,CAAAA,aAAA,KACAK,IAAI;YACPnC,IAAI,EAAEA,IAAI,GAAG,CAACA,IAAI,GAAG,IAAI,EAAES,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YACzClB,IAAI,EAAExB,aAAa;YACnByB,UAAU,EAAExB;UAAmB;QAEnC,CAAC,CAAC;MACJ;MAEAkC,GAAG,CAACa,MAAM,GAAG9D,aAAa,CAACsF,IAAI;MAC/B,OAAOP,WAAW;IACpB;;IAEA;EAAA;IAAA7C,GAAA;IAAAC,KAAA,EACA,SAAAqI,gBAAgB5H,QAAoB,EAAE6H,YAAiB,EAAc;MACnE,IAAI,EAACA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEvG,OAAO,KAAI,EAACuG,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEvF,IAAI,GAAE,OAAOtC,QAAQ;MAElE,IAAI8H,QAAQ,GAAGD,YAAY,CAACvF,IAAI,IAAIuF,YAAY,CAACvG,OAAO;MACxD,IAAI,OAAOwG,QAAQ,KAAK,QAAQ,EAAE;QAChCA,QAAQ,GAAGtK,aAAa,CAACsK,QAAQ,EAAE;UACjCC,MAAM,EAAEpJ,UAAU,CAACmJ,QAAQ;UAC3BxF,IAAI,EAAE;YACJwE,WAAW,EAAE,MAAM;YACnBxF,OAAO,EAAE,eAAe;YACxByF,OAAO,EAAE,KAAK;YACdC,QAAQ,EAAE;UACZ;QACF,CAAC,CAAC;MACJ;MAEA,IAAAgB,SAAA,GAA8BF,QAAQ;QAA9BC,MAAM,GAAAC,SAAA,CAAND,MAAM;QAAAE,cAAA,GAAAD,SAAA,CAAE1F,IAAI;QAAJA,IAAI,GAAA2F,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;MAEzB3F,IAAI,CAAC6D,GAAG,GAAG0B,YAAY;MAEvB,QAAQE,MAAM;QACZ,KAAKpJ,UAAU,CAACuJ,OAAO;UACrB,OAAO,IAAI,CAAC7F,gBAAgB,CAACrC,QAAQ,EAAEsC,IAAI,CAAC;QAE9C,KAAK3D,UAAU,CAACwJ,SAAS;UACvB,OAAO,IAAI,CAACpF,eAAe,CAAC/C,QAAQ,EAAEsC,IAAI,CAAC;QAE7C,KAAK3D,UAAU,CAACyJ,YAAY;UAC1B,OAAO,IAAI,CAAC9E,kBAAkB,CAACtD,QAAQ,CAAC;QAE1C,KAAKrB,UAAU,CAAC0J,cAAc;UAC5B,OAAO,IAAI,CAAClD,oBAAoB,CAACnF,QAAQ,EAAEsC,IAAI,CAAC;QAElD,KAAK3D,UAAU,CAAC2J,eAAe;UAC7B,OAAO,IAAI,CAAC1C,qBAAqB,CAAC5F,QAAQ,EAAEsC,IAAI,CAAC;QAEnD,KAAK3D,UAAU,CAAC4J,YAAY;UAC1B,OAAO,IAAI,CAAClC,kBAAkB,CAACrG,QAAQ,EAAEsC,IAAI,CAAC;QAEhD,KAAK3D,UAAU,CAAC6J,oBAAoB;UAClC,OAAO,IAAI,CAAC/E,0BAA0B,CAACzD,QAAQ,EAAEsC,IAAI,CAAC;QAExD,KAAK3D,UAAU,CAAC8J,kBAAkB;UAChC,OAAO,IAAI,CAACzE,wBAAwB,CAAChE,QAAQ,EAAEsC,IAAI,CAAC;QAEtD,KAAK3D,UAAU,CAAC+J,eAAe;UAC7B,OAAO,IAAI,CAACpE,qBAAqB,CAACtE,QAAQ,EAAEsC,IAAI,CAAC;QAEnD,KAAK3D,UAAU,CAACgK,aAAa;UAC3B,OAAO,IAAI,CAAC9D,mBAAmB,CAAC7E,QAAQ,EAAEsC,IAAI,CAAC;QAEjD,KAAK3D,UAAU,CAACmJ,QAAQ;UACtB,OAAO,IAAI,CAACnB,cAAc,CAAC3G,QAAQ,EAAEsC,IAAI,CAAC;QAE5C,KAAK3D,UAAU,CAACiK,MAAM;UACpB,OAAO,IAAI,CAACxB,YAAY,CAACpH,QAAQ,EAAEsC,IAAI,CAAC;QAE1C;UACE,OAAOtC,QAAQ;MACnB;IACF;EAAC;EAAA,OAAAlB,gBAAA;AAAA;AAGH,IAAM+J,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,MAA8B,EAAK;EAC5D,IACEC,GAAG,GAQDD,MAAM,CARRC,GAAG;IACHC,KAAK,GAOHF,MAAM,CAPRE,KAAK;IACLC,MAAM,GAMJH,MAAM,CANRG,MAAM;IACNC,OAAO,GAKLJ,MAAM,CALRI,OAAO;IACPC,SAAS,GAIPL,MAAM,CAJRK,SAAS;IACTC,SAAS,GAGPN,MAAM,CAHRM,SAAS;IAAAC,iBAAA,GAGPP,MAAM,CAFR/J,SAAS;IAATA,SAAS,GAAAsK,iBAAA,cAAG,EAAE,GAAAA,iBAAA;IACXC,IAAI,GAAAC,wBAAA,CACLT,MAAM,EAAAU,SAAA;;EAEV;EACA,IAAAC,SAAA,GAAgC9M,QAAQ,CAAa,EAAE,CAAC;IAAA+M,UAAA,GAAA7H,cAAA,CAAA4H,SAAA;IAAjDzJ,QAAQ,GAAA0J,UAAA;IAAEC,WAAW,GAAAD,UAAA;EAC5B;EACA;EACA;EACA,IAAAE,UAAA,GAAsCjN,QAAQ,CAAgB,EAAE,CAAC;IAAAkN,UAAA,GAAAhI,cAAA,CAAA+H,UAAA;IAA1DE,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAClC;EACA;EACA;EACA,IAAAG,UAAA,GAAkDrN,QAAQ,CAAC;MAAEsN,KAAK,EAAE,CAAC;MAAEC,OAAO,EAAE,CAAC;MAAEC,QAAQ,EAAE1M;IAAkB,CAAC,CAAC;IAAA2M,UAAA,GAAAvI,cAAA,CAAAmI,UAAA;IAA1GK,iBAAiB,GAAAD,UAAA;IAAEE,oBAAoB,GAAAF,UAAA;EAC9C;EACA,IAAAG,UAAA,GAAgD5N,QAAQ,CAAS,EAAE,CAAC;IAAA6N,UAAA,GAAA3I,cAAA,CAAA0I,UAAA;IAA7DE,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAC5C;EACA,IAAAG,UAAA,GAA8BhO,QAAQ,CAAM,IAAI,CAAC;IAAAiO,WAAA,GAAA/I,cAAA,CAAA8I,UAAA;IAA1CE,OAAO,GAAAD,WAAA;IAAEE,UAAU,GAAAF,WAAA;EAC1B;EACA,IAAMG,WAAW,GAAGhO,MAAM,CAAoD,CAAC,CAAC,CAAC;EAEjF,IAAAiO,MAAA,GAAkB/B,MAAM,IAAI,CAAC,CAAC;IAAtBgC,KAAK,GAAAD,MAAA,CAALC,KAAK;;EAEb;EACA,IAAMC,gBAAgB,GAAGrO,OAAO,CAAC;IAAA,OAAM,IAAIiC,gBAAgB,CAACC,SAAS,CAAC;EAAA,GAAE,CAACA,SAAS,CAAC,CAAC;;EAEpF;EACAnC,SAAS,CAAC,YAAM;IACd,IAAImM,GAAG,IAAIE,MAAM,EAAE;MACjB,IAAMkC,UAAU;QAAA,IAAAC,MAAA,GAAAC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAAA;UAAA,IAAAC,qBAAA,EAAAC,KAAA,EAAAC,MAAA;UAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAC,SAAAC,QAAA;YAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;cAAA;gBAAAF,QAAA,CAAAC,IAAA;gBAAAD,QAAA,CAAAE,IAAA;gBAAA,OAEgBrO,cAAc,CAAAsE,aAAA;kBAAG8G,GAAG,EAAHA;gBAAG,GAAKE,MAAM,CAAE,CAAC;cAAA;gBAAAwC,qBAAA,GAAAK,QAAA,CAAAG,IAAA;gBAAzD3J,KAAI,GAAAmJ,qBAAA,CAAJnJ,IAAI;gBAAEqJ,MAAM,GAAAF,qBAAA,CAANE,MAAM;gBACpB,IAAIA,MAAM,CAACO,IAAI,KAAKxO,gBAAgB,EAAE;kBACpCoN,UAAU,CAACxI,KAAI,CAAC;;kBAEhB;kBACA8G,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG;oBACV8C,IAAI,EAAE5O,WAAW,CAAC6O,uBAAuB;oBACzCC,OAAO,EAAE;kBACX,CAAC,CAAC;gBACJ,CAAC,MAAM;kBACLlD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG;oBACRgD,IAAI,EAAGP,MAAM,CAACO,IAAI,IAAkB7O,SAAS,CAACgP,aAAa;oBAC3DD,OAAO,EAAET,MAAM,CAACS,OAAO,IAAI;kBAC7B,CAAC,CAAC;gBACJ;gBAACN,QAAA,CAAAE,IAAA;gBAAA;cAAA;gBAAAF,QAAA,CAAAC,IAAA;gBAAAD,QAAA,CAAAQ,EAAA,GAAAR,QAAA;gBAED5C,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG;kBACRgD,IAAI,EAAE7O,SAAS,CAACkP,SAAS;kBACzBH,OAAO,EAAE;gBACX,CAAC,CAAC;cAAC;cAAA;gBAAA,OAAAN,QAAA,CAAAU,IAAA;YAAA;UAAA,GAAAhB,OAAA;QAAA,CAEN;QAAA,gBAvBKL,UAAUA,CAAA;UAAA,OAAAC,MAAA,CAAAqB,KAAA,OAAAzN,SAAA;QAAA;MAAA,GAuBf;MACDmM,UAAU,CAAC,CAAC;IACd;IACF;EACA,CAAC,EAAE,CAACpC,GAAG,EAAEE,MAAM,CAAC,CAAC;EAEjB,IAAAyD,qBAAA,GAA+CxP,qBAAqB,CAAC;MACnEyP,SAAS,EAAE,IAAI;MACf5N,SAAS,EAATA,SAAS;MACT6N,OAAO,EAAE,SAAAA,QAAA,EAAM;QACb;QACAC,UAAU,CAAC,YAAM;UAAA,IAAAC,oBAAA,EAAAC,qBAAA;UACf,IAAI,CAAAD,oBAAA,GAAA/B,WAAW,CAACiC,OAAO,cAAAF,oBAAA,eAAnBA,oBAAA,CAAqBG,cAAc,KAAAF,qBAAA,GAAIhC,WAAW,CAACiC,OAAO,cAAAD,qBAAA,eAAnBA,qBAAA,CAAqBG,SAAS,EAAE;YACzE3P,OAAO,CAAC4P,IAAI,CAACpE,GAAG,CAAC;UACnB;QACF,CAAC,EAAE,GAAG,CAAC;MACT,CAAC;MACDqE,MAAM,WAAAA,OAACC,GAAG,EAAE;QACVC,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEF,GAAG,CAAC;MACnC;IACF,CAAC,CAAC;IAdMG,KAAK,GAAAd,qBAAA,CAALc,KAAK;IAAEC,OAAO,GAAAf,qBAAA,CAAPe,OAAO;IAAE5F,YAAY,GAAA6E,qBAAA,CAAZ7E,YAAY;IAAE2E,IAAI,GAAAE,qBAAA,CAAJF,IAAI;;EAgB1C;EACA5P,SAAS,CAAC,YAAM;IACd,IAAI,CAACiL,YAAY,EAAE;IAEnB8B,WAAW,CAAC,UAACoC,IAAI;MAAA,OAAKb,gBAAgB,CAACtD,eAAe,CAACmE,IAAI,EAAElE,YAAY,CAAC;IAAA,EAAC;EAC7E,CAAC,EAAE,CAACA,YAAY,EAAEqD,gBAAgB,CAAC,CAAC;;EAEpC;EACA,IAAMwC,UAAU,GAAG5Q,WAAW;IAAA,IAAA6Q,MAAA,GAAAtC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAC,SAAAqC,SAAOC,WAAmB,EAAEvM,OAAY;MAAA,OAAAgK,mBAAA,GAAAM,IAAA,UAAAkC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAhC,IAAA,GAAAgC,SAAA,CAAA/B,IAAA;UAAA;YAAA+B,SAAA,CAAAzB,EAAA,GAC7DuB,WAAW;YAAAE,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAAzB,EAAA,KACZ,UAAU,OAAAyB,SAAA,CAAAzB,EAAA,KAwBV,SAAS;YAAA;UAAA;YAvBZ3C,WAAW,CAAC,UAACoC,IAAI,EAAK;cACpB,IAAMiC,aAAa,GAAGjC,IAAI,CAACvJ,SAAS,CAAC,UAAC/B,IAAI;gBAAA,IAAAwN,WAAA;gBAAA,QAAAA,WAAA,GAAKxN,IAAI,CAACE,KAAK,cAAAsN,WAAA,uBAAVA,WAAA,CAAYC,QAAQ;cAAA,EAAC;cAEpE,IAAIF,aAAa,KAAK,CAAC,CAAC,EAAE;gBACxB,IAAM9L,UAAuB,GAAG;kBAC9BjB,IAAI,EAAE,aAAa;kBACnBP,EAAE,EAAEzD,MAAM,CAAC,CAAC;kBACZmE,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;kBACrBN,IAAI,EAAE5D,WAAW,CAAC6D,SAAS;kBAC3BE,MAAM,EAAE9D,aAAa,CAACsF,IAAI;kBAC1BpB,OAAO,EAAE;oBAAEC,IAAI,EAAED;kBAAQ,CAAC;kBAC1BX,KAAK,EAAE;oBAAEuN,QAAQ,EAAE,IAAI;oBAAEC,QAAQ,EAAE;kBAAK;gBAC1C,CAAC;gBACD,QAAQjM,UAAU,EAAAE,MAAA,CAAAJ,kBAAA,CAAK+J,IAAI;cAC7B;cAEA,OAAOA,IAAI,CAACqC,GAAG,CAAC,UAAC3N,IAAI;gBAAA,IAAA4N,YAAA;gBAAA,OAAM,CAAAA,YAAA,GAAA5N,IAAI,CAACE,KAAK,cAAA0N,YAAA,eAAVA,YAAA,CAAYH,QAAQ,IAAIzN,IAAI,CAACa,OAAO,IAAI,MAAM,IAAIb,IAAI,CAACa,OAAO,GAAAW,aAAA,CAAAA,aAAA,KAChFxB,IAAI;kBAAEa,OAAO,EAAE;oBAAEC,IAAI,EAAED;kBAAQ;gBAAC,KACrCb,IAAI;cAAA,CAAC,CAAC;YACZ,CAAC,CAAC;YAAC,OAAAsN,SAAA,CAAAO,MAAA;UAAA;YAKH3E,WAAW,CAAC,UAACoC,IAAI,EAAK;cACpB,IAAMxJ,YAAY,GAAGwJ,IAAI,CAACvJ,SAAS,CAAC,UAAC/B,IAAI;gBAAA,OAAKA,IAAI,CAACQ,IAAI,KAAK,mBAAmB;cAAA,EAAC;cAChF,IAAM+M,aAAa,GAAGjC,IAAI,CAACvJ,SAAS,CAAC,UAAC/B,IAAI;gBAAA,IAAA8N,YAAA;gBAAA,QAAAA,YAAA,GAAK9N,IAAI,CAACE,KAAK,cAAA4N,YAAA,uBAAVA,YAAA,CAAYL,QAAQ;cAAA,EAAC;cAEpE,IAAMzL,aAAgC,GAAG;gBACvC/B,EAAE,EAAEzD,MAAM,CAAC,CAAC;gBACZgE,IAAI,EAAE,mBAAmB;gBACzBG,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;gBACrBH,MAAM,EAAE9D,aAAa,CAACsF,IAAI;gBAC1B3B,IAAI,EAAE5D,WAAW,CAACwF,UAAU;gBAC5BrB,OAAO,EAAPA;cACF,CAAC;cAED,IAAIiB,YAAY,KAAK,CAAC,CAAC,EAAE;gBACvB,IAAMJ,WAAW,GAAAH,kBAAA,CAAO+J,IAAI,CAAC;gBAC7B,IAAMyC,WAAW,GAAGR,aAAa,KAAK,CAAC,CAAC,GAAG,CAAC,GAAGA,aAAa,GAAG,CAAC;gBAChE7L,WAAW,CAACsM,MAAM,CAACD,WAAW,EAAE,CAAC,EAAE/L,aAAa,CAAC;gBACjD,OAAON,WAAW;cACpB;cAEA,OAAO4J,IAAI,CAACqC,GAAG,CAAC,UAAC3N,IAAI;gBAAA,OAAMA,IAAI,CAACQ,IAAI,KAAK,mBAAmB,GAAAgB,aAAA,CAAAA,aAAA,KACnDxB,IAAI;kBAAEa,OAAO,EAAPA;gBAAO,KAClBb,IAAI;cAAA,CAAC,CAAC;YACZ,CAAC,CAAC;YAAC,OAAAsN,SAAA,CAAAO,MAAA;UAAA;YAKHhB,OAAO,CAACoB,IAAI,0BAAAtM,MAAA,CAA0ByL,WAAW,CAAE,CAAC;UAAC;UAAA;YAAA,OAAAE,SAAA,CAAAvB,IAAA;QAAA;MAAA,GAAAoB,QAAA;IAAA,CAE1D;IAAA,iBAAAe,EAAA,EAAAC,GAAA;MAAA,OAAAjB,MAAA,CAAAlB,KAAA,OAAAzN,SAAA;IAAA;EAAA,KAAE,EAAE,CAAC;;EAEN;EACA,IAAM6P,IAAI;IAAA,IAAAC,MAAA,GAAAzD,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAwD,SAAgBzN,OAAU,EAAEX,KAAW;MAAA,IAAAqO,MAAA;QAAA9M,UAAA;QAAA+M,WAAA;QAAAC,MAAA,GAAAlQ,SAAA;MAAA,OAAAsM,mBAAA,GAAAM,IAAA,UAAAuD,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArD,IAAA,GAAAqD,SAAA,CAAApD,IAAA;UAAA;YAAEgD,MAAM,GAAAE,MAAA,CAAAjQ,MAAA,QAAAiQ,MAAA,QAAAhQ,SAAA,GAAAgQ,MAAA,MAAG,IAAI;YACjE,IAAIF,MAAM,EAAE;cACJ9M,UAAoB,GAAG;gBAC3BjB,IAAI,EAAE,aAAa;gBACnBP,EAAE,EAAEzD,MAAM,CAAC,CAAC;gBACZmE,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;gBACrBN,IAAI,EAAE5D,WAAW,CAACkS,IAAI;gBACtBnO,MAAM,EAAE9D,aAAa,CAACsF,IAAI;gBAC1B/B,KAAK,EAALA,KAAK;gBACLW,OAAO,EAAE;kBAAEC,IAAI,EAAED;gBAAkB;cACrC,CAAC;cAEDqI,WAAW,CAAC,UAACoC,IAAI,EAAK;gBACpB,IAAM5J,WAAW,GAAG4J,IAAI,CAACuD,MAAM,CAAC,UAAC7O,IAAI;kBAAA,OAAKA,IAAI,CAACQ,IAAI,KAAK,mBAAmB;gBAAA,EAAC;gBAC5EkB,WAAW,CAACU,IAAI,CAACX,UAAU,CAAC;gBAC5B,OAAOC,WAAW;cACpB,CAAC,CAAC;YACJ;YAEM8M,WAAgB,GAAG;cACvBM,SAAS,EAAE;gBACTC,UAAU,EAAElO;cACd,CAAC;cACDmO,SAAS,EAAEhF;YACb,CAAC;YAED+C,KAAK,IAAApL,MAAA,CACA2G,GAAG,2CAAA3G,MAAA,CAAwC6I,KAAK,eACnDgE,WAAW,EACX;cACES,aAAa,YAAAtN,MAAA,CAAY4G,KAAK;YAChC,CACF,CAAC;UAAC;UAAA;YAAA,OAAAoG,SAAA,CAAA5C,IAAA;QAAA;MAAA,GAAAuC,QAAA;IAAA,CACH;IAAA,gBAjCKF,IAAIA,CAAAc,GAAA,EAAAC,GAAA;MAAA,OAAAd,MAAA,CAAArC,KAAA,OAAAzN,SAAA;IAAA;EAAA,GAiCT;;EAED;EACA,IAAM6Q,MAAM,GAAG/S,WAAW,CAAC,YAAM;IAC/B6M,WAAW,CAAC,UAACoC,IAAI,EAAK;MAAA,IAAA+D,oBAAA;MACpB,IAAM3N,WAAW,GAAAH,kBAAA,CAAO+J,IAAI,CAAC;;MAE7B;MACA,IAAMgE,WAAW,GAAG5N,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE6N,aAAa,CAC5C,UAACC,CAAC;QAAA,OAAKA,CAAC,CAAClP,IAAI,KAAK5D,WAAW,CAAC6D,SAAS,IAAIiP,CAAC,CAAChP,IAAI,KAAK,aAAa;MAAA,CACrE,CAAC;MACD,IAAI8O,WAAW,KAAK,CAAC,CAAC,EAAE;QACtB5N,WAAW,CAACsM,MAAM,CAACsB,WAAW,EAAE,CAAC,CAAC;MACpC;;MAEA;MACA,IAAMxN,YAAY,GAAGJ,WAAW,CAACK,SAAS,CAAC,UAAC/B,IAAI;QAAA,OAAKA,IAAI,CAACQ,IAAI,KAAK,mBAAmB;MAAA,EAAC;MACvF,IAAIsB,YAAY,KAAK,CAAC,CAAC,EAAE;QACvBJ,WAAW,CAACsM,MAAM,CAAClM,YAAY,EAAE,CAAC,CAAC;MACrC;;MAEA;MACA,IAAM2N,WAAW,GAAG/N,WAAW,CAACgO,QAAQ,CACtC,UAACF,CAAC;QAAA,OAAKA,CAAC,CAAClP,IAAI,KAAK5D,WAAW,CAACkS,IAAI,IAAIY,CAAC,CAAChP,IAAI,KAAK,aAAa;MAAA,CAChE,CAA4B;MAE5B,IAAIiP,WAAW,aAAXA,WAAW,gBAAAJ,oBAAA,GAAXI,WAAW,CAAE5O,OAAO,cAAAwO,oBAAA,eAApBA,oBAAA,CAAsBvO,IAAI,EAAE;QAC9BsL,UAAU,CAAC,YAAM;UACfgC,IAAI,CAACqB,WAAW,CAAC5O,OAAO,CAACC,IAAI,EAAY2O,WAAW,CAACvP,KAAK,EAAE,KAAK,CAAC;QACpE,CAAC,EAAE,CAAC,CAAC;MACP;MAEA,OAAOwB,WAAW;IACpB,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC0M,IAAI,CAAC,CAAC;;EAEV;EACA,IAAMuB,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAS;IACrB5D,IAAI,CAAC,CAAC;IACN7C,WAAW,CAAC,UAACoC,IAAI;MAAA,OAAKA,IAAI,CAACqC,GAAG,CAAC,UAAC6B,CAAC,EAAK;QACpC;QACA,IAAIA,CAAC,CAAC/O,MAAM,KAAK9D,aAAa,CAACgG,OAAO,IAAI6M,CAAC,CAAC/O,MAAM,KAAK9D,aAAa,CAACqE,IAAI,EAAE;UACzE,IAAM4O,MAAM,GAAApO,aAAA,CAAAA,aAAA,KAAQgO,CAAC;YAAE/O,MAAM,EAAE9D,aAAa,CAACsF;UAAI,EAAE;UACnD,IAAIuN,CAAC,CAAChP,IAAI,KAAK,aAAa,IAAIgP,CAAC,CAAC/O,MAAM,KAAK9D,aAAa,CAACqE,IAAI,EAAE;YAC9D4O,MAAM,CAAiB/O,OAAO,CAACC,IAAI,GAAG,4CAA4C;UACrF;UACA,OAAO8O,MAAM;QACf;QACA,OAAOJ,CAAC;MACV,CAAC,CAAC;IAAA,EAAC;EACL,CAAC;;EAED;EACA,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIhO,IAAS,EAAmB;IAAA,IAAjBb,IAAI,GAAAzC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAC7C2K,WAAW,CAAC,UAACoC,IAAI,EAAK;MACpB,IAAMwE,gBAA4B,GAAG,EAAE;MACvCjO,IAAI,CAACkO,OAAO,CAAC,UAAC/P,IAAS,EAAK;QAC1B,IAAAgQ,MAAA,GAAuChQ,IAAI,IAAI,CAAC,CAAC;UAAzCa,OAAO,GAAAmP,MAAA,CAAPnP,OAAO;UAAEoP,WAAW,GAAAD,MAAA,CAAXC,WAAW;UAAE3P,IAAI,GAAA0P,MAAA,CAAJ1P,IAAI;QAElC,IAAIA,IAAI,KAAK,MAAM,EAAE;UACnB,IAAMmB,UAAoB,GAAG;YAC3BjB,IAAI,EAAE,aAAa;YACnBP,EAAE,EAAEzD,MAAM,CAAC,CAAC;YACZmE,SAAS,EAAEsP,WAAW;YACtB3P,IAAI,EAAE5D,WAAW,CAACkS,IAAI;YACtBnO,MAAM,EAAE9D,aAAa,CAACsF,IAAI;YAC1BpB,OAAO,EAAE;cACPC,IAAI,EAAED;YACR;UACF,CAAC;UAEDiP,gBAAgB,CAAC1N,IAAI,CAACX,UAAU,CAAC;QACnC,CAAC,MAAM,IAAInB,IAAI,KAAK,IAAI,EAAE;UACxB,IAAMmB,WAAuB,GAAG;YAC9BxB,EAAE,EAAEzD,MAAM,CAAC,CAAC;YACZgE,IAAI,EAAE,aAAa;YACnBG,SAAS,EAAEsP,WAAW;YACtB3P,IAAI,EAAE5D,WAAW,CAAC6D,SAAS;YAC3BM,OAAO,EAAE;cAAEC,IAAI,EAAED;YAAQ,CAAC;YAC1BhB,OAAO,EAAE,EAAE;YACXY,MAAM,EAAE9D,aAAa,CAACsF,IAAI;YAC1BiO,MAAM,EAAElQ,IAAI,CAACkQ,MAAM;YACnBxK,GAAG,EAAE1F,IAAI,CAAC0F;UACZ,CAAC;UAEDoK,gBAAgB,CAAC1N,IAAI,CAACX,WAAU,CAAC;QACnC;MACF,CAAC,CAAC;MAEF,IAAIT,IAAI,EAAE;QACR,UAAAW,MAAA,CAAWmO,gBAAgB;MAC7B;MACA,UAAAnO,MAAA,CAAAJ,kBAAA,CAAW+J,IAAI,GAAKwE,gBAAgB;IACtC,CAAC,CAAC;EACJ,CAAC;;EAED;EACA,IAAMK,YAAY;IAAA,IAAAC,MAAA,GAAAxF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAuF,SAAA;MAAA,IAAAC,qBAAA,EAAAC,cAAA,EAAAC,MAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,eAAA,EAAAlD,QAAA,EAAAmD,cAAA,EAAAC,eAAA,EAAAC,WAAA;MAAA,OAAAjG,mBAAA,GAAAM,IAAA,UAAA4F,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA1F,IAAA,GAAA0F,SAAA,CAAAzF,IAAA;UAAA;YAAA+E,qBAAA,GACalG,OAAO,CAA/BmG,cAAc,EAAdA,cAAc,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA,EAC3B;YAAAE,MAAA,GACoDD,cAAc,IAAI,CAAC,CAAC,EAAAE,qBAAA,GAAAD,MAAA,CAAhEE,mBAAmB,EAAnBA,mBAAmB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA,EAAAE,eAAA,GAAAH,MAAA,CAAE/C,QAAQ,EAARA,QAAQ,GAAAkD,eAAA,cAAG,EAAE,GAAAA,eAAA,EAE/C;YACA,IAAIlD,QAAQ,EAAE;cACZR,UAAU,CAAC,UAAU,EAAEQ,QAAQ,CAAC;YAClC,CAAC,MAAM;cACLvE,WAAW,CAAC,UAACoC,IAAI;gBAAA,OAAKA,IAAI,CAACuD,MAAM,CAAC,UAAC7O,IAAI;kBAAA,IAAAiR,YAAA;kBAAA,OAAK,GAAAA,YAAA,GAACjR,IAAI,CAACE,KAAK,cAAA+Q,YAAA,eAAVA,YAAA,CAAYxD,QAAQ;gBAAA,EAAC;cAAA,EAAC;YACrE;;YAEA;YACMmD,cAAc,GAAGF,mBAAmB,CAAC7B,MAAM,CAAC,UAAC7O,IAAY;cAAA,OAAKA,IAAI;YAAA,EAAC;YAEzE,IAAI4Q,cAAc,CAACpS,MAAM,GAAG,CAAC,EAAE;cACvBqS,eAAe,GAAGD,cAAc,CAACjD,GAAG,CAAC,UAAC3N,IAAY,EAAEqB,KAAa;gBAAA,OAAM;kBAC3ExC,GAAG,EAAEwC,KAAK,GAAG,CAAC;kBACdc,WAAW,EAAEnC;gBACf,CAAC;cAAA,CAAC,CAAC,EACH;cACM8Q,WAAW,GAAGvR,QAAQ,CAAC2R,IAAI,CAAC,UAAClR,IAAI;gBAAA,IAAAmR,YAAA;gBAAA,OAAM,GAAAA,YAAA,GAACnR,IAAI,CAACE,KAAK,cAAAiR,YAAA,eAAVA,YAAA,CAAY1D,QAAQ,KAAIzN,IAAI,CAACQ,IAAI,KAAK,mBAAmB;cAAA,CAAC,CAAC;cACzG,IAAI,CAACsQ,WAAW,EAAE;gBAChB7D,UAAU,CAAC,SAAS,EAAE4D,eAAe,CAAC;cACxC;YACF,CAAC,MAAM;cACL3H,WAAW,CAAC,UAACoC,IAAI;gBAAA,OAAKA,IAAI,CAACuD,MAAM,CAAC,UAAC7O,IAAI;kBAAA,OAAK,EAAEA,IAAI,CAACQ,IAAI,KAAK,mBAAmB,CAAC;gBAAA,EAAC;cAAA,EAAC;YACpF;UAAC;UAAA;YAAA,OAAAwQ,SAAA,CAAAjF,IAAA;QAAA;MAAA,GAAAsE,QAAA;IAAA,CACF;IAAA,gBA5BKF,YAAYA,CAAA;MAAA,OAAAC,MAAA,CAAApE,KAAA,OAAAzN,SAAA;IAAA;EAAA,GA4BjB;;EAED;EACA,IAAM6S,oBAAoB;IAAA,IAAAC,MAAA,GAAAzG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAwG,SAAA;MAAA,IAAAC,WAAA;QAAAC,qBAAA;QAAAC,sBAAA;QAAAC,MAAA;QAAAC,UAAA;QAAAzG,MAAA;QAAA0G,cAAA;QAAAC,OAAA;QAAA7C,SAAA;QAAA8C,MAAA,GAAAvT,SAAA;MAAA,OAAAsM,mBAAA,GAAAM,IAAA,UAAA4G,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA1G,IAAA,GAAA0G,SAAA,CAAAzG,IAAA;UAAA;YAAOgG,WAAW,GAAAO,MAAA,CAAAtT,MAAA,QAAAsT,MAAA,QAAArT,SAAA,GAAAqT,MAAA,MAAG,KAAK;YAAAE,SAAA,CAAA1G,IAAA;YAAA0G,SAAA,CAAAzG,IAAA;YAAA,OAEHpO,gBAAgB,CAAC;cAC/DmL,GAAG,EAAHA,GAAG;cACHkC,KAAK,EAALA,KAAK;cACLjC,KAAK,EAALA,KAAK;cACLkB,OAAO,EAAEG,iBAAiB,CAACH,OAAO;cAClCC,QAAQ,EAAEE,iBAAiB,CAACF;YAC9B,CAAC,CAAC;UAAA;YAAA8H,qBAAA,GAAAQ,SAAA,CAAAxG,IAAA;YAAAiG,sBAAA,GAAAD,qBAAA,CANM3P,IAAI;YAAJA,MAAI,GAAA4P,sBAAA,cAAG,EAAE,GAAAA,sBAAA;YAAEE,UAAU,GAAAH,qBAAA,CAAVG,UAAU;YAAEzG,MAAM,GAAAsG,qBAAA,CAANtG,MAAM;YAQrC,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,IAAI,MAAKxO,gBAAgB,EAAE;cACrC,IAAI4E,MAAI,CAACrD,MAAM,GAAG,CAAC,EAAE;gBACboT,cAAc,GAAG/P,MAAI,CAAC8L,GAAG,CAAC,UAAC3N,IAAI,EAAK;kBACxC,OAAO;oBACLnB,GAAG,EAAEmB,IAAI,CAACgP,SAAS;oBACnBiD,KAAK,EAAEjS,IAAI,CAACkS,KAAK,IAAI,KAAK;oBAC1BC,SAAS,EAAE,IAAIvR,IAAI,CAACZ,IAAI,CAACoS,UAAU,CAAC,CAACC,OAAO,CAAC,CAAC;oBAC9C9S,QAAQ,EAAE,EAAE;oBACZ+S,IAAI,EAAA9Q,aAAA,KACCxB,IAAI;kBAEX,CAAC;gBACH,CAAC,CAAC;gBAEFsJ,cAAc,CAACsI,cAAc,CAAC;gBAC9B;gBACA/H,oBAAoB,CAAC;kBAAEJ,OAAO,EAAEG,iBAAiB,CAACH,OAAO;kBAAEC,QAAQ,EAAEE,iBAAiB,CAACF,QAAQ;kBAAEF,KAAK,EAAE,CAAAmI,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnI,KAAK,KAAI;gBAAE,CAAC,CAAC;gBAACqI,OAAA,GAC5GhQ,MAAI,aAAJA,MAAI,uBAAJA,MAAI,CAAG,CAAC,CAAC,EAAvBmN,SAAS,GAAA6C,OAAA,CAAT7C,SAAS;gBACjBuC,WAAW,IAAKgB,uBAAuB,CAACvD,SAAS,CAAC;cACpD,CAAC,MAAM;gBACL;gBACA1F,cAAc,CAAC,EAAE,CAAC;gBAClBW,mBAAmB,CAACzN,MAAM,CAAC,CAAC,CAAC;gBAC7B2T,YAAY,CAAC,CAAC;cAChB;cACA;cACAxH,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG;gBACV8C,IAAI,EAAE5O,WAAW,CAAC2V,yBAAyB;gBAC3C7G,OAAO,EAAE;cACX,CAAC,CAAC;YACJ,CAAC,MAAM;cACLwE,YAAY,CAAC,CAAC;YAChB;YAAC6B,SAAA,CAAAzG,IAAA;YAAA;UAAA;YAAAyG,SAAA,CAAA1G,IAAA;YAAA0G,SAAA,CAAAnG,EAAA,GAAAmG,SAAA;UAAA;UAAA;YAAA,OAAAA,SAAA,CAAAjG,IAAA;QAAA;MAAA,GAAAuF,QAAA;IAAA,CAIJ;IAAA,gBA9CKF,oBAAoBA,CAAA;MAAA,OAAAC,MAAA,CAAArF,KAAA,OAAAzN,SAAA;IAAA;EAAA,GA8CzB;;EAED;EACA,IAAMgU,uBAAuB;IAAA,IAAAE,MAAA,GAAA7H,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA4H,SAAO1D,SAAiB;MAAA,IAAA2D,qBAAA,EAAAC,MAAA,EAAA1H,MAAA,EAAA2H,YAAA;MAAA,OAAAhI,mBAAA,GAAAM,IAAA,UAAA2H,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAzH,IAAA,GAAAyH,SAAA,CAAAxH,IAAA;UAAA;YAAA,KAClDyD,SAAS;cAAA+D,SAAA,CAAAxH,IAAA;cAAA;YAAA;YAAA,MACPyD,SAAS,KAAKhF,gBAAgB;cAAA+I,SAAA,CAAAxH,IAAA;cAAA;YAAA;YAAA,OAAAwH,SAAA,CAAAlF,MAAA;UAAA;YAGlC5D,mBAAmB,CAAC+E,SAAS,CAAC,CAAC,CAAC;YAAA+D,SAAA,CAAAxH,IAAA;YAAA,OACDnO,kBAAkB,CAAC;cAChDkL,GAAG,EAAHA,GAAG;cACHkC,KAAK,EAALA,KAAK;cACLwE,SAAS,EAATA,SAAS;cACTzG,KAAK,EAALA;YACF,CAAC,CAAC;UAAA;YAAAoK,qBAAA,GAAAI,SAAA,CAAAvH,IAAA;YALM3J,MAAI,GAAA8Q,qBAAA,CAAJ9Q,IAAI;YAAEqJ,MAAM,GAAAyH,qBAAA,CAANzH,MAAM;YAOpB,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,IAAI,MAAKxO,gBAAgB,EAAE;cAC/B4V,YAAY,GAAGhR,MAAI,aAAJA,MAAI,uBAAJA,MAAI,CAAEmR,MAAM,CAAC,UAACC,GAAU,EAAEC,GAAG,EAAK;gBACrD,IAAMC,eAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,GAAG,CAACC,eAAe,CAAC,GAAGD,GAAG,CAACC,eAAe,GAAG,EAAE;gBACrF,IAAMG,IAAI,GAAGH,eAAe,CAACxF,GAAG,CAAC,UAAC/N,GAAQ;kBAAA,OAAA4B,aAAA,CAAAA,aAAA,KACrC5B,GAAG;oBACN8F,GAAG,EAAEwN,GAAG;oBACRhD,MAAM,EAAEgD,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEhD;kBAAM;gBAAA,CACnB,CAAC;gBACH,UAAAvO,MAAA,CAAAJ,kBAAA,CAAW0R,GAAG,GAAA1R,kBAAA,CAAK+R,IAAI;cACzB,CAAC,EAAE,EAAE,CAAC;cAEN,IAAIT,YAAY,CAACrU,MAAM,GAAG,CAAC,EAAE;gBAC3BqR,cAAc,CAACgD,YAAY,EAAE,IAAI,CAAC;cACpC;YACF;YAACE,SAAA,CAAAxH,IAAA;YAAA;UAAA;YAED;YACAtB,mBAAmB,CAACzN,MAAM,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAuW,SAAA,CAAAhH,IAAA;QAAA;MAAA,GAAA2G,QAAA;IAAA,CAEjC;IAAA,gBAhCKH,uBAAuBA,CAAAgB,GAAA;MAAA,OAAAd,MAAA,CAAAzG,KAAA,OAAAzN,SAAA;IAAA;EAAA,GAgC5B;;EAED;EACA,IAAMiV,aAAa;IAAA,IAAAC,MAAA,GAAA7I,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA4I,SAAO1E,SAAiB;MAAA,IAAA2E,mBAAA,EAAAzI,MAAA;MAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAyI,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAvI,IAAA,GAAAuI,SAAA,CAAAtI,IAAA;UAAA;YAAA,IACvCyD,SAAS;cAAA6E,SAAA,CAAAtI,IAAA;cAAA;YAAA;YAAA,OAAAsI,SAAA,CAAAhG,MAAA;UAAA;YAAAgG,SAAA,CAAAtI,IAAA;YAAA,OACWlO,YAAY,CAAC;cACpCiL,GAAG,EAAHA,GAAG;cACHkC,KAAK,EAALA,KAAK;cACLwE,SAAS,EAATA,SAAS;cACTzG,KAAK,EAALA;YACF,CAAC,CAAC;UAAA;YAAAoL,mBAAA,GAAAE,SAAA,CAAArI,IAAA;YALMN,MAAM,GAAAyI,mBAAA,CAANzI,MAAM;YAMd,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,IAAI,MAAKxO,gBAAgB,EAAE;cACrC;cACAmU,oBAAoB,CAAC,KAAK,CAAC;cAC3B;cACA,IAAIpC,SAAS,KAAKhF,gBAAgB,EAAE;gBAClC8J,aAAa,CAAC,CAAC;cACjB;YACF;UAAC;UAAA;YAAA,OAAAD,SAAA,CAAA9H,IAAA;QAAA;MAAA,GAAA2H,QAAA;IAAA,CACF;IAAA,gBAhBKF,aAAaA,CAAAO,GAAA;MAAA,OAAAN,MAAA,CAAAzH,KAAA,OAAAzN,SAAA;IAAA;EAAA,GAgBlB;;EAED;EACA,IAAMyV,aAAa;IAAA,IAAAC,MAAA,GAAArJ,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAoJ,SAAOlF,SAAiB,EAAEkD,KAAa;MAAA,IAAAiC,qBAAA,EAAAjJ,MAAA;MAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAiJ,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA/I,IAAA,GAAA+I,SAAA,CAAA9I,IAAA;UAAA;YAAA,MACvD,CAACyD,SAAS,IAAI,CAACkD,KAAK;cAAAmC,SAAA,CAAA9I,IAAA;cAAA;YAAA;YAAA,OAAA8I,SAAA,CAAAxG,MAAA;UAAA;YAAAwG,SAAA,CAAA9I,IAAA;YAAA,OACCjO,kBAAkB,CAAC;cAC1CgL,GAAG,EAAHA,GAAG;cACHkC,KAAK,EAALA,KAAK;cACL0H,KAAK,EAALA,KAAK;cACLlD,SAAS,EAATA,SAAS;cACTzG,KAAK,EAALA;YACF,CAAC,CAAC;UAAA;YAAA4L,qBAAA,GAAAE,SAAA,CAAA7I,IAAA;YANMN,MAAM,GAAAiJ,qBAAA,CAANjJ,MAAM;YAOd,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,IAAI,MAAKxO,gBAAgB,EAAE;cACrC;cACAmU,oBAAoB,CAAC,KAAK,CAAC;YAC7B;UAAC;UAAA;YAAA,OAAAiD,SAAA,CAAAtI,IAAA;QAAA;MAAA,GAAAmI,QAAA;IAAA,CACF;IAAA,gBAbKF,aAAaA,CAAAM,GAAA,EAAAC,GAAA;MAAA,OAAAN,MAAA,CAAAjI,KAAA,OAAAzN,SAAA;IAAA;EAAA,GAalB;;EAED;EACA,IAAMuV,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;IAC1BnE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACZzG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACjBiH,YAAY,CAAC,CAAC,CAAC,CAAC;IAChBlG,mBAAmB,CAACzN,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;EACjC,CAAC;;EAED;EACAL,SAAS,CAAC,YAAM;IACd,IAAIiO,OAAO,EAAE;MACX;MACAgH,oBAAoB,CAAC,IAAI,CAAC;IAC5B;IACF;EACA,CAAC,EAAE,CAAChH,OAAO,CAAC,CAAC;EAEb,OAAO;IACLA,OAAO,EAAPA,OAAO;IACP7K,QAAQ,EAARA,QAAQ;IACRyN,OAAO,EAAPA,OAAO;IACPnM,OAAO,EAAEuG,YAAY,CAACvG,OAAO;IAC7BwI,WAAW,EAAXA,WAAW;IACXW,gBAAgB,EAAhBA,gBAAgB;IAChBJ,iBAAiB,EAAjBA,iBAAiB;IACjBwH,oBAAoB,EAApBA,oBAAoB;IACpBhC,MAAM,EAANA,MAAM;IACNhB,IAAI,EAAJA,IAAI;IACJ0F,aAAa,EAAbA,aAAa;IACb7J,mBAAmB,EAAnBA,mBAAmB;IACnBsI,uBAAuB,EAAvBA,uBAAuB;IACvByB,aAAa,EAAbA,aAAa;IACbR,aAAa,EAAbA,aAAa;IACbvG,UAAU,EAAVA,UAAU;IACV/D,WAAW,EAAXA,WAAW;IACXyG,QAAQ,EAARA,QAAQ;IACRQ,YAAY,EAAZA;EACF,CAAC;AACH,CAAC;AAED,eAAe/H,iBAAiB"}
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useMemo","useCallback","useRef","v4","uuidV4","useEventStreamRequest","MessageRole","MessageStatus","ErrorCode","SuccessCode","request","safeJsonParse","SESSION_PAGE_SIZE","API_SUCCESS_CODE","fetchAppConfig","fetchSessionList","fetchSessionDetail","delSessionId","updateSessionTitle","getNodeTemplate","documentIcon","completedIcon","completedExpandIcon","documentExpandIcon","qaIcon","qaExpandIcon","skillNoIcon","skillNoExpandIcon","toolIcon","toolExpandIcon","ActionType","ProcessStatus","ActionAvailability","MessageProcessor","textSpeed","arguments","length","undefined","_classCallCheck","_defineProperty","_createClass","key","value","getKnowledgeIcons","knowledgeType","icon","expandIcon","getToolIcons","toolType","getWorkflowIcon","updateExecution","messages","messageIndex","uniqueId","cost","name","msg","execute","execution","find","item","id","extra","toFixed","findLastPendingAIMessage","i","role","assistant","type","status","createNewAIMessage","createdAt","Date","content","text","thinks","init","ensureAIMessageExists","_this$findLastPending","_this$findLastPending2","_slicedToArray","index","existingMsg","_toConsumableArray","_objectSpread","newMessage","newMessages","concat","handleSuggestion","data","suggestIndex","findIndex","newSuggestion","done","suggestion","description","push","_suggestion$content","handleReasoning","_this$ensureAIMessage","_this$ensureAIMessage2","aiMsg","updatedMsg","pending","updatedMessages","handleReasoningEnd","_this$ensureAIMessage3","_this$ensureAIMessage4","handleRecallKnowledgeStart","_this$ensureAIMessage5","_this$ensureAIMessage6","_ref","_ref$uniqueId","_ref2","args","handleRecallKnowledgeEnd","_this$findLastPending3","_this$findLastPending4","_aiMsg","_ref3","_ref3$uniqueId","handleInvokeToolStart","_this$ensureAIMessage7","_this$ensureAIMessage8","_ref4","_ref4$uniqueId","_ref5","icons","handleInvokeToolEnd","_this$findLastPending5","_this$findLastPending6","_ref6","_ref6$uniqueId","_ref7","handleComponentStart","_aiMsg$execute","_this$ensureAIMessage9","_this$ensureAIMessage10","_ref8","_ref9","nodeId","componentType","_getNodeTemplate","handleComponentStream","_this$ensureAIMessage11","_this$ensureAIMessage12","_ref10","_ref10$nodeId","_ref11","processData","raw","stepContent","handleComponentEnd","_this$findLastPending7","_this$findLastPending8","_ref12","_ref13","_getNodeTemplate2","handleResponse","_this$ensureAIMessage13","_this$ensureAIMessage14","contentType","success","errorMsg","JSON","stringify","failed","handleFinish","_this$findLastPending9","_this$findLastPending10","_ref14","_ref14$data","_ref14$data2","_ref14$data2$uniqueId","needExecuteDetail","processResponse","responseData","response","action","_response","_response$data","suggest","reasoning","reasoningEnd","componentStart","componentStream","componentEnd","recallKnowledgeStart","recallKnowledgeEnd","invokeToolStart","invokeToolEnd","finish","useAgentGenerator","params","url","token","config","onError","onMessage","onSuccess","_params$textSpeed","rest","_objectWithoutProperties","_excluded","_useState","_useState2","setMessages","_useState3","_useState4","sessionList","setSessionList","_useState5","total","pageNum","pageSize","_useState6","sessionPagination","setSessionPagination","_useState7","_useState8","currentSessionId","setCurrentSessionId","_useState9","_useState10","appInfo","setAppInfo","requestInfo","_ref15","appNo","messageProcessor","initConfig","_ref16","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$fetchAppConfig","_data","result","wrap","_callee$","_context","prev","next","sent","code","APP_CONFIG_INIT_SUCCESS","message","APP_NOT_FOUND","t0","API_ERROR","stop","apply","_useEventStreamReques","streaming","onClose","setTimeout","_requestInfo$current","_requestInfo$current2","current","sensitiveWords","requestId","post","onOpen","res","console","log","start","loading","setMessage","_ref17","_callee2","messageType","_callee2$","_context2","prologueIndex","_item$extra","prologue","noFooter","map","_item$extra2","abrupt","_item$extra3","insertIndex","splice","warn","_x","_x2","chat","_ref18","_callee3","insert","requestBody","_args3","_callee3$","_context3","user","filter","appParams","inputs_msg","sessionId","Authorization","_x3","_x4","reChat","_lastUserMsg$content","lastAIIndex","findLastIndex","m","lastUserMsg","findLast","stopChat","newMsg","formatMessages","initMessagesList","forEach","_ref19","messageTime","isLike","initPrologue","_ref20","_callee4","_appInfo$onboardingIn","onboardingInfo","_ref21","_ref21$suggested_ques","suggested_questions","_ref21$prologue","formatSuggests","suggestMessages","hasMessages","_callee4$","_context4","_item$extra4","some","_item$extra5","initAppConversations","_ref22","_callee5","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","_data2","pagination","formatSessions","_data2$","_args5","_callee5$","_context5","label","title","timestamp","gmtCreated","getTime","meta","setCurrentSessionDetail","APP_MESSAGES_INIT_SUCCESS","_ref23","_callee6","_yield$fetchSessionDe","_data3","sessionsData","_callee6$","_context6","reduce","acc","cur","sessionMessages","Array","isArray","msgs","_x5","deleteSession","_ref24","_callee7","_yield$delSessionId","_callee7$","_context7","createNewChat","_x6","updateSession","_ref25","_callee8","_yield$updateSessionT","_callee8$","_context8","_x7","_x8"],"sources":["../../../src/hooks/useAgentGenerator.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { useState, useEffect, useMemo, useCallback, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { type Error, ErrorCode, type SendContent, type Success, SuccessCode, type SessionData } from '@/types';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from '@/constants';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail, delSessionId, updateSessionTitle } from '@/services/api';\nimport { getNodeTemplate } from '@/utils/workflowNode';\n// 图标导入\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\n// ==================== 类型定义 ====================\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE' | 'JSON';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n\nexport type Contents = ContentDef[];\n\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START',\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END',\n invokeToolStart = 'INVOKE_AGENT_TOOL_START',\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END',\n reasoning = 'REASONING',\n reasoningStart = 'REASONING_START',\n reasoningEnd = 'REASONING_END',\n componentStart = 'COMPONENT_START',\n componentStream = 'COMPONENT_STREAM',\n componentEnd = 'COMPONENT_END',\n suggest = 'FOLLOW_UP',\n response = 'RESPONSE',\n finish = 'FINISHED',\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled',\n enabled = 'enabled',\n remote = 'remote',\n}\n\nexport type ThinkStep = any;\n\nexport interface Action {\n name: string;\n description: string;\n jsonSchema: string;\n available?: ActionAvailability;\n}\n\nexport interface BaseFields {\n textSpeed?: number;\n onChatDone?: () => void;\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n textSpeed?: number;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onMessage?: (content: string, data: Messages) => void;\n}\n\n// ==================== 消息处理器 ====================\nclass MessageProcessor {\n private textSpeed: number;\n\n constructor(textSpeed = 60) {\n this.textSpeed = textSpeed;\n }\n\n // 获取知识图标\n private getKnowledgeIcons(knowledgeType: string) {\n return knowledgeType === 'DOCUMENT'\n ? { icon: documentIcon, expandIcon: documentExpandIcon }\n : { icon: qaIcon, expandIcon: qaExpandIcon };\n }\n\n // 获取工具图标\n private getToolIcons(toolType: string) {\n return toolType === 'SKILL'\n ? { icon: skillNoIcon, expandIcon: skillNoExpandIcon }\n : { icon: toolIcon, expandIcon: toolExpandIcon };\n }\n\n // 获取工作流图标(暂时不做区分)\n private getWorkflowIcon() {\n return { icon: skillNoIcon, expandIcon: skillNoExpandIcon };\n }\n\n // 更新工具执行事件\n private updateExecution(\n messages: Messages[],\n messageIndex: number,\n uniqueId: string,\n cost: number,\n name?: string,\n ) {\n const msg = messages[messageIndex] as TextMessage;\n if (msg?.execute) {\n const execution = msg.execute.find((item) => item.id === uniqueId);\n if (execution) {\n execution.extra.cost = cost ? (cost / 1000).toFixed(2) : 0;\n if (name) execution.name = name;\n }\n }\n }\n\n // 查找最后一个待处理的AI消息\n private findLastPendingAIMessage(messages: Messages[]): [number, TextMessage | null] {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === MessageRole.assistant\n && msg.type === 'TextMessage'\n && (msg.status === 'init' || msg.status === 'pending')) {\n return [i, msg as TextMessage];\n }\n }\n return [-1, null];\n }\n\n // 创建新的AI消息\n private createNewAIMessage(): TextMessage {\n return {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n execute: [],\n thinks: '',\n status: MessageStatus.init,\n };\n }\n\n // 确保存在待处理的AI消息\n private ensureAIMessageExists(messages: Messages[]): [Messages[], number, TextMessage] {\n const [index, existingMsg] = this.findLastPendingAIMessage(messages);\n\n if (index !== -1 && existingMsg) {\n return [[...messages], index, { ...existingMsg }];\n }\n\n const newMessage = this.createNewAIMessage();\n const newMessages = [...messages, newMessage];\n return [newMessages, newMessages.length - 1, newMessage];\n }\n\n // 处理建议\n handleSuggestion(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const newMessages = [...messages];\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n\n if (suggestIndex === -1) {\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{ key: uuidV4(), description: content }],\n };\n newMessages.push(newSuggestion);\n } else {\n const suggestion = newMessages[suggestIndex] as SuggestionMessage;\n suggestion?.content?.push({\n key: uuidV4(),\n description: content,\n });\n }\n\n return newMessages;\n }\n\n // 处理思考过程\n handleReasoning(messages: Messages[], data: any): Messages[] {\n const { content } = data;\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: (aiMsg.thinks || '') + content,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理思考过程结束\n handleReasoningEnd(messages: Messages[]): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n\n // 确保消息状态正确\n const updatedMsg: Messages = {\n ...aiMsg,\n thinks: `${aiMsg.thinks || ''}\\n`,\n status: aiMsg.status === MessageStatus.init ? MessageStatus.pending : aiMsg.status,\n };\n\n const updatedMessages = [...newMessages];\n updatedMessages[index] = updatedMsg;\n\n return updatedMessages;\n }\n\n // 处理知识库调用开始\n handleRecallKnowledgeStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { args } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '开始搜索知识库',\n arguments: args,\n extra: {\n ...data,\n icon: documentIcon,\n expandIcon: documentExpandIcon,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理知识库调用结束\n handleRecallKnowledgeEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n if (index === -1) return messages;\n const { uniqueId = uuidV4(), cost } = data || {};\n\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, uniqueId, cost, '已搜索知识库');\n return newMessages;\n }\n\n // 处理工具调用开始\n handleInvokeToolStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { args, toolType } = data?.data || {};\n\n aiMsg.execute = aiMsg.execute || [];\n const icons = this.getToolIcons(toolType);\n\n aiMsg.execute.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n ...icons,\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工具调用结束\n handleInvokeToolEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { uniqueId = uuidV4() } = data || {};\n const { toolType } = data?.data || {};\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, uniqueId, data.cost, toolType === 'SKILL' ? '已调用工作流组件' : '已调用工具');\n return newMessages;\n }\n\n // 处理工作流组件开始\n handleComponentStart(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { content } = data || {};\n const { nodeId, args, componentType } = content || {};\n const { name } = getNodeTemplate(componentType);\n aiMsg?.execute?.push({\n id: nodeId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: name ? `开始调用${name}组件` : '开始调用工作流组件',\n arguments: args,\n extra: {\n ...data,\n ...this.getWorkflowIcon(),\n },\n });\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件流消息\n handleComponentStream(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { nodeId = uuidV4, content } = data || {};\n const { processData } = content || {};\n aiMsg.raw = data.raw;\n aiMsg.stepContent = aiMsg.stepContent || [];\n aiMsg.stepContent.push({\n id: nodeId,\n content: processData,\n });\n\n // 消息状态改为接收中\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理工作流组件结束\n handleComponentEnd(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { content } = data || {};\n const { nodeId, componentType } = content || {};\n const { name } = getNodeTemplate(componentType);\n if (index === -1) return messages;\n const newMessages = [...messages];\n this.updateExecution(newMessages, index, nodeId, data.cost, name ? `已调用完成${name}组件` : '已调用工作流组件');\n return newMessages;\n }\n\n // 处理响应正文\n handleResponse(messages: Messages[], data: any): Messages[] {\n const [newMessages, index, aiMsg] = this.ensureAIMessageExists(messages);\n const { contentType, content, success, errorMsg } = data;\n if (success) {\n aiMsg.raw = data.raw;\n // 消息状态改为接收中\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n // 文本类型数据\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n\n // JSON 格式数据\n if (contentType === 'JSON') {\n aiMsg.content.text += JSON.stringify(content);\n }\n } else {\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n\n newMessages[index] = aiMsg;\n return newMessages;\n }\n\n // 处理完成\n handleFinish(messages: Messages[], data: any): Messages[] {\n const [index, _aiMsg] = this.findLastPendingAIMessage(messages);\n const { data: { uniqueId = uuidV4() } = {}, cost, needExecuteDetail } = data || {};\n if (index === -1) return messages;\n\n const newMessages = [...messages];\n const msg = newMessages[index] as TextMessage;\n if (needExecuteDetail) {\n msg.execute = msg.execute || [];\n msg.execute.push({\n id: uniqueId || uuidV4(),\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: cost ? (cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n }\n\n msg.status = MessageStatus.done;\n return newMessages;\n }\n\n // 处理响应数据\n processResponse(messages: Messages[], responseData: any): Messages[] {\n if (!responseData?.content && !responseData?.data) return messages;\n\n let response = responseData.data || responseData.content;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n const { action, data = {} } = response;\n\n data.raw = responseData;\n\n switch (action) {\n case ActionType.suggest:\n return this.handleSuggestion(messages, data);\n\n case ActionType.reasoning:\n return this.handleReasoning(messages, data);\n\n case ActionType.reasoningEnd:\n return this.handleReasoningEnd(messages);\n\n case ActionType.componentStart:\n return this.handleComponentStart(messages, data);\n\n case ActionType.componentStream:\n return this.handleComponentStream(messages, data);\n\n case ActionType.componentEnd:\n return this.handleComponentEnd(messages, data);\n\n case ActionType.recallKnowledgeStart:\n return this.handleRecallKnowledgeStart(messages, data);\n\n case ActionType.recallKnowledgeEnd:\n return this.handleRecallKnowledgeEnd(messages, data);\n\n case ActionType.invokeToolStart:\n return this.handleInvokeToolStart(messages, data);\n\n case ActionType.invokeToolEnd:\n return this.handleInvokeToolEnd(messages, data);\n\n case ActionType.response:\n return this.handleResponse(messages, data);\n\n case ActionType.finish:\n return this.handleFinish(messages, data);\n\n default:\n return messages;\n }\n }\n}\n\nconst useAgentGenerator = (params: UseAgentGeneratorProps) => {\n const {\n url,\n token,\n config,\n onError,\n onMessage,\n onSuccess,\n textSpeed = 55,\n ...rest\n } = params;\n\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 聊天记录分页设置\n // const [messagePagination, setMessagePagination] = useState({ total: 0, pageNum: 1, pageSize: 999 });\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 会话请求是否加载中\n // const [sessionLoading, setSessionLoading] = useState<boolean>(false);\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({ total: 0, pageNum: 1, pageSize: SESSION_PAGE_SIZE });\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo } = config || {};\n\n // 消息处理器\n const messageProcessor = useMemo(() => new MessageProcessor(textSpeed), [textSpeed]);\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const { data, result } = await fetchAppConfig({ url, ...config });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\n\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || '获取应用配置失败',\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取应用配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据流处理\n useEffect(() => {\n if (!responseData) return;\n\n setMessages((prev) => messageProcessor.processResponse(prev, responseData));\n }, [responseData, messageProcessor]);\n\n // 添加对话(非交互触发)\n const setMessage = useCallback(async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n if (prologueIndex === -1) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: { text: content },\n extra: { prologue: true, noFooter: true },\n };\n return [newMessage, ...prev];\n }\n\n return prev.map((item) => (item.extra?.prologue && item.content && 'text' in item.content\n ? { ...item, content: { text: content } } as TextMessage\n : item));\n });\n break;\n }\n\n case 'suggest': {\n setMessages((prev) => {\n const suggestIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n const prologueIndex = prev.findIndex((item) => item.extra?.prologue);\n\n const newSuggestion: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n\n if (suggestIndex === -1) {\n const newMessages = [...prev];\n const insertIndex = prologueIndex === -1 ? 0 : prologueIndex + 1;\n newMessages.splice(insertIndex, 0, newSuggestion);\n return newMessages;\n }\n\n return prev.map((item) => (item.type === 'SuggestionMessage'\n ? { ...item, content }\n : item));\n });\n break;\n }\n\n default:\n console.warn(`Unknown message type: ${messageType}`);\n }\n }, []);\n\n // 简单对话\n const chat = useCallback(async (content: SendContent, extra?: any, insert = true) => {\n if (insert) {\n const newMessage: TextMessage = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n extra,\n content,\n };\n\n setMessages((prev) => {\n const newMessages = prev.filter((item) => item.type !== 'SuggestionMessage');\n newMessages.push(newMessage);\n return newMessages;\n });\n }\n\n const requestBody: any = {\n appParams: {\n inputs_msg: content.text,\n },\n sessionId: currentSessionId,\n };\n\n start(\n `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsg`,\n requestBody,\n {\n Authorization: `Bearer ${token}`,\n },\n );\n }, [appNo, currentSessionId, start, token, url]);\n\n // 重新生成方法\n const reChat = useCallback(() => {\n setMessages((prev) => {\n const newMessages = [...prev];\n\n // 删除最新 AI 消息\n const lastAIIndex = newMessages?.findLastIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage'\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n\n // 删除建议消息\n const suggestIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestIndex !== -1) {\n newMessages.splice(suggestIndex, 1);\n }\n\n // 找到最后一条用户消息重新发送\n const lastUserMsg = newMessages.findLast(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n\n if (lastUserMsg?.content?.text) {\n setTimeout(() => {\n chat(lastUserMsg.content, lastUserMsg.extra, false);\n }, 0);\n }\n\n return newMessages;\n });\n }, [chat]);\n\n // 停止对话\n const stopChat = () => {\n stop();\n setMessages((prev) => prev.map((m) => {\n // 所有进行中的消息变更为结束\n if (m.status === MessageStatus.pending || m.status === MessageStatus.init) {\n const newMsg = { ...m, status: MessageStatus.done };\n if (m.type === 'TextMessage' && m.status === MessageStatus.init) {\n (newMsg as TextMessage).content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n return newMsg;\n }\n return m;\n }));\n };\n\n // 初始化历史记录\n const formatMessages = (data: any, init = false) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n execute: [],\n status: MessageStatus.done,\n isLike: item.isLike,\n raw: item.raw,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n if (init) {\n return [...initMessagesList];\n }\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n const { data = [], pagination, result } = await fetchSessionList({\n url,\n appNo,\n token,\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || '新对话',\n timestamp: new Date(item.gmtCreated).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({ pageNum: sessionPagination.pageNum, pageSize: sessionPagination.pageSize, total: pagination?.total || 0 });\n const { sessionId } = data?.[0];\n fetchDetail && setCurrentSessionDetail(sessionId);\n } else {\n // 页面报错 初始化\n setSessionList([]);\n setCurrentSessionId(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 设置当前会话详情\n const setCurrentSessionDetail = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n const sessionsData = data?.reduce((acc: any[], cur) => {\n const sessionMessages = Array.isArray(cur.sessionMessages) ? cur.sessionMessages : [];\n const msgs = sessionMessages.map((msg: any) => ({\n ...msg,\n raw: cur,\n isLike: cur?.isLike,\n }));\n return [...acc, ...msgs];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData, true);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(uuidV4());\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await delSessionId({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(false);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n createNewChat();\n }\n }\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const { result } = await updateSessionTitle({\n url,\n appNo,\n title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations(false);\n }\n };\n\n // 生成新对话\n const createNewChat = () => {\n stopChat(); // 停止聊天\n setMessages([]); // 清空所有消息\n initPrologue(); // 初始化开场白和预置问题\n setCurrentSessionId(uuidV4()); // 设置会话 id\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionList,\n currentSessionId,\n sessionPagination,\n initAppConversations,\n reChat,\n chat,\n createNewChat,\n setCurrentSessionId,\n setCurrentSessionDetail,\n updateSession,\n deleteSession,\n setMessage,\n setMessages,\n stopChat,\n initPrologue,\n };\n};\n\nexport default useAgentGenerator;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { XAiContextType } from "../context/AiProviderContext";
|
|
2
|
+
import type { SendContent } from "../types";
|
|
2
3
|
export interface UseProviderContextOptions<T> {
|
|
3
4
|
props: T;
|
|
4
5
|
providerProps?: (keyof XAiContextType)[];
|
|
@@ -13,7 +14,7 @@ export interface UseProviderContextReturn<T> {
|
|
|
13
14
|
export type MethodCaller<T extends any[] = any[], R = any> = (...args: T) => R;
|
|
14
15
|
export interface ProviderMethods {
|
|
15
16
|
isInProvider: boolean;
|
|
16
|
-
sendMessage: MethodCaller<[
|
|
17
|
+
sendMessage: MethodCaller<[SendContent], void>;
|
|
17
18
|
stopGeneration: MethodCaller<[], void>;
|
|
18
19
|
clearMessages: MethodCaller<[], void>;
|
|
19
20
|
regenerateLastMessage: MethodCaller<[string], void>;
|