@zero-library/chat-copilot 1.0.1 → 1.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/index.cjs.js CHANGED
@@ -4,27 +4,30 @@ var icons = require('@ant-design/icons');
4
4
  var xV2 = require('@ant-design/x-v2');
5
5
  var common = require('@zero-library/common');
6
6
  var antd = require('antd');
7
- var React9 = require('react');
7
+ var React7 = require('react');
8
8
  var valtio = require('valtio');
9
9
  var dayjs = require('dayjs');
10
- var Latex = require('@ant-design/x-markdown/plugins/Latex');
10
+ var Latex2 = require('@ant-design/x-markdown/plugins/Latex');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
- var XMarkdown = require('@ant-design/x-markdown');
13
12
  require('@ant-design/x-markdown/themes/light.css');
14
- var classNames7 = require('classnames');
15
13
  var xCard = require('@ant-design/x-card');
14
+ var XMarkdown = require('@ant-design/x-markdown');
15
+ var classNames2 = require('classnames');
16
16
  var InfiniteScroll = require('react-infinite-scroll-component');
17
17
 
18
18
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
19
 
20
- var React9__default = /*#__PURE__*/_interopDefault(React9);
20
+ var React7__default = /*#__PURE__*/_interopDefault(React7);
21
21
  var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
22
- var Latex__default = /*#__PURE__*/_interopDefault(Latex);
22
+ var Latex2__default = /*#__PURE__*/_interopDefault(Latex2);
23
23
  var XMarkdown__default = /*#__PURE__*/_interopDefault(XMarkdown);
24
- var classNames7__default = /*#__PURE__*/_interopDefault(classNames7);
24
+ var classNames2__default = /*#__PURE__*/_interopDefault(classNames2);
25
25
  var InfiniteScroll__default = /*#__PURE__*/_interopDefault(InfiniteScroll);
26
26
 
27
- // src/components/ChatSender.tsx
27
+ // src/components/Attachments.tsx
28
+
29
+ // src/assets/images/logo.png
30
+ var logo_default = "./logo-BX4TAWHK.png";
28
31
  function getFileExtension(fileName = "") {
29
32
  const ext = fileName.split(".").pop();
30
33
  return (ext || "").toLowerCase();
@@ -38,7 +41,7 @@ function formatFileSize(size) {
38
41
  }
39
42
  var getFileIcon = (extension, fontSize = 24) => {
40
43
  const baseStyle = { fontSize };
41
- const createIcon = (Icon, color) => React9__default.default.createElement(Icon, { style: { ...baseStyle, color } });
44
+ const createIcon = (Icon, color) => React7__default.default.createElement(Icon, { style: { ...baseStyle, color } });
42
45
  if (["png", "jpg", "jpeg", "gif", "bmp", "webp", "svg"].includes(extension)) {
43
46
  return createIcon(icons.FileImageOutlined, "#22c55e");
44
47
  }
@@ -62,6 +65,7 @@ var getFileIcon = (extension, fontSize = 24) => {
62
65
  }
63
66
  return createIcon(icons.FileUnknownOutlined, "#94a3b8");
64
67
  };
68
+ var getChatCopilotLogo = () => logo_default;
65
69
  var classifyTime = (timestamp) => {
66
70
  const now = dayjs__default.default();
67
71
  const target = dayjs__default.default(timestamp);
@@ -114,41 +118,15 @@ var variablesToObject = (variables) => {
114
118
  {}
115
119
  );
116
120
  };
117
- var singleTildeExtension = {
118
- name: "singleTilde",
119
- level: "inline",
120
- start(src) {
121
- return src.match(/(?<!~)~(?!~)/)?.index;
122
- },
123
- tokenizer(src) {
124
- const match = /^(?<!~)~(?!~)/.exec(src);
125
- if (match) {
126
- return {
127
- type: "text",
128
- raw: match[0],
129
- text: match[0]
130
- };
131
- }
132
- return void 0;
133
- }
134
- };
135
- var getMarkdownConfig = (options) => {
136
- const latexExtensions = Latex__default.default();
137
- const extensions = Array.isArray(latexExtensions) ? [...latexExtensions, singleTildeExtension] : [latexExtensions, singleTildeExtension];
138
- return {
139
- extensions,
140
- breaks: options?.breaks ?? false
141
- };
142
- };
143
121
  var getChatSocketUrl = (baseURL, params) => {
144
122
  return common.buildUrlParams(params, common.getWebSocketUrl(`${baseURL}/ws`), "comma");
145
123
  };
146
- var ChatContext = React9.createContext(null);
124
+ var ChatContext = React7.createContext(null);
147
125
  function ChatProvider({ store, children }) {
148
- return React9__default.default.createElement(ChatContext.Provider, { value: store }, children);
126
+ return React7__default.default.createElement(ChatContext.Provider, { value: store }, children);
149
127
  }
150
128
  function useChatStore() {
151
- const store = React9.useContext(ChatContext);
129
+ const store = React7.useContext(ChatContext);
152
130
  if (!store) {
153
131
  throw new Error("useChatStore must be used within ChatProvider");
154
132
  }
@@ -158,14 +136,19 @@ function useChatStore() {
158
136
  // src/components/styles.module.less
159
137
  var styles_module_default = {
160
138
  chatAttachments: "styles_module_chatAttachments",
161
- chatSender: "styles_module_chatSender"};
162
- var Attachments_default = React9.forwardRef(({ fileUpload, fileUploadConfig, fileList = [], onChange, extraParams }, ref) => {
139
+ chatSender: "styles_module_chatSender",
140
+ runStartedNode: "styles_module_runStartedNode",
141
+ chatQuoteMsg: "styles_module_chatQuoteMsg",
142
+ quoteTooltip: "styles_module_quoteTooltip",
143
+ quoteTooltipContainer: "styles_module_quoteTooltipContainer"
144
+ };
145
+ var Attachments_default = React7.forwardRef(({ fileUpload, fileUploadConfig, fileList = [], onChange, extraParams }, ref) => {
163
146
  const { message: message3 } = antd.App.useApp();
164
147
  const chatStore = useChatStore();
165
148
  const agentState = valtio.useSnapshot(chatStore.agent);
166
- const fileListRef = React9.useRef([]);
149
+ const fileListRef = React7.useRef([]);
167
150
  const [attachedFiles, setAttachedFiles, getAttachedFiles] = common.useRefState([]);
168
- React9.useEffect(() => {
151
+ React7.useEffect(() => {
169
152
  if (JSON.stringify(fileList) !== JSON.stringify(fileListRef.current)) {
170
153
  fileListRef.current = fileList;
171
154
  const mapped = fileList.map((file) => ({
@@ -177,7 +160,7 @@ var Attachments_default = React9.forwardRef(({ fileUpload, fileUploadConfig, fil
177
160
  setAttachedFiles(mapped);
178
161
  }
179
162
  }, [fileList]);
180
- React9.useEffect(() => {
163
+ React7.useEffect(() => {
181
164
  const files = attachedFiles.filter((file) => file.status === "done").map((file) => {
182
165
  const f = { ...file };
183
166
  delete f.status;
@@ -281,7 +264,7 @@ var Attachments_default = React9.forwardRef(({ fileUpload, fileUploadConfig, fil
281
264
  chatStore.config.params.convMeta?.libraryId;
282
265
  file.path;
283
266
  };
284
- React9.useImperativeHandle(
267
+ React7.useImperativeHandle(
285
268
  ref,
286
269
  () => ({
287
270
  validateFile: () => {
@@ -301,7 +284,7 @@ var Attachments_default = React9.forwardRef(({ fileUpload, fileUploadConfig, fil
301
284
  }),
302
285
  []
303
286
  );
304
- const acceptStr = React9.useMemo(() => {
287
+ const acceptStr = React7.useMemo(() => {
305
288
  const allTypes = fileUploadConfig?.allowedTypes.map((type) => `.${type}`) || [];
306
289
  return allTypes.length ? allTypes.join(",") : void 0;
307
290
  }, [fileUploadConfig]);
@@ -331,7 +314,7 @@ var Attachments_default = React9.forwardRef(({ fileUpload, fileUploadConfig, fil
331
314
  }
332
315
  );
333
316
  });
334
- var ChatSender_default = React9.forwardRef(
317
+ var ChatSender_default = React7.forwardRef(
335
318
  ({
336
319
  placeholder,
337
320
  content,
@@ -350,10 +333,10 @@ var ChatSender_default = React9.forwardRef(
350
333
  sendBtnProps,
351
334
  fileUpload
352
335
  }, ref) => {
353
- const senderRef = React9.useRef(null);
336
+ const senderRef = React7.useRef(null);
354
337
  const { inputValue, setInputValue } = common.useSyncInput(content || "", onContentChange);
355
338
  const attachmentsNode = fileUpload?.config?.enabled && /* @__PURE__ */ jsxRuntime.jsx(antd.Badge, { dot: !!fileList?.length && !headerOpen, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PaperClipOutlined, {}), onClick: () => onHeaderOpenChange(!headerOpen) }) });
356
- const attachmentsRef = React9.useRef();
339
+ const attachmentsRef = React7.useRef();
357
340
  const senderHeader = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
358
341
  /* @__PURE__ */ jsxRuntime.jsx(xV2.Sender.Header, { title: "\u9009\u62E9\u6587\u4EF6", open: headerOpen, onOpenChange: onHeaderOpenChange, children: /* @__PURE__ */ jsxRuntime.jsx(
359
342
  Attachments_default,
@@ -373,14 +356,14 @@ var ChatSender_default = React9.forwardRef(
373
356
  onSend();
374
357
  }
375
358
  };
376
- const isFocusedRef = React9.useRef(false);
377
- React9.useEffect(() => {
359
+ const isFocusedRef = React7.useRef(false);
360
+ React7.useEffect(() => {
378
361
  if (!content) return;
379
362
  if (!isFocusedRef.current) {
380
363
  senderRef.current?.focus({ cursor: "end" });
381
364
  }
382
365
  }, [content]);
383
- React9.useImperativeHandle(
366
+ React7.useImperativeHandle(
384
367
  ref,
385
368
  () => ({
386
369
  focus: (options) => {
@@ -668,7 +651,7 @@ function renderMiniChart(spec, opts) {
668
651
  ] }) });
669
652
  }
670
653
 
671
- // a2ui-runtime/components/artifacts/export-utils.ts
654
+ // src/components/CustomComponents/a2ui-runtime/components/artifacts/export-utils.ts
672
655
  function sanitizeFileName(name) {
673
656
  return name.replace(/[\\/:*?"<>|\u0000-\u001F]/g, "_").replace(/\s+/g, " ").trim();
674
657
  }
@@ -737,11 +720,11 @@ function exportJsonFile(data, fileName) {
737
720
  exportTextFile(json, fileName, "application/json;charset=utf-8");
738
721
  }
739
722
  var ChartViewer = ({ artifactId, title, payload }) => {
740
- const containerRef = React9__default.default.useRef(null);
741
- const [containerWidth, setContainerWidth] = React9__default.default.useState(0);
723
+ const containerRef = React7__default.default.useRef(null);
724
+ const [containerWidth, setContainerWidth] = React7__default.default.useState(0);
742
725
  const spec = payload?.spec;
743
726
  const needsContainerWidth = true;
744
- React9__default.default.useLayoutEffect(() => {
727
+ React7__default.default.useLayoutEffect(() => {
745
728
  const el = containerRef.current;
746
729
  if (!el) return;
747
730
  let frame = 0;
@@ -791,39 +774,62 @@ var ChartViewer = ({ artifactId, title, payload }) => {
791
774
  }
792
775
  );
793
776
  };
794
- var AgentNavigateComponent = React9__default.default.memo((props) => {
795
- const [content, setContent] = React9.useState(null);
796
- const { children } = props;
797
- React9.useEffect(() => {
798
- if (!children) {
777
+ var AgentNavigate_default = React7.memo(({ data }) => {
778
+ const [content, setContent] = React7.useState(null);
779
+ React7.useEffect(() => {
780
+ if (!data) {
799
781
  return;
800
782
  }
801
- console.log(typeof children, children);
802
- if (typeof children === "string") {
783
+ console.log(typeof data, data);
784
+ if (typeof data === "string") {
803
785
  try {
804
- setContent(JSON.parse(children));
786
+ setContent(JSON.parse(data));
805
787
  } catch (_error) {
806
788
  setContent(null);
807
789
  }
808
790
  } else {
809
- setContent(children);
791
+ setContent(data);
810
792
  }
811
- }, [children]);
793
+ }, [data]);
812
794
  const handleClick = () => {
813
795
  if (!content?.emit) return;
814
796
  };
815
797
  return /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { onClick: handleClick, style: { padding: 0 }, type: "link", children: content?.name || "\u70B9\u51FB\u6B64\u5904" });
816
798
  });
817
- var agent_navigate_default = AgentNavigateComponent;
818
- var CodeHighlight = (props) => {
819
- const { className, children } = props;
799
+
800
+ // src/components/CustomComponents/XMarkdown/styles.module.less
801
+ var styles_module_default2 = {
802
+ appCard: "styles_module_appCard",
803
+ fileView: "styles_module_fileView",
804
+ fileEdit: "styles_module_fileEdit",
805
+ fileEditHeader: "styles_module_fileEditHeader",
806
+ fileEditContent: "styles_module_fileEditContent",
807
+ mdEdit: "styles_module_mdEdit"
808
+ };
809
+ var AppCard_default = ({ data, loading }) => {
810
+ const chatStore = useChatStore();
811
+ const onClick = async () => {
812
+ if (data.appKey) {
813
+ const canProceed = await chatStore.config.hooks?.onAppRightVerify?.(data.appKey);
814
+ if (canProceed === false) {
815
+ return;
816
+ }
817
+ }
818
+ chatStore.getAgentInfo(data.agentId);
819
+ };
820
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: loading, size: "small", children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, gap: 4, align: "center", className: styles_module_default2.appCard, onClick, children: [
821
+ /* @__PURE__ */ jsxRuntime.jsx("img", { src: data.iconUrl }),
822
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ellipsis", title: data.appName, children: data.appName })
823
+ ] }) });
824
+ };
825
+ var CodeHighlight_default = ({ className, data }) => {
820
826
  const lang = className?.match(/language-(\w+)/)?.[1] || "";
821
- if (typeof children !== "string") return null;
827
+ if (typeof data !== "string") return null;
822
828
  if (!lang) {
823
- return /* @__PURE__ */ jsxRuntime.jsx("code", { children });
829
+ return /* @__PURE__ */ jsxRuntime.jsx("code", { children: data });
824
830
  }
825
831
  if (lang === "mermaid") {
826
- return /* @__PURE__ */ jsxRuntime.jsx(xV2.Mermaid, { children });
832
+ return /* @__PURE__ */ jsxRuntime.jsx(xV2.Mermaid, { children: data });
827
833
  }
828
834
  return /* @__PURE__ */ jsxRuntime.jsx(
829
835
  "div",
@@ -834,11 +840,54 @@ var CodeHighlight = (props) => {
834
840
  overflowX: "auto",
835
841
  borderRadius: 8
836
842
  },
837
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { minWidth: "max-content" }, children: /* @__PURE__ */ jsxRuntime.jsx(xV2.CodeHighlighter, { lang, style: { margin: 0 }, children }) })
843
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { minWidth: "max-content" }, children: /* @__PURE__ */ jsxRuntime.jsx(xV2.CodeHighlighter, { lang, style: { margin: 0 }, children: data }) })
838
844
  }
839
845
  );
840
846
  };
841
- var code_highlight_default = CodeHighlight;
847
+ var FileEdit_default = ({ data, loading }) => {
848
+ const chatStore = useChatStore();
849
+ const onPreview = () => {
850
+ chatStore.setPreview(data, true);
851
+ };
852
+ return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: styles_module_default2.fileEdit, children: [
853
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 8, align: "center", justify: "space-between", className: styles_module_default2.fileEditHeader, children: [
854
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 4, align: "center", className: "flex-1", children: [
855
+ /* @__PURE__ */ jsxRuntime.jsx(common.FileIcon, { suffix: "md", fontSize: 18 }),
856
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ellipsis", title: data.fileName, children: data.fileName })
857
+ ] }),
858
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: loading, size: "small", children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { children: [
859
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { color: "default", variant: "text", size: "small", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlayCircleOutlined, {}), onClick: onPreview, children: "\u9884\u89C8\u7F16\u8F91" }),
860
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { color: "default", variant: "text", size: "small", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CopyOutlined, {}), onClick: () => common.copyText(data.content), children: "\u590D\u5236" })
861
+ ] }) })
862
+ ] }),
863
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { gap: 8, align: "center", className: styles_module_default2.fileEditContent, children: /* @__PURE__ */ jsxRuntime.jsx(common.RenderMarkdown, { content: data.content }) })
864
+ ] });
865
+ };
866
+ var FileView_default = ({ data, loading }) => {
867
+ const chatStore = useChatStore();
868
+ const onClick = () => {
869
+ chatStore.setPreview(data, false);
870
+ };
871
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: loading, size: "small", children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 8, align: "center", className: styles_module_default2.fileView, onClick, children: [
872
+ /* @__PURE__ */ jsxRuntime.jsx(common.FileIcon, { suffix: data.suffix }),
873
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ellipsis", title: data.fileName, children: data.fileName })
874
+ ] }) });
875
+ };
876
+ var MdEdit_default = ({ data, loading }) => {
877
+ const chatStore = useChatStore();
878
+ const [value, setValue] = React7.useState("");
879
+ const btnText = data.btnText || "\u7EE7\u7EED";
880
+ const onOk = () => {
881
+ chatStore.sendMessage(btnText, [], { citation: value });
882
+ };
883
+ React7.useEffect(() => {
884
+ setValue(data.content);
885
+ }, [data.content]);
886
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module_default2.mdEdit, children: [
887
+ /* @__PURE__ */ jsxRuntime.jsx(common.MarkdownEditor, { disabled: loading, value, onChange: setValue, fixedToolbar: false, floatToolbar: false }),
888
+ !loading && /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { justify: "end", className: "m-t-16", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { color: "primary", variant: "outlined", onClick: onOk, children: btnText }) })
889
+ ] });
890
+ };
842
891
  var TOKEN_KEY = "NS-TOKEN";
843
892
  var tokenManager = common.createTokenManager({
844
893
  key: TOKEN_KEY
@@ -847,20 +896,20 @@ var redirectUrl = () => {
847
896
  const path = localStorage.getItem("SIGNPATH");
848
897
  common.emit("jumpLink", { url: `/uc${path || "/sign-in"}` });
849
898
  };
850
- var PreviewLinkComponent = (props) => {
899
+ var PreviewLink_default = ({ data, ...rest }) => {
851
900
  const chatStore = useChatStore();
852
901
  const configState = valtio.useSnapshot(chatStore.config);
853
902
  return /* @__PURE__ */ jsxRuntime.jsx(
854
903
  "a",
855
904
  {
856
- ...props,
905
+ ...rest,
857
906
  onClick: (e) => {
858
- if (props.onClick) {
859
- props.onClick(e);
907
+ if (rest.onClick) {
908
+ rest.onClick(e);
860
909
  }
861
910
  if (!e.defaultPrevented && e.currentTarget.href) {
862
911
  e.preventDefault();
863
- if (props.href && String(props.href).startsWith("/luya") && configState.layout.preview) {
912
+ if (rest.href && String(rest.href).startsWith("/luya") && configState.layout.preview) {
864
913
  let fileName = "link";
865
914
  let path = e.currentTarget.href;
866
915
  const url = new URL(path, window.location.origin);
@@ -878,16 +927,16 @@ var PreviewLinkComponent = (props) => {
878
927
  fileName = lastSegment;
879
928
  }
880
929
  }
881
- } else if (typeof props.children === "string") {
882
- fileName = props.children;
883
- } else if (Array.isArray(props.children) && typeof props.children[0] === "string") {
884
- fileName = String(props.children[0]);
930
+ } else if (typeof data === "string") {
931
+ fileName = data;
932
+ } else if (Array.isArray(data) && typeof data[0] === "string") {
933
+ fileName = String(data[0]);
885
934
  }
886
935
  chatStore.setPreview({ path, fileName });
887
- } else if (props.href && !String(props.href).startsWith("/luya")) {
888
- window.open(props.href || e.currentTarget.href, "_blank");
889
- } else if (props.href && String(props.href).startsWith("/luya") && !configState.layout.preview) {
890
- const urlObj = new URL(props.href, window.location.origin);
936
+ } else if (rest.href && !String(rest.href).startsWith("/luya")) {
937
+ window.open(rest.href || e.currentTarget.href, "_blank");
938
+ } else if (rest.href && String(rest.href).startsWith("/luya") && !configState.layout.preview) {
939
+ const urlObj = new URL(rest.href, window.location.origin);
891
940
  urlObj.searchParams.set("NS-TOKEN", tokenManager.get() || "");
892
941
  window.open(urlObj.toString(), "_blank");
893
942
  }
@@ -896,317 +945,127 @@ var PreviewLinkComponent = (props) => {
896
945
  }
897
946
  );
898
947
  };
899
-
900
- // src/components/custom-components/tool-renders/index.module.less
901
- var index_module_default = {
902
- iconContainer: "index_module_iconContainer",
903
- toolName: "index_module_toolName",
904
- duration: "index_module_duration",
905
- statusIcon: "index_module_statusIcon",
906
- sectionLabel: "index_module_sectionLabel",
907
- markdownContainer: "index_module_markdownContainer",
908
- sectionBlock: "index_module_sectionBlock",
909
- todoList: "index_module_todoList",
910
- todoItem: "index_module_todoItem",
911
- statusIconWrapper: "index_module_statusIconWrapper",
912
- todoContent: "index_module_todoContent",
913
- todoText: "index_module_todoText",
914
- completed: "index_module_completed",
915
- emptyText: "index_module_emptyText"
948
+ var singleTildeExtension = {
949
+ name: "singleTilde",
950
+ level: "inline",
951
+ start(src) {
952
+ return src.match(/(?<!~)~(?!~)/)?.index;
953
+ },
954
+ tokenizer(src) {
955
+ const match = /^(?<!~)~(?!~)/.exec(src);
956
+ if (match) {
957
+ return {
958
+ type: "text",
959
+ raw: match[0],
960
+ text: match[0]
961
+ };
962
+ }
963
+ return void 0;
964
+ }
916
965
  };
917
- var DefaultToolRender = ({ argsContent, resultContent, errorMessage, item }) => {
918
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
919
- (item.content || item.arguments) && argsContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: index_module_default.sectionBlock, children: [
920
- /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: index_module_default.sectionLabel, children: "\u8F93\u5165\u53C2\u6570" }),
921
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.markdownContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
922
- XMarkdown__default.default,
923
- {
924
- className: "xMarkdownStyle",
925
- components: { code: code_highlight_default },
926
- config: getMarkdownConfig(),
927
- content: argsContent.isJson ? `\`\`\`json
928
- ${argsContent.text}
929
- \`\`\`` : argsContent.text
930
- }
931
- ) })
932
- ] }),
933
- item.result && resultContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: index_module_default.sectionBlock, children: [
934
- /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: index_module_default.sectionLabel, children: "\u8FD4\u56DE\u7ED3\u679C" }),
935
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.markdownContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
936
- XMarkdown__default.default,
937
- {
938
- className: "xMarkdownStyle",
939
- components: { code: code_highlight_default },
940
- config: getMarkdownConfig(),
941
- content: resultContent.isJson ? `\`\`\`json
942
- ${resultContent.text}
943
- \`\`\`` : resultContent.text
944
- }
945
- ) })
946
- ] }),
947
- errorMessage && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: index_module_default.sectionBlock, children: [
948
- /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: index_module_default.sectionLabel, children: "\u9519\u8BEF\u4FE1\u606F" }),
949
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.markdownContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
950
- XMarkdown__default.default,
951
- {
952
- className: "xMarkdownStyle",
953
- components: { code: code_highlight_default },
954
- config: getMarkdownConfig(),
955
- content: `\`\`\`
956
- ${errorMessage}
957
- \`\`\``
958
- }
959
- ) })
960
- ] })
961
- ] });
966
+ var getMarkdownConfig = (options) => {
967
+ const latexExtensions = Latex2__default.default();
968
+ const extensions = Array.isArray(latexExtensions) ? [...latexExtensions, singleTildeExtension] : [latexExtensions, singleTildeExtension];
969
+ return {
970
+ extensions,
971
+ breaks: options?.breaks ?? false
972
+ };
962
973
  };
963
- var default_render_default = DefaultToolRender;
964
- var TodoWriteRender = ({ args, result }) => {
965
- const { token } = antd.theme.useToken();
966
- const todos = Array.isArray(result) ? result : result?.todos || (Array.isArray(args) ? args : args?.todos) || [];
967
- const getStatusIcon = (status) => {
968
- switch (status) {
969
- case "completed":
970
- return /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircleOutlined, { style: { color: token.colorSuccess } });
971
- case "in_progress":
972
- return /* @__PURE__ */ jsxRuntime.jsx(icons.ClockCircleOutlined, { style: { color: token.colorPrimary } });
973
- case "pending":
974
- default:
975
- return /* @__PURE__ */ jsxRuntime.jsx(icons.ClockCircleOutlined, { style: { color: token.colorTextTertiary } });
974
+ var adaptMarkdownComponent = (Component) => {
975
+ const WrappedComponent = ({ children, streamStatus, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(Component, { ...rest, data: common.safeParseJson(children, { repair: true }), loading: streamStatus === "loading" });
976
+ WrappedComponent.displayName = `AdaptedMarkdownComponent(${Component.displayName || Component.name || "Anonymous"})`;
977
+ return WrappedComponent;
978
+ };
979
+ var adaptMarkdownComponents = (components) => Object.fromEntries(Object.entries(components ?? {}).map(([key, Component]) => [key, adaptMarkdownComponent(Component)]));
980
+ function formatMixedContent(content) {
981
+ return content.replace(/<!DOCTYPE html>[\s\S]*?<\/html>/gi, (match) => `\`\`\`html
982
+ ${match}
983
+ \`\`\``);
984
+ }
985
+ var XMarkdown_default = ({ components, content, ...rest }) => {
986
+ const config = React7.useMemo(() => getMarkdownConfig(), []);
987
+ const markdownComponents = React7.useMemo(
988
+ () => adaptMarkdownComponents({
989
+ code: CodeHighlight_default,
990
+ agentnavigate: AgentNavigate_default,
991
+ a: PreviewLink_default,
992
+ appcard: AppCard_default,
993
+ fileview: FileView_default,
994
+ // indexquote: IndexQuote,
995
+ mdedit: MdEdit_default,
996
+ fileedit: FileEdit_default,
997
+ ...components
998
+ }),
999
+ [components]
1000
+ );
1001
+ return /* @__PURE__ */ jsxRuntime.jsx(
1002
+ XMarkdown__default.default,
1003
+ {
1004
+ config,
1005
+ ...rest,
1006
+ content: formatMixedContent(content),
1007
+ components: markdownComponents
976
1008
  }
977
- };
978
- if (!todos || todos.length === 0) {
979
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { type: "secondary", className: index_module_default.emptyText, children: "\u6682\u65E0\u4EFB\u52A1" });
1009
+ );
1010
+ };
1011
+ var ReportViewer = ({ artifactId, title, payload }) => {
1012
+ const markdown = typeof payload?.markdown === "string" ? payload.markdown : null;
1013
+ if (!markdown) {
1014
+ return /* @__PURE__ */ jsxRuntime.jsx(ArtifactCard, { type: "report", artifactId, title, payload });
980
1015
  }
1016
+ const exportBase = sanitizeFileName(title || artifactId || "report");
1017
+ const exportMd = () => {
1018
+ exportTextFile(markdown, `${exportBase}.md`, "text/markdown;charset=utf-8");
1019
+ };
981
1020
  return /* @__PURE__ */ jsxRuntime.jsx(
982
- antd.List,
1021
+ antd.Card,
983
1022
  {
984
1023
  size: "small",
985
- dataSource: todos,
986
- renderItem: (item) => /* @__PURE__ */ jsxRuntime.jsxs(antd.List.Item, { className: index_module_default.todoItem, children: [
987
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.statusIconWrapper, children: getStatusIcon(item.status) }),
988
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.todoContent, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: `${index_module_default.todoText} ${item.status === "completed" ? index_module_default.completed : ""}`, children: item.title || item.content }) })
989
- ] }),
990
- className: index_module_default.todoList
1024
+ style: { borderRadius: 12 },
1025
+ title: title || "\u62A5\u544A",
1026
+ extra: /* @__PURE__ */ jsxRuntime.jsx(antd.Space, { size: 4, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "text", onClick: exportMd, children: "\u5BFC\u51FAMD" }) }),
1027
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { lineHeight: 1.75 }, children: /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: markdown }) })
991
1028
  }
992
1029
  );
993
1030
  };
994
- var todo_write_render_default = TodoWriteRender;
995
- var toolRenders = {
996
- todo_write: {
997
- component: todo_write_render_default,
998
- defaultExpanded: false,
999
- alwaysShowContent: (args, result) => {
1000
- const todos = Array.isArray(result) ? result : result?.todos || (Array.isArray(args) ? args : args?.todos) || [];
1001
- return todos && todos.length > 0;
1002
- },
1003
- hideStatus: true,
1004
- disableExpandOnError: true
1005
- }
1006
- };
1007
- var getToolRenderConfig = (toolName) => {
1008
- if (toolName && toolRenders[toolName]) {
1009
- return toolRenders[toolName];
1031
+ var TableViewer = ({ artifactId, title, payload }) => {
1032
+ const columns = Array.isArray(payload?.columns) ? payload.columns : null;
1033
+ const rows = Array.isArray(payload?.rows) ? payload.rows : null;
1034
+ if (!columns || !rows) {
1035
+ return /* @__PURE__ */ jsxRuntime.jsx(ArtifactCard, { type: "table", artifactId, title, payload });
1010
1036
  }
1011
- return {
1012
- component: default_render_default,
1013
- defaultExpanded: false,
1014
- alwaysShowContent: false
1037
+ const safeColumns = columns.map((c) => ({
1038
+ title: String(c?.title ?? c?.dataIndex ?? ""),
1039
+ dataIndex: String(c?.dataIndex ?? "")
1040
+ })).filter((c) => c.dataIndex);
1041
+ const dataSource = rows.map((r, i) => ({
1042
+ key: String(r?.id ?? i),
1043
+ ...r && typeof r === "object" ? r : {}
1044
+ }));
1045
+ const exportBase = sanitizeFileName(title || artifactId || "table");
1046
+ const exportCsv = () => {
1047
+ const header = safeColumns.map((c) => escapeCsvCell(c.title)).join(",");
1048
+ const body = rows.map((row) => safeColumns.map((c) => escapeCsvCell(row?.[c.dataIndex])).join(",")).join("\n");
1049
+ exportTextFile(`\uFEFF${header}
1050
+ ${body}
1051
+ `, `${exportBase}.csv`, "text/csv;charset=utf-8");
1015
1052
  };
1016
- };
1017
- var formatContent = (content) => {
1018
- try {
1019
- if (!content) return { text: "", isJson: false, parsed: null };
1020
- if (typeof content === "object") {
1021
- return { text: JSON.stringify(content, null, 2), isJson: true, parsed: content };
1022
- }
1023
- const parsed = JSON.parse(content);
1024
- if (typeof parsed === "object" && parsed !== null) {
1025
- return { text: JSON.stringify(parsed, null, 2), isJson: true, parsed };
1053
+ const exportJson = () => {
1054
+ exportJsonFile({ columns: safeColumns, rows }, `${exportBase}.json`);
1055
+ };
1056
+ return /* @__PURE__ */ jsxRuntime.jsx(
1057
+ antd.Card,
1058
+ {
1059
+ size: "small",
1060
+ style: { borderRadius: 12 },
1061
+ title: title || "\u8868\u683C",
1062
+ extra: /* @__PURE__ */ jsxRuntime.jsxs(antd.Space, { size: 4, children: [
1063
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "text", onClick: exportCsv, children: "\u5BFC\u51FACSV" }),
1064
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "text", onClick: exportJson, children: "\u5BFC\u51FAJSON" })
1065
+ ] }),
1066
+ children: /* @__PURE__ */ jsxRuntime.jsx(antd.Table, { size: "small", pagination: false, columns: safeColumns, dataSource, scroll: { x: true } })
1026
1067
  }
1027
- return { text: content, isJson: false, parsed: null };
1028
- } catch {
1029
- return { text: typeof content === "string" ? content : "", isJson: false, parsed: null };
1030
- }
1031
- };
1032
- var ToolCallItem = ({ item }) => {
1033
- const { token } = antd.theme.useToken();
1034
- const renderConfig = getToolRenderConfig(item.toolName);
1035
- const CustomRender = renderConfig.component;
1036
- const status = React9.useMemo(() => {
1037
- if (item.status) return item.status;
1038
- if (item.errorMessage) return "error";
1039
- if (item.result) return "success";
1040
- return "running";
1041
- }, [item.status, item.errorMessage, item.result]);
1042
- const argsContent = React9.useMemo(() => formatContent(item.arguments || item.content), [item.arguments, item.content]);
1043
- const resultContent = React9.useMemo(() => item.result ? formatContent(item.result) : null, [item.result]);
1044
- const hasContent = React9.useMemo(() => {
1045
- if (renderConfig.disableExpandOnError && status === "error") return false;
1046
- let alwaysShow = false;
1047
- if (typeof renderConfig.alwaysShowContent === "function") {
1048
- alwaysShow = renderConfig.alwaysShowContent(argsContent.parsed, resultContent?.parsed);
1049
- } else if (renderConfig.alwaysShowContent) {
1050
- alwaysShow = renderConfig.alwaysShowContent;
1051
- }
1052
- if (alwaysShow) return true;
1053
- return Boolean(item.errorMessage);
1054
- }, [renderConfig.disableExpandOnError, renderConfig.alwaysShowContent, item.errorMessage, status, argsContent.parsed, resultContent?.parsed]);
1055
- const isDefaultExpanded = React9.useMemo(() => {
1056
- if (typeof renderConfig.defaultExpanded === "function") {
1057
- return renderConfig.defaultExpanded(argsContent.parsed, resultContent?.parsed);
1058
- }
1059
- return renderConfig.defaultExpanded;
1060
- }, [renderConfig.defaultExpanded, argsContent.parsed, resultContent?.parsed]);
1061
- const statusConfig = {
1062
- running: {
1063
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, {}),
1064
- color: token.colorPrimary
1065
- },
1066
- success: {
1067
- icon: null,
1068
- color: token.colorSuccess
1069
- },
1070
- error: {
1071
- icon: null,
1072
- color: token.colorSuccess
1073
- },
1074
- pending: {
1075
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, {}),
1076
- color: token.colorTextSecondary
1077
- }
1078
- }[status] || {
1079
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, {}),
1080
- color: token.colorPrimary
1081
- };
1082
- const renderIcon = () => {
1083
- if (!item.toolIcon) {
1084
- return /* @__PURE__ */ jsxRuntime.jsx(icons.ToolOutlined, { style: { fontSize: 14, color: token.colorTextSecondary } });
1085
- }
1086
- const isUrl = /^(http|\/)/.test(item.toolIcon);
1087
- if (isUrl) {
1088
- return /* @__PURE__ */ jsxRuntime.jsx("img", { src: item.toolIcon, alt: "tool-icon", style: { width: "100%", height: "100%", objectFit: "contain" } });
1089
- }
1090
- return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 14, lineHeight: 1 }, children: item.toolIcon });
1091
- };
1092
- return /* @__PURE__ */ jsxRuntime.jsx(
1093
- antd.Collapse,
1094
- {
1095
- style: { width: "70%" },
1096
- collapsible: hasContent ? void 0 : "disabled",
1097
- defaultActiveKey: isDefaultExpanded && hasContent ? [item.toolCallId || "fallback-key"] : void 0,
1098
- expandIconPlacement: "end",
1099
- styles: {
1100
- header: {
1101
- padding: "6px 10px"
1102
- }
1103
- },
1104
- items: [
1105
- {
1106
- key: item.toolCallId || "fallback-key",
1107
- showArrow: hasContent,
1108
- label: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { align: "center", gap: 8, style: { flex: 1, minWidth: 0 }, children: [
1109
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.iconContainer, children: renderIcon() }),
1110
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: index_module_default.toolName, children: item.title || item.toolName || "Unknown Tool" }),
1111
- (status === "running" || status === "pending") && /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.statusIcon, style: { color: statusConfig.color }, children: statusConfig.icon }),
1112
- item.duration && /* @__PURE__ */ jsxRuntime.jsxs(antd.Typography.Text, { className: index_module_default.duration, children: [
1113
- item.duration,
1114
- "ms"
1115
- ] })
1116
- ] }),
1117
- children: /* @__PURE__ */ jsxRuntime.jsx(
1118
- CustomRender,
1119
- {
1120
- item,
1121
- args: argsContent.parsed,
1122
- result: resultContent?.parsed,
1123
- argsContent,
1124
- resultContent,
1125
- errorMessage: item.errorMessage
1126
- }
1127
- )
1128
- }
1129
- ]
1130
- }
1131
- );
1132
- };
1133
- var tool_call_item_default = ToolCallItem;
1134
- function formatMixedContent(content) {
1135
- return content.replace(/<!DOCTYPE html>[\s\S]*?<\/html>/gi, (match) => `\`\`\`html
1136
- ${match}
1137
- \`\`\``);
1138
- }
1139
- var ReportViewer = ({ artifactId, title, payload }) => {
1140
- const markdown = typeof payload?.markdown === "string" ? payload.markdown : null;
1141
- if (!markdown) {
1142
- return /* @__PURE__ */ jsxRuntime.jsx(ArtifactCard, { type: "report", artifactId, title, payload });
1143
- }
1144
- const exportBase = sanitizeFileName(title || artifactId || "report");
1145
- const exportMd = () => {
1146
- exportTextFile(markdown, `${exportBase}.md`, "text/markdown;charset=utf-8");
1147
- };
1148
- return /* @__PURE__ */ jsxRuntime.jsx(
1149
- antd.Card,
1150
- {
1151
- size: "small",
1152
- style: { borderRadius: 12 },
1153
- title: title || "\u62A5\u544A",
1154
- extra: /* @__PURE__ */ jsxRuntime.jsx(antd.Space, { size: 4, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "text", onClick: exportMd, children: "\u5BFC\u51FAMD" }) }),
1155
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { lineHeight: 1.75 }, children: /* @__PURE__ */ jsxRuntime.jsx(
1156
- XMarkdown__default.default,
1157
- {
1158
- openLinksInNewTab: true,
1159
- className: classNames7__default.default("x-markdown-light", "xMarkdownStyle"),
1160
- components: {
1161
- code: code_highlight_default,
1162
- agentnavigate: agent_navigate_default,
1163
- a: PreviewLinkComponent
1164
- },
1165
- config: getMarkdownConfig(),
1166
- content: formatMixedContent(markdown)
1167
- }
1168
- ) })
1169
- }
1170
- );
1171
- };
1172
- var TableViewer = ({ artifactId, title, payload }) => {
1173
- const columns = Array.isArray(payload?.columns) ? payload.columns : null;
1174
- const rows = Array.isArray(payload?.rows) ? payload.rows : null;
1175
- if (!columns || !rows) {
1176
- return /* @__PURE__ */ jsxRuntime.jsx(ArtifactCard, { type: "table", artifactId, title, payload });
1177
- }
1178
- const safeColumns = columns.map((c) => ({
1179
- title: String(c?.title ?? c?.dataIndex ?? ""),
1180
- dataIndex: String(c?.dataIndex ?? "")
1181
- })).filter((c) => c.dataIndex);
1182
- const dataSource = rows.map((r, i) => ({
1183
- key: String(r?.id ?? i),
1184
- ...r && typeof r === "object" ? r : {}
1185
- }));
1186
- const exportBase = sanitizeFileName(title || artifactId || "table");
1187
- const exportCsv = () => {
1188
- const header = safeColumns.map((c) => escapeCsvCell(c.title)).join(",");
1189
- const body = rows.map((row) => safeColumns.map((c) => escapeCsvCell(row?.[c.dataIndex])).join(",")).join("\n");
1190
- exportTextFile(`\uFEFF${header}
1191
- ${body}
1192
- `, `${exportBase}.csv`, "text/csv;charset=utf-8");
1193
- };
1194
- const exportJson = () => {
1195
- exportJsonFile({ columns: safeColumns, rows }, `${exportBase}.json`);
1196
- };
1197
- return /* @__PURE__ */ jsxRuntime.jsx(
1198
- antd.Card,
1199
- {
1200
- size: "small",
1201
- style: { borderRadius: 12 },
1202
- title: title || "\u8868\u683C",
1203
- extra: /* @__PURE__ */ jsxRuntime.jsxs(antd.Space, { size: 4, children: [
1204
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "text", onClick: exportCsv, children: "\u5BFC\u51FACSV" }),
1205
- /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { size: "small", type: "text", onClick: exportJson, children: "\u5BFC\u51FAJSON" })
1206
- ] }),
1207
- children: /* @__PURE__ */ jsxRuntime.jsx(antd.Table, { size: "small", pagination: false, columns: safeColumns, dataSource, scroll: { x: true } })
1208
- }
1209
- );
1068
+ );
1210
1069
  };
1211
1070
  var { Text: AText2, Title } = antd.Typography;
1212
1071
  var FIELD_LABEL_STYLE = { marginBottom: 6, fontSize: 13, fontWeight: 500, color: "#555" };
@@ -1335,8 +1194,8 @@ function useBoundFieldState({
1335
1194
  const valuePath = decodeBindPathToken(bindPathToken) ?? pathFromValue(value);
1336
1195
  const cachedValue = readCachedValue(readPathValue(valuePath));
1337
1196
  const externalValue = readExternalValue(value);
1338
- const dirtyRef = React9__default.default.useRef(false);
1339
- const [localValue, setLocalValue] = React9__default.default.useState(() => {
1197
+ const dirtyRef = React7__default.default.useRef(false);
1198
+ const [localValue, setLocalValue] = React7__default.default.useState(() => {
1340
1199
  if (valuePath && cachedValue !== void 0) {
1341
1200
  return cachedValue;
1342
1201
  }
@@ -1349,10 +1208,10 @@ function useBoundFieldState({
1349
1208
  if (cachedValue !== void 0) return cachedValue;
1350
1209
  return defaultValue;
1351
1210
  });
1352
- React9__default.default.useEffect(() => {
1211
+ React7__default.default.useEffect(() => {
1353
1212
  dirtyRef.current = false;
1354
1213
  }, [valuePath]);
1355
- React9__default.default.useEffect(() => {
1214
+ React7__default.default.useEffect(() => {
1356
1215
  if (valuePath && cachedValue !== void 0) {
1357
1216
  setLocalValue(cachedValue);
1358
1217
  return;
@@ -1376,10 +1235,10 @@ function useBoundFieldState({
1376
1235
  setLocalValue(cachedValue);
1377
1236
  }
1378
1237
  }, [cachedValue, externalValue, preferCachedOverExternal, valuePath]);
1379
- React9__default.default.useEffect(() => {
1238
+ React7__default.default.useEffect(() => {
1380
1239
  rememberPathValue(valuePath, localValue);
1381
1240
  }, [valuePath, localValue]);
1382
- const updateLocalValue = React9__default.default.useCallback(
1241
+ const updateLocalValue = React7__default.default.useCallback(
1383
1242
  (nextValue) => {
1384
1243
  dirtyRef.current = true;
1385
1244
  setLocalValue(nextValue);
@@ -1399,7 +1258,7 @@ function emitFieldChange(nextValue, valuePath, updateLocalValue, onDataChange, o
1399
1258
  onChange?.(nextValue);
1400
1259
  }
1401
1260
  function useControlId(id) {
1402
- const autoId = React9__default.default.useId();
1261
+ const autoId = React7__default.default.useId();
1403
1262
  return id ?? autoId;
1404
1263
  }
1405
1264
  function readActionEvent(action) {
@@ -1486,7 +1345,7 @@ var Switch = ({ id, label, value, bind_path_token, onChange, onDataChange }) =>
1486
1345
  /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 13, color: "#555" }, children: label })
1487
1346
  ] });
1488
1347
  };
1489
- var Button3 = ({ label, variant = "default", onClick, action, onAction }) => {
1348
+ var Button5 = ({ label, variant = "default", onClick, action, onAction }) => {
1490
1349
  const handleClick = () => {
1491
1350
  if (onClick) {
1492
1351
  onClick();
@@ -1516,7 +1375,7 @@ var A2uiComponents = {
1516
1375
  TextField,
1517
1376
  Select,
1518
1377
  Switch,
1519
- Button: Button3,
1378
+ Button: Button5,
1520
1379
  Divider,
1521
1380
  Tag,
1522
1381
  Progress,
@@ -1526,7 +1385,7 @@ var A2uiComponents = {
1526
1385
  ReportViewer
1527
1386
  };
1528
1387
 
1529
- // a2ui-runtime/controller/meta.ts
1388
+ // src/components/CustomComponents/a2ui-runtime/controller/meta.ts
1530
1389
  function readProp(current, props, key) {
1531
1390
  return current[key] ?? props?.[key];
1532
1391
  }
@@ -1632,7 +1491,7 @@ function collectActionDisplayMeta(commands, surfaceId, context) {
1632
1491
  return Object.keys(labels).length || Object.keys(valueLabels).length ? { labels, valueLabels } : null;
1633
1492
  }
1634
1493
 
1635
- // a2ui-runtime/controller/action.ts
1494
+ // src/components/CustomComponents/a2ui-runtime/controller/action.ts
1636
1495
  function extractPathFromRef2(value) {
1637
1496
  if (typeof value === "string") {
1638
1497
  if (value.startsWith("$bind:/")) return value.slice("$bind:".length);
@@ -1770,7 +1629,7 @@ function buildDispatchContext(surfaceId, rawContext, commands) {
1770
1629
  };
1771
1630
  }
1772
1631
 
1773
- // a2ui-runtime/controller/visibility.ts
1632
+ // src/components/CustomComponents/a2ui-runtime/controller/visibility.ts
1774
1633
  function extractSurfaceId(cmd) {
1775
1634
  if (!cmd || typeof cmd !== "object") return "";
1776
1635
  return cmd.createSurface?.surfaceId ?? cmd.updateComponents?.surfaceId ?? cmd.updateDataModel?.surfaceId ?? cmd.deleteSurface?.surfaceId ?? "";
@@ -1791,7 +1650,7 @@ function resolveVisibleSurfaceIds(commands, dismissedSurfaceIds = []) {
1791
1650
  return Array.from(states.entries()).filter(([sid, st]) => !st.deleted && !dismissedSurfaceIds.includes(sid)).map(([sid]) => sid);
1792
1651
  }
1793
1652
 
1794
- // a2ui-runtime/controller/wizard.ts
1653
+ // src/components/CustomComponents/a2ui-runtime/controller/wizard.ts
1795
1654
  function readString(obj, ...keys) {
1796
1655
  for (const k of keys) {
1797
1656
  const v = obj?.[k];
@@ -2000,7 +1859,7 @@ function buildWizardUpdateComponentsCommand(schema, stepId) {
2000
1859
  };
2001
1860
  }
2002
1861
 
2003
- // a2ui-runtime/controller/runtime.ts
1862
+ // src/components/CustomComponents/a2ui-runtime/controller/runtime.ts
2004
1863
  function createA2uiRuntimeState() {
2005
1864
  return {
2006
1865
  processedMessageCursors: [],
@@ -2200,7 +2059,7 @@ function selectA2uiRuntimeView(state, dismissedSurfaceIds) {
2200
2059
  };
2201
2060
  }
2202
2061
 
2203
- // a2ui-runtime/controller/index.ts
2062
+ // src/components/CustomComponents/a2ui-runtime/controller/index.ts
2204
2063
  function applyA2uiRuntimeEffects(effects) {
2205
2064
  effects.forEach((effect) => {
2206
2065
  if (effect.type === "reset-model-store") {
@@ -2216,23 +2075,23 @@ function applyA2uiRuntimeEffects(effects) {
2216
2075
  }
2217
2076
  function useA2uiController(params) {
2218
2077
  const { conversationId, conversationMessages, dismissedSurfaceIds } = params;
2219
- const runtimeRef = React9.useRef(createA2uiRuntimeState());
2220
- const [runtimeState, setRuntimeState] = React9.useState(() => createA2uiRuntimeState());
2221
- React9.useEffect(() => {
2078
+ const runtimeRef = React7.useRef(createA2uiRuntimeState());
2079
+ const [runtimeState, setRuntimeState] = React7.useState(() => createA2uiRuntimeState());
2080
+ React7.useEffect(() => {
2222
2081
  const nextState = createA2uiRuntimeState();
2223
2082
  runtimeRef.current = nextState;
2224
2083
  setRuntimeState(nextState);
2225
2084
  clearAllModelValues();
2226
2085
  }, [conversationId]);
2227
- React9.useEffect(() => {
2086
+ React7.useEffect(() => {
2228
2087
  const result = reduceA2uiRuntimeMessages(runtimeRef.current, conversationMessages || []);
2229
2088
  if (result.state === runtimeRef.current && result.effects.length === 0) return;
2230
2089
  runtimeRef.current = result.state;
2231
2090
  applyA2uiRuntimeEffects(result.effects);
2232
2091
  setRuntimeState(result.state);
2233
2092
  }, [conversationMessages, conversationId]);
2234
- const view = React9.useMemo(() => selectA2uiRuntimeView(runtimeState, dismissedSurfaceIds), [runtimeState, dismissedSurfaceIds]);
2235
- const handleRuntimeAction = React9.useCallback((payload) => {
2093
+ const view = React7.useMemo(() => selectA2uiRuntimeView(runtimeState, dismissedSurfaceIds), [runtimeState, dismissedSurfaceIds]);
2094
+ const handleRuntimeAction = React7.useCallback((payload) => {
2236
2095
  const surfaceId = String(payload?.surfaceId || payload?.cardId || "");
2237
2096
  const name = String(payload?.name || payload?.event?.name || "").trim();
2238
2097
  const rawContext = payload?.context || payload?.event?.context || {};
@@ -2253,15 +2112,15 @@ function useA2uiController(params) {
2253
2112
  handleRuntimeAction
2254
2113
  };
2255
2114
  }
2256
- var A2uiRuntimeContext = React9__default.default.createContext({
2115
+ var A2uiRuntimeContext = React7__default.default.createContext({
2257
2116
  commands: [],
2258
2117
  onAction: () => void 0,
2259
2118
  surfaceIdsByMessageIndex: {}
2260
2119
  });
2261
2120
 
2262
- // a2ui-runtime/renderer/useA2uiRuntimeView.ts
2121
+ // src/components/CustomComponents/a2ui-runtime/renderer/useA2uiRuntimeView.ts
2263
2122
  function useA2uiRuntimeView() {
2264
- return React9__default.default.useContext(A2uiRuntimeContext);
2123
+ return React7__default.default.useContext(A2uiRuntimeContext);
2265
2124
  }
2266
2125
  function A2uiMessageCards({ messageIndex }) {
2267
2126
  const { surfaceIdsByMessageIndex } = useA2uiRuntimeView();
@@ -2270,7 +2129,7 @@ function A2uiMessageCards({ messageIndex }) {
2270
2129
  return /* @__PURE__ */ jsxRuntime.jsx("div", { children: surfaceIds.map((surfaceId) => /* @__PURE__ */ jsxRuntime.jsx(XCard.Card, { id: surfaceId }, surfaceId)) });
2271
2130
  }
2272
2131
 
2273
- // a2ui-runtime/renderer/protocol.ts
2132
+ // src/components/CustomComponents/a2ui-runtime/renderer/protocol.ts
2274
2133
  function isSubmitLikeActionName2(name) {
2275
2134
  const normalized = String(name || "").trim();
2276
2135
  return normalized === "submit" || normalized === "confirm" || normalized.startsWith("submit_") || normalized.endsWith(".confirm");
@@ -2370,11 +2229,6 @@ function shouldHideA2uiPlan(item) {
2370
2229
  return (kind === "form" || kind === "wizard" || kind === "dashboard") && !!surfaceId;
2371
2230
  });
2372
2231
  }
2373
- function formatMixedContent2(content) {
2374
- return content.replace(/<!DOCTYPE html>[\s\S]*?<\/html>/gi, (match) => `\`\`\`html
2375
- ${match}
2376
- \`\`\``);
2377
- }
2378
2232
  function extractPlanPayload(plan) {
2379
2233
  if (!plan || typeof plan !== "object") return null;
2380
2234
  const raw = plan;
@@ -2423,16 +2277,7 @@ function ViewerPlan({ payload }) {
2423
2277
 
2424
2278
  ${description || ""}`.trim() : "";
2425
2279
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [
2426
- header ? /* @__PURE__ */ jsxRuntime.jsx(
2427
- XMarkdown__default.default,
2428
- {
2429
- openLinksInNewTab: true,
2430
- className: classNames7__default.default("x-markdown-light", "xMarkdownStyle"),
2431
- components: { code: code_highlight_default, agentnavigate: agent_navigate_default },
2432
- config: getMarkdownConfig(),
2433
- content: formatMixedContent2(header)
2434
- }
2435
- ) : null,
2280
+ header ? /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: header }) : null,
2436
2281
  artifacts.map((artifact, index) => renderArtifact(artifact, index))
2437
2282
  ] });
2438
2283
  }
@@ -2450,16 +2295,7 @@ function A2uiPlanNode({ item }) {
2450
2295
  ${JSON.stringify(item.plan, null, 2)}
2451
2296
  \`\`\`` : "";
2452
2297
  if (!title && !content) return null;
2453
- return /* @__PURE__ */ jsxRuntime.jsx(
2454
- XMarkdown__default.default,
2455
- {
2456
- openLinksInNewTab: true,
2457
- className: classNames7__default.default("x-markdown-light", "xMarkdownStyle"),
2458
- components: { code: code_highlight_default, agentnavigate: agent_navigate_default },
2459
- config: getMarkdownConfig(),
2460
- content: formatMixedContent2(`${title}${content}`)
2461
- }
2462
- );
2298
+ return /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: `${title}${content}` });
2463
2299
  }
2464
2300
  function extractSurfaceId3(command) {
2465
2301
  if (!command || typeof command !== "object") return "";
@@ -2498,19 +2334,19 @@ function A2uiRuntimeProvider({ messages, children }) {
2498
2334
  const chatStore = useChatStore();
2499
2335
  const conversationState = valtio.useSnapshot(chatStore.conversation);
2500
2336
  const conversationId = conversationState.active.id;
2501
- const processedMessageCursorsRef = React9__default.default.useRef([]);
2502
- const latestCommandIndexBySurfaceRef = React9__default.default.useRef({});
2503
- const commandIndexRef = React9__default.default.useRef(-1);
2504
- const [latestCommandIndexBySurface, setLatestCommandIndexBySurface] = React9__default.default.useState({});
2505
- const [dismissedAtBySurface, setDismissedAtBySurface] = React9__default.default.useState({});
2506
- React9__default.default.useEffect(() => {
2337
+ const processedMessageCursorsRef = React7__default.default.useRef([]);
2338
+ const latestCommandIndexBySurfaceRef = React7__default.default.useRef({});
2339
+ const commandIndexRef = React7__default.default.useRef(-1);
2340
+ const [latestCommandIndexBySurface, setLatestCommandIndexBySurface] = React7__default.default.useState({});
2341
+ const [dismissedAtBySurface, setDismissedAtBySurface] = React7__default.default.useState({});
2342
+ React7__default.default.useEffect(() => {
2507
2343
  processedMessageCursorsRef.current = [];
2508
2344
  latestCommandIndexBySurfaceRef.current = {};
2509
2345
  commandIndexRef.current = -1;
2510
2346
  setLatestCommandIndexBySurface({});
2511
2347
  setDismissedAtBySurface({});
2512
2348
  }, [conversationId]);
2513
- React9__default.default.useEffect(() => {
2349
+ React7__default.default.useEffect(() => {
2514
2350
  const { shouldReplayAll, nextCursors, pendingItems } = diffMessages(messages, processedMessageCursorsRef.current);
2515
2351
  const itemsToProcess = shouldReplayAll ? messages.flatMap((message3) => {
2516
2352
  const items = Array.isArray(message3?.content) ? message3.content : [];
@@ -2533,10 +2369,10 @@ function A2uiRuntimeProvider({ messages, children }) {
2533
2369
  commandIndexRef.current = nextCommandIndex;
2534
2370
  setLatestCommandIndexBySurface(nextLatestCommandIndexBySurface);
2535
2371
  }, [messages]);
2536
- const dismissedSurfaceIds = React9__default.default.useMemo(() => {
2372
+ const dismissedSurfaceIds = React7__default.default.useMemo(() => {
2537
2373
  return Object.entries(dismissedAtBySurface).filter(([surfaceId, dismissedAt]) => (latestCommandIndexBySurface[surfaceId] ?? -1) <= dismissedAt).map(([surfaceId]) => surfaceId);
2538
2374
  }, [dismissedAtBySurface, latestCommandIndexBySurface]);
2539
- const dispatchA2uiAction = React9__default.default.useCallback(
2375
+ const dispatchA2uiAction = React7__default.default.useCallback(
2540
2376
  async (payload) => {
2541
2377
  const actionPayload = normalizeA2uiActionPayload(payload);
2542
2378
  if (!actionPayload.name) return;
@@ -2563,7 +2399,7 @@ function A2uiRuntimeProvider({ messages, children }) {
2563
2399
  conversationMessages: messages,
2564
2400
  dismissedSurfaceIds
2565
2401
  });
2566
- const onAction = React9__default.default.useCallback(
2402
+ const onAction = React7__default.default.useCallback(
2567
2403
  (payload) => {
2568
2404
  const result = handleRuntimeAction(payload);
2569
2405
  if (result.handled || !result.name) return;
@@ -2576,7 +2412,7 @@ function A2uiRuntimeProvider({ messages, children }) {
2576
2412
  },
2577
2413
  [commands, dispatchA2uiAction, handleRuntimeAction, runtimeState.modelPathBySurface]
2578
2414
  );
2579
- const contextValue = React9__default.default.useMemo(
2415
+ const contextValue = React7__default.default.useMemo(
2580
2416
  () => ({ commands, onAction, surfaceIdsByMessageIndex: anchoredSurfaceIdsByMessageIndex }),
2581
2417
  [anchoredSurfaceIdsByMessageIndex, commands, onAction]
2582
2418
  );
@@ -2585,523 +2421,361 @@ function A2uiRuntimeProvider({ messages, children }) {
2585
2421
  function A2uiRenderer(props) {
2586
2422
  return /* @__PURE__ */ jsxRuntime.jsx(A2uiRuntimeProvider, { ...props });
2587
2423
  }
2588
- function formatMixedContent3(content) {
2589
- return content.replace(/<!DOCTYPE html>[\s\S]*?<\/html>/gi, (match) => `\`\`\`html
2590
- ${match}
2591
- \`\`\``);
2592
- }
2593
- function QuestionSummary({ content }) {
2594
- const answer = content.replace(/^Question:\s*/, "").trim() || "\u5DF2\u56DE\u7B54";
2595
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { display: "inline-flex", flexDirection: "column", gap: 4 }, children: [
2596
- /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 13, fontWeight: 600, color: "#1677ff", lineHeight: 1.4 }, children: "Question" }),
2597
- /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 13, color: "#262626", lineHeight: 1.6, whiteSpace: "pre-wrap" }, children: answer })
2598
- ] });
2599
- }
2600
- var RunStartedNode = React9__default.default.memo(({ loading }) => {
2601
- if (!loading) return null;
2602
- return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { gap: 8, align: "center", className: styles_module_default.runStartedNode, children: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, { style: { color: "#1677ff" } }) });
2603
- });
2604
- var ToolCallNode = React9__default.default.memo(({ item }) => {
2605
- return /* @__PURE__ */ jsxRuntime.jsx(tool_call_item_default, { item });
2606
- });
2607
- var TextNode = React9__default.default.memo(({ item, role, customComponents }) => {
2608
- const content = toA2uiDisplayText(role, item?.messageContent);
2609
- if (typeof content === "string" && content.startsWith("Question:")) {
2610
- return /* @__PURE__ */ jsxRuntime.jsx(QuestionSummary, { content });
2611
- }
2424
+
2425
+ // src/components/CustomComponents/tool-renders/index.module.less
2426
+ var index_module_default = {
2427
+ iconContainer: "index_module_iconContainer",
2428
+ toolName: "index_module_toolName",
2429
+ duration: "index_module_duration",
2430
+ statusIcon: "index_module_statusIcon",
2431
+ sectionLabel: "index_module_sectionLabel",
2432
+ markdownContainer: "index_module_markdownContainer",
2433
+ sectionBlock: "index_module_sectionBlock",
2434
+ todoList: "index_module_todoList",
2435
+ todoItem: "index_module_todoItem",
2436
+ statusIconWrapper: "index_module_statusIconWrapper",
2437
+ todoContent: "index_module_todoContent",
2438
+ todoText: "index_module_todoText",
2439
+ completed: "index_module_completed",
2440
+ emptyText: "index_module_emptyText"
2441
+ };
2442
+ var DefaultToolRender = ({ argsContent, resultContent, errorMessage, item }) => {
2612
2443
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2613
- !!item.reasoningContent && /* @__PURE__ */ jsxRuntime.jsx(xV2.Think, { title: "\u6DF1\u5EA6\u601D\u8003", children: item.reasoningContent }),
2614
- !!content && /* @__PURE__ */ jsxRuntime.jsx(
2615
- XMarkdown__default.default,
2616
- {
2617
- openLinksInNewTab: true,
2618
- className: classNames7__default.default("x-markdown-light", "xMarkdownStyle"),
2619
- components: {
2620
- code: code_highlight_default,
2621
- agentnavigate: agent_navigate_default,
2622
- a: PreviewLinkComponent,
2623
- ...customComponents
2624
- },
2625
- config: getMarkdownConfig(),
2626
- content: formatMixedContent3(content)
2627
- }
2628
- )
2444
+ (item.content || item.arguments) && argsContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: index_module_default.sectionBlock, children: [
2445
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: index_module_default.sectionLabel, children: "\u8F93\u5165\u53C2\u6570" }),
2446
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.markdownContainer, children: /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: argsContent.isJson ? `\`\`\`json
2447
+ ${argsContent.text}
2448
+ \`\`\`` : argsContent.text }) })
2449
+ ] }),
2450
+ item.result && resultContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: index_module_default.sectionBlock, children: [
2451
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: index_module_default.sectionLabel, children: "\u8FD4\u56DE\u7ED3\u679C" }),
2452
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.markdownContainer, children: /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: resultContent.isJson ? `\`\`\`json
2453
+ ${resultContent.text}
2454
+ \`\`\`` : resultContent.text }) })
2455
+ ] }),
2456
+ errorMessage && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: index_module_default.sectionBlock, children: [
2457
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: index_module_default.sectionLabel, children: "\u9519\u8BEF\u4FE1\u606F" }),
2458
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.markdownContainer, children: /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: `\`\`\`
2459
+ ${errorMessage}
2460
+ \`\`\`` }) })
2461
+ ] })
2629
2462
  ] });
2630
- });
2631
- var StepErrorNode = React9__default.default.memo(({ item, customComponents }) => {
2632
- if (!item.errorMessage) return null;
2463
+ };
2464
+ var default_render_default = DefaultToolRender;
2465
+ var TodoWriteRender = ({ args, result }) => {
2466
+ const { token } = antd.theme.useToken();
2467
+ const todos = Array.isArray(result) ? result : result?.todos || (Array.isArray(args) ? args : args?.todos) || [];
2468
+ const getStatusIcon = (status) => {
2469
+ switch (status) {
2470
+ case "completed":
2471
+ return /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircleOutlined, { style: { color: token.colorSuccess } });
2472
+ case "in_progress":
2473
+ return /* @__PURE__ */ jsxRuntime.jsx(icons.ClockCircleOutlined, { style: { color: token.colorPrimary } });
2474
+ case "pending":
2475
+ default:
2476
+ return /* @__PURE__ */ jsxRuntime.jsx(icons.ClockCircleOutlined, { style: { color: token.colorTextTertiary } });
2477
+ }
2478
+ };
2479
+ if (!todos || todos.length === 0) {
2480
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { type: "secondary", className: index_module_default.emptyText, children: "\u6682\u65E0\u4EFB\u52A1" });
2481
+ }
2633
2482
  return /* @__PURE__ */ jsxRuntime.jsx(
2634
- XMarkdown__default.default,
2483
+ antd.List,
2635
2484
  {
2636
- openLinksInNewTab: true,
2637
- className: classNames7__default.default("x-markdown-light", "xMarkdownStyle"),
2638
- components: { code: code_highlight_default, agentnavigate: agent_navigate_default, ...customComponents },
2639
- config: getMarkdownConfig(),
2640
- content: item.errorMessage
2485
+ size: "small",
2486
+ dataSource: todos,
2487
+ renderItem: (item) => /* @__PURE__ */ jsxRuntime.jsxs(antd.List.Item, { className: index_module_default.todoItem, children: [
2488
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.statusIconWrapper, children: getStatusIcon(item.status) }),
2489
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.todoContent, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Typography.Text, { className: `${index_module_default.todoText} ${item.status === "completed" ? index_module_default.completed : ""}`, children: item.title || item.content }) })
2490
+ ] }),
2491
+ className: index_module_default.todoList
2641
2492
  }
2642
2493
  );
2643
- });
2644
- var FilesNode = React9__default.default.memo(({ item }) => {
2645
- const chatStore = useChatStore();
2646
- const configState = valtio.useSnapshot(chatStore.config);
2647
- const agentState = valtio.useSnapshot(chatStore.agent);
2648
- const conversationState = valtio.useSnapshot(chatStore.conversation);
2649
- const fileItems = React9.useMemo(() => {
2650
- return (item.files || []).map((file) => {
2651
- const previewUrl = configState.services.request.getPreviewUrl(agentState.agentInfo.id, conversationState.active.id, file.path);
2652
- let fileType = "file";
2653
- const ext = file.ext?.toLowerCase() || "";
2654
- if (["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg", "webp"].includes(ext)) {
2655
- fileType = "image";
2656
- } else if (["mp4", "webm", "ogg", "mov"].includes(ext)) {
2657
- fileType = "video";
2658
- } else if (["mp3", "wav", "ogg", "m4a"].includes(ext)) {
2659
- fileType = "audio";
2660
- }
2661
- return {
2662
- ...file,
2663
- src: fileType === "image" ? previewUrl : file.path,
2664
- type: fileType,
2665
- onClick: () => chatStore.setPreview({ path: file.path, fileName: file.name })
2666
- };
2667
- });
2668
- }, [item.files]);
2669
- return /* @__PURE__ */ jsxRuntime.jsx(xV2.FileCard.List, { style: { width: "70%" }, items: fileItems });
2670
- });
2671
- var MessageRender_default = React9__default.default.memo(({ message: message3, messageIndex = -1, loading, containerRef, customComponents }) => {
2672
- const content = message3.content || [];
2673
- if (content.length === 0) return null;
2674
- return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { ref: containerRef, vertical: true, gap: 8, children: [
2675
- content.filter((item) => item.type !== "a2uiCommand").map((item, index) => {
2676
- if (item.type === "runStarted") {
2677
- return /* @__PURE__ */ jsxRuntime.jsx(RunStartedNode, { loading }, `flow-start-${index}`);
2678
- }
2679
- if (item.type === "toolCall" || item.type === "toolResult") {
2680
- return /* @__PURE__ */ jsxRuntime.jsx(ToolCallNode, { item }, `tool-call-${item.toolCallId || index}`);
2681
- }
2682
- if (item.type === "text") {
2683
- return /* @__PURE__ */ jsxRuntime.jsx(TextNode, { item, role: message3.role, customComponents }, `message-${index}`);
2684
- }
2685
- if (item.type === "stepError") {
2686
- return /* @__PURE__ */ jsxRuntime.jsx(StepErrorNode, { item, customComponents }, `step-error-${index}`);
2687
- }
2688
- if (item.type === "files") {
2689
- return /* @__PURE__ */ jsxRuntime.jsx(FilesNode, { item }, `files-${index}`);
2690
- }
2691
- if (item.type === "plan") {
2692
- return /* @__PURE__ */ jsxRuntime.jsx(A2uiPlanNode, { item }, `plan-${index}`);
2693
- }
2694
- return null;
2695
- }),
2696
- messageIndex >= 0 ? /* @__PURE__ */ jsxRuntime.jsx(A2uiMessageCards, { messageIndex }) : null
2697
- ] });
2698
- });
2699
-
2700
- // src/core/constants.ts
2701
- var CONV_MODE = {
2702
- PROD: 1,
2703
- DEBUG: 2
2704
2494
  };
2705
- var flowSpecState = valtio.proxy({
2706
- nodes: []
2707
- });
2708
- function setLogPanelOpen(_open, _executionId) {
2709
- }
2710
-
2711
- // src/ui/common/styles.module.less
2712
- var styles_module_default2 = {
2713
- chatHeader: "styles_module_chatHeader",
2714
- chatTitle: "styles_module_chatTitle",
2715
- popover: "styles_module_popover",
2716
- conversationListPanel: "styles_module_conversationListPanel",
2717
- createConversationButton: "styles_module_createConversationButton",
2718
- conversations: "styles_module_conversations",
2719
- chatWelcomeWrap: "styles_module_chatWelcomeWrap",
2720
- chatWelcome: "styles_module_chatWelcome",
2721
- promptItem: "styles_module_promptItem",
2722
- bubbleList: "styles_module_bubbleList",
2723
- messageFooter: "styles_module_messageFooter",
2724
- resourceBtn: "styles_module_resourceBtn",
2725
- resourceBtnActive: "styles_module_resourceBtnActive",
2726
- userInputCollapse: "styles_module_userInputCollapse",
2727
- logoArea: "styles_module_logoArea",
2728
- logoContainer: "styles_module_logoContainer",
2729
- staticHalo: "styles_module_staticHalo",
2730
- logoHoverWrapper: "styles_module_logoHoverWrapper",
2731
- logoImage: "styles_module_logoImage",
2732
- greetingTitle: "styles_module_greetingTitle",
2733
- gradientText: "styles_module_gradientText",
2734
- greetingSubtitle: "styles_module_greetingSubtitle",
2735
- senderReferenceHeaderTitle: "styles_module_senderReferenceHeaderTitle",
2736
- senderReferenceHeaderContent: "styles_module_senderReferenceHeaderContent"
2737
- };
2738
- var WelcomeItem_default = ({ icon = true, title = true, description = true, prompts = true }) => {
2739
- const chatStore = useChatStore();
2740
- const agentState = valtio.useSnapshot(chatStore.agent);
2741
- const recommendQuestions = React9.useMemo(() => {
2742
- return agentState.agentInfo?.config?.onboarding?.guiding?.map((item, index) => ({
2743
- key: String(index),
2744
- description: item
2745
- }));
2746
- }, [agentState.agentInfo?.config?.onboarding?.guiding]);
2747
- return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, justify: "center", className: styles_module_default2.chatWelcomeWrap, children: [
2748
- /* @__PURE__ */ jsxRuntime.jsx(
2749
- xV2.Welcome,
2750
- {
2751
- className: classNames7__default.default(styles_module_default2.chatWelcome, "p-t-32"),
2752
- variant: "borderless",
2753
- icon: /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: icon, DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(antd.Avatar, { shape: "square", size: 58, src: agentState.agentInfo?.iconUrl || "" }) }),
2754
- title: /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: title, DefaultComponent: `\u4F60\u597D\uFF0C\u6211\u662F${agentState.agentInfo?.name || ""}` }),
2755
- description: /* @__PURE__ */ jsxRuntime.jsx(
2756
- common.RenderWrapper,
2757
- {
2758
- control: description,
2759
- DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: agentState.agentInfo?.config?.onboarding?.greeting || "" } })
2760
- }
2761
- )
2762
- }
2763
- ),
2764
- (agentState.agentInfo?.config?.onboarding?.guiding?.length ?? 0) > 0 && /* @__PURE__ */ jsxRuntime.jsx(
2765
- common.RenderWrapper,
2766
- {
2767
- control: prompts,
2768
- DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(
2769
- xV2.Prompts,
2770
- {
2771
- className: classNames7__default.default("m-t-16", styles_module_default2.promptItem),
2772
- wrap: true,
2773
- onItemClick: (info) => chatStore.sendMessage(info.data.description),
2774
- items: recommendQuestions
2775
- }
2776
- )
2777
- }
2778
- )
2779
- ] });
2780
- };
2781
- var { Text: Text2 } = antd.Typography;
2782
- function isVisibleContentItem(contentItem, isMessageLoading) {
2783
- const isRunStarted = contentItem.type === "runStarted";
2784
- const isFile = contentItem.type === "files";
2785
- const isTextWithContent = contentItem.type === "text" && (!!contentItem.reasoningContent || !!contentItem.messageContent);
2786
- const isToolCall = contentItem.type === "toolCall" || contentItem.type === "toolResult";
2787
- const isStepError = contentItem.type === "stepError" && !!contentItem.errorMessage;
2788
- const isA2uiCommand = contentItem.type === "a2uiCommand";
2789
- const isPlan = contentItem.type === "plan";
2790
- if (!isRunStarted && !isFile && !isTextWithContent && !isToolCall && !isStepError && !isA2uiCommand && !isPlan) {
2791
- return false;
2495
+ var todo_write_render_default = TodoWriteRender;
2496
+ var toolRenders = {
2497
+ todo_write: {
2498
+ component: todo_write_render_default,
2499
+ defaultExpanded: false,
2500
+ alwaysShowContent: (args, result) => {
2501
+ const todos = Array.isArray(result) ? result : result?.todos || (Array.isArray(args) ? args : args?.todos) || [];
2502
+ return todos && todos.length > 0;
2503
+ },
2504
+ hideStatus: true,
2505
+ disableExpandOnError: true
2792
2506
  }
2793
- if (isPlan && shouldHideA2uiPlan(contentItem)) {
2794
- return false;
2507
+ };
2508
+ var getToolRenderConfig = (toolName) => {
2509
+ if (toolName && toolRenders[toolName]) {
2510
+ return toolRenders[toolName];
2795
2511
  }
2796
- if (isRunStarted && !isMessageLoading) {
2797
- return false;
2512
+ return {
2513
+ component: default_render_default,
2514
+ defaultExpanded: false,
2515
+ alwaysShowContent: false
2516
+ };
2517
+ };
2518
+ var formatContent = (content) => {
2519
+ try {
2520
+ if (!content) return { text: "", isJson: false, parsed: null };
2521
+ if (typeof content === "object") {
2522
+ return { text: JSON.stringify(content, null, 2), isJson: true, parsed: content };
2523
+ }
2524
+ const parsed = JSON.parse(content);
2525
+ if (typeof parsed === "object" && parsed !== null) {
2526
+ return { text: JSON.stringify(parsed, null, 2), isJson: true, parsed };
2527
+ }
2528
+ return { text: content, isJson: false, parsed: null };
2529
+ } catch {
2530
+ return { text: typeof content === "string" ? content : "", isJson: false, parsed: null };
2798
2531
  }
2799
- return true;
2800
- }
2801
- function splitRenderableContents(contents, isMessageLoading) {
2802
- const validContents = [];
2803
- const nonFileContents = [];
2804
- const fileContents = [];
2805
- contents.forEach((contentItem) => {
2806
- if (!isVisibleContentItem(contentItem, isMessageLoading)) return;
2807
- validContents.push(contentItem);
2808
- if (contentItem.type === "files") {
2809
- fileContents.push(contentItem);
2810
- } else {
2811
- nonFileContents.push(contentItem);
2532
+ };
2533
+ var ToolCallItem = ({ item }) => {
2534
+ const { token } = antd.theme.useToken();
2535
+ const renderConfig = getToolRenderConfig(item.toolName);
2536
+ const CustomRender = renderConfig.component;
2537
+ const status = React7.useMemo(() => {
2538
+ if (item.status) return item.status;
2539
+ if (item.errorMessage) return "error";
2540
+ if (item.result) return "success";
2541
+ return "running";
2542
+ }, [item.status, item.errorMessage, item.result]);
2543
+ const argsContent = React7.useMemo(() => formatContent(item.arguments || item.content), [item.arguments, item.content]);
2544
+ const resultContent = React7.useMemo(() => item.result ? formatContent(item.result) : null, [item.result]);
2545
+ const hasContent = React7.useMemo(() => {
2546
+ if (renderConfig.disableExpandOnError && status === "error") return false;
2547
+ let alwaysShow = false;
2548
+ if (typeof renderConfig.alwaysShowContent === "function") {
2549
+ alwaysShow = renderConfig.alwaysShowContent(argsContent.parsed, resultContent?.parsed);
2550
+ } else if (renderConfig.alwaysShowContent) {
2551
+ alwaysShow = renderConfig.alwaysShowContent;
2812
2552
  }
2813
- });
2814
- return {
2815
- validContents,
2816
- nonFileContents,
2817
- fileContents,
2818
- hasFiles: fileContents.length > 0,
2819
- isAllFiles: validContents.length > 0 && fileContents.length === validContents.length
2553
+ if (alwaysShow) return true;
2554
+ return Boolean(item.errorMessage);
2555
+ }, [renderConfig.disableExpandOnError, renderConfig.alwaysShowContent, item.errorMessage, status, argsContent.parsed, resultContent?.parsed]);
2556
+ const isDefaultExpanded = React7.useMemo(() => {
2557
+ if (typeof renderConfig.defaultExpanded === "function") {
2558
+ return renderConfig.defaultExpanded(argsContent.parsed, resultContent?.parsed);
2559
+ }
2560
+ return renderConfig.defaultExpanded;
2561
+ }, [renderConfig.defaultExpanded, argsContent.parsed, resultContent?.parsed]);
2562
+ const statusConfig = {
2563
+ running: {
2564
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, {}),
2565
+ color: token.colorPrimary
2566
+ },
2567
+ success: {
2568
+ icon: null,
2569
+ color: token.colorSuccess
2570
+ },
2571
+ error: {
2572
+ icon: null,
2573
+ color: token.colorSuccess
2574
+ },
2575
+ pending: {
2576
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, {}),
2577
+ color: token.colorTextSecondary
2578
+ }
2579
+ }[status] || {
2580
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, {}),
2581
+ color: token.colorPrimary
2820
2582
  };
2821
- }
2822
- function createRenderMessage(message3, content) {
2823
- return {
2824
- messageId: message3.messageId,
2825
- conversationId: message3.conversationId,
2826
- executionId: message3.executionId,
2827
- role: message3.role,
2828
- content: [...content],
2829
- files: message3.files ? Array.from(message3.files) : void 0,
2830
- feedback: message3.feedback,
2831
- params: message3.params,
2832
- quoteMsg: message3.quoteMsg ? {
2833
- ...message3.quoteMsg,
2834
- msgFiles: message3.quoteMsg.msgFiles ? Array.from(message3.quoteMsg.msgFiles) : void 0
2835
- } : void 0,
2836
- createdAt: message3.createdAt,
2837
- stopFlag: message3.stopFlag,
2838
- generating: message3.generating
2583
+ const renderIcon = () => {
2584
+ if (!item.toolIcon) {
2585
+ return /* @__PURE__ */ jsxRuntime.jsx(icons.ToolOutlined, { style: { fontSize: 14, color: token.colorTextSecondary } });
2586
+ }
2587
+ const isUrl = /^(http|\/)/.test(item.toolIcon);
2588
+ if (isUrl) {
2589
+ return /* @__PURE__ */ jsxRuntime.jsx("img", { src: item.toolIcon, alt: "tool-icon", style: { width: "100%", height: "100%", objectFit: "contain" } });
2590
+ }
2591
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 14, lineHeight: 1 }, children: item.toolIcon });
2839
2592
  };
2840
- }
2841
- function renderMessageContent(refKey, message3, content, messageIndex, loading, messageRefs, customComponents) {
2842
2593
  return /* @__PURE__ */ jsxRuntime.jsx(
2843
- MessageRender_default,
2594
+ antd.Collapse,
2844
2595
  {
2845
- message: createRenderMessage(message3, content),
2846
- messageIndex,
2847
- customComponents,
2848
- loading,
2849
- containerRef: (node) => {
2850
- if (node) {
2851
- messageRefs.current[refKey] = node;
2852
- } else {
2853
- delete messageRefs.current[refKey];
2596
+ style: { width: "70%" },
2597
+ collapsible: hasContent ? void 0 : "disabled",
2598
+ defaultActiveKey: isDefaultExpanded && hasContent ? [item.toolCallId || "fallback-key"] : void 0,
2599
+ expandIconPlacement: "end",
2600
+ styles: {
2601
+ header: {
2602
+ padding: "6px 10px"
2854
2603
  }
2855
- }
2604
+ },
2605
+ items: [
2606
+ {
2607
+ key: item.toolCallId || "fallback-key",
2608
+ showArrow: hasContent,
2609
+ label: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { align: "center", gap: 8, style: { flex: 1, minWidth: 0 }, children: [
2610
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.iconContainer, children: renderIcon() }),
2611
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: index_module_default.toolName, children: item.title || item.toolName || "Unknown Tool" }),
2612
+ (status === "running" || status === "pending") && /* @__PURE__ */ jsxRuntime.jsx("div", { className: index_module_default.statusIcon, style: { color: statusConfig.color }, children: statusConfig.icon }),
2613
+ item.duration && /* @__PURE__ */ jsxRuntime.jsxs(antd.Typography.Text, { className: index_module_default.duration, children: [
2614
+ item.duration,
2615
+ "ms"
2616
+ ] })
2617
+ ] }),
2618
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2619
+ CustomRender,
2620
+ {
2621
+ item,
2622
+ args: argsContent.parsed,
2623
+ result: resultContent?.parsed,
2624
+ argsContent,
2625
+ resultContent,
2626
+ errorMessage: item.errorMessage
2627
+ }
2628
+ )
2629
+ }
2630
+ ]
2856
2631
  }
2857
2632
  );
2633
+ };
2634
+ var tool_call_item_default = ToolCallItem;
2635
+ var RENDERABLE_MESSAGE_TYPES = ["runStarted", "toolCall", "toolResult", "text", "stepError", "files", "plan"];
2636
+ function QuestionSummary({ content }) {
2637
+ const answer = content.replace(/^Question:\s*/, "").trim() || "\u5DF2\u56DE\u7B54";
2638
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { display: "inline-flex", flexDirection: "column", gap: 4 }, children: [
2639
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 13, fontWeight: 600, color: "#1677ff", lineHeight: 1.4 }, children: "Question" }),
2640
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 13, color: "#262626", lineHeight: 1.6, whiteSpace: "pre-wrap" }, children: answer })
2641
+ ] });
2858
2642
  }
2859
- var BubbleListItems_default = ({
2860
- firstMessages = [],
2861
- welcomeMessage = true,
2862
- avatar = { user: false, agent: true },
2863
- agentActions = false,
2864
- customComponents = {}
2865
- }) => {
2643
+ var RunStartedNode = React7__default.default.memo(({ loading }) => {
2644
+ if (!loading) return null;
2645
+ return /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { gap: 8, align: "center", className: styles_module_default.runStartedNode, children: /* @__PURE__ */ jsxRuntime.jsx(icons.LoadingOutlined, { style: { color: "#1677ff" } }) });
2646
+ });
2647
+ var ToolCallNode = React7__default.default.memo(({ item }) => {
2648
+ return /* @__PURE__ */ jsxRuntime.jsx(tool_call_item_default, { item });
2649
+ });
2650
+ var TextNode = React7__default.default.memo(({ item, role, customComponents }) => {
2651
+ const content = toA2uiDisplayText(role, item?.messageContent);
2652
+ if (typeof content === "string" && content.startsWith("Question:")) {
2653
+ return /* @__PURE__ */ jsxRuntime.jsx(QuestionSummary, { content });
2654
+ }
2655
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2656
+ !!item.reasoningContent && /* @__PURE__ */ jsxRuntime.jsx(xV2.Think, { title: "\u6DF1\u5EA6\u601D\u8003", children: item.reasoningContent }),
2657
+ !!content && /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { components: customComponents, content })
2658
+ ] });
2659
+ });
2660
+ var StepErrorNode = React7__default.default.memo(({ item, customComponents }) => {
2661
+ if (!item.errorMessage) return null;
2662
+ return /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { components: customComponents, content: item.errorMessage });
2663
+ });
2664
+ var FilesNode = React7__default.default.memo(({ item }) => {
2866
2665
  const chatStore = useChatStore();
2666
+ const configState = valtio.useSnapshot(chatStore.config);
2867
2667
  const agentState = valtio.useSnapshot(chatStore.agent);
2868
2668
  const conversationState = valtio.useSnapshot(chatStore.conversation);
2869
- const configState = valtio.useSnapshot(chatStore.config);
2870
- const isDebug = configState.params.convMeta.mode === CONV_MODE.DEBUG;
2871
- const isWorkFlow = agentState.agentInfo.agentType === 1 /* FLOW */;
2872
- const conversationRoles = React9.useMemo(() => {
2873
- const roles = {};
2874
- if (agentState.agentInfo?.id) {
2875
- roles.agent = {
2876
- user: "agent",
2877
- role: 2,
2878
- placement: "start"
2879
- // avatar: (isBoolean(avatar) ? avatar : avatar?.agent) ? { src: agentState.agentInfo.iconUrl, icon: <OpenAIOutlined /> } : null
2880
- };
2881
- }
2882
- roles.user = {
2883
- user: "user",
2884
- role: 1,
2885
- placement: "end",
2886
- avatar: (common.isBoolean(avatar) ? avatar : avatar?.user) ? /* @__PURE__ */ jsxRuntime.jsx(common.UserAvatar, { size: 30, avatarSrc: "", userName: "" }) : null
2887
- };
2888
- return roles;
2889
- }, [agentState.agentInfo.id]);
2890
- const chatMessage = React9.useMemo(
2891
- () => conversationState.messages[conversationState.active.id] || {},
2892
- [conversationState.messages[conversationState.active.id]]
2893
- );
2894
- const conversationMessages = chatMessage?.message || [];
2895
- const getRole = (role) => {
2896
- const roleKey = Object.keys(conversationRoles).find((key) => conversationRoles[key].role === role);
2897
- return conversationRoles[roleKey] || {};
2898
- };
2899
- const messageRefs = React9.useRef({});
2900
- const chatRecords = React9.useMemo(() => {
2901
- const chatRecords2 = [];
2902
- conversationMessages.forEach((message3, messageIndex) => {
2903
- const role = getRole(message3.role);
2904
- const contents = message3.content || [];
2905
- const isLeftBubble = role.user === "agent";
2906
- const isMessageLoading = !!message3.generating;
2907
- const showLogButton = isDebug && isLeftBubble && !isMessageLoading && isWorkFlow;
2908
- const baseKey = `${message3.executionId}-${messageIndex}`;
2909
- const { validContents, nonFileContents, fileContents, hasFiles, isAllFiles } = splitRenderableContents(contents, isMessageLoading);
2910
- if (validContents.length === 0) return;
2911
- const footerNode = /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { align: "center", gap: 8, className: styles_module_default2.messageFooter, children: [
2912
- message3.stopFlag && /* @__PURE__ */ jsxRuntime.jsx(Text2, { type: "secondary", style: { flex: "none" }, children: "\u5DF2\u505C\u6B62" }),
2913
- /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { align: "center", gap: 4, children: [
2914
- showLogButton && /* @__PURE__ */ jsxRuntime.jsx(
2915
- antd.Button,
2916
- {
2917
- className: "logBtn",
2918
- type: "text",
2919
- size: "small",
2920
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.FileTextOutlined, {}),
2921
- onClick: () => {
2922
- setLogPanelOpen(true, message3.executionId);
2923
- }
2924
- }
2925
- ),
2926
- role.user === "agent" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2927
- /* @__PURE__ */ jsxRuntime.jsx(
2928
- antd.Button,
2929
- {
2930
- onClick: async () => {
2931
- const container = messageRefs.current[baseKey];
2932
- if (!container) return;
2933
- const markdown = common.htmlToMarkdown(container.innerHTML) || container.innerText || "";
2934
- common.copyText(markdown);
2935
- },
2936
- color: "default",
2937
- variant: "text",
2938
- size: "small",
2939
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CopyOutlined, {})
2940
- }
2941
- ),
2942
- /* @__PURE__ */ jsxRuntime.jsx(
2943
- antd.Button,
2944
- {
2945
- color: message3.feedback === 1 ? "primary" : "default",
2946
- size: "small",
2947
- variant: "text",
2948
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LikeOutlined, {}),
2949
- onClick: () => chatStore.feedback(message3.executionId, 1, messageIndex)
2950
- }
2951
- ),
2952
- /* @__PURE__ */ jsxRuntime.jsx(
2953
- antd.Button,
2954
- {
2955
- color: message3.feedback === 2 ? "primary" : "default",
2956
- size: "small",
2957
- variant: "text",
2958
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DislikeOutlined, {}),
2959
- onClick: () => chatStore.feedback(message3.executionId, 2, messageIndex)
2960
- }
2961
- ),
2962
- /* @__PURE__ */ jsxRuntime.jsx(
2963
- common.RenderWrapper,
2964
- {
2965
- control: agentActions,
2966
- ctx: {
2967
- message: message3,
2968
- get dom() {
2969
- return messageRefs.current[baseKey];
2970
- }
2971
- }
2972
- }
2973
- )
2974
- ] })
2975
- ] })
2976
- ] });
2977
- if (hasFiles && nonFileContents.length > 0) {
2978
- chatRecords2.push({
2979
- key: `${baseKey}-text`,
2980
- role: String(role.role),
2981
- placement: role.placement,
2982
- avatar: role.avatar,
2983
- content: renderMessageContent(
2984
- baseKey,
2985
- message3,
2986
- nonFileContents,
2987
- messageIndex,
2988
- isMessageLoading,
2989
- messageRefs,
2990
- customComponents
2991
- ),
2992
- footer: footerNode
2993
- });
2994
- chatRecords2.push({
2995
- key: `${baseKey}-files`,
2996
- role: String(role.role),
2997
- placement: role.placement,
2998
- avatar: role.avatar,
2999
- content: /* @__PURE__ */ jsxRuntime.jsx(
3000
- MessageRender_default,
3001
- {
3002
- message: createRenderMessage(message3, fileContents),
3003
- messageIndex,
3004
- customComponents,
3005
- loading: isMessageLoading
3006
- }
3007
- ),
3008
- variant: "borderless"
3009
- });
3010
- return;
2669
+ const fileItems = React7.useMemo(() => {
2670
+ return (item.files || []).map((file) => {
2671
+ const previewUrl = configState.services.request.getPreviewUrl(agentState.agentInfo.id, conversationState.active.id, file.path);
2672
+ let fileType = "file";
2673
+ const ext = file.ext?.toLowerCase() || "";
2674
+ if (["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg", "webp"].includes(ext)) {
2675
+ fileType = "image";
2676
+ } else if (["mp4", "webm", "ogg", "mov"].includes(ext)) {
2677
+ fileType = "video";
2678
+ } else if (["mp3", "wav", "ogg", "m4a"].includes(ext)) {
2679
+ fileType = "audio";
3011
2680
  }
3012
- chatRecords2.push({
3013
- key: baseKey,
3014
- role: String(role.role),
3015
- placement: role.placement,
3016
- avatar: role.avatar,
3017
- content: renderMessageContent(
3018
- baseKey,
3019
- message3,
3020
- validContents,
3021
- messageIndex,
3022
- isMessageLoading,
3023
- messageRefs,
3024
- customComponents
3025
- ),
3026
- footer: footerNode,
3027
- variant: isAllFiles ? "borderless" : void 0
3028
- });
3029
- });
3030
- return chatRecords2;
3031
- }, [agentActions, chatStore, conversationMessages, conversationRoles, conversationState.active.id, isDebug, isWorkFlow]);
3032
- const firstMessagesRecord = React9.useMemo(() => {
3033
- return (firstMessages || []).map((firstMessage, index) => {
3034
- const { role, ...args } = firstMessage;
3035
- const roleObj = getRole(role);
3036
2681
  return {
3037
- key: `firstMessage-${index}`,
3038
- role: roleObj.user,
3039
- placement: roleObj.placement,
3040
- avatar: roleObj.avatar,
3041
- variant: "borderless",
3042
- ...args
2682
+ ...file,
2683
+ src: fileType === "image" ? previewUrl : file.path,
2684
+ type: fileType,
2685
+ onClick: () => chatStore.setPreview({ path: file.path, fileName: file.name })
3043
2686
  };
3044
2687
  });
3045
- }, [firstMessages, conversationRoles]);
3046
- const welcomeMessageRecord = React9.useMemo(() => {
3047
- if (!welcomeMessage) return [];
3048
- return [
3049
- {
3050
- key: "welcome-message",
3051
- content: /* @__PURE__ */ jsxRuntime.jsx(WelcomeItem_default, {}),
3052
- variant: "borderless"
2688
+ }, [item.files]);
2689
+ return /* @__PURE__ */ jsxRuntime.jsx(xV2.FileCard.List, { items: fileItems });
2690
+ });
2691
+ var MessageRender_default = React7__default.default.memo(({ role, message: message3, messageIndex = -1, loading, containerRef, customComponents }) => {
2692
+ const content = React7.useMemo(() => {
2693
+ return (message3.content || []).filter((item) => {
2694
+ if (!RENDERABLE_MESSAGE_TYPES.includes(item.type)) {
2695
+ return false;
3053
2696
  }
3054
- ];
3055
- }, [welcomeMessage]);
3056
- const bubbleListItems = React9.useMemo(() => {
3057
- const list = [];
3058
- list.push(...firstMessagesRecord);
3059
- list.push(...chatRecords);
3060
- if (list.length) {
3061
- return list;
3062
- }
3063
- return [...welcomeMessageRecord];
3064
- }, [chatRecords, welcomeMessageRecord, firstMessagesRecord]);
3065
- const listRef = React9.useRef(null);
3066
- const autoScrollRef = React9.useRef(true);
3067
- const handleScroll = (el) => {
3068
- const target = el.target;
3069
- const distanceToBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
3070
- autoScrollRef.current = distanceToBottom < 90;
3071
- };
3072
- React9.useEffect(() => {
3073
- const latestMessage = conversationMessages[conversationMessages?.length - 1];
3074
- if (!latestMessage) return;
3075
- if (latestMessage.generating) {
3076
- autoScrollRef.current = true;
3077
- }
3078
- }, [conversationMessages?.length]);
3079
- React9.useEffect(() => {
3080
- const el = listRef.current?.nativeElement;
3081
- if (!el || !bubbleListItems.length) return;
3082
- if (autoScrollRef.current) {
3083
- setTimeout(() => {
3084
- if (autoScrollRef.current) {
3085
- listRef.current?.scrollTo({
3086
- top: "bottom",
3087
- behavior: "instant"
3088
- });
2697
+ if (item.type === "runStarted") {
2698
+ return !!loading;
2699
+ }
2700
+ if (item.type === "plan") {
2701
+ return !shouldHideA2uiPlan(item);
2702
+ }
2703
+ return true;
2704
+ });
2705
+ }, [loading, message3.content]);
2706
+ const quoteMsg = React7.useMemo(() => {
2707
+ const quoteMsg2 = {};
2708
+ if (message3.params) {
2709
+ try {
2710
+ const citation = JSON.parse(message3.params).citation;
2711
+ if (citation) {
2712
+ quoteMsg2.messageContent = citation;
3089
2713
  }
3090
- }, 100);
2714
+ } catch (e) {
2715
+ }
3091
2716
  }
3092
- }, [bubbleListItems]);
3093
- return /* @__PURE__ */ jsxRuntime.jsx(A2uiRenderer, { messages: conversationMessages, children: /* @__PURE__ */ jsxRuntime.jsx(
3094
- xV2.Bubble.List,
3095
- {
3096
- autoScroll: false,
3097
- ref: listRef,
3098
- items: bubbleListItems,
3099
- className: classNames7__default.default(styles_module_default2.bubbleList, "height-full", "scroll-fade-in"),
3100
- onScroll: handleScroll
3101
- },
3102
- conversationState.active.id
3103
- ) });
2717
+ return common.isEmptyObj(quoteMsg2) ? null : quoteMsg2;
2718
+ }, [message3.params, message3.quoteMsg]);
2719
+ if (content.length === 0) return null;
2720
+ return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { ref: containerRef, vertical: true, gap: 8, children: [
2721
+ content.map((item, index) => {
2722
+ return /* @__PURE__ */ jsxRuntime.jsx(
2723
+ xV2.Bubble,
2724
+ {
2725
+ role: role.user,
2726
+ className: "m-t-8",
2727
+ placement: role.placement,
2728
+ variant: item.type === "files" ? "borderless" : void 0,
2729
+ content: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2730
+ item.type === "runStarted" && /* @__PURE__ */ jsxRuntime.jsx(RunStartedNode, { loading }, `flow-start-${index}`),
2731
+ (item.type === "toolCall" || item.type === "toolResult") && /* @__PURE__ */ jsxRuntime.jsx(ToolCallNode, { item }, `tool-call-${item.toolCallId || index}`),
2732
+ item.type === "text" && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(TextNode, { item, role: message3.role, customComponents }, `message-${index}`) }),
2733
+ item.type === "stepError" && /* @__PURE__ */ jsxRuntime.jsx(StepErrorNode, { item, customComponents }, `step-error-${index}`),
2734
+ item.type === "files" && /* @__PURE__ */ jsxRuntime.jsx(FilesNode, { item }, `files-${index}`),
2735
+ item.type === "plan" && /* @__PURE__ */ jsxRuntime.jsx(A2uiPlanNode, { item }, `plan-${index}`)
2736
+ ] })
2737
+ },
2738
+ `message-${index}`
2739
+ );
2740
+ }),
2741
+ quoteMsg && /* @__PURE__ */ jsxRuntime.jsx(
2742
+ xV2.Bubble,
2743
+ {
2744
+ className: styles_module_default.chatQuoteMsg,
2745
+ placement: role.placement,
2746
+ variant: "borderless",
2747
+ content: /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, gap: 8, children: quoteMsg.messageContent && /* @__PURE__ */ jsxRuntime.jsx(
2748
+ antd.Tooltip,
2749
+ {
2750
+ arrow: false,
2751
+ classNames: {
2752
+ root: styles_module_default.quoteTooltip,
2753
+ container: `${styles_module_default.quoteTooltipContainer} scroll-fade-in`
2754
+ },
2755
+ title: /* @__PURE__ */ jsxRuntime.jsx(XMarkdown_default, { content: quoteMsg.messageContent }),
2756
+ getPopupContainer: (node) => node,
2757
+ children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { children: [
2758
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u3010\u5F15\u7528\u6D88\u606F\u3011\uFF1A" }),
2759
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { flex: 1, className: "text-ellipsis-2", children: quoteMsg.messageContent })
2760
+ ] })
2761
+ }
2762
+ ) })
2763
+ }
2764
+ ),
2765
+ messageIndex >= 0 ? /* @__PURE__ */ jsxRuntime.jsx(A2uiMessageCards, { messageIndex }) : null
2766
+ ] });
2767
+ });
2768
+
2769
+ // src/core/constants.ts
2770
+ var CONV_MODE = {
2771
+ PROD: 1,
2772
+ DEBUG: 2
3104
2773
  };
2774
+ var flowSpecState = valtio.proxy({
2775
+ nodes: []
2776
+ });
2777
+ function setLogPanelOpen(_open, _executionId) {
2778
+ }
3105
2779
 
3106
2780
  // src/services/index.ts
3107
2781
  var createChatService = (request, config) => {
@@ -3201,7 +2875,7 @@ function createChatStore() {
3201
2875
  stream: true,
3202
2876
  params: {
3203
2877
  convMeta: {
3204
- mode: CONV_MODE.DEBUG
2878
+ mode: CONV_MODE.PROD
3205
2879
  }
3206
2880
  }
3207
2881
  });
@@ -3319,6 +2993,7 @@ function createChatStore() {
3319
2993
  try {
3320
2994
  const { data } = await config.services.request.fetchAgentInfo(id || "");
3321
2995
  agent.agentInfo = data;
2996
+ config.hooks?.onAfterSwitchAgent?.(data);
3322
2997
  } finally {
3323
2998
  config.loading = false;
3324
2999
  }
@@ -3831,6 +3506,7 @@ function createChatStore() {
3831
3506
  stepErrCallback(newMessage);
3832
3507
  break;
3833
3508
  case "runFinished":
3509
+ case "runFailed":
3834
3510
  case "runStopped":
3835
3511
  doneCallback(newMessage);
3836
3512
  break;
@@ -3907,18 +3583,20 @@ function createChatStore() {
3907
3583
  }
3908
3584
  processMessageContent(newMessage);
3909
3585
  };
3910
- const sendMessage = async (message3, files = [], params) => {
3586
+ const sendMessage = async (message3, msgFiles = [], params) => {
3911
3587
  const conversationId = conversation.active.id;
3912
3588
  if (conversation.messages[conversationId].loading) return;
3913
- let msgContent = "";
3589
+ let msgContent = "", files;
3914
3590
  const references = conversation.messages[conversationId].references;
3915
3591
  if (message3) {
3916
3592
  msgContent = message3;
3593
+ files = msgFiles;
3917
3594
  } else {
3918
3595
  if (references?.type === 1 && references?.content?.msgContent) {
3919
- msgContent = references.content.msgContent + "\n";
3596
+ msgContent = references.content.msgContent + "\n\n";
3920
3597
  }
3921
3598
  msgContent = msgContent + conversation.messages[conversationId].content;
3599
+ files = conversation.messages[conversationId].files;
3922
3600
  }
3923
3601
  if (!msgContent) return;
3924
3602
  const canProceed = await config.hooks?.onBeforeSend?.(msgContent, files || []);
@@ -3948,7 +3626,7 @@ function createChatStore() {
3948
3626
  conversationId,
3949
3627
  message: msgContent,
3950
3628
  convMeta: config.params.convMeta,
3951
- files: conversation.messages[conversationId].files,
3629
+ files,
3952
3630
  params,
3953
3631
  spec: {
3954
3632
  ...conversation.active.spec,
@@ -3959,7 +3637,7 @@ function createChatStore() {
3959
3637
  };
3960
3638
  const extraParams = common.deepCopy(config.params?.params || {});
3961
3639
  const userInputParams = variablesToObject(agent.agentInfo.userInput || []);
3962
- Object.assign(extraParams, userInputParams);
3640
+ Object.assign(extraParams, userInputParams, message3 ? {} : { ...references?.params, params });
3963
3641
  sendParams.params = extraParams;
3964
3642
  if (!message3) {
3965
3643
  setContent("");
@@ -4063,11 +3741,38 @@ function createChatStore() {
4063
3741
  feedback
4064
3742
  };
4065
3743
  }
3744
+
3745
+ // src/ui/common/styles.module.less
3746
+ var styles_module_default3 = {
3747
+ chatHeader: "styles_module_chatHeader",
3748
+ chatTitle: "styles_module_chatTitle",
3749
+ popover: "styles_module_popover",
3750
+ conversationListPanel: "styles_module_conversationListPanel",
3751
+ createConversationButton: "styles_module_createConversationButton",
3752
+ conversations: "styles_module_conversations",
3753
+ chatWelcomeWrap: "styles_module_chatWelcomeWrap",
3754
+ chatWelcome: "styles_module_chatWelcome",
3755
+ promptItem: "styles_module_promptItem",
3756
+ bubbleList: "styles_module_bubbleList",
3757
+ resourceBtn: "styles_module_resourceBtn",
3758
+ resourceBtnActive: "styles_module_resourceBtnActive",
3759
+ userInputCollapse: "styles_module_userInputCollapse",
3760
+ logoArea: "styles_module_logoArea",
3761
+ logoContainer: "styles_module_logoContainer",
3762
+ staticHalo: "styles_module_staticHalo",
3763
+ logoHoverWrapper: "styles_module_logoHoverWrapper",
3764
+ logoImage: "styles_module_logoImage",
3765
+ greetingTitle: "styles_module_greetingTitle",
3766
+ gradientText: "styles_module_gradientText",
3767
+ greetingSubtitle: "styles_module_greetingSubtitle",
3768
+ senderReferenceHeaderTitle: "styles_module_senderReferenceHeaderTitle",
3769
+ senderReferenceHeaderContent: "styles_module_senderReferenceHeaderContent"
3770
+ };
4066
3771
  var ConversationList_default = () => {
4067
3772
  const chatStore = useChatStore();
4068
3773
  const conversationsState = valtio.useSnapshot(chatStore.conversations);
4069
3774
  const conversationState = valtio.useSnapshot(chatStore.conversation);
4070
- const conversationList = React9.useMemo(() => {
3775
+ const conversationList = React7.useMemo(() => {
4071
3776
  return conversationsState.list.items.filter((item) => item.label);
4072
3777
  }, [conversationsState.list.items]);
4073
3778
  const menuConfig = (conversation) => ({
@@ -4100,7 +3805,7 @@ var ConversationList_default = () => {
4100
3805
  children: /* @__PURE__ */ jsxRuntime.jsx(
4101
3806
  xV2.Conversations,
4102
3807
  {
4103
- className: styles_module_default2.conversations,
3808
+ className: styles_module_default3.conversations,
4104
3809
  items: conversationList,
4105
3810
  activeKey: conversationState.active.id,
4106
3811
  onActiveChange: async (id) => chatStore.switchConversation(id),
@@ -4115,16 +3820,17 @@ var ChatHeader_default = ({ title = true, avatar = true, closeBtn = false, newCo
4115
3820
  const chatStore = useChatStore();
4116
3821
  const agentState = valtio.useSnapshot(chatStore.agent);
4117
3822
  const configState = valtio.useSnapshot(chatStore.config);
4118
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { justify: "space-between", align: "center", className: classNames7__default.default(styles_module_default2.chatHeader, "zero-chat-header"), children: [
3823
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { justify: "space-between", align: "center", className: classNames2__default.default(styles_module_default3.chatHeader, "zero-chat-header"), children: [
4119
3824
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { gap: 4, align: "center", children: [
4120
3825
  /* @__PURE__ */ jsxRuntime.jsx(
4121
3826
  common.RenderWrapper,
4122
3827
  {
4123
3828
  control: avatar,
4124
- DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(antd.Avatar, { size: 22, src: agentState.agentInfo.iconUrl, alt: agentState.agentInfo.name })
3829
+ DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(antd.Avatar, { size: 22, src: agentState.agentInfo.iconUrl || getChatCopilotLogo(), alt: agentState.agentInfo.name })
4125
3830
  }
4126
3831
  ),
4127
- /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: title, DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default2.chatTitle, children: agentState.agentInfo.name }) })
3832
+ " ",
3833
+ /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: title, DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default3.chatTitle, children: agentState.agentInfo.name }) })
4128
3834
  ] }),
4129
3835
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Space, { size: 2, children: [
4130
3836
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4143,7 +3849,7 @@ var ChatHeader_default = ({ title = true, avatar = true, closeBtn = false, newCo
4143
3849
  {
4144
3850
  getPopupContainer: (e) => e,
4145
3851
  placement: "bottom",
4146
- classNames: { container: styles_module_default2.popover },
3852
+ classNames: { container: styles_module_default3.popover },
4147
3853
  content: /* @__PURE__ */ jsxRuntime.jsx(ConversationList_default, {}),
4148
3854
  trigger: ["click"],
4149
3855
  children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { title: "\u5386\u53F2\u4F1A\u8BDD", type: "text", size: "large", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CommentOutlined, {}) })
@@ -4161,7 +3867,7 @@ var ChatHeader_default = ({ title = true, avatar = true, closeBtn = false, newCo
4161
3867
  ] })
4162
3868
  ] }) });
4163
3869
  };
4164
- var { Text: Text3 } = antd.Typography;
3870
+ var { Text: Text2 } = antd.Typography;
4165
3871
  var ConversationListHeader_default = ({ title = true, avatar = true, newConversationBtn = true }) => {
4166
3872
  const chatStore = useChatStore();
4167
3873
  const agentState = valtio.useSnapshot(chatStore.agent);
@@ -4171,7 +3877,7 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
4171
3877
  common.RenderWrapper,
4172
3878
  {
4173
3879
  control: avatar,
4174
- DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(antd.Avatar, { size: 50, src: agentState.agentInfo?.iconUrl, shape: "square", style: { flexShrink: 0 }, children: (agentState.agentInfo?.name || "AI").slice(0, 1) })
3880
+ DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(antd.Avatar, { size: 50, src: agentState.agentInfo?.iconUrl || getChatCopilotLogo(), shape: "square", style: { flexShrink: 0 }, children: (agentState.agentInfo?.name || "AI").slice(0, 1) })
4175
3881
  }
4176
3882
  ),
4177
3883
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4179,8 +3885,8 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
4179
3885
  {
4180
3886
  control: title,
4181
3887
  DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, gap: 4, flex: 1, style: { minWidth: 0 }, children: [
4182
- /* @__PURE__ */ jsxRuntime.jsx(Text3, { strong: true, className: classNames7__default.default("fz-16"), children: agentState.agentInfo.name }),
4183
- /* @__PURE__ */ jsxRuntime.jsx(Text3, { type: "secondary", ellipsis: true, className: classNames7__default.default("fz-12"), children: agentState.agentInfo.description })
3888
+ /* @__PURE__ */ jsxRuntime.jsx(Text2, { strong: true, className: classNames2__default.default("fz-16"), children: agentState.agentInfo.name }),
3889
+ /* @__PURE__ */ jsxRuntime.jsx(Text2, { type: "secondary", ellipsis: true, className: classNames2__default.default("fz-12"), children: agentState.agentInfo.description })
4184
3890
  ] }) })
4185
3891
  }
4186
3892
  )
@@ -4195,7 +3901,7 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
4195
3901
  block: true,
4196
3902
  type: "primary",
4197
3903
  onClick: () => chatStore.createConversation(),
4198
- className: classNames7__default.default(styles_module_default2.createConversationButton),
3904
+ className: classNames2__default.default(styles_module_default3.createConversationButton),
4199
3905
  icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PlusOutlined, {}),
4200
3906
  children: "\u65B0\u5EFA\u4F1A\u8BDD"
4201
3907
  }
@@ -4205,14 +3911,328 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
4205
3911
  ] });
4206
3912
  };
4207
3913
  var ConversationListPanel = ({ header }) => {
4208
- return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: classNames7__default.default("height-full", "zero-chat-conversations", styles_module_default2.conversationListPanel), children: [
3914
+ return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: classNames2__default.default("height-full", "zero-chat-conversations", styles_module_default3.conversationListPanel), children: [
4209
3915
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: header, DefaultComponent: ConversationListHeader_default }),
4210
3916
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "full-scroll", children: /* @__PURE__ */ jsxRuntime.jsx(ConversationList_default, {}) })
4211
3917
  ] });
4212
3918
  };
4213
3919
  var ConversationListPanel_default = ConversationListPanel;
3920
+ var WelcomeItem_default = ({ icon = true, title = true, description = true, prompts = true }) => {
3921
+ const chatStore = useChatStore();
3922
+ const agentState = valtio.useSnapshot(chatStore.agent);
3923
+ const recommendQuestions = React7.useMemo(() => {
3924
+ return agentState.agentInfo?.config?.onboarding?.guiding?.map((item, index) => ({
3925
+ key: String(index),
3926
+ description: item
3927
+ }));
3928
+ }, [agentState.agentInfo?.config?.onboarding?.guiding]);
3929
+ return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, justify: "center", className: styles_module_default3.chatWelcomeWrap, children: [
3930
+ /* @__PURE__ */ jsxRuntime.jsx(
3931
+ xV2.Welcome,
3932
+ {
3933
+ className: classNames2__default.default(styles_module_default3.chatWelcome, "p-t-32"),
3934
+ variant: "borderless",
3935
+ icon: /* @__PURE__ */ jsxRuntime.jsx(
3936
+ common.RenderWrapper,
3937
+ {
3938
+ control: icon,
3939
+ DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(antd.Avatar, { shape: "square", size: 58, src: agentState.agentInfo?.iconUrl || getChatCopilotLogo() })
3940
+ }
3941
+ ),
3942
+ title: /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: title, DefaultComponent: `\u4F60\u597D\uFF0C\u6211\u662F${agentState.agentInfo?.name || ""}` }),
3943
+ description: /* @__PURE__ */ jsxRuntime.jsx(
3944
+ common.RenderWrapper,
3945
+ {
3946
+ control: description,
3947
+ DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: agentState.agentInfo?.config?.onboarding?.greeting || "" } })
3948
+ }
3949
+ )
3950
+ }
3951
+ ),
3952
+ (agentState.agentInfo?.config?.onboarding?.guiding?.length ?? 0) > 0 && /* @__PURE__ */ jsxRuntime.jsx(
3953
+ common.RenderWrapper,
3954
+ {
3955
+ control: prompts,
3956
+ DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(
3957
+ xV2.Prompts,
3958
+ {
3959
+ className: classNames2__default.default("m-t-16", styles_module_default3.promptItem),
3960
+ wrap: true,
3961
+ onItemClick: (info) => chatStore.sendMessage(info.data.description),
3962
+ items: recommendQuestions
3963
+ }
3964
+ )
3965
+ }
3966
+ )
3967
+ ] });
3968
+ };
3969
+ var { Text: Text3 } = antd.Typography;
3970
+ var BubbleListItems_default = ({
3971
+ firstMessages = [],
3972
+ welcomeMessage = true,
3973
+ avatar = { user: false, agent: true },
3974
+ agentActions = false,
3975
+ customComponents = {}
3976
+ }) => {
3977
+ const chatStore = useChatStore();
3978
+ const agentState = valtio.useSnapshot(chatStore.agent);
3979
+ const conversationState = valtio.useSnapshot(chatStore.conversation);
3980
+ const configState = valtio.useSnapshot(chatStore.config);
3981
+ const isDebug = configState.params.convMeta.mode === CONV_MODE.DEBUG;
3982
+ const isWorkFlow = agentState.agentInfo.agentType === 1 /* FLOW */;
3983
+ const conversationRoles = React7.useMemo(() => {
3984
+ const roles = {};
3985
+ if (agentState.agentInfo?.id) {
3986
+ roles.agent = {
3987
+ user: "agent",
3988
+ role: 2,
3989
+ placement: "start"
3990
+ // avatar: (isBoolean(avatar) ? avatar : avatar?.agent) ? { src: agentState.agentInfo.iconUrl, icon: <OpenAIOutlined /> } : null
3991
+ };
3992
+ }
3993
+ roles.user = {
3994
+ user: "user",
3995
+ role: 1,
3996
+ placement: "end",
3997
+ avatar: (common.isBoolean(avatar) ? avatar : avatar?.user) ? /* @__PURE__ */ jsxRuntime.jsx(common.UserAvatar, { size: 30, avatarSrc: "", userName: "" }) : null
3998
+ };
3999
+ return roles;
4000
+ }, [agentState.agentInfo.id]);
4001
+ const chatMessage = React7.useMemo(
4002
+ () => conversationState.messages[conversationState.active.id] || {},
4003
+ [conversationState.messages[conversationState.active.id]]
4004
+ );
4005
+ const conversationMessages = chatMessage?.message || [];
4006
+ const getRole = (role) => {
4007
+ const roleKey = Object.keys(conversationRoles).find((key) => conversationRoles[key].role === role);
4008
+ return conversationRoles[roleKey] || {};
4009
+ };
4010
+ const messageRefs = React7.useRef({});
4011
+ const chatRecords = React7.useMemo(() => {
4012
+ const chatRecords2 = [];
4013
+ conversationMessages.forEach((message3, messageIndex) => {
4014
+ const role = getRole(message3.role);
4015
+ const isLeftBubble = role.user === "agent";
4016
+ const isMessageLoading = !!message3.generating;
4017
+ const showLogButton = isDebug && isLeftBubble && !isMessageLoading && isWorkFlow;
4018
+ const baseKey = `${message3.executionId}-${messageIndex}`;
4019
+ const footerNode = !isMessageLoading ? /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { align: "center", gap: 8, children: [
4020
+ message3.stopFlag && /* @__PURE__ */ jsxRuntime.jsx(Text3, { type: "secondary", style: { flex: "none" }, children: "\u5DF2\u505C\u6B62" }),
4021
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { align: "center", gap: 4, children: [
4022
+ showLogButton && /* @__PURE__ */ jsxRuntime.jsx(
4023
+ antd.Button,
4024
+ {
4025
+ className: "logBtn",
4026
+ type: "text",
4027
+ size: "small",
4028
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.FileTextOutlined, {}),
4029
+ onClick: () => {
4030
+ setLogPanelOpen(true, message3.executionId);
4031
+ }
4032
+ }
4033
+ ),
4034
+ role.user === "agent" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4035
+ /* @__PURE__ */ jsxRuntime.jsx(
4036
+ antd.Button,
4037
+ {
4038
+ onClick: async () => {
4039
+ const container = messageRefs.current[baseKey];
4040
+ if (!container) return;
4041
+ const markdown = common.htmlToMarkdown(container.innerHTML) || container.innerText || "";
4042
+ common.copyText(markdown);
4043
+ },
4044
+ color: "default",
4045
+ variant: "text",
4046
+ size: "small",
4047
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CopyOutlined, {})
4048
+ }
4049
+ ),
4050
+ /* @__PURE__ */ jsxRuntime.jsx(
4051
+ antd.Button,
4052
+ {
4053
+ color: message3.feedback === 1 ? "primary" : "default",
4054
+ size: "small",
4055
+ variant: "text",
4056
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.LikeOutlined, {}),
4057
+ onClick: () => chatStore.feedback(message3.executionId, 1, messageIndex)
4058
+ }
4059
+ ),
4060
+ /* @__PURE__ */ jsxRuntime.jsx(
4061
+ antd.Button,
4062
+ {
4063
+ color: message3.feedback === 2 ? "primary" : "default",
4064
+ size: "small",
4065
+ variant: "text",
4066
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DislikeOutlined, {}),
4067
+ onClick: () => chatStore.feedback(message3.executionId, 2, messageIndex)
4068
+ }
4069
+ ),
4070
+ /* @__PURE__ */ jsxRuntime.jsx(
4071
+ common.RenderWrapper,
4072
+ {
4073
+ control: agentActions,
4074
+ ctx: {
4075
+ message: message3,
4076
+ get dom() {
4077
+ return messageRefs.current[baseKey];
4078
+ }
4079
+ }
4080
+ }
4081
+ )
4082
+ ] })
4083
+ ] })
4084
+ ] }) : void 0;
4085
+ chatRecords2.push({
4086
+ key: baseKey,
4087
+ role: String(role.role),
4088
+ placement: role.placement,
4089
+ avatar: role.avatar,
4090
+ content: /* @__PURE__ */ jsxRuntime.jsx(
4091
+ MessageRender_default,
4092
+ {
4093
+ role,
4094
+ message: message3,
4095
+ messageIndex,
4096
+ customComponents,
4097
+ loading: isMessageLoading,
4098
+ containerRef: (node) => {
4099
+ if (node) {
4100
+ messageRefs.current[baseKey] = node;
4101
+ } else {
4102
+ delete messageRefs.current[baseKey];
4103
+ }
4104
+ }
4105
+ }
4106
+ ),
4107
+ footer: footerNode,
4108
+ variant: "borderless"
4109
+ });
4110
+ });
4111
+ return chatRecords2;
4112
+ }, [agentActions, chatStore, conversationMessages, conversationRoles, conversationState.active.id, isDebug, isWorkFlow]);
4113
+ const firstMessagesRecord = React7.useMemo(() => {
4114
+ return (firstMessages || []).map((firstMessage, index) => {
4115
+ const { member, content, contentRender, ...args } = firstMessage;
4116
+ const roleObj = getRole(member);
4117
+ return {
4118
+ key: `firstMessage-${index}`,
4119
+ role: roleObj.user,
4120
+ placement: roleObj.placement,
4121
+ avatar: roleObj.avatar,
4122
+ styles: {
4123
+ body: {
4124
+ width: "auto"
4125
+ }
4126
+ },
4127
+ variant: "borderless",
4128
+ ...args,
4129
+ content: contentRender ? contentRender({ index, member }) : content
4130
+ };
4131
+ });
4132
+ }, [firstMessages, conversationRoles]);
4133
+ const welcomeMessageRecord = React7.useMemo(() => {
4134
+ const isExist = common.shouldRender(welcomeMessage);
4135
+ return isExist ? [
4136
+ {
4137
+ key: "welcome-message",
4138
+ content: /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: welcomeMessage, DefaultComponent: WelcomeItem_default }),
4139
+ variant: "borderless"
4140
+ }
4141
+ ] : [];
4142
+ }, [welcomeMessage, agentState.agentInfo.id]);
4143
+ const bubbleListItems = React7.useMemo(() => {
4144
+ const list = [];
4145
+ list.push(...firstMessagesRecord);
4146
+ list.push(...chatRecords);
4147
+ if (list.length) {
4148
+ return list;
4149
+ }
4150
+ return [...welcomeMessageRecord];
4151
+ }, [chatRecords, welcomeMessageRecord, firstMessagesRecord]);
4152
+ const listRef = React7.useRef(null);
4153
+ const autoScrollRef = React7.useRef(true);
4154
+ const handleScroll = (el) => {
4155
+ const target = el.target;
4156
+ const distanceToBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
4157
+ autoScrollRef.current = distanceToBottom < 90;
4158
+ };
4159
+ React7.useEffect(() => {
4160
+ const latestMessage = conversationMessages[conversationMessages?.length - 1];
4161
+ if (!latestMessage) return;
4162
+ if (latestMessage.generating) {
4163
+ autoScrollRef.current = true;
4164
+ }
4165
+ }, [conversationMessages?.length]);
4166
+ React7.useEffect(() => {
4167
+ const el = listRef.current?.nativeElement;
4168
+ if (!el || !bubbleListItems.length) return;
4169
+ if (autoScrollRef.current) {
4170
+ setTimeout(() => {
4171
+ if (autoScrollRef.current) {
4172
+ listRef.current?.scrollTo({
4173
+ top: "bottom",
4174
+ behavior: "instant"
4175
+ });
4176
+ }
4177
+ }, 300);
4178
+ }
4179
+ }, [bubbleListItems]);
4180
+ return /* @__PURE__ */ jsxRuntime.jsx(A2uiRenderer, { messages: conversationMessages, children: /* @__PURE__ */ jsxRuntime.jsx(
4181
+ xV2.Bubble.List,
4182
+ {
4183
+ autoScroll: false,
4184
+ ref: listRef,
4185
+ items: bubbleListItems,
4186
+ className: classNames2__default.default(styles_module_default3.bubbleList, "height-full", "scroll-fade-in"),
4187
+ onScroll: handleScroll
4188
+ },
4189
+ conversationState.active.id
4190
+ ) });
4191
+ };
4192
+
4193
+ // src/assets/iconfont.js
4194
+ window._iconfont_svg_string_5021436 = '<svg><symbol id="icon-MiniMax" viewBox="0 0 1169 1024"><path d="M478.75435244 475.68580947V806.78782724c-22.36074786 112.12453565-171.10955566 83.20989638-171.75290449 1.92740802-0.70574941-102.1640625 0-203.68653398 0-305.07980889V386.05034023c0-14.71351641-3.21234697-26.34388242-16.06261377-35.53268994-25.05982237-18.76168916-55.13020401 3.27738516-55.77267304 30.32877568-1.41413555 36.30347666-0.70750723 71.8361666-1.41413643 107.6254919 0 28.27216933 0 55.70939268 0.64246992 83.91652471C215.95360098 696.59245742 65.46986211 675.96664062 62 573.0950709V486.99450195c0-28.14385166 55.13020401-34.76190146 52.43200752 7.3888374-1.79909033 20.88245302-0.64334795 42.40825489-1.34997627 63.09823096-0.64159013 36.94594658 55.83771123 61.81241308 69.13797012 1.41325664 0.64246904-49.79709229 0.64246904-99.59418457 0.64246991-149.84126982 0-62.96903349 17.86258301-114.2444206 84.62315304-118.99922168 28.91463926-2.56987793 48.1263205 9.50960214 66.56721415 30.39205518 7.06892168 7.38971631 23.77400537 30.84292617 24.41735333 56.3518626 0 23.51736914 0.64159013 46.90554083 0.64159013 70.68042421 0 46.90466192-0.64159013 94.067717-0.64159013 140.97413672 0 30.39205518 0.64159013 60.46243594 0.64159013 90.14786279 0 37.65345381 0 75.82105898-0.64159013 113.53779317-0.64246904 49.02630469 58.98502002 48.31967637 68.55966034-0.7707876 0-57.82927852 0.64159013-114.9510498 0.64159015-172.78032832 0-142.45155263-0.64159013-284.90398418-0.64159015-427.29225644 0-14.77855459-2.05660547-55.77267305 5.78310294-70.6795462C474.44866455 19.15811826 600.77256523 63.42874297 601.92918565 147.40942695c2.44155938 172.07369912 0 346.07480713 0.64246992 518.53346016 0 59.8208458-48.5763126 46.97057813-51.2745082 23.58152753 0-179.4625374 0-359.63170224 0.64159013-538.83760253-2.37652119-44.97813193-69.07293281-38.87335459-72.92862773-6.61805068-1.28493896 37.01010498-0.64159013 74.66355878-1.28493897 111.61038427v219.74914863h0.64246904l0.44999297 0.25751515z" fill="#D4367A" ></path><path d="M674.02374628 473.05089424v243.13907724-573.79286073c21.7173999-112.89356543 170.40292734-83.52981299 171.0453964-2.18404424 0.70662832 101.45831308 0 203.62237559 0.70662831 305.01564961 0 38.93839278 0 78.00510322-0.64246904 116.94349599 0 15.42102364 3.79065761 26.27972403 16.7059626 36.17515898 24.41647442 18.3125751 54.42357568-3.21234697 55.77267305-30.71372958 1.34997714-35.59684834 0.64334795-71.19369667 0.64334795-107.69053008v-83.40237334c18.6333706-124.20313594 168.66799629-103.57731914 171.81618486-0.70662832V687.46956787c0 28.27129131-54.48773408 34.95350039-52.04617471-7.3255579 1.47741592-21.52492295 0-268.00554463 0.7707876-289.59462599 1.28493896-36.30347666-55.9009916-61.87745127-69.13797099-0.7707876v149.07048135c0 63.86901856-17.92674229 114.30857989-85.26562296 119.77001016-63.48230596 1.47741592-88.99212129-42.40825489-91.04872587-86.74391777V270.52098066c0-38.36008213 0-75.82018008 0.64334795-113.47363388 0.64159013-49.02542578-58.98589893-49.02542578-69.13797012 0.70750723v674.67198515c0 14.64935713 2.05660547 55.70851377-5.20479316 70.67954532-41.57242911 101.3932749-168.53967773 57.05761201-169.69629903-26.8589127v-79.86747392c3.14906661-53.78110576 48.5763126-40.99499737 50.63291807-18.24841583V872.90680625c2.44155938 45.10645049 69.13797012 39.64502109 72.28615869 6.68220908 1.34909825-37.01010498 1.34909825-73.95693047 1.34909737-111.67366377V473.11505263h-0.19335586v-0.06415839z" fill="#ED6D48" ></path></symbol><symbol id="icon-Kimi" viewBox="0 0 1024 1024"><path d="M696.5 206m0 0l166.5 0q0 0 0 0l0 166.5q0 0 0 0l-166.5 0q0 0 0 0l0-166.5q0 0 0 0Z" fill="#1683FF" ></path><path d="M282.5 305m0 0l418.5 0q0 0 0 0l0 423q0 0 0 0l-418.5 0q0 0 0 0l0-423q0 0 0 0Z" fill="#FFFFFF" ></path><path d="M704.8835 62C846.8855 62 962 177.1145 962 319.121v385.7625c-0.0315 141.9885-115.128 257.085-257.1165 257.1165H319.0625C177.083 961.9685 62 846.863 62 704.8835V319.0625C62.0315 177.083 177.137 62 319.121 62h385.7625z m-393.75 642.8835h72.279V621.35l64.296-63.675 172.8 127.2915c0.504 0.396 28.4625 19.9125 68.2875 19.9125V621.35c-23.9625 0-36-7.875-36.171-7.929l-152.6625-111.375 188.8335-182.925h-108.5625l-196.875 190.9125V319.058H311.1875v385.7625l-0.054 0.0585zM765.125 230.75c-24.417 0-44.2125 19.7955-44.2125 44.2125v44.1585h44.2125c25.02 0.891 45.7875-19.152 45.7875-44.19 0-25.0335-20.7675-45.072-45.7875-44.181z" fill="#000000" ></path></symbol><symbol id="icon-Claude" viewBox="0 0 1024 1024"><path d="M246.752 655.856l171.696-96.288 2.928-8.352-2.928-4.656h-8.352l-28.752-1.728-98.16-2.64-85.104-3.552-82.416-4.416-20.784-4.416-19.488-25.632 2.016-12.816 17.472-11.664 24.96 2.16 55.296 3.744 82.848 5.76 60.096 3.552 89.088 9.264h14.16l2.016-5.712-4.896-3.552-3.744-3.552-85.776-58.08-92.832-61.392-48.576-35.376-26.352-17.856-13.248-16.8-5.76-36.672 23.856-26.256 32.064 2.16 8.208 2.208 32.496 24.96 69.408 53.712L398.816 388.64l13.296 11.04 5.28-3.744 0.672-2.64-5.952-9.984-49.296-88.992-52.608-90.576-23.424-37.536-6.192-22.512c-2.352-8.64-3.648-17.568-3.792-26.496l27.216-36.864 15.024-4.896 36.24 4.896 15.264 13.248 22.56 51.456 36.432 81.072L486.08 336.32l16.608 32.688 8.832 30.288 3.312 9.264h5.76v-5.328l4.656-62.064 8.64-76.224 8.352-98.016 2.928-27.648 13.68-33.12 27.168-17.904 21.264 10.176 17.472 24.912-2.448 16.128-10.416 67.344-20.352 105.6-13.248 70.656h7.728l8.832-8.784 35.808-47.52 60.096-75.072 26.544-29.808 30.912-32.88 19.92-15.696h37.584l27.648 41.088-12.384 42.432-38.688 49.008-32.064 41.52-45.984 61.824-28.752 49.488 2.64 3.984 6.816-0.72 103.872-22.032 56.112-10.176 66.96-11.472 30.288 14.112 3.312 14.352-11.952 29.376-71.616 17.664-84 16.8-125.088 29.568-1.536 1.104 1.776 2.208 56.352 5.328 24.096 1.296h58.992l109.872 8.208 28.752 19.008 17.232 23.232-2.88 17.664-44.208 22.56-59.664-14.16-139.296-33.12-47.712-11.952h-6.624v3.984l39.744 38.832 72.96 65.856 91.248 84.768 4.608 21.024-11.712 16.56-12.384-1.776-80.208-60.288-30.96-27.168-70.08-58.944h-4.656v6.192l16.128 23.616 85.296 128.064 4.416 39.264-6.192 12.864-22.128 7.728-24.288-4.416-49.968-70.032-51.456-78.816-41.568-70.704-5.088 2.928-24.528 263.904-11.472 13.44-26.496 10.176-22.08-16.752-11.712-27.168 11.712-53.712 14.16-69.984 11.472-55.68 10.416-69.12 6.192-22.992-0.432-1.536-5.088 0.672-52.176 71.568-79.296 107.136-62.784 67.104-15.072 5.952-26.064-13.44 2.448-24.096 14.592-21.408 86.88-110.448 52.368-68.448 33.84-39.504-0.24-5.76h-2.016l-230.736 149.712-41.088 5.328-17.712-16.608 2.208-27.12 8.4-8.832 69.408-47.712-0.24 0.24z" fill="#D97757" ></path></symbol><symbol id="icon-create" viewBox="0 0 1024 1024"><path d="M739.16 185.54a33.54 33.54 0 1 1 67.02 0v92.28h92.28a33.54 33.54 0 0 1 0 67.08h-92.22v91.98a33.54 33.54 0 0 1-67.02 0V344.9h-92.16a33.54 33.54 0 0 1 0-67.08h92.04V185.6h0.06z m-501.9 63.6h276.06a33.54 33.54 0 0 0 0-66.96H237.26a139.8 139.8 0 0 0-102.72 42.6A139.8 139.8 0 0 0 92 327.32v335.16c0 40.14 14.16 74.4 42.6 102.72 24.72 24.78 54 38.7 87.78 41.82v60.3a33.54 33.54 0 0 0 48.48 29.94l179.16-89.52h308.58c40.14 0 74.4-14.22 102.66-42.54 28.38-28.38 42.6-62.58 42.6-102.72V551.24a33.54 33.54 0 0 0-67.02 0v111.3c0 21.6-7.68 40.02-22.92 55.32a75.36 75.36 0 0 1-55.32 22.86H442.04a33.54 33.54 0 0 0-15 3.6L289.4 813.08v-38.88a33.54 33.54 0 0 0-33.54-33.54h-18.6c-21.6 0-40.08-7.62-55.32-22.86a75.36 75.36 0 0 1-22.92-55.32V327.38c0-21.6 7.62-40.02 22.92-55.26 15.24-15.3 33.72-22.92 55.32-22.92z" ></path></symbol><symbol id="icon-history" viewBox="0 0 1024 1024"><path d="M707.552 453.104c-123.648 0-223.824 97.776-223.824 218.352 0 120.576 100.176 218.352 223.824 218.352 123.6 0 223.824-97.728 223.824-218.352 0-120.576-100.224-218.352-223.824-218.352z m0 387.168c-95.568 0-173.088-75.6-173.088-168.816 0-93.264 77.52-168.816 173.088-168.816 95.52 0 173.04 75.6 173.04 168.816 0 93.264-77.472 168.816-173.04 168.816z" ></path><path d="M785.744 142.4a144 144 0 0 1 144 144v355.68l-0.096 2.88a215.232 215.232 0 0 0-57.504-121.44v-35.76V286.4a86.4 86.4 0 0 0-86.352-86.4H238.4a86.4 86.4 0 0 0-86.4 86.4v355.68a86.4 86.4 0 0 0 86.4 86.4h71.136v108.24l135.888-108.24h46.08c5.664 20.544 14.352 39.888 25.536 57.6H465.536l-135.696 108.096a48 48 0 0 1-77.952-37.536v-70.56h-13.44a144 144 0 0 1-144-144V286.4a144 144 0 0 1 144-144h547.296z" ></path><path d="M696.512 573.152a24.96 24.96 0 0 1 24.96 24.96v87.84h59.808a23.52 23.52 0 0 1 0 47.04h-99.456a10.08 10.08 0 0 1-10.224-10.08v-124.8c0-13.776 11.136-24.96 24.912-24.96zM536.864 393.008a33.6 33.6 0 0 0 4.608-66.912l-4.56-0.288h-230.4a33.6 33.6 0 0 0-4.56 66.912l4.512 0.288h230.4z m-115.2 133.392a33.6 33.6 0 0 0 4.608-66.912L421.712 459.2h-115.2a33.6 33.6 0 0 0-4.56 66.864l4.56 0.336h115.2-0.048z" ></path></symbol><symbol id="icon-project" viewBox="0 0 1024 1024"><path d="M410.67 544H133.33A69.33 69.33 0 0 0 64 613.33v277.34A69.33 69.33 0 0 0 133.33 960h277.34A69.33 69.33 0 0 0 480 890.67V613.33A69.33 69.33 0 0 0 410.67 544zM402 842a40 40 0 0 1-40 40H182a40 40 0 0 1-40-40V662a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40zM890.67 544H613.33A69.33 69.33 0 0 0 544 613.33v277.34A69.33 69.33 0 0 0 613.33 960h277.34A69.33 69.33 0 0 0 960 890.67V613.33A69.33 69.33 0 0 0 890.67 544zM882 842a40 40 0 0 1-40 40H662a40 40 0 0 1-40-40V662a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40zM410.67 64H133.33A69.33 69.33 0 0 0 64 133.33v277.34A69.33 69.33 0 0 0 133.33 480h277.34A69.33 69.33 0 0 0 480 410.67V133.33A69.33 69.33 0 0 0 410.67 64zM402 362a40 40 0 0 1-40 40H182a40 40 0 0 1-40-40V182a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40zM694.49 456.18a81.35 81.35 0 0 0 115 0l126.69-126.67a81.35 81.35 0 0 0 0-115L809.51 87.82a81.35 81.35 0 0 0-115 0L567.82 214.49a81.35 81.35 0 0 0 0 115z" ></path></symbol><symbol id="icon-Doubao" viewBox="0 0 1024 1024"><path d="M943.57048924 444.46151111c-143.81511147-96.0284448-295.36711147-110.4099552-295.36711146-110.4099552s7.64586667 219.3635552-10.0124448 285.80977707c-0.45511147 9.10222187-11.01368853 70.2691552-40.1408 147.18293333-10.0124448 26.30542187-22.48248853 51.65511147-36.81848854 76.00355627a689.9939552 689.9939552 0 0 1-83.64942186 119.0115552c111.86631147-45.42008853 191.64728853-86.47111147 289.1776-163.93102187 114.688-90.3395552 214.08426667-237.568 176.81066666-353.6668448z" fill="#37E1BE" ></path><path d="M356.20408924 403.36497778c147.6835552-94.16248853 288.1763552-73.59146667 291.54417707-69.76853333 0.45511147 0.45511147 0.91022187 0.45511147 0.91022293 0.45511146 0-13.38026667-6.18951147-56.88888853-12.37902293-99.39626666-11.01368853-56.88888853-21.02613333-116.59946667-21.5267552-124.7004448-159.1523552-130.0252448-333.14133333-73.18186667-418.15608853 23.84782186C139.20711111 199.33866631 100.02204444 292.49991111 100.97777778 343.15377778v402.8643552c0.45511147-11.92391147 1.36533333-19.11466667 1.8659552-19.11466667 16.74808853-184.00142187 253.3148448-323.584 253.3148448-323.584z" fill="#A569FF" ></path><path d="M787.74044444 288.17635591c-39.1395552-40.64142187-81.6924448-82.69368853-114.23288853-117.1000896-31.03857813-32.49493333-55.38702187-56.88888853-58.70933333-61.16693333 0.45511147 8.14648853 10.4675552 67.85706667 21.48124373 124.74595627 6.18951147 42.55288853 11.92391147 86.47111147 12.42453333 99.39626666 0 0 151.50648853 14.336 295.36711147 110.4099552-0.45511147 0-77.91502187-75.04782187-156.2851552-156.2851552zM561.73226631 843.04782258c-2.41208853 0.95573333-185.45777813 99.89688853-272.93013333-28.672-19.56977813-28.672-29.58222187-63.57902187-31.03857707-99.39626667-2.8672-69.76853333 4.77866667-212.67342187 98.44053333-311.61457813 0 0-236.5667552 139.53706667-252.81422293 323.584-0.45511147 0.45511147-1.91146667 7.6003552-1.91146667 19.11466667-0.95573333 30.5379552 4.2780448 91.7504 40.1408 144.7708448 48.7424 73.1363552 180.17848853 129.52462187 306.3352896 79.82648853l31.08408854-9.10222187c-0.95573333 0.45511147 44.4643552-48.69688853 82.69368853-118.51093333z" fill="#1E37FC" ></path></symbol><symbol id="icon-AIbianji" viewBox="0 0 1024 1024"><path d="M927.87039969 563.39199969a32.64 32.64 0 0 1 32.12800031 33.024v330.49600031a32.64 32.64 0 0 1-32.12800031 33.024 32.64 32.64 0 0 1-32.19199969-33.024V596.41599969a32.64 32.64 0 0 1 32.19199969-33.024zM382.0784 893.82399969c16.63999969 0 30.20800031 14.84800031 30.20800031 33.08800031 0 18.24-13.56799969 33.024-30.20800031 33.024H140.41440031c-16.63999969 0-30.20800031-14.784-30.20800031-33.024 0-18.24 13.56799969-33.08800031 30.20800031-33.08800031h241.728z m329.088-312.192l151.03999969 330.49600031c7.488 16.32 1.40800031 36.16000031-13.44 44.352-14.976 8.12800031-33.08800031 1.536-40.57599938-14.784l-124.032-271.36000031-124.032 271.36000031a29.31199969 29.31199969 0 0 1-35.45600062 16.96000031l-5.11999969-2.17600031c-14.84800031-8.19199969-20.928-28.032-13.44-44.352l151.03999969-330.49600031c11.136-24.31999969 42.88000031-24.31999969 54.01600031 0z m46.20799969-493.11999938l42.68800031 42.36799969c35.39200031 35.136 32.448 94.97599969-6.528 133.69600031l-510.97600031 506.88a35.83999969 35.83999969 0 0 1-17.28 9.6l-165.43999969 37.11999938a28.54399969 28.54399969 0 0 1-35.07199969-34.68799969l37.248-164.352a35.39200031 35.39200031 0 0 1 9.6-17.21599969l444.79999969-441.408 6.912-7.42400062 59.26399969-58.04799938C661.75839969 56.31999969 722.04639969 53.37600031 757.4384 88.51200031zM186.2384 612.67200031l-24.44800031 24.31999969-24.83199938 109.44 110.33599969-24.70399969 16.19200031-16.19200031-77.24800031-92.80000031z m373.248-370.30400062L231.03840031 568.32000031l77.31199969 92.79999938 332.47999969-329.856-81.27999938-88.896z m105.85600031-104.95999969l-61.12000031 60.48 81.28000031 88.96000031 65.28-64.64000062c11.52-11.52 13.632-28.54399969 5.63199938-40.38399938l-3.456-4.224-42.68799938-42.36800062c-11.83999969-11.712-31.93600031-10.752-44.928 2.17600031z" ></path></symbol><symbol id="icon-DeepSeek" viewBox="0 0 1391 1024"><path d="M1299.71873948 130.41498185c-12.94676356-6.47485468-18.53640721 5.86654827-26.09973268 12.13814317-2.57756953 2.02376031-4.77807747 4.65435413-6.9785854 7.08168819-18.91788751 20.63528526-41.02017805 34.19182812-69.92725219 32.57311445-42.23384508-2.42733405-78.29772513 11.12773591-110.16384908 44.10589701-6.77679853-40.66668282-29.28560862-64.94444203-63.55255448-80.5232723-17.95608583-8.09209545-36.06388005-16.1856638-48.63358202-33.78825438-8.74900746-12.5431898-11.12773591-26.50330641-15.52727889-40.26016326-2.7823022-8.29535522-5.56460442-16.79249731-14.92044537-18.20942412-10.19244639-1.61871367-14.16337637 7.08168818-18.15934561 14.36516325-15.93232553 29.74073376-22.12880269 62.51710799-21.49692993 95.69705596 1.36684831 74.65672404 32.27117059 134.13819156 93.62469003 176.42358804 6.9800583 4.8546681 8.77551959 9.71080912 6.57501167 16.7910244-4.17271686 14.56695011-9.18056624 28.7303265-13.55506996 43.29727663-2.78377509 9.30723537-6.95501906 11.32952278-16.74241882 7.28347506-33.66158524-14.36516325-62.745407-35.60875491-88.46513227-61.30196805-43.62425973-43.09548975-83.0772755-90.64060097-132.26613965-127.86659668a581.67054343 581.67054343 0 0 0-35.07703915-24.481019c-50.20074429-49.77065841 6.57501167-90.63912807 19.72650787-95.49526908 13.73181759-5.05792788 4.77955037-22.4572587-39.65480261-22.25547183s-85.07599655 15.3770434-136.87041529 35.60875492c-7.58541892 3.03416756-15.55379103 5.25971475-23.69596497 7.08168819-47.03990759-9.10544849-95.84876434-11.12773591-146.85960188-5.26118764-96.02551195 10.92594905-172.73103555 57.25739323-229.12678414 136.36373875-67.72674425 95.09022244-83.68558192 203.13015422-64.13582166 315.82149433 20.48504978 118.76262107 79.88992666 217.09027084 171.13736116 293.9710692 94.6350973 79.71317902 203.61031862 118.76262107 327.93607115 111.27735912 75.51542292-4.45256725 159.57953934-14.77020989 254.41642352-96.71040901 23.92426399 12.13961607 49.03715574 16.99575708 90.66564022 20.63675815 32.09295007 3.03416756 62.97223311-1.61871367 86.87145787-6.67664152 37.45429471-8.09209545 34.84874013-43.49906349 21.3187094-49.97244528-109.7838417-52.19946535-85.68283009-30.95587367-107.58333375-48.15194474 55.78891504-67.37324899 139.85303146-137.3770918 172.73103558-364.17669887 2.60408167-18.00616433 0.40357375-29.33568711 0-43.90263723-0.20325977-8.90218873 1.76894914-12.34287584 11.75960868-13.3532831 27.49014733-3.23742733 54.19671351-10.92594905 78.70277175-24.68280587 71.11440706-39.65480265 99.81822142-104.80250446 106.59649285-182.89844271 1.01188015-11.9363563-0.20178686-24.27775924-12.56970195-30.54935415M679.88691083 833.27400751c-106.36966673-85.37941333-157.98733782-113.5014334-179.30604723-112.28776638-19.92829476 1.21366703-16.33737217 24.48101902-11.96286845 39.65480263 4.5777635 14.97199677 10.57098089 25.2896394 18.94145388 38.44113563 5.76786417 8.70040186 9.76383341 21.64863831-5.78995764 31.35944742-34.26841876 21.64863831-93.82647692-7.28347506-96.60730623-8.69892897-69.3454579-41.67856295-127.33635378-96.710409-168.17978423-171.97249367-39.45154288-72.43117687-62.33888747-150.1220685-66.13306982-233.07267484-1.01188015-20.02992464 4.77955037-27.11161282 24.27923215-30.75408683a235.19659216 235.19659216 0 0 1 77.91771776-2.0222874c108.59668681 16.18713669 201.05631542 65.75453531 278.54394725 144.25552022 44.23256614 44.71125762 77.69089163 98.12439001 112.18613649 150.32385536 36.64567431 55.43394691 76.0986901 108.24024576 126.2994344 151.53604948 17.72778682 15.17378365 31.86465106 26.7065662 45.41972101 35.20370828-40.84343042 4.65435413-108.99878765 5.66476139-155.60860934-31.96628093m51.00936468-334.83953884c0-8.90218873 6.9815312-15.98387693 15.75557788-15.98387693q2.98408908 0.05155138 5.36134465 1.01188016a15.85720779 15.85720779 0 0 1 10.16740716 14.97199677 15.78061715 15.78061715 0 0 1-15.73053865 15.98387692 15.60386953 15.60386953 0 0 1-15.55379104-15.98387692m158.39238445 82.95060636c-10.1423679 4.24930749-20.30830215 7.89178146-30.09570189 8.29535522-15.12370514 0.81009328-31.66286419-5.46150162-40.61513143-13.15002333-13.96011661-11.93782919-23.92573689-18.61447073-28.09845373-39.45301577-1.79546129-8.90218873-0.81009328-22.65904557 0.78505404-30.54935414 3.59092258-16.99575708-0.40504665-27.92023321-12.13961607-37.8343021-9.55910075-8.09356835-21.72522894-10.31911553-35.07703915-10.31911553-4.98281013 0-9.55910075-2.22407429-12.94823646-4.04604772a13.27669246 13.27669246 0 0 1-5.76639126-18.61299785c1.39041466-2.8323807 8.16868608-9.71228202 9.76236049-10.92594903 18.13136058-10.52090241 39.04649623-7.08021529 58.36795747 0.81009328 17.93104659 7.48526194 31.46107731 21.24359167 51.01083759 40.66668278 19.92829476 23.46913885 23.51921733 29.94399353 34.84874012 47.54511124 8.97877936 13.75685685 17.14746545 27.92023321 22.71206985 44.1044241 3.41270206 10.11732865-0.98684091 18.41121097-12.74644957 23.46913885" fill="#4D6BFE" ></path></symbol><symbol id="icon-OpenAI" viewBox="0 0 1024 1024"><path d="M950.676 419.057a255.347 255.347 0 0 0-22.015-209.482A257.95 257.95 0 0 0 650.915 85.848a258.76 258.76 0 0 0-438.377 92.539A255.347 255.347 0 0 0 41.966 302.114a257.95 257.95 0 0 0 31.7 302.79 255.133 255.133 0 0 0 21.758 209.525 258.163 258.163 0 0 0 277.96 123.727 255.347 255.347 0 0 0 192.373 85.84 258.376 258.376 0 0 0 246.26-179.446 255.56 255.56 0 0 0 170.53-123.727 258.376 258.376 0 0 0-31.871-301.766zM565.757 957.013a190.966 190.966 0 0 1-122.703-44.37l6.016-3.456 203.893-117.67a33.918 33.918 0 0 0 16.725-29.054v-287.43l86.182 49.832a3.03 3.03 0 0 1 1.621 2.219v238.195a192.16 192.16 0 0 1-191.734 191.734zM153.62 780.98a190.71 190.71 0 0 1-22.826-128.59l6.058 3.626 204.065 117.71a32.894 32.894 0 0 0 33.278 0L623.482 629.99v99.494a3.413 3.413 0 0 1-1.408 2.645L415.578 851.206a191.99 191.99 0 0 1-261.96-70.226zM99.86 336.928a191.35 191.35 0 0 1 100.944-84.177v242.206a32.681 32.681 0 0 0 16.554 28.841l248.094 143.14-86.182 49.832a3.242 3.242 0 0 1-3.03 0L170.173 597.907a192.16 192.16 0 0 1-70.31-262.003zM807.963 501.4L559.102 356.895l85.968-49.661a3.242 3.242 0 0 1 3.03 0L854.169 426.31a191.734 191.734 0 0 1-28.841 345.796v-242.25a33.705 33.705 0 0 0-17.365-28.456z m85.756-128.975l-6.016-3.627-203.68-118.692a33.108 33.108 0 0 0-33.491 0L401.456 393.842v-99.536a2.816 2.816 0 0 1 1.195-2.602l206.07-118.906a191.99 191.99 0 0 1 284.998 198.816zM354.44 548.842l-86.182-49.661a3.413 3.413 0 0 1-1.621-2.432V259.236a191.99 191.99 0 0 1 314.65-147.32l-6.058 3.413-203.851 117.668a33.918 33.918 0 0 0-16.767 29.055z m46.803-100.901l111.013-63.997 111.226 63.997v127.95l-110.8 63.997-111.226-63.996z" ></path></symbol><symbol id="icon-Qwen" viewBox="0 0 1024 1024"><path d="M955 607.2L843.6 412.1l47.8-91.6c6.6-8.7 8.3-21.5 5.6-31.8L835.7 178c-4.7-7.3-12.8-11.8-21.5-12H586.3l-51-89.2c-3.6-7-10.5-11.8-18.3-12.7H396.7c-8.9 0.2-15.2 6.7-19.6 14.4l-1.9 3.1-113.8 195.1H152.2c-9-0.2-17.5 4.3-22.3 12L67 400.1c-4 8-4 17.5 0 25.5l113.1 196.7-51 89.2c-4 8-4 17.4 0 25.5l58.1 102c4.7 7.8 13.2 12.7 22.3 12.7h227.8l54.9 95.5c4.2 7.2 11.6 11.9 19.9 12.8h129c8.9-0.2 17.1-5 21.5-12.7L775 750.5h100.4c8.9-0.8 16.9-5.8 21.5-13.5L955 634.3c5.4-8.3 5.4-18.9 0-27.1zM814.1 620L756 512.5 517 933.7l-65.3-107.5H212.8l57.4-104.3H392L153 302.2h125L396.7 90.3l59.7 104.3-61.3 107.5H873l-60.5 106.8 120.3 211H814.1z" fill="#605BEC" ></path><path d="M511.4 660.5l149-238.9H361.7l149.7 238.9z m0 0" fill="#605BEC" ></path></symbol><symbol id="icon-zhinengti" viewBox="0 0 1024 1024"><path d="M866.304 527.36v185.856c52.224 3.072 98.816-43.52 98.816-95.744 0-49.152-46.592-92.672-98.816-90.112zM58.88 623.104c3.072 49.152 46.592 90.112 98.816 90.112V527.36c-57.856 3.072-98.816 43.52-98.816 95.744zM450.56 610.816c-13.824 0-20.992 9.216-20.992 27.136 0 18.944 9.216 26.624 20.992 26.624 13.312 0 21.504-8.192 21.504-26.624-0.512-17.92-8.192-27.136-21.504-27.136z" ></path><path d="M690.176 395.264h-165.376V335.36c0-8.704 8.704-17.408 17.408-20.48 37.888-17.408 52.224-46.592 43.52-81.408-8.704-31.744-37.888-55.296-72.704-55.296-31.744 0-64 20.48-72.704 52.224-8.704 34.816 5.632 64 43.52 84.48 5.632 3.072 17.408 8.704 17.408 14.336v65.536H346.624c-73.728 0-133.632 59.904-133.632 133.632V711.68c0 73.728 59.904 133.632 133.632 133.632h344.064c73.728 0 133.632-59.904 133.632-133.632v-182.272c0-74.24-59.904-134.144-134.144-134.144z m-300.544 289.792H293.376v-131.072H322.56v107.008h67.072v24.064z m60.928 2.048c-29.696 0-50.176-19.456-50.176-48.64s18.944-49.152 50.688-49.152c33.792 0 50.176 21.504 50.176 49.152 0 29.184-19.456 48.64-50.688 48.64z m162.304-2.048h-96.256v-131.072h29.184v107.008h67.072v24.064z m93.696-0.512l-31.744-51.2h-16.896v51.712h-29.696v-131.072h59.392c32.768 0 49.664 16.384 49.664 38.912 0 20.48-8.704 34.304-32.256 39.424l38.912 53.248H706.56z" ></path><path d="M683.008 576.512h-25.088v34.816h25.088c16.384 0 23.04-5.632 23.04-16.896 0-11.776-5.632-17.92-23.04-17.92z" ></path></symbol><symbol id="icon-skill" viewBox="0 0 1025 1024"><path d="M285.59485039 717.3125H519.73547539a288.28125 288.28125 0 0 0 35.15625 47.8125H285.59485039v-47.109375z m0-74.53125h203.203125a315 315 0 0 1-9.140625-47.109375H285.59485039v47.109375z m0-120.9375h194.765625c2.109375-16.171875 4.921875-32.34375 9.140625-47.109375h-203.90625v47.109375z m378.984375 315v40.78125c0 19.6875-14.765625 35.859375-33.046875 35.859375h-492.1875c-18.28125 0-33.046875-16.171875-33.046875-35.15625V281.375l163.125-147.65625v156.796875H183.64172539v46.40625h129.375V109.109375h318.515625c18.28125 0 33.046875 16.171875 33.046875 35.15625v140.625c14.0625-4.21875 28.125-7.03125 42.890625-9.84375V144.96875C707.46985039 99.265625 674.42297539 62 632.23547539 62H281.37610039L62.70422539 259.578125v618.75c0 45 34.453125 82.265625 75.9375 82.265625H632.23547539c42.1875 0 75.9375-37.265625 75.9375-82.96875v-30.9375c-14.0625-2.109375-28.828125-4.921875-42.890625-9.84375zM226.53235039 474.734375h-56.25v47.109375h56.25v-47.109375z m-56.25 289.6875h56.25v-47.109375h-56.25v47.109375z m56.25-168.75h-56.25v47.109375h56.25V596.375zM857.23547539 490.90625l-34.453125-28.125-87.1875 123.046875-78.75-65.390625-26.71875 37.265625 112.5 94.21875 114.609375-161.71875z m105.46875 70.3125c0-130.78125-98.4375-236.953125-218.671875-236.953125-120.9375 0-219.375 106.875-219.375 237.65625 0 130.78125 98.4375 237.65625 219.375 237.65625C864.26672539 798.875 962.70422539 692 962.70422539 561.21875z m-43.59375 0c0 105.46875-78.75 191.25-175.78125 191.25-96.328125 0-175.78125-85.78125-175.78125-190.546875 0-105.46875 79.453125-190.546875 175.78125-190.546875 97.03125 0 175.78125 85.078125 175.78125 189.84375z" ></path></symbol><symbol id="icon-iteration" viewBox="0 0 1024 1024"><path d="M926.38827705 332.00007823A450.83470957 450.83470957 0 0 0 513.16018613 62.00022852a450.32055029 450.32055029 0 0 0-361.0922792 180.64238027 37.28581875 37.28581875 0 0 0 59.59332598 44.54997451 375.87811113 375.87811113 0 0 1 301.49983212-150.87823593 376.39227129 376.39227129 0 0 1 345.02060919 225.38571416 37.28581875 37.28581875 0 0 0 68.20660283-29.76414346z m-834.16945781 22.49998769A294.042317 294.042317 0 0 0 62.00291797 474.97167793a37.15749844 37.15749844 0 0 0 74.44331807 0.77080079 221.14235742 221.14235742 0 0 1 21.79246816-87.04243214A37.28581875 37.28581875 0 0 0 92.21794033 354.50006592z m8.93495566 340.26397031a450.83470957 450.83470957 0 0 0 412.00641124 267.2348124 450.32055029 450.32055029 0 0 0 360.70731914-180.06405996 37.28581875 37.28581875 0 0 0-59.52828692-44.61325664 375.87811113 375.87811113 0 0 1-301.17903222 150.36319776 376.39227129 376.39227129 0 0 1-343.99228887-223.07067686 37.28581875 37.28581875 0 0 0-68.01412237 30.21414345z m834.04201641-21.59998769c18.70663008-38.57165859 27.12830537-79.07163575 26.80662568-125.3574501a37.15749844 37.15749844 0 0 0-74.44243916 0.64335937c0.25751953 35.16414082-5.78583633 64.47828428-19.28582929 92.31410831a37.28581875 37.28581875 0 0 0 66.98580292 32.46414257z" ></path><path d="M744.58837812 304.87177286a39.53581787 39.53581787 0 0 0-39.72829833 39.34245849c0 21.66414786 17.80663095 39.27829834 39.72829834 39.27829834h155.57159268a61.45748526 61.45748526 0 0 0 61.84244619-61.13580557V165.5001705A39.53581787 39.53581787 0 0 0 922.27499756 126.28603232a39.53581787 39.53581787 0 0 0-39.7924585 39.21413819v139.37160235H744.58837812z m-465.16966347 414.25641034a39.53581787 39.53581787 0 0 0 39.72741943-39.3433374 39.53581787 39.53581787 0 0 0-39.72829833-39.21413818H123.84712197A61.45748526 61.45748526 0 0 0 62.00379687 701.64235303v156.85655362c0 21.5999877 17.80663095 39.21413818 39.72829834 39.21413817A39.53581787 39.53581787 0 0 0 141.52543262 858.49978555V719.1281832H279.41695684z" ></path></symbol><symbol id="icon-list_filter" viewBox="0 0 1024 1024"><path d="M559.025 962a29.1375 29.1375 0 0 1-29.1375-29.1375V354.5a29.1375 29.1375 0 0 1 7.425-18.84375l190.18125-215.26875H156.44375L346.0625 335.09375a31.3875 31.3875 0 0 1 7.425 19.40625v334.06875l62.26875 61.875a29.1375 29.1375 0 1 1-41.11875 41.11875l-69.8625-70.5375a31.3875 31.3875 0 0 1-8.55-20.53125v-335.25L70.775 113.4125A29.7 29.7 0 0 1 65.6 78.875 30.2625 30.2625 0 0 1 92.43125 62h700.14375a30.9375 30.9375 0 0 1 21.7125 51.4125L586.025 368.675v567.05625a29.1375 29.1375 0 0 1-26.83125 26.26875z" ></path><path d="M926.7875 506.88125h-250.70625a29.1375 29.1375 0 1 1 0-57.09375h250.70625a29.1375 29.1375 0 1 1 0 57.09375z m0 182.75625h-250.70625a29.1375 29.1375 0 0 1 0-57.09375h250.70625a29.1375 29.1375 0 0 1 0 57.09375z m0 182.75625h-250.70625a29.1375 29.1375 0 0 1 0-57.09375h250.70625a29.1375 29.1375 0 0 1 0 57.09375z" ></path></symbol><symbol id="icon-variable_assign" viewBox="0 0 1024 1024"><path d="M842.410667 85.333333H181.589333A96.426667 96.426667 0 0 0 85.333333 181.674667v674.901333c0 45.226667 58.197333 82.090667 103.424 82.090667h52.565334a14.165333 14.165333 0 0 0 14.250666-14.165334v-59.306666a14.165333 14.165333 0 0 0-14.250666-14.165334h-38.4a30.549333 30.549333 0 0 1-30.464-30.549333V648.533333h119.893333a16.384 16.384 0 0 0 16.298667-16.298666V577.706667a16.384 16.384 0 0 0-16.213334-16.298667H172.373333V371.2h745.130667A21.077333 21.077333 0 0 0 938.666667 350.122667V181.674667A96.426667 96.426667 0 0 0 842.410667 85.333333zM172.373333 284.074667v-80.554667c0-16.810667 13.653333-30.549333 30.464-30.549333l632.32-0.512c8.96 0 16.298667 7.424 16.298667 16.298666V284.16H172.458667z" ></path><path d="M696.661333 905.984a24.746667 24.746667 0 0 1-23.722666 29.013333h-24.746667a23.808 23.808 0 0 1-23.637333-20.48l-9.984-62.208a24.746667 24.746667 0 0 0-23.637334-20.48H471.893333a23.722667 23.722667 0 0 0-21.504 14.165334l-33.706666 74.752a24.234667 24.234667 0 0 1-21.589334 14.250666h-27.306666a23.978667 23.978667 0 0 1-21.589334-34.730666l207.274667-426.410667a23.296 23.296 0 0 1 21.589333-13.226667h38.4l83.114667 445.44zM569.856 610.986667l-62.037333 112.384a24.32 24.32 0 0 0 21.504 34.730666h41.045333a23.893333 23.893333 0 0 0 23.722667-27.904l-22.186667-118.186666-2.048-1.024z" ></path><path d="M725.333333 512m42.666667 0l128 0q42.666667 0 42.666667 42.666667l0 0q0 42.666667-42.666667 42.666666l-128 0q-42.666667 0-42.666667-42.666666l0 0q0-42.666667 42.666667-42.666667Z" ></path><path d="M725.333333 661.333333m42.666667 0l128 0q42.666667 0 42.666667 42.666667l0 0q0 42.666667-42.666667 42.666667l-128 0q-42.666667 0-42.666667-42.666667l0 0q0-42.666667 42.666667-42.666667Z" ></path><path d="M725.333333 810.666667m42.666667 0l128 0q42.666667 0 42.666667 42.666666l0 0q0 42.666667-42.666667 42.666667l-128 0q-42.666667 0-42.666667-42.666667l0 0q0-42.666667 42.666667-42.666666Z" ></path></symbol><symbol id="icon-conv_variable" viewBox="0 0 1024 1024"><path d="M192.10666667 191.97866667A42.688 42.688 0 0 0 149.41866667 234.66666667v426.688c0 23.552 19.072 42.624 42.688 42.624h85.312c23.552 0 42.688 19.136 42.688 42.688v52.608l148.672-89.216a42.688 42.688 0 0 1 21.952-6.08h256a42.688 42.688 0 0 0 42.688-42.624 42.688 42.688 0 0 1 85.312 0 128 128 0 0 1-128 128H502.57066667l-203.2 121.92A42.688 42.688 0 0 1 234.73066667 874.66666667v-85.312h-42.624a128 128 0 0 1-128-128V234.66666667a128 128 0 0 1 128-128h213.312a42.688 42.688 0 0 1 0 85.312H192.10666667z" ></path><path d="M538.09066667 149.35466667c0-23.616 19.136-42.688 42.688-42.688h59.072c41.024 0 75.968 27.904 86.72 66.56l15.808 56.96 61.824-74.112A136.448 136.448 0 0 1 908.97066667 106.66666667h3.84a42.688 42.688 0 1 1 0 85.312h-3.84a51.136 51.136 0 0 0-39.232 18.752l-99.584 119.424 31.616 113.728c0.896 3.136 3.2 4.096 4.48 4.096h59.072a42.688 42.688 0 1 1 0 85.376h-59.072a90.24 90.24 0 0 1-86.72-66.624l-15.808-56.96-61.824 74.176a136.448 136.448 0 0 1-104.768 49.408h-3.84a42.688 42.688 0 0 1 0-85.376h3.84a51.136 51.136 0 0 0 39.232-18.688l99.584-119.424-31.616-113.728c-0.832-3.2-3.2-4.16-4.48-4.16h-59.072a42.688 42.688 0 0 1-42.688-42.624z" ></path></symbol><symbol id="icon-temp_transform" viewBox="0 0 1024 1024"><path d="M186.32 914.912a2.64 2.64 0 0 1-1.44-0.432A114.864 114.864 0 0 1 73.28 798.272v-124.128a115.2 115.2 0 0 1 113.04-116.64h212.304a115.2 115.2 0 0 1 113.04 116.64v124.128a115.2 115.2 0 0 1-113.04 116.64z m-43.488-240.768v124.128a44.448 44.448 0 0 0 43.488 45.264h211.824a44.448 44.448 0 0 0 43.488-45.264v-124.128a44.448 44.448 0 0 0-43.488-45.264H186.32a44.448 44.448 0 0 0-43.488 45.264z m470.4 227.28a2.448 2.448 0 0 1-2.208-1.44 30.144 30.144 0 0 1-28.08-29.664 32.736 32.736 0 0 1 33.6-33.6 380.352 380.352 0 0 0 60.912-14.64l0.768-0.384a2.16 2.16 0 0 1 1.056-0.24h0.912a146.736 146.736 0 0 0 56.448-46.128l0.288-0.672a2.4 2.4 0 0 1 0.816-0.912l1.392-0.912a2.256 2.256 0 0 1 1.152-0.432 166.512 166.512 0 0 0 43.728-82.752c0.384-2.496 0.864-4.8 1.296-7.056l1.2-6.432a205.2 205.2 0 0 0 4.8-38.4 80.16 80.16 0 0 0-0.432-8.736v-1.488l-28.8 35.136a32.064 32.064 0 0 1-24 12.144 28.08 28.08 0 0 1-12.336-2.976 29.424 29.424 0 0 1-16.56-19.584 31.68 31.68 0 0 1 5.76-24l0.24-0.288 0.384-0.384 74.544-92.544a58.56 58.56 0 0 1 35.808-17.952 49.776 49.776 0 0 1 40.752 26.832l66.912 96.576a30.192 30.192 0 0 1-8.352 38.112 32.112 32.112 0 0 1-21.984 10.608 24 24 0 0 1-16.56-6.576v-0.24l-33.024-44.16v7.632a259.728 259.728 0 0 1-54 155.232 262.464 262.464 0 0 1-124.8 89.856 62.064 62.064 0 0 1-12.048 3.696l-3.6 0.912a333.408 333.408 0 0 1-29.472 5.856h-16.56zM170.72 475.616L107.84 376.304a29.568 29.568 0 0 1 8.64-37.584 32.64 32.64 0 0 1 21.936-10.608 24 24 0 0 1 16.464 6.576v0.24l33.024 43.776a367.68 367.68 0 0 1 7.68-66.672 272.976 272.976 0 0 1 73.104-123.936 243.552 243.552 0 0 1 124.128-64.128 179.184 179.184 0 0 1 46.272-4.08c10.08 0 15.84 12.72 16.32 25.248a34.704 34.704 0 0 1-33.6 38.4l-2.928 0.72A265.968 265.968 0 0 0 368 198.272a187.2 187.2 0 0 0-82.128 66.624l-4.032 5.808a2.496 2.496 0 0 1-1.584 1.056 2.4 2.4 0 0 1-1.536-0.288 196.08 196.08 0 0 0-23.472 59.568l-0.432 2.592a1.248 1.248 0 0 1 0 0.384l-0.336 1.056a2.448 2.448 0 0 1 0 0.576 231.888 231.888 0 0 0-4.464 44.4v9.696l25.968-31.488a32.016 32.016 0 0 1 24-12.096 26.352 26.352 0 0 1 12.432 2.928 30.096 30.096 0 0 1 16.56 19.2 31.536 31.536 0 0 1-5.376 23.376 2.064 2.064 0 0 1-0.528 1.2L248.48 484.928a59.856 59.856 0 0 1-36.336 18.24 48.576 48.576 0 0 1-41.424-27.552z m455.04-9.12a2.544 2.544 0 0 1-1.44-0.432 115.2 115.2 0 0 1-111.648-116.64V225.728a115.2 115.2 0 0 1 113.088-116.64h211.824a115.2 115.2 0 0 1 113.04 116.64v124.128a115.2 115.2 0 0 1-113.04 116.64z m-43.68-240.768v124.128a44.448 44.448 0 0 0 43.488 45.264h211.824a44.448 44.448 0 0 0 43.488-45.264V225.728a44.448 44.448 0 0 0-43.488-45.264H625.76a44.448 44.448 0 0 0-43.68 45.264z" ></path></symbol><symbol id="icon-doc_parser" viewBox="0 0 1024 1024"><path d="M755.797333 891.733333H250.410667A80.810667 80.810667 0 0 1 170.666667 811.776V165.077333A80.768 80.768 0 0 1 250.410667 85.333333h289.024a33.152 33.152 0 0 1 34.133333 32.426667v1.706667a33.152 33.152 0 0 1-32.384 33.92H250.410667a12.373333 12.373333 0 0 0-11.904 11.904v646.485333a12.373333 12.373333 0 0 0 11.904 11.904h505.386666a12.373333 12.373333 0 0 0 11.904-11.904v-369.194667a34.133333 34.133333 0 0 1 67.84 0v369.194667a80.810667 80.810667 0 0 1-79.744 79.957333m-243.2-189.696H384a34.133333 34.133333 0 0 1 0-67.84h129.962667a34.133333 34.133333 0 0 1-1.322667 67.84z m100.565334-166.784H384a33.92 33.92 0 1 1-2.389333-67.797333h231.509333a33.92 33.92 0 1 1 2.389333 67.797333h-2.346666z m46.08-221.866666l-55.466667-38.4a483.498667 483.498667 0 0 1 130.090667-128l3.242666-1.834667-20.650666-50.56a5.717333 5.717333 0 0 1 0.725333-5.162667 6.698667 6.698667 0 0 1 5.290667-2.986666l174.592 22.784a11.050667 11.050667 0 0 1 5.632 7.210666 3.712 3.712 0 0 1-0.981334 3.456L793.216 260.266667a5.888 5.888 0 0 1-4.565333 2.474666 4.864 4.864 0 0 1-4.565334-3.712l-21.333333-50.858666-4.266667 2.816a464.554667 464.554667 0 0 0-99.157333 102.186666z" ></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M909.6250001 459.6250001H114.3749999a52.3749999 52.3749999 0 1 0 0 104.7499998h795.2500002a52.3749999 52.3749999 0 0 0 0-104.7499998zM114.3749999 264.37500019h457.2500001a150.00000029 150.00000029 0 0 0 280.7499999 0h57.2500002a52.3749999 52.3749999 0 0 0 0-104.7499998h-57.2500002a150.00000029 150.00000029 0 0 0-280.7499999 0H114.3749999a52.3749999 52.3749999 0 0 0 0 104.7499998zM666.7499999 212.00000029A45.24999961 45.24999961 0 1 1 712.00000039 257.2499999 45.24999961 45.24999961 0 0 1 666.7499999 212.00000029zM909.6250001 759.62499981H452.375a150.00000029 150.00000029 0 0 0-280.7499999 0H114.3749999a52.3749999 52.3749999 0 1 0 0 104.7499998h57.2500002a150.00000029 150.00000029 0 0 0 280.7499999 0h457.2500001a52.3749999 52.3749999 0 0 0 0-104.7499998zM357.2500001 811.99999971A45.24999961 45.24999961 0 1 1 311.99999961 766.7500001 45.24999961 45.24999961 0 0 1 357.2500001 811.99999971z" ></path></symbol><symbol id="icon-xitong" viewBox="0 0 1024 1024"><path d="M900.288 142.08H125.44a57.6 57.6 0 0 0-57.6 57.6v495.168a57.6 57.6 0 0 0 57.6 57.6h774.848a57.6 57.6 0 0 0 57.6-57.6V199.68a57.6 57.6 0 0 0-57.6-57.6z m-7.552 545.28H132.992V207.104h759.744v480.128z m-62.528 127.936H195.584a31.68 31.68 0 0 0-31.68 31.68v3.52c0 17.472 14.144 31.68 31.68 31.68h634.624a31.68 31.68 0 0 0 31.616-31.68v-3.52a31.68 31.68 0 0 0-31.616-31.68z" ></path><path d="M166.912 581.952a32.448 32.448 0 0 0 43.328-15.616l95.872-203.84 152.832 189.632a45.312 45.312 0 0 0 77.44-12.416l36.032-95.488 88.32 98.112a45.44 45.44 0 0 0 65.088 2.176l141.888-138.432a32.512 32.512 0 1 0-45.44-46.656l-127.04 123.968L598.848 376.32a44.8 44.8 0 0 0-41.856-14.144 44.8 44.8 0 0 0-33.92 28.416l-35.328 93.44-150.912-187.264a44.928 44.928 0 0 0-40.512-16.448 44.928 44.928 0 0 0-35.52 25.6L151.296 538.624a32.576 32.576 0 0 0 15.616 43.328z" ></path></symbol><symbol id="icon-knowledge" viewBox="0 0 1024 1024"><path d="M567.23363335 136.41129657h-225.57415728v751.17740686H777.12143803a110.46726541 110.46726541 0 0 0 110.4672654-110.4672654V246.87856197c0-49.48933467-32.52156263-91.33433539-77.32708565-105.42995809V379.43928098a33.14017975 33.14017975 0 0 1-56.55924054 23.41906079L688.74762492 337.90358945l-64.95475232 64.95475232a33.14017975 33.14017975 0 0 1-56.55923925-23.41906079V136.41129657z m-291.85451678 0H246.87856197A110.46726541 110.46726541 0 0 0 136.41129657 246.87856197v530.24287606A110.46726541 110.46726541 0 0 0 246.87856197 887.58870343h28.5005546v-751.17740686zM246.87856197 70.13093706h530.24287606a176.74762492 176.74762492 0 0 1 176.74762491 176.74762491v530.24287606a176.74762492 176.74762492 0 0 1-176.74762491 176.74762491H246.87856197a176.74762492 176.74762492 0 0 1-176.74762491-176.74762491V246.87856197a176.74762492 176.74762492 0 0 1 176.74762491-176.74762491z m386.63543089 77.32708566v152.00295823l31.81457256-31.81457257a33.14017975 33.14017975 0 0 1 46.83812029 0l31.81457256 31.81457257V147.45802272h-110.46726541z" ></path></symbol><symbol id="icon-http" viewBox="0 0 1024 1024"><path d="M926.6 336.8c-22.70000001-53.6-55.10000001-101.70000001-96.4-143-41.30000001-41.30000001-89.4-73.8-143-96.4C631.70000001 73.89999999 572.70000001 62 512 62c-60.70000001 0-119.70000001 11.90000001-175.2 35.4-53.6 22.70000001-101.70000001 55.10000001-143 96.4-41.30000001 41.30000001-73.8 89.4-96.4 143C73.89999999 392.29999999 62 451.29999999 62 512c0 60.70000001 11.90000001 119.70000001 35.4 175.2 22.70000001 53.6 55.10000001 101.70000001 96.4 143 41.30000001 41.30000001 89.4 73.8 143 96.4C392.29999999 950.10000001 451.29999999 962 512 962c60.70000001 0 119.70000001-11.90000001 175.2-35.4 53.6-22.70000001 101.70000001-55.10000001 143-96.4 41.30000001-41.30000001 73.8-89.4 96.4-143C950.10000001 631.70000001 962 572.70000001 962 512c0-60.70000001-11.90000001-119.70000001-35.4-175.2z m-685.70000001-95.90000001C280.8 201 327.99999999 171 379.49999999 151.99999999c-2.90000001 3.10000001-5.8 6.30000001-8.69999999 9.50000002-33.90000001 38-61.4 82.10000001-81.70000001 130.89999999-33.70000001-3.6-62-7.50000002-83.59999998-10.90000001 10.90000001-14.2 22.70000001-27.8 35.4-40.59999998z m93.6 122.90000001c9.8 0.8 20 1.60000001 30.50000001 2.30000001 37.8 2.6 75.70000001 4.2 113.69999999 4.79999998v107.80000002H314.4c2.90000001-40.70000001 9.6-79.2 20.10000001-114.90000001zM167.8 343c21.10000001 3.70000001 55 9.10000001 99.40000001 14.2-10.30000001 38.2-16.90000001 78.8-19.60000001 121.50000001H130.10000001c4.10000001-47.70000001 16.90000001-93.6 37.69999999-135.70000001z m0.20000001 338.6c-20.90000001-42.30000001-33.8-88.4-37.9-136.2h116.6c2.10000001 40.8 10.10000001 81.50000001 24.09999999 121.70000001-46 5.10000001-81.10000002 10.6-102.79999999 14.49999999z m72.9 101.50000001c-12.6-12.6-24.30000001-26-35.00000002-40.20000002 23.50000002-3.6 54.70000001-7.90000001 92.30000001-11.8 19 37 43 73.30000001 71.70000001 108.10000001 11.90000001 14.40000001 24.30000001 28.30000001 37.2 41.70000001-62.10000001-17.60000001-119.2-50.90000001-166.20000002-97.80000002z m237.79999998 74.49999999c-17.70000001-16.50000001-38.10000001-37.50000001-58.4-62.2-18.8-23-35.30000001-46.6-49.39999998-70.50000001 35.90000001-2.4 71.8-3.90000001 107.69999999-4.49999999v137.2z m2e-8-203.90000001c-37.90000001 0.6-75.90000001 2.2-113.70000001 4.80000002-8.8 0.6-17.30000001 1.2-25.6 1.89999999-14.90000001-38-23.6-76.6-25.89999999-115.10000001h165.2v108.40000002z m0-349.59999998c-35.90000001-0.6-71.90000001-2.10000001-107.70000001-4.50000001-3.90000001-0.30000001-7.8-0.50000001-11.6-0.8 15.8-33.2 35.6-63.50000001 59-90.30000001 21.10000001-24.2 42.4-42.2 60.30000001-55.09999999v150.70000001z m304.39999998-63.20000002c12.8 12.8 24.6 26.4 35.50000001 40.8-26 4-52.10000001 7.50000002-78.2 10.4-20.30000002-48.70000001-47.70000001-92.6-81.6-130.59999998-1.8-2.10000001-3.70000001-4.10000001-5.6-6.2 48 19.10000001 92.2 48 129.90000001 85.6z m-237.79999998-91.39999998c18.4 12.70000001 41 31.10000001 63.59999998 56.49999999 24.4 27.4 44.90000001 58.50000001 61.2 92.70000002-43.70000001 3.30000001-85.50000001 5-124.89999999 5.59999997V149.49999999z m-2e-8 221.39999998c18.30000001-0.30000001 36.6-0.70000001 54.70000002-1.39999998 31.70000001-1.2 63.30000001-3.2 94.9-5.90000001 10.6 35.8 17.30000001 74.30000001 20.19999998 115.10000001H545.30000001V370.89999999z m0 174.40000002h170.80000002c-2.30000001 38.50000001-11 77.10000001-26 115.19999998-30-2.50000001-60-4.30000002-90.1-5.49999999-18.2-0.70000001-36.50000001-1.2-54.70000002-1.4V545.30000001z m0 317.49999999V720.4c35.8 0.50000001 73.70000001 2 113.2 4.70000001-14 23.90000001-30.50000001 47.4-49.29999999 70.29999999-22.4 27.4-45 50.10000001-63.90000001 67.4z m237.80000002-79.70000001c-45 45-99.30000001 77.50000001-158.50000001 95.60000002 12.2-12.70000001 23.8-25.8 35-39.4 28.6-34.70000001 52.6-70.90000001 71.60000001-107.8 29.10000001 3.10000001 58.10000001 6.90000001 86.99999999 11.29999999-10.8 14.2-22.50000001 27.70000001-35.10000001 40.30000001zM856.00000001 681.4c-32.30000001-5.50000001-64.8-10.2-97.40000001-14 14-40.30000001 22.10000001-81.2 24.2-122.10000001h111c-4 47.8-16.90000001 93.8-37.80000001 136.10000001z m-74.00000001-202.70000001c-2.70000001-42.8-9.30000001-83.6-19.70000001-121.89999998 31.4-3.8 62.8-8.30000001 94.00000002-13.60000001 20.70000001 42.10000001 33.50000001 88.00000001 37.59999998 135.6H782z" ></path></symbol><symbol id="icon-llm" viewBox="0 0 1024 1024"><path d="M495.488 45.994667a42.666667 42.666667 0 0 1 38.144 2.56l362.666667 213.333333A42.666667 42.666667 0 0 1 917.333333 298.666667v426.666666c0 15.104-8.021333 29.141333-21.034666 36.778667l-362.666667 213.333333a42.666667 42.666667 0 0 1-43.264 0l-362.666667-213.333333A42.709333 42.709333 0 0 1 106.666667 725.333333V298.666667a42.666667 42.666667 0 0 1 21.034666-36.778667l362.666667-213.333333 5.12-2.56zM192 322.986667v377.941333l320 188.16 320-188.16V322.986667L512 134.826667 192 322.986667z m467.968 46.122666a42.666667 42.666667 0 1 1 45.226667 72.362667L554.666667 535.552V704a42.666667 42.666667 0 1 1-85.333334 0v-168.277333l-150.613333-94.293334a42.666667 42.666667 0 0 1 45.226667-72.32l147.925333 92.586667 148.053333-92.586667z" ></path></symbol><symbol id="icon-gongneng" viewBox="0 0 1024 1024"><path d="M732.20397484 80.64152876C614.22558955 80.64152876 518.70331735 176.16380093 518.70331735 294.14218623s95.52227219 213.33307455 213.33307454 213.33307456 213.33307455-95.52227219 213.33307455-213.33307456-95.35468925-213.50065749-213.1654916-213.50065747z m0 351.75657775c-76.41781775 0-138.42350321-62.00568545-138.42350321-138.42350321s62.00568545-138.42350321 138.42350321-138.4235032 138.42350321 62.00568545 138.42350321 138.4235032-62.00568545 138.42350321-138.42350321 138.42350321zM398.21118804 100.58389783H149.51811447c-41.39298462 0-75.24473721 33.85175261-75.24473719 75.24473724v248.35790768c0 41.39298462 33.85175261 75.24473721 75.24473719 75.24473723h248.69307357c41.39298462 0 75.24473721-33.85175261 75.24473722-75.24473723V175.82863507c0-41.39298462-33.85175261-75.24473721-75.24473722-75.24473724z m2.17857814 313.88283478c0 6.70331735-5.36265388 12.06597121-12.06597124 12.06597123H159.5730905c-6.70331735 0-12.06597121-5.36265388-12.06597123-12.06597123V185.71602815c0-6.70331735 5.36265388-12.06597121 12.06597123-12.06597122h228.75070444c6.70331735 0 12.06597121 5.36265388 12.06597124 12.06597122v228.75070446zM398.21118804 543.33800861H149.51811447c-41.39298462 0-75.24473721 33.85175261-75.24473719 75.2447372v248.35790768c0 41.39298462 33.85175261 75.24473721 75.24473719 75.24473721h248.69307357c41.39298462 0 75.24473721-33.85175261 75.24473722-75.24473721V618.58274581c0-41.39298462-33.85175261-75.24473721-75.24473722-75.2447372z m2.17857814 313.88283474c0 6.70331735-5.36265388 12.06597121-12.06597124 12.06597122H159.5730905c-6.70331735 0-12.06597121-5.36265388-12.06597123-12.06597122V628.47013888c0-6.70331735 5.36265388-12.06597121 12.06597123-12.06597122h228.75070444c6.70331735 0 12.06597121 5.36265388 12.06597124 12.06597122V857.22084335zM856.38292869 534.62369604H607.85743806c-41.39298462 0-75.24473721 33.85175261-75.24473721 75.24473721v248.35790771c0 41.39298462 33.85175261 75.24473721 75.24473721 75.24473722h248.69307356c41.39298462 0 75.24473721-33.85175261 75.2447372-75.24473722V609.86843325c0-41.39298462-33.85175261-75.24473721-75.41232013-75.24473721z m2.17857814 313.71525182c0 6.70331735-5.36265388 12.06597121-12.06597122 12.06597123H617.74483115c-6.70331735 0-12.06597121-5.36265388-12.06597121-12.06597123V619.5882434c0-6.70331735 5.36265388-12.06597121 12.06597121-12.06597121h228.75070446c6.70331735 0 12.06597121 5.36265388 12.06597122 12.06597121v228.75070446z" ></path></symbol><symbol id="icon-note" viewBox="0 0 1024 1024"><path d="M864 64H704V32c0-17.066667-14.933333-32-32-32S640 14.933333 640 32V64H384V32c0-17.066667-14.933333-32-32-32S320 14.933333 320 32V64H160C142.933333 64 128 78.933333 128 96v896c0 17.066667 14.933333 32 32 32h704c17.066667 0 32-14.933333 32-32v-896c0-17.066667-14.933333-32-32-32zM832 960H192V128h128v64c0 17.066667 14.933333 32 32 32S384 209.066667 384 192V128h256v64c0 17.066667 14.933333 32 32 32S704 209.066667 704 192V128h128v832z" ></path><path d="M704 384H320c-17.066667 0-32 14.933333-32 32S302.933333 448 320 448h384c17.066667 0 32-14.933333 32-32S721.066667 384 704 384zM704 640H320c-17.066667 0-32 14.933333-32 32S302.933333 704 320 704h384c17.066667 0 32-14.933333 32-32S721.066667 640 704 640z" ></path></symbol><symbol id="icon-code" viewBox="0 0 1024 1024"><path d="M153.770667 517.558857l200.387047-197.241905L302.86019 268.190476 48.761905 518.290286l254.439619 243.614476 50.590476-52.833524-200.021333-191.512381zM658.285714 320.316952L709.583238 268.190476l254.098286 250.09981L709.241905 761.904762l-50.590476-52.833524 200.021333-191.512381L658.285714 320.316952z m-112.981333-86.186666L393.99619 785.554286l70.534096 19.358476 151.30819-551.399619-70.534095-19.358476z" ></path></symbol><symbol id="icon-yidongzhi" viewBox="0 0 1076 1024"><path d="M864.12529436 570.86169596c-0.69658846-6.26929351-2.78635252-12.53858572-7.66246912-18.11129078-1.39317561-1.39317561-2.78635252-2.08976406-4.8761179-3.48294097l-192.25832033-174.14702956c-13.23517418-11.84199855-34.13281745-11.14541009-45.97481601 2.08976406s-11.14541009 34.13281745 2.08976406 45.97481602l128.86880202 117.02680346H288.0469192c-16.71811515 0-32.04305339 12.53858572-33.436229 29.25670215-2.08976406 19.50446767 13.23517418 35.52599437 32.04305339 35.52599308h462.53451136l-144.89032869 131.65515454c-13.23517418 11.84199855-14.62835108 32.73964185-2.08976536 45.97481602 6.26929351 6.96588066 15.32493824 10.44882164 24.38058426 10.44882163 7.66246912 0 15.32493824-2.78635252 21.59423175-8.35905757l204.10031889-184.59585122c1.39317561-1.39317561 2.78635252-1.39317561 4.17952944-2.78635252 4.8761166-4.8761166 6.96588066-11.84199855 7.66246912-18.11129076 0-1.39317561 0.69658846-2.78635252 0.69658846-4.17952814 0-1.39317561-0.69658846-2.78635252-0.69658846-4.17952944z" ></path><path d="M961.64763014 169.62694013h-407.50404933l-55.7270492-82.89398729c-15.32493824-22.98740736-41.09869942-36.22258282-68.96222339-36.22258153h-299.53289189c-61.29975426 0-110.75751124 49.45775699-110.75750995 110.75751124v702.16082336c0 61.29975426 49.45775699 110.75751124 110.75750995 110.75751123h823.36715753c60.6031658 0 110.75751124-49.45775699 110.75750995-110.06092278l8.35905758-583.04425582c0-61.99634272-49.45775699-111.45409841-110.75751125-111.45409841z m37.61575844 693.10517732c0 25.07717273-20.20105484 45.27822756-45.27822756 45.27822755H129.92141633c-25.07717273 0-45.27822756-20.20105484-45.27822756-45.27822755V161.26788255c0-25.07717273 20.20105484-45.27822756 45.27822756-45.27822755h265.40007314c27.86352525 0 53.63728514 13.93176263 68.96222467 36.22258152l55.7270492 82.89398601h441.6368668c25.07717273 0 45.27822756 20.20105484 45.27822885 45.27822755l-7.66247041 582.34766737z" ></path></symbol><symbol id="icon-gengduo" viewBox="0 0 1024 1024"><path d="M227.14123 413.647995c-52.14973 0-94.587262 42.439578-94.587262 94.587262 0 52.14973 42.437531 94.587262 94.587262 94.587262 52.147684 0 94.587262-42.437531 94.587262-94.587262C321.728492 456.087573 279.288914 413.647995 227.14123 413.647995z" ></path><path d="M510.903016 413.647995c-52.14973 0-94.587262 42.439578-94.587262 94.587262 0 52.14973 42.437531 94.587262 94.587262 94.587262 52.147684 0 94.587262-42.437531 94.587262-94.587262C605.490278 456.087573 563.051723 413.647995 510.903016 413.647995z" ></path><path d="M794.665825 413.647995c-52.14973 0-94.587262 42.439578-94.587262 94.587262 0 52.14973 42.437531 94.587262 94.587262 94.587262 52.147684 0 94.587262-42.437531 94.587262-94.587262C889.253086 456.087573 846.813508 413.647995 794.665825 413.647995z" ></path></symbol><symbol id="icon-circle" viewBox="0 0 1024 1024"><path d="M512 64C264.576 64 64 264.576 64 512c0 247.36 200.576 448 448 448s448-200.64 448-448c0-247.424-200.576-448-448-448z m0 832C299.936 896 128 724.032 128 512 128 299.904 299.936 128 512 128s384 171.904 384 384c0 212.032-171.936 384-384 384z" ></path><path d="M512 512m-288 0a288 288 0 1 0 576 0 288 288 0 1 0-576 0Z" ></path></symbol><symbol id="icon-yuan" viewBox="0 0 1024 1024"><path d="M512 960c247.42 0 448-200.58 448-448S759.42 64 512 64 64 264.58 64 512s200.58 448 448 448z m0-76c-205.45 0-372-166.55-372-372s166.55-372 372-372 372 166.55 372 372-166.55 372-372 372z" ></path></symbol><symbol id="icon-close" viewBox="0 0 1024 1024"><path d="M56.888889 512c0-125.667556 44.430222-232.96 133.290667-321.820444C279.04 101.319111 386.332444 56.888889 512 56.888889s232.96 44.430222 321.820444 133.290667C922.680889 279.04 967.111111 386.332444 967.111111 512s-44.430222 232.96-133.290667 321.820444C744.96 922.680889 637.667556 967.111111 512 967.111111s-232.96-44.430222-321.820444-133.290667C101.319111 744.96 56.888889 637.667556 56.888889 512z m56.888889 0c0 109.966222 38.883556 203.832889 116.622222 281.6 77.767111 77.738667 171.633778 116.622222 281.6 116.622222 109.966222 0 203.832889-38.883556 281.6-116.622222 77.738667-77.767111 116.622222-171.633778 116.622222-281.6 0-109.966222-38.883556-203.832889-116.622222-281.6C715.832889 152.689778 621.966222 113.777778 512 113.777778c-109.966222 0-203.832889 38.883556-281.6 116.622222C152.689778 308.195556 113.777778 402.062222 113.777778 512z" ></path><path d="M56.888889 512c0-125.667556 44.430222-232.96 133.290667-321.820444C279.04 101.319111 386.332444 56.888889 512 56.888889s232.96 44.430222 321.820444 133.290667C922.680889 279.04 967.111111 386.332444 967.111111 512s-44.430222 232.96-133.290667 321.820444C744.96 922.680889 637.667556 967.111111 512 967.111111s-232.96-44.430222-321.820444-133.290667C101.319111 744.96 56.888889 637.667556 56.888889 512z m56.888889 0c0 109.966222 38.883556 203.832889 116.622222 281.6 77.767111 77.738667 171.633778 116.622222 281.6 116.622222 109.966222 0 203.832889-38.883556 281.6-116.622222 77.738667-77.767111 116.622222-171.633778 116.622222-281.6 0-109.966222-38.883556-203.832889-116.622222-281.6C715.832889 152.689778 621.966222 113.777778 512 113.777778c-109.966222 0-203.832889 38.883556-281.6 116.622222C152.689778 308.195556 113.777778 402.062222 113.777778 512z" ></path><path d="M661.134222 391.338667a28.444444 28.444444 0 0 1-8.334222 20.110222l-241.351111 241.351111a28.444444 28.444444 0 1 1-40.248889-40.220444l241.351111-241.351112a28.444444 28.444444 0 0 1 48.583111 20.110223z" ></path><path d="M661.134222 391.338667a28.444444 28.444444 0 0 1-8.334222 20.110222l-241.351111 241.351111a28.444444 28.444444 0 1 1-40.248889-40.220444l241.351111-241.351112a28.444444 28.444444 0 0 1 48.583111 20.110223z" ></path><path d="M661.134222 632.689778a28.444444 28.444444 0 0 1-48.583111 20.110222l-241.351111-241.351111a28.444444 28.444444 0 1 1 40.248889-40.220445l241.351111 241.351112a28.444444 28.444444 0 0 1 8.334222 20.110222z" ></path><path d="M661.134222 632.689778a28.444444 28.444444 0 0 1-48.583111 20.110222l-241.351111-241.351111a28.444444 28.444444 0 1 1 40.248889-40.220445l241.351111 241.351112a28.444444 28.444444 0 0 1 8.334222 20.110222z" ></path></symbol><symbol id="icon-wenjianjia" viewBox="0 0 1024 1024"><path d="M855.04 385.024q19.456 2.048 38.912 10.24t33.792 23.04 21.504 37.376 2.048 54.272q-2.048 8.192-8.192 40.448t-14.336 74.24-18.432 86.528-19.456 76.288q-5.12 18.432-14.848 37.888t-25.088 35.328-36.864 26.112-51.2 10.24l-567.296 0q-21.504 0-44.544-9.216t-42.496-26.112-31.744-40.96-12.288-53.76l0-439.296q0-62.464 33.792-97.792t95.232-35.328l503.808 0q22.528 0 46.592 8.704t43.52 24.064 31.744 35.84 12.288 44.032l0 11.264-53.248 0q-40.96 0-95.744-0.512t-116.736-0.512-115.712-0.512-92.672-0.512l-47.104 0q-26.624 0-41.472 16.896t-23.04 44.544q-8.192 29.696-18.432 62.976t-18.432 61.952q-10.24 33.792-20.48 65.536-2.048 8.192-2.048 13.312 0 17.408 11.776 29.184t29.184 11.776q31.744 0 43.008-39.936l54.272-198.656q133.12 1.024 243.712 1.024l286.72 0z" ></path></symbol><symbol id="icon-AIshengcheng" viewBox="0 0 1024 1024"><path d="M512 101.54666667l60.611048 199.143619a286.72 286.72 0 0 0 190.805333 190.805333l199.143619 60.611048-199.143619 60.61104799a286.72 286.72 0 0 0-190.805333 190.80533301L512 1002.66666667l-60.611048-199.143619a286.72 286.72 0 0 0-190.805333-190.80533301L61.44 552.10666667l199.143619-60.611048a286.72 286.72 0 0 0 190.805333-190.805333L512 101.54666667z" ></path><path d="M235.52 265.38666667l10.337524 34.08457102a40.96 40.96 0 0 0 27.25790499 27.25790498l34.035809 10.337524-34.035809 10.386286a40.96 40.96 0 0 0-27.25790499 27.257904l-10.38628601 34.03581-10.337524-34.03581a40.96 40.96 0 0 0-27.30666599-27.306666L163.84 337.06666667l34.08457101-10.337524a40.96 40.96 0 0 0 27.25790499-27.306666l10.337524-34.03581zM829.44 183.46666667a46.12876199 46.12876199 0 0 0 30.72 30.72 46.12876199 46.12876199 0 0 0-30.72 30.72 46.177524 46.177524 0 0 0-30.72-30.72 46.177524 46.177524 0 0 0 30.72-30.72zM518.339048 27.42857167a46.177524 46.177524 0 0 0 30.72 30.72 46.177524 46.177524 0 0 0-30.72 30.72 46.177524 46.177524 0 0 0-30.72-30.72 46.177524 46.177524 0 0 0 30.72-30.72zM645.36380999 27.18476167l42.42285701 50.22476201c13.16571399 15.60380999 33.35314299 23.69828598 53.686857 21.45523799l65.340952-7.265524-50.22476201 42.42285801a61.44 61.44 0 0 0-21.45523799 53.63809499l7.21676201 65.340952-42.374095-50.22476201a61.44 61.44 0 0 0-53.686857-21.45523799l-65.34095301 7.265524 50.224762-42.422857c15.60380999-13.16571399 23.69828598-33.304381 21.455238-53.63809499l-7.26552299-65.34095301z" ></path></symbol><symbol id="icon-sijiaoxing" viewBox="0 0 1024 1024"><path d="M532.8 134.464c-12.16-35.392-32-35.328-44.032 0.128l-67.84 200c-12.096 35.456-50.88 74.24-86.336 86.336L136.064 488.448c-35.456 12.032-35.52 32-0.192 44.288l197.376 68.672c35.328 12.288 74.24 51.328 86.4 86.72l68.864 200.192c12.16 35.392 31.872 35.328 43.84-0.128l67.264-199.36c11.968-35.456 50.688-74.368 86.08-86.464l201.664-69.12c35.392-12.096 35.392-31.808-0.064-43.776l-198.464-67.2c-35.456-11.968-74.432-50.688-86.592-86.08L532.8 134.464z" ></path><path d="M883.648 111.552c-3.456-10.112-9.152-10.112-12.608 0l-19.392 57.216a44.672 44.672 0 0 1-24.64 24.64l-56.704 19.264c-10.112 3.456-10.176 9.152 0 12.672l56.32 19.648a45.44 45.44 0 0 1 24.704 24.768l19.648 57.216c3.52 10.112 9.152 10.048 12.544-0.064l19.2-56.96a44.672 44.672 0 0 1 24.64-24.704l57.6-19.712c10.112-3.52 10.112-9.152 0-12.544l-56.704-19.2a44.8 44.8 0 0 1-24.768-24.576l-19.84-57.6z" ></path></symbol><symbol id="icon-hand" viewBox="0 0 1024 1024"><path d="M824.515155 243.164159c-16.249079 0-31.582299 4.389984-44.734854 12.033058l0-56.767911c0-49.345871-40.10337-89.468684-89.468684-89.468684-18.438954 0-35.519981 5.591345-49.800219 15.155165-12.236696-34.83539-45.433772-59.890019-84.405365-59.890019-38.968523 0-72.189136 25.054629-84.420715 59.890019-14.21884-9.56382-31.343869-15.155165-49.7818-15.155165-49.343825 0-89.467661 40.122813-89.467661 89.468684l0 329.831031-60.22157-104.365976c-11.664667-21.25407-30.735002-36.369326-53.626361-42.637076-22.321378-6.072299-45.541219-2.863211-65.399499 9.041934-40.582277 24.332175-56.048527 79.356372-34.444487 122.669854 1.333368 2.708692 29.879518 61.160965 118.979812 239.312434 41.960671 83.877339 88.004333 143.902434 136.845715 178.239474 38.334073 26.956955 64.831564 28.353768 69.746504 28.353768l223.674269 0c38.047548 0 73.438593-12.362562 105.236809-36.785811 29.794583-22.935362 55.745628-56.136531 76.933183-98.596576 41.765219-83.532485 63.869656-199.123107 63.869656-334.333578L914.029888 332.587817c0-49.342802-40.148395-89.469708-89.467661-89.469708L824.515155 243.164159zM869.250008 489.203808c0 128.264269-20.444635 236.908688-59.150168 314.276776-25.255197 50.504254-70.422909 110.702288-142.157697 110.702288l-223.234247 0c-1.726318-0.130983-20.576641-2.228761-48.974411-23.502273-28.308743-21.186532-71.795163-65.835428-118.017904-158.318772-90.669022-181.384094-118.541837-238.506069-118.803803-239.050468-0.041956-0.089028-0.041956-0.130983-0.085958-0.176009-11.228739-22.499433-3.276626-51.988048 17.388019-64.36903 9.304923-5.593392 20.180622-7.057743 30.645974-4.239558 11.138688 3.036149 20.488637 10.552334 26.253944 21.100574 0.10847 0.130983 0.198521 0.326435 0.284479 0.458441l69.829392 121.009028c14.264888 26.079982 30.319539 37.004799 47.730071 32.593326 17.452487-4.414543 26.253944-21.889543 26.253944-51.770084L377.211643 198.429305c0-24.64019 20.09671-44.734854 44.732807-44.734854 24.642237 0 44.738947 20.094664 44.738947 44.734854l0 290.774503c0 12.342096 10.021238 22.367427 22.366404 22.367427 12.341073 0 22.36538-10.025331 22.36538-22.367427L511.415181 153.694451c0-24.641213 20.09671-44.73383 44.735877-44.73383 24.638143 0 44.735877 20.092617 44.735877 44.73383l0 335.509357c0 12.342096 10.002818 22.367427 22.36538 22.367427 12.363585 0 22.367427-10.025331 22.367427-22.367427L645.619742 198.429305c0-24.64019 20.098757-44.734854 44.73383-44.734854 24.63712 0 44.735877 20.094664 44.735877 44.734854l0 335.509357c0 12.319583 10.001795 22.367427 22.367427 22.367427 12.363585 0 22.366404-10.047844 22.366404-22.367427L779.82328 332.632843c0-24.641213 20.09671-44.73383 44.735877-44.73383 24.635073 0 44.731784 20.092617 44.731784 44.73383l0 156.570965L869.250008 489.203808z" ></path></symbol><symbol id="icon-xiaoditu" viewBox="0 0 1024 1024"><path d="M512 32a32 32 0 0 1 31.488 26.24L544 64v33.216a416.064 416.064 0 0 1 382.784 382.848L960 480a32 32 0 0 1 5.76 63.488L960 544h-33.216a416.064 416.064 0 0 1-382.72 382.784L544 960a32 32 0 0 1-63.488 5.76L480 960v-33.216a416.064 416.064 0 0 1-382.784-382.72L64 544a32 32 0 0 1-5.76-63.488L64 480h33.216A416.064 416.064 0 0 1 480 97.28L480 64A32 32 0 0 1 512 32z m32 129.408V192a32 32 0 0 1-63.488 5.76L480 192v-30.592A352.128 352.128 0 0 0 161.408 480H192a32 32 0 0 1 5.76 63.488L192 544h-30.592A352.128 352.128 0 0 0 480 862.656V832a32 32 0 0 1 63.488-5.76L544 832v30.592A352.128 352.128 0 0 0 862.656 544L832 544a32 32 0 0 1-5.76-63.488L832 480h30.592A352.128 352.128 0 0 0 544 161.408zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384z m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z" ></path></symbol><symbol id="icon-add1" viewBox="0 0 1024 1024"><path d="M511.954846 142.505688c-204.095599 0-369.449158 165.443866-369.449158 369.449158S307.949555 881.494312 511.954846 881.494312 881.404004 716.050445 881.404004 512.045154 716.050445 142.505688 511.954846 142.505688z m221.795926 394.2838H536.789488v196.961284h-49.578976V536.789488H290.158921v-49.578976h196.961284V290.158921h49.578975v196.961284h196.961284v49.669283z" ></path></symbol><symbol id="icon-remark" viewBox="0 0 1024 1024"><path d="M882.385702 78.966129h-101.235346V33.659793c0-18.55768-15.230096-33.659793-33.659792-33.659793-18.55768 0-33.659793 15.230096-33.659793 33.659793v45.306336H342.933133V33.659793c0-18.55768-15.230096-33.659793-33.659792-33.659793-18.55768 0-33.659793 15.230096-33.659793 33.659793v45.306336H140.590426c-55.417073 0-100.979378 45.178353-100.979377 100.979378v741.795275c0 55.417073 45.178353 100.979378 100.979377 100.979378h741.795276c55.417073 0 100.979378-45.178353 100.979377-100.979378V179.945507c0-55.417073-45.178353-100.979378-100.979377-100.979378z m33.531808 842.774653c0 18.429696-15.230096 33.531809-33.531808 33.531809H140.590426c-18.429696 0-33.531809-15.230096-33.531808-33.531809V179.945507c0-18.429696 15.230096-33.531809 33.531808-33.531809h134.895138v9.5988c0 18.55768 15.230096 33.659793 33.659793 33.659793 18.55768 0 33.659793-15.230096 33.659792-33.659793v-9.5988h370.769654v9.5988c0 18.55768 15.230096 33.659793 33.659793 33.659793 18.55768 0 33.659793-15.230096 33.659792-33.659793v-9.5988h101.235346c18.429696 0 33.531809 15.230096 33.531808 33.531809v741.795275z m0 0" ></path><path d="M781.150356 314.968629H241.825772c-18.55768 0-33.659793 15.230096-33.659793 33.659792 0 18.55768 15.102112 33.659793 33.659793 33.659793h539.324584c18.55768 0 33.659793-15.230096 33.659793-33.659793 0-18.55768-15.102112-33.659793-33.659793-33.659792zM781.150356 517.183352H241.825772c-18.55768 0-33.659793 15.230096-33.659793 33.659793 0 18.55768 15.102112 33.659793 33.659793 33.659792h539.324584c18.55768 0 33.659793-15.230096 33.659793-33.659792 0-18.55768-15.102112-33.659793-33.659793-33.659793zM511.488064 719.398075H241.825772c-18.55768 0-33.659793 15.230096-33.659793 33.659793 0 18.55768 15.102112 33.659793 33.659793 33.659792h269.662292c18.55768 0 33.659793-15.230096 33.659793-33.659792 0-18.55768-15.102112-33.659793-33.659793-33.659793zM817.241845 751.394076H770.527684v-46.714161c0-17.91776-14.71816-32.635921-32.63592-32.63592S705.255843 686.762155 705.255843 704.679915V751.394076h-46.714161c-17.91776 0-32.635921 14.71816-32.63592 32.63592s14.71816 32.635921 32.63592 32.635921H705.255843v46.71416c0 17.91776 14.71816 32.635921 32.635921 32.635921s32.635921-14.71816 32.63592-32.635921V816.665917h46.714161c17.91776 0 32.635921-14.71816 32.63592-32.635921S835.159605 751.394076 817.241845 751.394076z" ></path></symbol><symbol id="icon-cursor" viewBox="0 0 1024 1024"><path d="M288 83.008V900.992l52.992-44 128.992-108 65.024 129.024 13.984 28.992 29.024-15.008 98.976-51.008 28-13.984-13.984-29.024-59.008-116 162.016-20 64.96-8L813.024 608 343.04 136.992 288 83.008z m64 155.008l370.016 368.96-144 17.024-45.024 6.016 21.024 40.96 65.984 128-42.016 22.016-68.992-137.984-19.008-36-30.976 25.984L352 763.008V237.984z" ></path></symbol><symbol id="icon-agent" viewBox="0 0 1024 1024"><path d="M690.185 275.766c88.365 0 160 71.634 160 160v239.488c0 88.365-71.635 160-160 160H339.766c-88.366 0-160-71.635-160-160V435.766c0-88.366 71.634-160 160-160h350.419z m-350.419 64c-53.02 0-96 42.98-96 96v239.488c0 53.019 42.98 96 96 96h350.419c53.019 0 96-42.981 96-96V435.766c0-53.02-42.981-96-96-96H339.766z m56.28 120.882c52.056 0.001 94.256 42.201 94.256 94.257 0 52.057-42.2 94.256-94.256 94.256s-94.257-42.199-94.257-94.256c0-52.056 42.2-94.257 94.257-94.257z m240.348 0c52.056 0.001 94.255 42.201 94.255 94.257 0 52.057-42.199 94.256-94.255 94.256-52.057 0-94.257-42.199-94.257-94.256 0-52.056 42.2-94.257 94.257-94.257zM128 481.562c17.673 0 32 14.327 32 32v83.907c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32v-83.907c0-17.673 14.327-32 32-32z m769.113 0c17.673 0 32 14.327 32 32v83.907c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32v-83.907c0-17.673 14.327-32 32-32z m-501.067 43.086c-16.71 0-30.257 13.547-30.257 30.257s13.547 30.256 30.257 30.256 30.256-13.546 30.256-30.256-13.546-30.256-30.256-30.257z m240.348 0c-16.711 0-30.257 13.547-30.257 30.257s13.546 30.256 30.257 30.256c16.71 0 30.255-13.546 30.255-30.256s-13.545-30.256-30.255-30.257zM556.931 192c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32h-83.908c-17.673 0-32-14.327-32-32 0-17.673 14.327-32 32-32h83.908z" ></path></symbol><symbol id="icon-flow" viewBox="0 0 1024 1024"><path d="M339.264 809.6l3.712 1.92 158.272 91.776c3.712 2.176 8.128 2.56 12.032 1.088l2.304-1.088 158.272-91.776a43.072 43.072 0 0 1 59.008 15.872 43.52 43.52 0 0 1-12.288 56.96l-3.52 2.304-158.272 91.776a100.416 100.416 0 0 1-95.168 3.008l-5.568-3.008-158.272-91.776a43.52 43.52 0 0 1-15.808-59.264 43.072 43.072 0 0 1 55.296-17.792zM870.4 636.992c49.472 0 89.6 40.32 89.6 90.048 0 49.664-40.128 89.984-89.6 89.984-49.472 0-89.6-40.32-89.6-89.984 0-49.728 40.128-90.048 89.6-90.048z m-716.8 0c49.472 0 89.6 40.32 89.6 90.048 0 49.664-40.128 89.984-89.6 89.984-49.472 0-89.6-40.32-89.6-89.984 0-49.728 40.128-90.048 89.6-90.048z m386.816-350.784l157.696 91.008a64 64 0 0 1 32 55.424v182.144a64 64 0 0 1-32 55.424l-157.696 91.008a64 64 0 0 1-64 0L318.72 670.208a64 64 0 0 1-32-55.424V432.64a64 64 0 0 1 32-55.424l157.696-91.008a64 64 0 0 1 64 0z m172.928-127.36l3.712 1.92 158.208 91.712c29.376 17.024 48.128 47.68 50.24 81.344l0.192 6.4v183.488a43.264 43.264 0 0 1-43.2 43.392 43.264 43.264 0 0 1-43.008-39.232l-0.192-4.16V340.16c0-4.288-1.92-8.32-5.12-11.072L832 327.68 673.92 235.904a43.52 43.52 0 0 1-15.808-59.264 43.072 43.072 0 0 1 55.296-17.792z m-354.56 17.792a43.52 43.52 0 0 1-12.288 56.96l-3.52 2.304L184.768 327.68a14.464 14.464 0 0 0-7.04 9.984l-0.192 2.56v183.488a43.264 43.264 0 0 1-43.2 43.392 43.264 43.264 0 0 1-43.008-39.232l-0.192-4.16V340.16c0-34.048 17.024-65.6 45.056-84.288l5.376-3.392 158.208-91.712a43.072 43.072 0 0 1 59.008 15.872zM511.616 32c49.472 0 89.6 40.32 89.6 89.984 0 49.728-40.128 90.048-89.6 90.048-49.472 0-89.6-40.32-89.6-90.048 0-49.664 40.128-89.984 89.6-89.984z" ></path></symbol><symbol id="icon-logo" viewBox="0 0 1024 1024"><path d="M512.512 54.4C764.544 54.4 969.6 259.712 969.6 512v2.88c0 86.4-29.44 166.976-79.296 215.68-30.08 29.44-65.344 45.184-102.08 45.184h-2.24c-46.272-0.832-82.88-26.24-108.608-74.368l-4.16-8.256-5.888 7.68c-39.424 47.552-94.4 74.88-152.896 74.88h-3.2c-115.2-1.92-206.592-109.696-204.288-239.616C309.12 407.552 403.2 303.68 518.08 303.68h3.2c41.024 0.704 71.232 12.8 113.856 43.712l8.96 6.72v-11.52c0-6.784 1.024-12.224 4.224-16.896l2.816-3.392c5.824-5.76 10.816-6.656 23.616-6.72h13.44c14.72 0.064 20.608 1.152 27.136 7.68 4.928 4.864 7.232 11.456 7.232 19.392V528c0 99.584 27.648 162.624 66.176 163.328h0.896c21.568 0 45.248-16.96 64.384-47.552 21.824-34.816 34.432-81.792 35.328-131.904 0-205.76-168.064-373.184-374.592-373.184-206.592 0-374.656 167.424-374.656 373.248 0 205.824 168.064 373.312 374.656 373.312 43.072 0 85.312-7.296 125.632-21.568 8.96-3.2 17.024-6.592 19.456-7.808a40.768 40.768 0 0 1 52.864 18.368l2.88 5.76c4.608 9.344 5.248 19.84 1.728 29.632a37.504 37.504 0 0 1-20.032 21.76 324.352 324.352 0 0 1-32.768 13.184 460.672 460.672 0 0 1-150.336 24.96C260.672 969.6 54.4 764.352 54.4 512 54.4 259.648 259.904 54.4 512.512 54.4z m2.24 329.088c-66.368 0-121.408 70.4-121.408 157.888s55.04 157.824 121.408 157.824c66.304 0 121.344-70.4 121.344-157.824 0-87.488-55.04-157.888-121.344-157.888z" ></path></symbol><symbol id="icon-chat" viewBox="0 0 1024 1024"><path d="M826.88 35.84a166.4 166.4 0 1 1-161.984 204.864h-445.44a122.24 122.24 0 0 0-9.6 243.968l9.6 0.384h576a197.76 197.76 0 0 1 11.2 395.328l-11.264 0.32H348.8a166.464 166.464 0 1 1 0-76.8h446.72a120.96 120.96 0 0 0 9.408-241.728l-9.472-0.32h-576a199.04 199.04 0 0 1-11.264-397.632l11.264-0.32h445.44c17.344-73.408 83.328-128 161.984-128z m-640 716.8a89.6 89.6 0 1 0 0 179.2 89.6 89.6 0 0 0 0-179.2z m640-640a89.6 89.6 0 1 0 0 179.2 89.6 89.6 0 0 0 0-179.2z" ></path></symbol><symbol id="icon-sql-transaction" viewBox="0 0 1024 1024"><path d="M405.875 118c89.239 0 173.203 11.837 236.305 32.87 3.28 1.093 6.5 2.21 9.657 3.35l2.357 0.859c26.973 9.933 49.338 21.597 66.225 34.904 23.535 18.547 37.331 41.018 37.331 66.635l-0.004-0.718 0.004 0.188v162.51C878.078 434.278 971 537.171 971 661.765 971 797.204 861.196 907 725.75 907c-38.19 0-75.165-8.762-108.605-25.303C557.57 898.002 483.7 907 405.875 907c-89.239 0-173.203-11.837-236.305-32.87-3.28-1.093-6.5-2.21-9.657-3.35l-2.357-0.859c-26.973-9.933-49.338-21.597-66.225-34.905-23.3-18.36-37.054-40.568-37.331-65.866V256.423c0.07-25.536 13.855-47.94 37.33-66.44 16.888-13.307 39.253-24.971 66.226-34.904l2.357-0.86a414.19 414.19 0 0 1 9.657-3.35C232.672 129.838 316.636 118 405.875 118zM117.999 681.725l0.001 86.657c0 1.057 0.36 2.357 1.167 3.887l0.243 0.443c0.638 1.124 1.508 2.363 2.644 3.712l0.468 0.546c0.563 0.644 1.184 1.31 1.868 2.001l0.6 0.598c0.514 0.502 1.06 1.017 1.639 1.543l0.71 0.637 0.368 0.322 0.759 0.653 0.792 0.664c0.27 0.223 0.545 0.448 0.826 0.675l0.86 0.686c2.993 2.359 6.387 4.709 10.162 7.036l1.272 0.775c0.429 0.258 0.862 0.516 1.3 0.773l1.329 0.771 1.356 0.77 1.383 0.766c1.398 0.766 2.836 1.528 4.315 2.286l1.492 0.757c1.004 0.504 2.025 1.005 3.064 1.505l1.572 0.748c0.529 0.25 1.061 0.498 1.599 0.745l1.624 0.742a246.56 246.56 0 0 0 5.028 2.205l1.727 0.727 0.873 0.362 1.765 0.722 0.892 0.36 1.803 0.715c1.512 0.595 3.05 1.185 4.615 1.77l1.888 0.7 1.913 0.696c0.642 0.231 1.288 0.462 1.937 0.691l1.961 0.686c0.658 0.228 1.32 0.455 1.985 0.681l2.009 0.676C245.908 832.114 323.13 843 405.875 843c50.403 0 98.793-4.035 141.664-11.446l1.061-0.186-0.08-0.083a246.17 246.17 0 0 1-31.783-41.173 245.405 245.405 0 0 1-14.168-26.565 244.405 244.405 0 0 1-11.632-30.817c-27.528 2.435-56.05 3.682-85.062 3.682-89.239 0-173.203-11.837-236.305-32.87l-2.448-0.824a397.1 397.1 0 0 1-13.058-4.69l-2.299-0.882c-12.308-4.765-23.593-9.909-33.766-15.421zM725.75 480.529c-52.166 0-100.693 22.114-134.885 60.176l0.106-0.117c-0.072 0.082-0.145 0.163-0.218 0.243-29.617 33.027-46.253 75.644-46.253 120.934 0 10.419 0.876 20.714 2.604 30.817l-0.015-0.09 0.024 0.136c8.688 50.71 38.729 95.09 81.78 122.357a181.75 181.75 0 0 0 7.597 4.557C663.477 834.845 693.983 843 725.75 843 825.851 843 907 761.857 907 661.765c0-100.092-81.149-181.236-181.25-181.236z m43.196 72.582l0.378 0.36 0.378 0.371 85.3 85.295a32.218 32.218 0 0 1 1.264 1.337l0.348 0.397 0.08 0.093a31.845 31.845 0 0 1 7.585 18.292l0.032 0.469 0.028 0.518 0.02 0.503 0.016 0.721v0.599l-0.013 0.612-0.034 0.831-0.035 0.56-0.015 0.199a31.79 31.79 0 0 1-2.244 9.534 31.779 31.779 0 0 1-5.736 9.217c-0.195 0.22-0.395 0.438-0.598 0.654l-0.341 0.357-0.41 0.414-85.247 85.243c-12.498 12.496-32.759 12.496-45.255-0.002-12.372-12.372-12.495-32.354-0.37-44.877l0.371-0.377 30.668-30.667H619.125c-17.673 0-32-14.326-32-32 0-17.496 14.042-31.712 31.47-31.995l0.53-0.004 135.991-0.001-30.668-30.665c-12.497-12.497-12.498-32.758-0.001-45.255 12.247-12.249 31.954-12.493 44.5-0.733z m-650.948-41.974l0.001 86.551 0.001 0.106c0 1.358 0.594 3.12 1.97 5.253l0.319 0.48 0.345 0.492c0.298 0.416 0.624 0.843 0.98 1.283l0.44 0.534 0.468 0.546c0.322 0.368 0.662 0.743 1.023 1.126l0.556 0.58 0.289 0.295 0.6 0.598c0.514 0.502 1.06 1.017 1.639 1.543l0.71 0.636c0.243 0.214 0.49 0.43 0.743 0.648l0.776 0.659c0.264 0.221 0.534 0.444 0.809 0.67l0.843 0.68 0.434 0.343c2.66 2.097 5.638 4.187 8.918 6.26l1.244 0.777c4.194 2.586 8.858 5.143 13.966 7.652l1.545 0.751 1.572 0.748a240.411 240.411 0 0 0 9.111 4.056l1.74 0.725 0.88 0.362 1.777 0.72 0.898 0.358 1.815 0.713c1.219 0.474 2.454 0.946 3.705 1.414l1.888 0.7 0.954 0.349 1.925 0.693 1.949 0.689 1.973 0.683 1.997 0.679 1.007 0.337c56.1 18.699 133.323 29.586 216.067 29.586 25.497 0 50.549-1.028 74.743-3.032a244.642 244.642 0 0 1-0.118-7.615c0-35.321 7.51-69.501 21.556-100.676-30.875 3.12-63.193 4.735-96.181 4.735-89.239 0-173.203-11.838-236.305-32.87a401.903 401.903 0 0 1-15.506-5.515l-2.299-0.881c-0.762-0.295-1.52-0.592-2.275-0.89l-2.252-0.898c-10.56-4.258-20.327-8.804-29.24-13.633z m575.753-170.588c-14.899 8.072-32.183 15.354-51.571 21.817-63.102 21.032-147.066 32.87-236.305 32.87s-173.203-11.838-236.305-32.87c-19.388-6.463-36.672-13.745-51.57-21.817l-0.001 86.538 0.001 0.119c0 1.358 0.594 3.12 1.97 5.253l0.319 0.48 0.345 0.492 0.371 0.504c0.193 0.256 0.395 0.515 0.609 0.78l0.44 0.533 0.468 0.546 0.497 0.557c0.085 0.094 0.172 0.188 0.26 0.283l0.54 0.575c0.556 0.58 1.156 1.178 1.804 1.792l0.663 0.62c0.113 0.104 0.227 0.21 0.343 0.314l0.71 0.637 0.368 0.323 0.759 0.653 0.392 0.33 0.809 0.67c0.413 0.337 0.838 0.679 1.277 1.024 8.149 6.422 19.265 12.78 32.953 18.78l1.689 0.734c0.85 0.366 1.711 0.73 2.581 1.093l1.753 0.723 0.885 0.36 1.79 0.718a307.437 307.437 0 0 0 8.362 3.177l1.925 0.693 1.949 0.688 1.973 0.684 1.997 0.678 1.007 0.338c56.1 18.699 133.323 29.586 216.067 29.586 51.494 0 101.043-4.199 145.052-12.047l0.004-0.009a247.268 247.268 0 0 1 1.087-1.097l-0.293 0.294a247.187 247.187 0 0 1 18.6-16.92 245.81 245.81 0 0 1 23.027-16.754 244.71 244.71 0 0 1 32.317-17.475 244.1 244.1 0 0 1 66.656-19.02l1.425-0.189zM405.875 182c-82.744 0-159.967 10.887-216.067 29.586l-2.009 0.676c-0.665 0.226-1.327 0.453-1.985 0.68l-1.96 0.687c-0.325 0.114-0.65 0.23-0.972 0.345l-1.925 0.693-1.901 0.698c-1.889 0.7-3.741 1.407-5.556 2.12l-1.803 0.716-0.892 0.36-1.765 0.721c-0.584 0.242-1.164 0.483-1.74 0.726l-1.714 0.73c-1.418 0.609-2.81 1.222-4.174 1.839l-1.624 0.741a205.141 205.141 0 0 0-8.463 4.135l-1.452 0.76c-7.43 3.938-13.774 7.975-18.93 12.038l-0.859 0.686-0.417 0.338-0.809 0.67-0.776 0.659c-0.253 0.217-0.5 0.433-0.743 0.647l-0.71 0.637-0.679 0.626c-0.331 0.31-0.651 0.615-0.96 0.917l-0.6 0.598a40.285 40.285 0 0 0-2.986 3.343l-0.399 0.516c-2.117 2.806-3.005 5.07-3.005 6.73 0 1.66 0.888 3.923 3.005 6.73l0.399 0.515a40.285 40.285 0 0 0 2.986 3.344l0.6 0.597 0.313 0.303 0.647 0.615 0.679 0.625 0.351 0.317 0.727 0.642 0.759 0.653 0.392 0.331 0.809 0.67 0.417 0.338 0.86 0.686c5.155 4.063 11.498 8.1 18.929 12.037l1.452 0.761a210.812 210.812 0 0 0 10.909 5.246l1.663 0.737c0.559 0.245 1.122 0.489 1.689 0.733l1.714 0.73c0.288 0.12 0.577 0.242 0.867 0.362l1.753 0.724 0.885 0.36 1.79 0.718c2.103 0.835 4.257 1.661 6.46 2.478l1.902 0.698 1.925 0.694 1.949 0.688 1.973 0.684 1.997 0.678 1.007 0.337c56.1 18.7 133.323 29.586 216.067 29.586s159.967-10.886 216.067-29.586c0.337-0.112 0.673-0.224 1.007-0.337l1.997-0.678 1.973-0.684 1.95-0.688 1.924-0.694 1.901-0.698a303.164 303.164 0 0 0 6.46-2.478l1.79-0.718 0.886-0.36 1.753-0.724c0.29-0.12 0.579-0.242 0.867-0.363l1.714-0.73c0.567-0.243 1.13-0.487 1.689-0.732l1.663-0.737c3.85-1.723 7.49-3.474 10.91-5.246l1.451-0.76c7.43-3.938 13.774-7.975 18.93-12.038l0.859-0.686 0.417-0.338 0.809-0.67c0.132-0.11 0.263-0.22 0.392-0.33l0.76-0.654 0.726-0.642 0.351-0.317 0.679-0.625 0.647-0.615c0.105-0.101 0.21-0.202 0.312-0.303l0.601-0.597a40.285 40.285 0 0 0 2.986-3.344l0.399-0.516c2.117-2.806 3.005-5.07 3.005-6.73 0-1.66-0.888-3.923-3.005-6.729l-0.399-0.516a40.285 40.285 0 0 0-2.986-3.343l-0.6-0.598a58.596 58.596 0 0 0-0.96-0.917l-0.679-0.626-0.71-0.637c-0.243-0.214-0.49-0.43-0.743-0.647l-0.776-0.66-0.809-0.669a88.944 88.944 0 0 0-0.417-0.338l-0.86-0.686c-5.155-4.063-11.498-8.1-18.929-12.037l-1.452-0.76a205.141 205.141 0 0 0-8.463-4.136l-1.624-0.741a244.534 244.534 0 0 0-4.174-1.84l-1.714-0.729c-0.576-0.243-1.156-0.484-1.74-0.726l-1.765-0.721-0.892-0.36-1.803-0.715a305.328 305.328 0 0 0-5.556-2.121l-1.9-0.698-1.926-0.693c-0.323-0.116-0.647-0.23-0.971-0.345l-1.961-0.686c-0.658-0.228-1.32-0.455-1.985-0.681l-2.009-0.676C565.842 192.886 488.62 182 405.875 182z" ></path></symbol><symbol id="icon-continue" viewBox="0 0 1066 1024"><path d="M533.333333 0c281.6 0 512 230.4 512 512s-230.4 512-512 512c-281.557333 0-512-230.4-512-512s230.4-512 512-512zM368.128 119.210667A431.232 431.232 0 0 0 140.8 346.624a423.808 423.808 0 0 0 0 330.752 431.274667 431.274667 0 0 0 227.413333 227.413333 423.381333 423.381333 0 0 0 330.325334 0 431.146667 431.146667 0 0 0 227.413333-227.413333 423.808 423.808 0 0 0 0-330.752 431.146667 431.146667 0 0 0-227.413333-227.413333 423.338667 423.338667 0 0 0-330.368 0zM582.101333 341.333333l211.413334 192-211.413334 192V341.333333zM362.666667 341.333333l211.413333 192L362.666667 725.333333V341.333333z" ></path></symbol><symbol id="icon-break" viewBox="0 0 1024 1024"><path d="M285.696 53.504a24.6272 24.6272 0 0 1 32.7168 11.9296l416.4608 893.0304a24.6272 24.6272 0 0 1-44.6976 20.8384L273.7664 86.272a24.6272 24.6272 0 0 1 11.9296-32.768z m89.7536 540.6208a20.48 20.48 0 0 1 14.4896 34.9696l-95.8464 95.7952a285.7984 285.7984 0 0 0 259.6864 78.4896l46.336 99.4304a393.728 393.728 0 0 1-103.5776 13.824 393.5232 393.5232 0 0 1-278.784-115.4048l-80.384 80.384A20.48 20.48 0 0 1 102.4 867.2256v-242.3296a30.72 30.72 0 0 1 30.72-30.72h242.3296z m508.7744 0a394.4448 394.4448 0 0 1-151.296 243.6608L686.08 737.28a288.4096 288.4096 0 0 0 88.1664-143.1552h109.9776zM496.5376 128.3072c108.9536 0 207.104 44.032 278.784 115.4048l74.5472-79.0016a20.48 20.48 0 0 1 35.3792 13.6704l4.8128 241.1008a30.72 30.72 0 0 1-30.1056 31.3344h-242.2784a20.48 20.48 0 0 1-14.4896-34.9696l95.7952-95.8464a285.7472 285.7472 0 0 0-245.248-80.9984l-46.848-100.4032a394.3936 394.3936 0 0 1 89.6512-10.24z m-224.768 70.4512l46.4384 99.4816a288.5632 288.5632 0 0 0-99.328 152.576H108.8a394.6496 394.6496 0 0 1 162.9184-252.0576z" ></path></symbol><symbol id="icon-qiehuan" viewBox="0 0 1024 1024"><path d="M132.33 482.42c-16.45-4.65-26.93-21.18-23.7-38.31 14.28-75.9 50.02-145.78 103.36-202.09 73.97-78.08 173.91-122.69 281.43-125.6 107.51-2.9 209.72 36.22 287.81 110.19 46 43.58 80.2 95.7 101.65 154.9 6.29 17.34-2.68 36.5-20.03 42.78-17.35 6.29-36.5-2.68-42.78-20.03-17.87-49.33-46.4-92.78-84.79-129.15-65.12-61.69-150.38-94.32-240.05-91.9-89.68 2.43-173.04 39.63-234.73 104.76-44.49 46.97-74.31 105.23-86.21 168.5-3.41 18.13-20.87 30.06-39 26.65-1.01-0.19-1.99-0.43-2.96-0.7zM408.23 908.31c-61.82-17.48-118.89-49.76-166.85-95.2-46.01-43.59-80.21-95.7-101.65-154.9-6.28-17.35 2.69-36.5 20.03-42.79 17.35-6.27 36.51 2.69 42.79 20.03 17.87 49.32 46.39 92.78 84.79 129.15 65.12 61.7 150.39 94.33 240.05 91.9 89.68-2.43 173.04-39.63 234.73-104.76 44.5-46.97 74.31-105.24 86.21-168.5 3.41-18.13 20.87-30.06 39-26.65 18.07 3.4 30.07 20.87 26.65 39-14.28 75.89-50.02 145.78-103.36 202.09-73.97 78.08-173.91 122.69-281.43 125.6-41.47 1.13-82.15-4-120.96-14.97z" ></path><path d="M842.51 424.91l-0.22-0.06c-17.72-5.14-27.92-23.67-22.78-41.39l28.22-97.31c5.14-17.72 23.56-28.27 41.39-22.78 17.72 5.14 27.92 23.67 22.78 41.39l-28.22 97.31c-5.12 17.64-23.52 27.83-41.17 22.84zM133.87 776.24l-0.22-0.06c-17.72-5.14-27.92-23.67-22.78-41.39l28.22-97.31c5.12-17.64 23.52-27.83 41.17-22.84l0.22 0.06c17.72 5.14 27.92 23.67 22.78 41.39l-28.22 97.31c-5.12 17.64-23.53 27.83-41.17 22.84z" ></path></symbol><symbol id="icon-add" viewBox="0 0 1024 1024"><path d="M853.333333 480H544V170.666667c0-17.066667-14.933333-32-32-32s-32 14.933333-32 32v309.333333H170.666667c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32h309.333333V853.333333c0 17.066667 14.933333 32 32 32s32-14.933333 32-32V544H853.333333c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32z" ></path></symbol><symbol id="icon-export" viewBox="0 0 1024 1024"><path d="M582.4 864H170.666667c-6.4 0-10.666667-4.266667-10.666667-10.666667V170.666667c0-6.4 4.266667-10.666667 10.666667-10.666667h309.333333V320c0 40.533333 34.133333 74.666667 74.666667 74.666667h160v38.4c0 17.066667 14.933333 32 32 32s32-14.933333 32-32V298.666667c0-8.533333-4.266667-17.066667-8.533334-23.466667l-170.666666-170.666667c-6.4-6.4-14.933333-8.533333-23.466667-8.533333H170.666667C130.133333 96 96 130.133333 96 170.666667v682.666666c0 40.533333 34.133333 74.666667 74.666667 74.666667h411.733333c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32z m132.266667-550.4v17.066667H554.666667c-6.4 0-10.666667-4.266667-10.666667-10.666667V160h19.2l151.466667 153.6z" ></path><path d="M866.133333 669.866667l-106.666666-106.666667c-12.8-12.8-32-12.8-44.8 0s-12.8 32 0 44.8l51.2 51.2H512c-17.066667 0-32 14.933333-32 32S494.933333 725.333333 512 725.333333h253.866667l-51.2 51.2c-12.8 12.8-12.8 32 0 44.8 6.4 6.4 14.933333 8.533333 23.466666 8.533334s17.066667-2.133333 23.466667-8.533334l106.666667-106.666666c8.533333-10.666667 8.533333-32-2.133334-44.8z" ></path></symbol><symbol id="icon-file" viewBox="0 0 1024 1024"><path d="M842.666667 285.866667l-187.733334-187.733334c-14.933333-14.933333-32-21.333333-53.333333-21.333333H234.666667C194.133333 74.666667 160 108.8 160 149.333333v725.333334c0 40.533333 34.133333 74.666667 74.666667 74.666666h554.666666c40.533333 0 74.666667-34.133333 74.666667-74.666666V337.066667c0-19.2-8.533333-38.4-21.333333-51.2z m-44.8 44.8c-2.133333 2.133333-4.266667 0-8.533334 0h-170.666666c-6.4 0-10.666667-4.266667-10.666667-10.666667V149.333333c0-2.133333 0-6.4-2.133333-8.533333 0 0 2.133333 0 2.133333 2.133333l189.866667 187.733334z m-8.533334 554.666666H234.666667c-6.4 0-10.666667-4.266667-10.666667-10.666666V149.333333c0-6.4 4.266667-10.666667 10.666667-10.666666h311.466666c-2.133333 4.266667-2.133333 6.4-2.133333 10.666666v170.666667c0 40.533333 34.133333 74.666667 74.666667 74.666667h170.666666c4.266667 0 6.4 0 10.666667-2.133334V874.666667c0 6.4-4.266667 10.666667-10.666667 10.666666z" ></path><path d="M640 693.333333H341.333333c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32h298.666667c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32zM640 522.666667H341.333333c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32h298.666667c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32zM341.333333 416h85.333334c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32h-85.333334c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32z" ></path></symbol><symbol id="icon-import" viewBox="0 0 1024 1024"><path d="M667.733333 864H170.666667c-6.4 0-10.666667-4.266667-10.666667-10.666667V170.666667c0-6.4 4.266667-10.666667 10.666667-10.666667h309.333333V320c0 40.533333 34.133333 74.666667 74.666667 74.666667h160v38.4c0 17.066667 14.933333 32 32 32s32-14.933333 32-32V298.666667c0-8.533333-4.266667-17.066667-8.533334-23.466667l-170.666666-170.666667c-6.4-6.4-14.933333-8.533333-23.466667-8.533333H170.666667C130.133333 96 96 130.133333 96 170.666667v682.666666c0 40.533333 34.133333 74.666667 74.666667 74.666667h497.066666c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32z m46.933334-550.4v17.066667H554.666667c-6.4 0-10.666667-4.266667-10.666667-10.666667V160h19.2l151.466667 153.6z" ></path><path d="M853.333333 597.333333H599.466667l51.2-51.2c12.8-12.8 12.8-32 0-44.8-12.8-12.8-32-12.8-44.8 0l-106.666667 106.666667c-12.8 12.8-12.8 32 0 44.8l106.666667 106.666667c6.4 6.4 14.933333 8.533333 23.466666 8.533333s17.066667-2.133333 23.466667-8.533333c12.8-12.8 12.8-32 0-44.8L599.466667 661.333333H853.333333c17.066667 0 32-14.933333 32-32S870.4 597.333333 853.333333 597.333333z" ></path></symbol><symbol id="icon-zoom" viewBox="0 0 1024 1024"><path d="M455.68 756.48H316.8v-64h138.88A241.92 241.92 0 0 0 697.6 448V312.32h64V448a305.92 305.92 0 0 1-305.92 308.48z" ></path></symbol><symbol id="icon-sql" viewBox="0 0 1024 1024"><path d="M512 426.666667c-239.253333 0-426.666667-84.330667-426.666667-192s187.413333-192 426.666667-192 426.666667 84.330667 426.666667 192S751.253333 426.666667 512 426.666667zM512 85.333333C330.368 85.333333 128 146.666667 128 234.666667s202.368 149.333333 384 149.333333 384-61.333333 384-149.333333S693.632 85.333333 512 85.333333z" ></path><path d="M512 597.333333c-239.253333 0-426.666667-84.330667-426.666667-192l0-170.666667c0-11.797333 9.536-21.333333 21.333333-21.333333s21.333333 9.536 21.333333 21.333333l0 170.666667c0 88 202.368 149.333333 384 149.333333s384-61.333333 384-149.333333l0-170.666667c0-11.797333 9.536-21.333333 21.333333-21.333333s21.333333 9.536 21.333333 21.333333l0 170.666667C938.666667 513.002667 751.253333 597.333333 512 597.333333z" ></path><path d="M512 789.333333c-239.253333 0-426.666667-84.330667-426.666667-192l0-192c0-11.797333 9.536-21.333333 21.333333-21.333333s21.333333 9.536 21.333333 21.333333l0 192c0 88 202.368 149.333333 384 149.333333s384-61.333333 384-149.333333l0-192c0-11.797333 9.536-21.333333 21.333333-21.333333s21.333333 9.536 21.333333 21.333333l0 192C938.666667 705.002667 751.253333 789.333333 512 789.333333z" ></path><path d="M512 981.333333c-239.253333 0-426.666667-84.330667-426.666667-192l0-192c0-11.797333 9.536-21.333333 21.333333-21.333333s21.333333 9.536 21.333333 21.333333l0 192c0 88 202.368 149.333333 384 149.333333s384-61.333333 384-149.333333l0-192c0-11.797333 9.536-21.333333 21.333333-21.333333s21.333333 9.536 21.333333 21.333333l0 192C938.666667 897.002667 751.253333 981.333333 512 981.333333z" ></path></symbol><symbol id="icon-subflow" viewBox="0 0 1024 1024"><path d="M375.467 213.333a85.333 85.333 0 1 1-85.334 85.334 85.333 85.333 0 0 1 85.334-85.334m0-85.333a170.667 170.667 0 1 0 170.666 170.667A170.667 170.667 0 0 0 375.467 128zM631.467 597.333a85.333 85.333 0 1 0 170.666 0 85.333 85.333 0 1 0-170.666 0zM631.467 853.333a85.333 85.333 0 1 0 170.666 0 85.333 85.333 0 1 0-170.666 0z" ></path><path d="M418.133 384H332.8v426.667A85.333 85.333 0 0 0 418.133 896V384z m256 170.667h-256V640h256v-85.333z m0 256h-256V896h256v-85.333z" ></path></symbol><symbol id="icon-start" viewBox="0 0 1024 1024"><path d="M409 379.1c0-36.42 25.12-50.47 56.11-31.38L674 476.42c31 19.08 30.91 50 0 69L465.11 674.15c-31 19.09-56.11 5-56.11-31.38z m0 0" ></path><path d="M512 109.35A401.22 401.22 0 1 1 355.28 141 400.2 400.2 0 0 1 512 109.35m0-43C265.87 66.35 66.35 265.87 66.35 512S265.87 957.65 512 957.65 957.65 758.13 957.65 512 758.13 66.35 512 66.35z" ></path></symbol><symbol id="icon-assign" viewBox="0 0 1024 1024"><path d="M301.44 139.306667h-42.666667a119.466667 119.466667 0 0 0-119.466666 119.466666v170.666667a51.2 51.2 0 0 1-51.2 51.2 34.133333 34.133333 0 1 0 0 68.266667 51.2 51.2 0 0 1 51.2 51.2v170.666666a119.466667 119.466667 0 0 0 119.466666 119.466667h42.666667a34.133333 34.133333 0 1 0 0-68.266667h-42.666667a51.2 51.2 0 0 1-51.2-51.2v-170.666666c0-29.824-10.965333-57.898667-30.421333-79.658667l-5.12-5.674667 5.12-5.674666c19.456-21.76 30.421333-49.834667 30.421333-79.658667v-170.666667a51.2 51.2 0 0 1 51.2-51.2h42.666667a34.133333 34.133333 0 0 0 0-68.266666z m469.333333 0h-42.666666a34.133333 34.133333 0 1 0 0 68.266666h42.666666a51.2 51.2 0 0 1 51.2 51.2v170.666667c0 29.824 10.965333 57.898667 30.421334 79.658667l5.12 5.674666-5.12 5.674667a118.954667 118.954667 0 0 0-30.421334 79.658667v170.666666a51.2 51.2 0 0 1-51.2 51.2h-42.666666a34.133333 34.133333 0 1 0 0 68.266667h42.666666a119.466667 119.466667 0 0 0 119.466667-119.466667v-170.666666a51.2 51.2 0 0 1 51.2-51.2 34.133333 34.133333 0 1 0 0-68.266667 51.2 51.2 0 0 1-51.2-51.2v-170.666667a119.466667 119.466667 0 0 0-119.466667-119.466666zM674.133333 605.866667H349.866667v68.266666h324.266666v-68.266666z m0-213.333334H349.866667v68.266667h324.266666V392.533333z" ></path></symbol><symbol id="icon-loop" viewBox="0 0 1024 1024"><path d="M867.340007 319.228555c-51.538817-51.534723-120.027677-79.890538-192.814423-79.890538H388.423497v-54.715159c0-17.449417-11.967566-23.99653-26.734898-14.519692l-131.680065 85.000929c-14.705933 9.533121-14.583137 24.802896 0.314155 34.022885l131.114177 81.201393c14.772448 9.225105 26.986631 2.430352 26.986631-15.018041v-54.524825H674.588005c116.408243 0 211.132628 94.785783 211.132628 211.133652 0 19.317974-2.552126 38.388309-7.66354 56.705489-4.550643 16.389272 5.048993 33.282011 21.438265 37.766139 2.743484 0.874927 5.481851 1.245364 8.225335 1.245364 13.459546 0 25.802666-8.971325 29.601179-22.493294 6.541997-23.743774 9.784854-48.363498 9.784854-73.163323 0-72.7847-28.355815-141.335982-79.766719-192.750979zM816.547181 734.829018l-131.052778-81.202417c-14.896268-9.218966-27.110451-2.490727-27.110451 15.020089v54.40612H349.535815c-116.41029 0-211.133651-94.723362-211.133652-211.132628 0-40.756239 11.653411-80.32749 33.653471-114.417913 9.224082-14.273075 5.106298-33.339316-9.100262-42.562374-14.273075-9.16166-33.339316-5.048993-42.500976 9.156544-28.478612 44.060495-43.561122 95.223758-43.561122 147.884118 0 72.849168 28.355815 141.27663 79.828117 192.748932 51.477418 51.538817 119.965256 79.893608 192.814424 79.893609h308.910558v54.716182c0 17.509792 12.028964 24.051789 26.734898 14.519692l131.680065-85.063351c14.705933-9.475815 14.583137-24.742521-0.314155-33.966603z" ></path></symbol><symbol id="icon-script" viewBox="0 0 1024 1024"><path d="M263.616 870.016l440.256-751.872 61.376 35.904-440.256 751.808-61.376-35.84zM78.016 509.504l192.768-190.592-4.864-8.512-32.256-55.04-205.76 203.648a72.32 72.32 0 0 0-0.768 101.76l205.76 207.872 37.504-64.192-192.384-194.944zM996.032 459.008l-205.76-203.648-32.256 55.04-4.928 8.576 192.832 190.592-192.448 194.944 37.44 64.192 205.824-207.872a72.384 72.384 0 0 0-0.704-101.824z" ></path></symbol><symbol id="icon-case" viewBox="0 0 1024 1024"><path d="M760.32 640c-50.688 0-96.256 20.992-129.536 54.272L424.96 600.064c8.192-20.48 12.288-43.008 12.288-66.048 0-26.112-5.632-50.688-15.36-73.216l214.528-119.808c32.256 30.72 76.288 49.152 123.904 49.152 99.84 0 181.248-81.408 181.248-181.248S860.16 27.648 760.32 27.648s-181.248 81.408-181.248 181.248c0 26.112 5.632 50.688 15.36 73.216L379.904 401.92c-32.256-30.72-76.288-49.152-123.904-49.152-99.84 0-181.248 81.408-181.248 181.248s81.408 181.248 181.248 181.248c50.688 0 96.256-20.992 129.536-54.272l205.824 93.696c-8.192 20.48-12.288 43.008-12.288 66.048 0 99.84 81.408 181.248 181.248 181.248s181.248-81.408 181.248-181.248S860.16 640 760.32 640z m0-540.672c60.416 0 109.568 49.152 109.568 109.568 0 60.416-49.152 109.568-109.568 109.568-60.416 0-109.568-49.152-109.568-109.568-0.512-60.416 49.152-109.568 109.568-109.568zM256 643.584c-60.416 0-109.568-49.152-109.568-109.568 0-60.416 49.152-109.568 109.568-109.568 60.416 0 109.568 49.152 109.568 109.568 0 60.416-49.152 109.568-109.568 109.568z m504.32 287.232c-60.416 0-109.568-49.152-109.568-109.568 0-60.416 49.152-109.568 109.568-109.568 60.416 0 109.568 49.152 109.568 109.568 0 60.416-49.152 109.568-109.568 109.568z m0 0" ></path></symbol><symbol id="icon-variable" viewBox="0 0 1024 1024"><path d="M291.6864 865.7408v-57.6h-42.5984c-13.9776-0.6656-23.8592-8.6016-29.7984-23.9104a128 128 0 0 1-8.6016-48.64v-111.7184a143.5136 143.5136 0 0 0-8.0896-51.6608 99.3792 99.3792 0 0 0-19.968-34.048 79.0016 79.0016 0 0 0-21.8112-20.0704 72.3456 72.3456 0 0 0-18.3808-7.2704v-1.6896c10.0352-2.304 23.3984-12.1344 40.1408-29.44 8.192-8.8064 14.9504-20.1728 19.968-34.1504 5.4784-12.8 8.0896-28.7744 8.0896-48.128v-112.64c0-19.3024 2.8672-36.1984 8.6528-50.688 5.9392-13.9264 15.872-21.1456 29.7984-21.76h42.5984V154.7264h-74.24c-23.2448 0-43.008 8.3968-59.1872 25.1904-16.9984 17.0496-25.9072 40.96-26.4704 71.68v124.928c0 28.416-5.5296 52.8384-16.5888 73.2672a53.76 53.76 0 0 1-20.8384 22.6304c-8.96 6.144-19.5584 9.216-30.3616 8.96v57.6c22.784 0.6144 39.7824 11.1104 51.2 31.488 11.0592 19.6608 16.64 44.6976 16.64 75.1104v123.2384c0.6144 30.1056 9.3696 53.5552 26.4192 70.4 16.2304 16.9472 35.8912 25.8048 59.2896 26.4192h74.24l-0.1024 0.1024z m219.8528-236.6976l94.72 147.5072h106.1888l-151.04-225.9456 144.9984-216.6784h-106.5984L511.5392 477.184 423.7312 333.9264H317.1328l144.9472 216.6784-151.296 225.8944h106.496l94.2592-147.4048z m355.9936 210.176c15.5648-16.8448 23.6544-40.192 24.32-70.4v-124.928c0-29.9008 5.9904-54.5792 18.2272-74.24 11.7248-19.9168 28.3648-30.0544 49.92-30.72V481.3312c-21.5552-1.6384-38.1952-12.3904-49.92-32.3584-12.1344-19.8656-18.2784-44.6464-18.2784-74.1888V251.648c-0.6144-30.72-8.704-54.5792-24.32-71.68a82.6368 82.6368 0 0 0-61.44-25.1392h-74.24v57.6h42.752c14.1824 0.5632 24.1664 7.7824 29.7984 21.76 5.9904 14.4384 8.96 31.3344 8.96 50.7392v111.6672c0 19.9168 3.2256 36.8128 9.4208 50.7392 5.4272 13.9776 12.0832 25.2928 20.0192 34.1504 8.192 8.8064 15.7184 15.1552 22.5792 19.2 7.168 3.9424 12.3392 6.8096 15.8208 8.4992v1.7408c-8.4992 1.3824-21.2992 10.752-38.4 28.16-8.704 10.0352-15.4624 21.5552-20.0192 34.048a121.344 121.344 0 0 0-9.3696 49.92v112.64c0 18.432-2.9696 34.6112-8.96 48.5376-5.7344 15.36-15.616 23.296-29.9008 23.9104h-42.5984v57.6h74.24a85.4016 85.4016 0 0 0 61.3888-26.5216z" ></path></symbol></svg>', ((l) => {
4195
+ var a = (c = (c = document.getElementsByTagName("script"))[c.length - 1]).getAttribute("data-injectcss"), c = c.getAttribute("data-disable-injectsvg");
4196
+ if (!c) {
4197
+ var h, t, o, i, v, m = function(a2, c2) {
4198
+ c2.parentNode.insertBefore(a2, c2);
4199
+ };
4200
+ if (a && !l.__iconfont__svg__cssinject__) {
4201
+ l.__iconfont__svg__cssinject__ = true;
4202
+ try {
4203
+ document.write(
4204
+ "<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>"
4205
+ );
4206
+ } catch (a2) {
4207
+ console && console.log(a2);
4208
+ }
4209
+ }
4210
+ h = function() {
4211
+ var a2, c2 = document.createElement("div");
4212
+ c2.innerHTML = l._iconfont_svg_string_5021436, (c2 = c2.getElementsByTagName("svg")[0]) && (c2.setAttribute("aria-hidden", "true"), c2.style.position = "absolute", c2.style.width = 0, c2.style.height = 0, c2.style.overflow = "hidden", // eslint-disable-next-line no-self-assign
4213
+ c2 = c2, (a2 = document.body).firstChild ? m(c2, a2.firstChild) : a2.appendChild(c2));
4214
+ }, document.addEventListener ? ~["complete", "loaded", "interactive"].indexOf(document.readyState) ? setTimeout(h, 0) : (t = function() {
4215
+ document.removeEventListener("DOMContentLoaded", t, false), h();
4216
+ }, document.addEventListener("DOMContentLoaded", t, false)) : document.attachEvent && (o = h, i = l.document, v = false, s(), i.onreadystatechange = function() {
4217
+ "complete" == i.readyState && (i.onreadystatechange = null, z());
4218
+ });
4219
+ }
4220
+ function z() {
4221
+ v || (v = true, o());
4222
+ }
4223
+ function s() {
4224
+ try {
4225
+ i.documentElement.doScroll("left");
4226
+ } catch (a2) {
4227
+ return void setTimeout(s, 50);
4228
+ }
4229
+ z();
4230
+ }
4231
+ })(window);
4232
+
4233
+ // src/components/IconFont/index.ts
4214
4234
  var IconFont = icons.createFromIconfontCN({});
4215
- var icon_font_default = IconFont;
4235
+ var IconFont_default = IconFont;
4216
4236
  var { Text: Text4 } = antd.Typography;
4217
4237
  var FeaturesRenderer_default = ({ skillsBtn, knowledgeBtn }) => {
4218
4238
  const chatStore = useChatStore();
@@ -4221,10 +4241,10 @@ var FeaturesRenderer_default = ({ skillsBtn, knowledgeBtn }) => {
4221
4241
  /* @__PURE__ */ jsxRuntime.jsxs(
4222
4242
  antd.Flex,
4223
4243
  {
4224
- className: classNames7__default.default(styles_module_default2.resourceBtn, { [styles_module_default2.resourceBtnActive]: agentState.model.reasoning }),
4244
+ className: classNames2__default.default(styles_module_default3.resourceBtn, { [styles_module_default3.resourceBtnActive]: agentState.model.reasoning }),
4225
4245
  onClick: () => chatStore.setAgentModel({ ...agentState.model, reasoning: !agentState.model.reasoning }),
4226
4246
  children: [
4227
- /* @__PURE__ */ jsxRuntime.jsx(icon_font_default, { type: "icon-remark" }),
4247
+ /* @__PURE__ */ jsxRuntime.jsx(IconFont_default, { type: "icon-remark" }),
4228
4248
  /* @__PURE__ */ jsxRuntime.jsx(Text4, { style: { color: agentState.model.reasoning ? "#fff" : "#000" }, children: "\u6DF1\u5EA6\u601D\u8003" })
4229
4249
  ]
4230
4250
  }
@@ -4236,10 +4256,10 @@ var FeaturesRenderer_default = ({ skillsBtn, knowledgeBtn }) => {
4236
4256
  DefaultComponent: /* @__PURE__ */ jsxRuntime.jsxs(
4237
4257
  antd.Flex,
4238
4258
  {
4239
- className: classNames7__default.default(styles_module_default2.resourceBtn, { [styles_module_default2.resourceBtnActive]: agentState.model.reasoning }),
4259
+ className: classNames2__default.default(styles_module_default3.resourceBtn, { [styles_module_default3.resourceBtnActive]: agentState.model.reasoning }),
4240
4260
  onClick: () => chatStore.setAgentModel({ ...agentState.model, reasoning: !agentState.model.reasoning }),
4241
4261
  children: [
4242
- /* @__PURE__ */ jsxRuntime.jsx(icon_font_default, { type: "icon-remark" }),
4262
+ /* @__PURE__ */ jsxRuntime.jsx(IconFont_default, { type: "icon-remark" }),
4243
4263
  /* @__PURE__ */ jsxRuntime.jsx(Text4, { style: { color: agentState.model.reasoning ? "#fff" : "#000" }, children: "\u6280\u80FD" })
4244
4264
  ]
4245
4265
  }
@@ -4253,10 +4273,10 @@ var FeaturesRenderer_default = ({ skillsBtn, knowledgeBtn }) => {
4253
4273
  DefaultComponent: /* @__PURE__ */ jsxRuntime.jsxs(
4254
4274
  antd.Flex,
4255
4275
  {
4256
- className: classNames7__default.default(styles_module_default2.resourceBtn, { [styles_module_default2.resourceBtnActive]: agentState.model.reasoning }),
4276
+ className: classNames2__default.default(styles_module_default3.resourceBtn, { [styles_module_default3.resourceBtnActive]: agentState.model.reasoning }),
4257
4277
  onClick: () => chatStore.setAgentModel({ ...agentState.model, reasoning: !agentState.model.reasoning }),
4258
4278
  children: [
4259
- /* @__PURE__ */ jsxRuntime.jsx(icon_font_default, { type: "icon-remark" }),
4279
+ /* @__PURE__ */ jsxRuntime.jsx(IconFont_default, { type: "icon-remark" }),
4260
4280
  /* @__PURE__ */ jsxRuntime.jsx(Text4, { style: { color: agentState.model.reasoning ? "#fff" : "#000" }, children: "\u77E5\u8BC6\u5E93" })
4261
4281
  ]
4262
4282
  }
@@ -4265,18 +4285,18 @@ var FeaturesRenderer_default = ({ skillsBtn, knowledgeBtn }) => {
4265
4285
  )
4266
4286
  ] });
4267
4287
  };
4268
- var ChatSender_default2 = React9.forwardRef(
4288
+ var ChatSender_default2 = React7.forwardRef(
4269
4289
  ({ placeholder, extraBtn = false, referencesBtn = false, sendBtnProps, footerBelow = false, skillsBtn = false, knowledgeBtn = false }, ref) => {
4270
4290
  const chatStore = useChatStore();
4271
4291
  const configState = valtio.useSnapshot(chatStore.config);
4272
4292
  const agentState = valtio.useSnapshot(chatStore.agent);
4273
4293
  const conversationState = valtio.useSnapshot(chatStore.conversation);
4274
4294
  const fileUploadRequest = (formData, signal) => configState.services.request.chatUpload(agentState.agentInfo.id, formData, conversationState.active.id, signal);
4275
- const chatMessage = React9.useMemo(
4295
+ const chatMessage = React7.useMemo(
4276
4296
  () => conversationState.messages[conversationState.active.id] || {},
4277
4297
  [conversationState.messages[conversationState.active.id]]
4278
4298
  );
4279
- const referenceContent = React9.useMemo(() => {
4299
+ const referenceContent = React7.useMemo(() => {
4280
4300
  const content = chatMessage.references?.content?.name;
4281
4301
  if (content) {
4282
4302
  return common.markdownToText(content);
@@ -4322,8 +4342,8 @@ var ChatSender_default2 = React9.forwardRef(
4322
4342
  open: !!referenceContent,
4323
4343
  onOpenChange: () => chatStore.setReferences(),
4324
4344
  classNames: {
4325
- header: styles_module_default2.senderReferenceHeaderTitle,
4326
- content: common.shouldRender(referencesBtn) ? "" : styles_module_default2.senderReferenceHeaderContent
4345
+ header: styles_module_default3.senderReferenceHeaderTitle,
4346
+ content: common.shouldRender(referencesBtn) ? "" : styles_module_default3.senderReferenceHeaderContent
4327
4347
  },
4328
4348
  children: /* @__PURE__ */ jsxRuntime.jsx(
4329
4349
  common.RenderWrapper,
@@ -4341,35 +4361,32 @@ var ChatSender_default2 = React9.forwardRef(
4341
4361
  ) });
4342
4362
  }
4343
4363
  );
4344
-
4345
- // src/assets/images/logo.png
4346
- var logo_default = "./logo-BX4TAWHK.png";
4347
4364
  var ChatSenderHeader = () => {
4348
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module_default2.logoArea, children: [
4349
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module_default2.logoContainer, children: [
4350
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default2.staticHalo }),
4351
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default2.logoHoverWrapper, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo_default, alt: "LoLR.AI Logo", className: styles_module_default2.logoImage }) })
4365
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module_default3.logoArea, children: [
4366
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module_default3.logoContainer, children: [
4367
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default3.staticHalo }),
4368
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default3.logoHoverWrapper, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: getChatCopilotLogo(), alt: "LoLR.AI Logo", className: styles_module_default3.logoImage }) })
4352
4369
  ] }),
4353
- /* @__PURE__ */ jsxRuntime.jsxs("h1", { className: styles_module_default2.greetingTitle, children: [
4370
+ /* @__PURE__ */ jsxRuntime.jsxs("h1", { className: styles_module_default3.greetingTitle, children: [
4354
4371
  "\u4F60\u597D\uFF0C\u6211\u662F ",
4355
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module_default2.gradientText, children: "LoLR.AI" })
4372
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module_default3.gradientText, children: "LoLR.AI" })
4356
4373
  ] }),
4357
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles_module_default2.greetingSubtitle, children: "\u4ECA\u5929\u60F3\u63A2\u7D22\u70B9\u4EC0\u4E48\uFF1F" })
4374
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles_module_default3.greetingSubtitle, children: "\u4ECA\u5929\u60F3\u63A2\u7D22\u70B9\u4EC0\u4E48\uFF1F" })
4358
4375
  ] });
4359
4376
  };
4360
4377
  var ChatSenderHeader_default = ChatSenderHeader;
4361
4378
  var MonacoEditor = ({ value = "", onChange, placeholder, height = 200, readOnly = false, style }) => {
4362
- const handleKeyDownCapture = React9.useCallback((e) => {
4379
+ const handleKeyDownCapture = React7.useCallback((e) => {
4363
4380
  if (e.key === " " || e.code === "Space") {
4364
4381
  e.stopPropagation();
4365
4382
  }
4366
4383
  }, []);
4367
- const handleKeyUpCapture = React9.useCallback((e) => {
4384
+ const handleKeyUpCapture = React7.useCallback((e) => {
4368
4385
  if (e.key === " " || e.code === "Space") {
4369
4386
  e.stopPropagation();
4370
4387
  }
4371
4388
  }, []);
4372
- const handleScriptChange = React9.useCallback(
4389
+ const handleScriptChange = React7.useCallback(
4373
4390
  (event) => {
4374
4391
  onChange?.(event.target.value || "");
4375
4392
  },
@@ -4392,7 +4409,7 @@ var MonacoEditor = ({ value = "", onChange, placeholder, height = 200, readOnly
4392
4409
  }
4393
4410
  ) });
4394
4411
  };
4395
- var monaco_editor_default = MonacoEditor;
4412
+ var MonacoEditor_default = MonacoEditor;
4396
4413
  var { Text: Text5 } = antd.Typography;
4397
4414
  var START_NODE_TYPE = "start";
4398
4415
  var FormFileUpload = ({ value, onChange, multiple = false }) => {
@@ -4476,25 +4493,25 @@ var FormFileUpload = ({ value, onChange, multiple = false }) => {
4476
4493
  };
4477
4494
  var FormMonacoEditor = ({ value, onChange }) => {
4478
4495
  const { token } = antd.theme.useToken();
4479
- return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { backgroundColor: token.colorFillAlter, padding: 8, borderRadius: token.borderRadius }, children: /* @__PURE__ */ jsxRuntime.jsx(monaco_editor_default, { language: "json", placeholder: "\u8BF7\u8F93\u5165\u503C...", height: 80, value, onChange }) });
4496
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { backgroundColor: token.colorFillAlter, padding: 8, borderRadius: token.borderRadius }, children: /* @__PURE__ */ jsxRuntime.jsx(MonacoEditor_default, { language: "json", placeholder: "\u8BF7\u8F93\u5165\u503C...", height: 80, value, onChange }) });
4480
4497
  };
4481
4498
  var UserInputPanel = () => {
4482
4499
  const chatStore = useChatStore();
4483
4500
  const agentSnap = valtio.useSnapshot(chatStore.agent);
4484
4501
  const flowSpecSnap = valtio.useSnapshot(flowSpecState);
4485
4502
  const [form] = antd.Form.useForm();
4486
- const [activeKey, setActiveKey] = React9.useState(["1"]);
4503
+ const [activeKey, setActiveKey] = React7.useState(["1"]);
4487
4504
  const { layout } = valtio.useSnapshot(chatStore.config);
4488
- const startNode = React9.useMemo(() => {
4505
+ const startNode = React7.useMemo(() => {
4489
4506
  return flowSpecSnap.nodes.find((n) => String(n.type || "").toLowerCase() === START_NODE_TYPE);
4490
4507
  }, [flowSpecSnap.nodes]);
4491
- const inputs = React9.useMemo(() => {
4508
+ const inputs = React7.useMemo(() => {
4492
4509
  if (agentSnap.agentInfo.userInput?.length > 0) {
4493
4510
  return agentSnap.agentInfo.userInput.filter((i) => i.enableEdit);
4494
4511
  }
4495
4512
  return (startNode?.data.input || []).filter((i) => i.enableEdit);
4496
4513
  }, [startNode, agentSnap.agentInfo.userInput]);
4497
- React9.useEffect(() => {
4514
+ React7.useEffect(() => {
4498
4515
  if (inputs.length > 0) {
4499
4516
  const initialValues = inputs.reduce((acc, cur) => {
4500
4517
  const value = cur.value;
@@ -4653,12 +4670,12 @@ var UserInputPanel = () => {
4653
4670
  label: "\u53C2\u6570\u8BBE\u7F6E",
4654
4671
  extra: genExtra(),
4655
4672
  children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4656
- /* @__PURE__ */ jsxRuntime.jsx(antd.Form, { form, layout: "vertical", onValuesChange: handleValuesChange, style: { maxHeight: 500, overflow: "auto", paddingRight: 16 }, children: inputs.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, gap: 12, children: inputs.map((item) => /* @__PURE__ */ jsxRuntime.jsx(React9__default.default.Fragment, { children: renderFormItem(item) }, item.name)) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: "10px", color: "#999", textAlign: "center" }, children: "\u6682\u65E0\u7528\u6237\u8F93\u5165\u5B57\u6BB5" }) }),
4673
+ /* @__PURE__ */ jsxRuntime.jsx(antd.Form, { form, layout: "vertical", onValuesChange: handleValuesChange, style: { maxHeight: 500, overflow: "auto", paddingRight: 16 }, children: inputs.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { vertical: true, gap: 12, children: inputs.map((item) => /* @__PURE__ */ jsxRuntime.jsx(React7__default.default.Fragment, { children: renderFormItem(item) }, item.name)) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: "10px", color: "#999", textAlign: "center" }, children: "\u6682\u65E0\u7528\u6237\u8F93\u5165\u5B57\u6BB5" }) }),
4657
4674
  /* @__PURE__ */ jsxRuntime.jsx(antd.Flex, { align: "center", justify: "center", className: "m-t-16", children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "primary", onClick: handleStartChat, children: "\u5F00\u59CB\u4F1A\u8BDD" }) })
4658
4675
  ] })
4659
4676
  }
4660
4677
  ];
4661
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default2.userInputCollapse, children: /* @__PURE__ */ jsxRuntime.jsx(
4678
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default3.userInputCollapse, children: /* @__PURE__ */ jsxRuntime.jsx(
4662
4679
  antd.Collapse,
4663
4680
  {
4664
4681
  activeKey,
@@ -4680,7 +4697,7 @@ var UserInputPanel = () => {
4680
4697
  var UserInputPanel_default = UserInputPanel;
4681
4698
 
4682
4699
  // src/ui/layouts/components/styles.module.less
4683
- var styles_module_default3 = {
4700
+ var styles_module_default4 = {
4684
4701
  bodyWidth: "styles_module_bodyWidth",
4685
4702
  inputContainer: "styles_module_inputContainer",
4686
4703
  disclaimerNotice: "styles_module_disclaimerNotice",
@@ -4689,11 +4706,11 @@ var styles_module_default3 = {
4689
4706
  closeIcon: "styles_module_closeIcon",
4690
4707
  rotateIcon: "styles_module_rotateIcon"
4691
4708
  };
4692
- var ChatMainPanel = React9.memo(
4693
- React9.forwardRef((_props, ref) => {
4709
+ var ChatMainPanel = React7.memo(
4710
+ React7.forwardRef((_props, ref) => {
4694
4711
  const chatStore = useChatStore();
4695
- const senderRef = React9.useRef(null);
4696
- React9.useImperativeHandle(
4712
+ const senderRef = React7.useRef(null);
4713
+ React7.useImperativeHandle(
4697
4714
  ref,
4698
4715
  () => ({
4699
4716
  focus: (options) => {
@@ -4704,19 +4721,19 @@ var ChatMainPanel = React9.memo(
4704
4721
  );
4705
4722
  const configState = valtio.useSnapshot(chatStore.config);
4706
4723
  const agentState = valtio.useSnapshot(chatStore.agent);
4707
- return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: classNames7__default.default("height-full"), children: [
4724
+ return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: classNames2__default.default("height-full"), children: [
4708
4725
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.chatHeader, DefaultComponent: ChatHeader_default }),
4709
- /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { justify: "center", align: "center", vertical: true, gap: 24, className: classNames7__default.default("height-full", styles_module_default3.bodyWidth), children: [
4726
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { justify: "center", align: "center", vertical: true, gap: 24, className: classNames2__default.default("height-full", styles_module_default4.bodyWidth), children: [
4710
4727
  common.shouldRender(agentState.agentInfo.userInput && agentState.agentInfo.userInput.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { DefaultComponent: UserInputPanel_default }),
4711
4728
  common.shouldRender(configState.layout.messageList) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "full-scroll", style: { width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.messageList, DefaultComponent: BubbleListItems_default }) }),
4712
4729
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.senderHeader, DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx(ChatSenderHeader_default, {}) }),
4713
- /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { className: styles_module_default3.inputContainer, vertical: true, gap: 8, children: [
4730
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { className: styles_module_default4.inputContainer, vertical: true, gap: 8, children: [
4714
4731
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { ref: senderRef, DefaultComponent: ChatSender_default2 }),
4715
4732
  /* @__PURE__ */ jsxRuntime.jsx(
4716
4733
  common.RenderWrapper,
4717
4734
  {
4718
4735
  control: configState.layout.disclaimerNotice,
4719
- DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default3.disclaimerNotice, children: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u8BF7\u4ED4\u7EC6\u7504\u522B" })
4736
+ DefaultComponent: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default4.disclaimerNotice, children: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u8BF7\u4ED4\u7EC6\u7504\u522B" })
4720
4737
  }
4721
4738
  ),
4722
4739
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.senderFooter })
@@ -4726,16 +4743,17 @@ var ChatMainPanel = React9.memo(
4726
4743
  })
4727
4744
  );
4728
4745
  var ChatMainPanel_default = ChatMainPanel;
4729
- var ChatPreviewPanel = React9.memo(({ agentId, conversationId, file }) => {
4746
+ var { Text: Text6 } = antd.Typography;
4747
+ var ChatPreviewPanel = React7.memo(({ agentId, conversationId, file }) => {
4730
4748
  const chatStore = useChatStore();
4731
4749
  const configState = valtio.useSnapshot(chatStore.config);
4732
- const fileUrl = React9.useMemo(() => {
4750
+ const fileUrl = React7.useMemo(() => {
4733
4751
  if (file?.fileUrl) return file.fileUrl;
4734
4752
  if (!file?.path || !agentId || !conversationId) return "";
4735
4753
  const previewUrl = configState.services.request.getPreviewUrl(agentId, conversationId, file.path);
4736
4754
  return previewUrl;
4737
4755
  }, [agentId, conversationId, file]);
4738
- const suffix = React9.useMemo(() => {
4756
+ const suffix = React7.useMemo(() => {
4739
4757
  const name = file?.fileName || file?.path || "";
4740
4758
  return name.split(".").pop() || file?.ext || "";
4741
4759
  }, [file]);
@@ -4752,11 +4770,14 @@ var ChatPreviewPanel = React9.memo(({ agentId, conversationId, file }) => {
4752
4770
  }
4753
4771
  };
4754
4772
  return /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, style: { height: "100%", overflow: "hidden" }, children: [
4755
- /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { justify: "flex-end", className: styles_module_default3.previewHeader, children: [
4756
- file?.path && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default3.previewCloseBtn, onClick: handleDownload, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DownloadOutlined, {}), className: styles_module_default3.closeIcon }) }),
4757
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames7__default.default(styles_module_default3.previewCloseBtn, styles_module_default3.rotateIcon), onClick: () => chatStore.setPreview({ path: "", fileName: "" }), children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CloseOutlined, {}), className: styles_module_default3.closeIcon }) })
4773
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { justify: "space-between", className: styles_module_default4.previewHeader, children: [
4774
+ /* @__PURE__ */ jsxRuntime.jsx(Text6, { strong: true, children: file?.fileName || file?.path || "" }),
4775
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { children: [
4776
+ file?.path && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module_default4.previewCloseBtn, onClick: handleDownload, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.DownloadOutlined, {}), className: styles_module_default4.closeIcon }) }),
4777
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames2__default.default(styles_module_default4.previewCloseBtn, styles_module_default4.rotateIcon), onClick: () => chatStore.setPreview({ path: "", fileName: "" }), children: /* @__PURE__ */ jsxRuntime.jsx(antd.Button, { type: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CloseOutlined, {}), className: styles_module_default4.closeIcon }) })
4778
+ ] })
4758
4779
  ] }),
4759
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(common.FilePreview, { fileUrl, suffix }) })
4780
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(common.LuyaFilePreview, { fileUrl, suffix }) })
4760
4781
  ] });
4761
4782
  });
4762
4783
  var ChatPreviewPanel_default = ChatPreviewPanel;
@@ -4768,10 +4789,10 @@ var index_module_default2 = {
4768
4789
  animatedSplitter: "index_module_animatedSplitter",
4769
4790
  hideSplitterBar: "index_module_hideSplitterBar"
4770
4791
  };
4771
- var layouts_default = React9.forwardRef(({ theme: theme4, params, hooks, layout, config, services }, _ref) => {
4772
- const chatStore = React9.useMemo(() => createChatStore(), []);
4773
- const senderRef = React9.useRef(null);
4774
- React9.useImperativeHandle(
4792
+ var layouts_default = React7.forwardRef(({ theme: theme4, params, hooks, layout, config, services }, _ref) => {
4793
+ const chatStore = React7.useMemo(() => createChatStore(), []);
4794
+ const senderRef = React7.useRef(null);
4795
+ React7.useImperativeHandle(
4775
4796
  _ref,
4776
4797
  () => ({
4777
4798
  sendMessage: chatStore.sendMessage,
@@ -4792,20 +4813,20 @@ var layouts_default = React9.forwardRef(({ theme: theme4, params, hooks, layout,
4792
4813
  const configState = valtio.useSnapshot(chatStore.config);
4793
4814
  const agentState = valtio.useSnapshot(chatStore.agent);
4794
4815
  const conversationState = valtio.useSnapshot(chatStore.conversation);
4795
- const containerRef = React9.useRef(null);
4796
- React9.useEffect(() => {
4816
+ const containerRef = React7.useRef(null);
4817
+ React7.useEffect(() => {
4797
4818
  chatStore.setHooks(hooks);
4798
4819
  }, [hooks]);
4799
- React9.useEffect(() => {
4820
+ React7.useEffect(() => {
4800
4821
  chatStore.setLayout(layout);
4801
4822
  }, [layout]);
4802
- React9.useEffect(() => {
4823
+ React7.useEffect(() => {
4803
4824
  chatStore.setParams(params);
4804
4825
  }, [params]);
4805
4826
  common.useDeepEffect(() => {
4806
4827
  chatStore.setServices(services);
4807
4828
  }, [services]);
4808
- React9.useEffect(() => {
4829
+ React7.useEffect(() => {
4809
4830
  chatStore.getModels();
4810
4831
  }, []);
4811
4832
  common.useDeepEffect(() => {
@@ -4829,18 +4850,18 @@ var layouts_default = React9.forwardRef(({ theme: theme4, params, hooks, layout,
4829
4850
  }
4830
4851
  }, [config.agent?.id]);
4831
4852
  common.useDeepEffect(() => {
4832
- if (config?.agent?.id) {
4853
+ if (agentState.agentInfo.id) {
4833
4854
  chatStore.initConversation(config);
4834
4855
  }
4835
- }, [config.agent?.id, config.conversationId]);
4836
- const hasPreView = React9.useMemo(() => {
4856
+ }, [agentState.agentInfo.id, config.conversationId]);
4857
+ const hasPreView = React7.useMemo(() => {
4837
4858
  return common.shouldRender(configState.layout.preview) && !!configState.preview.file.path;
4838
4859
  }, [configState.layout.preview, configState.preview.file]);
4839
- const [sizes, setSizes] = React9.useState([0, "100%"]);
4860
+ const [sizes, setSizes] = React7.useState([0, "100%"]);
4840
4861
  const setSplitterSizes = (sizes2) => {
4841
4862
  setSizes(sizes2);
4842
4863
  };
4843
- React9.useEffect(() => {
4864
+ React7.useEffect(() => {
4844
4865
  if (hasPreView) {
4845
4866
  setSplitterSizes(["50%", "50%"]);
4846
4867
  } else {
@@ -4859,15 +4880,15 @@ var layouts_default = React9.forwardRef(({ theme: theme4, params, hooks, layout,
4859
4880
  clientHeartbeat: false,
4860
4881
  reconnectInterval: 1e4
4861
4882
  });
4862
- React9.useEffect(() => {
4883
+ React7.useEffect(() => {
4863
4884
  hooks?.onBeforeInit?.();
4864
4885
  }, []);
4865
- return /* @__PURE__ */ jsxRuntime.jsx(xV2.XProvider, { theme: { cssVar: {}, ...theme4 }, children: /* @__PURE__ */ jsxRuntime.jsx(ChatProvider, { store: chatStore, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: configState.loading, classNames: { root: index_module_default2.spinWrapper }, children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: classNames7__default.default(index_module_default2.chatLayout, "zero-chat-layout", "height-full"), children: [
4886
+ return /* @__PURE__ */ jsxRuntime.jsx(xV2.XProvider, { theme: { cssVar: {}, ...theme4 }, children: /* @__PURE__ */ jsxRuntime.jsx(ChatProvider, { store: chatStore, children: /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { spinning: configState.loading, classNames: { root: index_module_default2.spinWrapper }, children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { vertical: true, className: classNames2__default.default(index_module_default2.chatLayout, "zero-chat-layout", "height-full"), children: [
4866
4887
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.globalHeader, DefaultComponent: ChatHeader_default }),
4867
4888
  /* @__PURE__ */ jsxRuntime.jsxs(antd.Flex, { ref: containerRef, className: "full-scroll", children: [
4868
4889
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.leftPanel }),
4869
4890
  /* @__PURE__ */ jsxRuntime.jsx(common.RenderWrapper, { control: configState.layout.conversationList, DefaultComponent: ConversationListPanel_default }),
4870
- /* @__PURE__ */ jsxRuntime.jsxs(antd.Splitter, { className: classNames7__default.default("flex-1", index_module_default2.animatedSplitter, { [index_module_default2.hideSplitterBar]: !hasPreView }), children: [
4891
+ /* @__PURE__ */ jsxRuntime.jsxs(antd.Splitter, { className: classNames2__default.default("flex-1", index_module_default2.animatedSplitter, { [index_module_default2.hideSplitterBar]: !hasPreView }), children: [
4871
4892
  /* @__PURE__ */ jsxRuntime.jsx(antd.Splitter.Panel, { collapsible: false, max: 800, min: 400, size: sizes[1], children: /* @__PURE__ */ jsxRuntime.jsx(ChatMainPanel_default, { ref: senderRef }) }),
4872
4893
  /* @__PURE__ */ jsxRuntime.jsx(antd.Splitter.Panel, { collapsible: false, min: 600, size: sizes[0], children: /* @__PURE__ */ jsxRuntime.jsx(
4873
4894
  ChatPreviewPanel_default,
@@ -4882,7 +4903,7 @@ var layouts_default = React9.forwardRef(({ theme: theme4, params, hooks, layout,
4882
4903
  ] }) }) }) });
4883
4904
  });
4884
4905
 
4885
- exports.BubbleListItems = BubbleListItems_default;
4906
+ exports.Attachments = Attachments_default;
4886
4907
  exports.ChatCopilot = layouts_default;
4887
4908
  exports.ChatSender = ChatSender_default;
4888
4909
  exports.MessageRender = MessageRender_default;