@zero-library/chat-copilot 3.1.31 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +2239 -455
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +565 -117
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +645 -8
- package/dist/index.d.ts +645 -8
- package/dist/index.esm.js +2239 -459
- package/dist/index.esm.js.map +1 -1
- package/package.json +7 -5
package/dist/index.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useTranslation, useRefState, useDebounce, createTokenManager, useSyncInput, t, isEmptyObj, markdownToText, RenderWrapper, shouldRender, isFunction, downloadFile, LuyaFilePreview, MarkdownEditor, useDeepEffect, useWebSocket, addBundledResource, isNumber, isObject, isNullOrUnDef, getFileSuffixName, emit, FileIcon, copyText, LazyComponent, isBoolean, UserAvatar, htmlToMarkdown, buildUrlParams, isExternal, transforms, deepCopy, deepMerge, getLang, createRequest, HttpStatus, isArray, isString, isDef, isNull, transform, getWebSocketUrl, safeParseJson } from '@zero-library/common';
|
|
2
|
+
import { CloudUploadOutlined, PaperClipOutlined, createFromIconfontCN, EnterOutlined, DownloadOutlined, CloseOutlined, PlayCircleOutlined, CopyOutlined, DotChartOutlined, ScheduleOutlined, CloseCircleOutlined, BulbOutlined, CheckCircleFilled, LikeOutlined, DislikeOutlined, LoadingOutlined, SearchOutlined, UpOutlined, DownOutlined, PlusOutlined, CommentOutlined, StarFilled, StarOutlined, ShareAltOutlined, ToolOutlined, MessageOutlined, ForwardOutlined, CloudSyncOutlined, FileTextOutlined, SettingOutlined, CloseCircleFilled, FlagOutlined, LoginOutlined, DeleteOutlined, RedoOutlined, ClockCircleOutlined, CheckCircleOutlined, FileImageOutlined, FilePdfOutlined, FileWordOutlined, FileExcelOutlined, FilePptOutlined, FileZipOutlined, FileUnknownOutlined } from '@ant-design/icons';
|
|
2
3
|
import { Attachments, Sender, FileCard, Bubble, Think, XProvider, Mermaid, CodeHighlighter, Welcome, Prompts, Conversations } from '@ant-design/x-v2';
|
|
3
|
-
import {
|
|
4
|
-
import { App, Badge, Button, Flex, Typography, Tooltip, Layout, Tag, Spin, Splitter, Image as Image$1, Popover, Skeleton, Alert, theme, Collapse, Divider as Divider$1, Select as Select$1, Avatar, Space, Form, Drawer, Empty, Modal, Checkbox, Input, InputNumber, Switch as Switch$1, message, Tabs, List, Upload, Popconfirm, Card, Table, Progress as Progress$1 } from 'antd';
|
|
4
|
+
import { App, Badge, Button, Flex, Typography, Tooltip, Layout, Spin, Empty, Segmented, Tabs, Tag, Splitter, Image as Image$1, Popover, Skeleton, Alert, Collapse, Divider as Divider$1, Select as Select$1, Form, Avatar, Space, Drawer, theme, Modal, Checkbox, Input, InputNumber, Switch as Switch$1, message, Upload, Popconfirm, List, Card, Table, Progress as Progress$1 } from 'antd';
|
|
5
5
|
import * as React10 from 'react';
|
|
6
|
-
import React10__default, { createContext, forwardRef, useRef, useEffect, useImperativeHandle, useMemo, memo, useState,
|
|
7
|
-
import { useSnapshot, proxy } from 'valtio';
|
|
6
|
+
import React10__default, { createContext, forwardRef, useRef, useEffect, useImperativeHandle, useMemo, memo, useState, useCallback, useContext, useLayoutEffect } from 'react';
|
|
7
|
+
import { useSnapshot, proxy, subscribe } from 'valtio';
|
|
8
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
9
|
import { LexicalComposer } from '@lexical/react/LexicalComposer';
|
|
10
10
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
@@ -18,7 +18,7 @@ import { LexicalTypeaheadMenuPlugin, MenuOption } from '@lexical/react/LexicalTy
|
|
|
18
18
|
import { mergeRegister } from '@lexical/utils';
|
|
19
19
|
import * as ReactDOM from 'react-dom';
|
|
20
20
|
import dayjs from 'dayjs';
|
|
21
|
-
import
|
|
21
|
+
import classNames10 from 'classnames';
|
|
22
22
|
import console2 from 'console';
|
|
23
23
|
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
24
24
|
import { XCard as XCard$1 } from '@ant-design/x-card';
|
|
@@ -26,7 +26,600 @@ import '@ant-design/x-markdown/themes/light.css';
|
|
|
26
26
|
import XMarkdown from '@ant-design/x-markdown';
|
|
27
27
|
import Latex from '@ant-design/x-markdown/plugins/Latex';
|
|
28
28
|
|
|
29
|
-
// src/
|
|
29
|
+
// src/index.ts
|
|
30
|
+
|
|
31
|
+
// src/i18n/constants.ts
|
|
32
|
+
var NS_CHAT_COPILOT = "chat-copilot";
|
|
33
|
+
|
|
34
|
+
// src/i18n/en-US.ts
|
|
35
|
+
var chatCopilotEnUS = {
|
|
36
|
+
uploadFailed: "Upload failed",
|
|
37
|
+
valuePlaceholder: "Enter value...",
|
|
38
|
+
checkParams: "Please check input parameters",
|
|
39
|
+
inputPlaceholder: "Enter value",
|
|
40
|
+
numberPlaceholder: "Enter number",
|
|
41
|
+
paramSettings: "Parameter Settings",
|
|
42
|
+
all: "All",
|
|
43
|
+
selectSkill: "Select Skill",
|
|
44
|
+
selectKnowledge: "Select Knowledge Base",
|
|
45
|
+
searchSkill: "Search skill name",
|
|
46
|
+
searchKnowledge: "Search knowledge base name",
|
|
47
|
+
noDescription: "No description",
|
|
48
|
+
noMatch: "No matching results",
|
|
49
|
+
selectedCount: "{{count}} Selected",
|
|
50
|
+
added: "Added",
|
|
51
|
+
collapse: "Collapse",
|
|
52
|
+
expand: "Expand",
|
|
53
|
+
history: "History",
|
|
54
|
+
create: "New Conversation",
|
|
55
|
+
share: "Share",
|
|
56
|
+
linkCopied: "Link copied, ready to paste and share",
|
|
57
|
+
unfavorite: "Unfavorite",
|
|
58
|
+
favorite: "Favorite",
|
|
59
|
+
delete: "Delete",
|
|
60
|
+
tipTitle: "Notice",
|
|
61
|
+
confirm: "OK",
|
|
62
|
+
cancel: "Cancel",
|
|
63
|
+
confirmUnfavorite: "Are you sure you want to unfavorite this conversation?",
|
|
64
|
+
unfavoriteTitle: "Unfavorite",
|
|
65
|
+
historyTab: "History",
|
|
66
|
+
historyEmpty: "No conversations",
|
|
67
|
+
favoritesTab: "Favorites",
|
|
68
|
+
favoritesEmpty: "No favorite conversations",
|
|
69
|
+
deepAnalysis: "Deep Analysis",
|
|
70
|
+
summaryAnalysis: "Summary Analysis",
|
|
71
|
+
headerClose: "Close",
|
|
72
|
+
deepThinking: "Deep Thinking",
|
|
73
|
+
skill: "Skill",
|
|
74
|
+
knowledge: "Knowledge Base",
|
|
75
|
+
supportedExtensions: "Supported extensions: {{types}}",
|
|
76
|
+
empty: "No data",
|
|
77
|
+
selectFile: "Select File",
|
|
78
|
+
unsupportedType: "Unsupported file type: {{fileName}} ({{fileType}})",
|
|
79
|
+
maxFileCountExceed: "{{fileName}} can upload up to {{max}} files for this type",
|
|
80
|
+
maxFileSizeExceed: "File size cannot exceed {{max}} MB",
|
|
81
|
+
waitUpload: "Please wait for all files to finish uploading",
|
|
82
|
+
checkFailed: "Please check the files that failed to upload",
|
|
83
|
+
dropTitle: "Drop files here",
|
|
84
|
+
uploadTitle: "Upload Files",
|
|
85
|
+
uploadDescription: "Click or drag files to this area to upload",
|
|
86
|
+
chatPlaceholder: "What can I help you with today?",
|
|
87
|
+
selectPlaceholder: "Please select...",
|
|
88
|
+
unnamedReport: "Untitled Report",
|
|
89
|
+
unnamedChart: "Untitled Chart",
|
|
90
|
+
unnamedTable: "Untitled Table",
|
|
91
|
+
unnamedContent: "Untitled Content",
|
|
92
|
+
chart: "Chart",
|
|
93
|
+
exportPng: "Export PNG",
|
|
94
|
+
report: "Report",
|
|
95
|
+
exportMd: "Export MD",
|
|
96
|
+
table: "Table",
|
|
97
|
+
exportCsv: "Export CSV",
|
|
98
|
+
exportJson: "Export JSON",
|
|
99
|
+
boolYes: "Yes",
|
|
100
|
+
boolNo: "No",
|
|
101
|
+
formTitle: "Form",
|
|
102
|
+
stepIndicator: "Step {{current}}/{{total}}",
|
|
103
|
+
prevStep: "Previous",
|
|
104
|
+
nextStep: "Next",
|
|
105
|
+
submit: "Submit",
|
|
106
|
+
submitFailed: "Submission failed, please try again later",
|
|
107
|
+
questionTitle: "Question",
|
|
108
|
+
questionSummary: "{{label}}: {{content}}",
|
|
109
|
+
questionCancelled: "Cancelled",
|
|
110
|
+
questionAnswered: "Answered",
|
|
111
|
+
questionDetails: "{{details}}",
|
|
112
|
+
basicInfoSubmitted: "Basic information submitted",
|
|
113
|
+
paramsSubmitted: "Parameter configuration submitted",
|
|
114
|
+
backToBasic: "Went back to edit basic information",
|
|
115
|
+
backToParams: "Went back to edit parameters",
|
|
116
|
+
createConfirmed: "Creation confirmed",
|
|
117
|
+
actionSelected: "Selected",
|
|
118
|
+
actionSubmitted: "Submitted",
|
|
119
|
+
actionSubmittedNamed: "Submitted action ({{name}})",
|
|
120
|
+
quotedMessage: "[Quoted Message]:",
|
|
121
|
+
answered: "Answered",
|
|
122
|
+
inputGenerating: "Generating input...",
|
|
123
|
+
inputParams: "Input Parameters",
|
|
124
|
+
outputResult: "Output Result",
|
|
125
|
+
subAgentRunning: "Sub-agent running...",
|
|
126
|
+
subAgentNested: "Sub-agent content (nested level {{depth}}, collapsed)",
|
|
127
|
+
noTasks: "No tasks",
|
|
128
|
+
clickHere: "Click here",
|
|
129
|
+
unsupportedChart: "Unsupported chart",
|
|
130
|
+
unsupportedChartDesc: 'Chart type "{{type}}" is not implemented yet. Please check the chart type.',
|
|
131
|
+
previewEdit: "Preview & Edit",
|
|
132
|
+
copy: "Copy",
|
|
133
|
+
continueText: "Continue",
|
|
134
|
+
aggregate: "Aggregate",
|
|
135
|
+
sequence: "Sequence",
|
|
136
|
+
chatTab: "Chat",
|
|
137
|
+
traceTab: "Execution Trace",
|
|
138
|
+
previewTab: "File Preview",
|
|
139
|
+
subAgentTab: "Sub-agent",
|
|
140
|
+
subAgentExecutionDetail: "Sub-agent execution details",
|
|
141
|
+
closeSubAgentDetail: "Close sub-agent details",
|
|
142
|
+
execItemRunning: "Running",
|
|
143
|
+
execItemDone: "Completed",
|
|
144
|
+
execItemFailed: "Failed",
|
|
145
|
+
execItemThinking: "Reasoning",
|
|
146
|
+
execItemFile: "File",
|
|
147
|
+
execItemPlan: "Plan",
|
|
148
|
+
execItemSummaryDone: "{{count}} completed",
|
|
149
|
+
execItemSummaryFailed: "{{count}} failed",
|
|
150
|
+
execItemSummaryRunning: "{{count}} running",
|
|
151
|
+
toolCallFallback: "Tool call",
|
|
152
|
+
viewExecutionDetail: "View execution details",
|
|
153
|
+
executionStart: "Start",
|
|
154
|
+
executionEnd: "End",
|
|
155
|
+
unmatchedStep: "Unmatched step",
|
|
156
|
+
totalDuration: "Total duration {{value}}",
|
|
157
|
+
contextSummary: "Context {{messages}} messages \xB7 {{tools}} tools \xB7 {{model}}",
|
|
158
|
+
tokenUsage: "Input {{input}} -> Output {{output}} tokens",
|
|
159
|
+
modelRequestStarted: "Model call started",
|
|
160
|
+
modelRequest: "Model request",
|
|
161
|
+
executionMetaModel: "Model {{model}} \xB7 Context window {{contextWindow}}",
|
|
162
|
+
traceMessages: "Messages ({{count}})",
|
|
163
|
+
traceTools: "Tools ({{count}})",
|
|
164
|
+
thoughtChain: "Thought chain",
|
|
165
|
+
mainContent: "Content",
|
|
166
|
+
toolCall: "Tool call",
|
|
167
|
+
result: "Result",
|
|
168
|
+
metadata: "Metadata",
|
|
169
|
+
params: "Parameters",
|
|
170
|
+
userInput: "User Input",
|
|
171
|
+
output: "Output",
|
|
172
|
+
executionFinished: "Completed",
|
|
173
|
+
executionRunning: "Running",
|
|
174
|
+
executionLabel: "Execution #{{id}}",
|
|
175
|
+
duration: "Duration {{value}}",
|
|
176
|
+
inputCount: "Input {{count}}",
|
|
177
|
+
outputCount: "Output {{count}}",
|
|
178
|
+
turnsCount: "{{count}} turns",
|
|
179
|
+
toolsCount: "{{count}} tool calls",
|
|
180
|
+
eventsCount: "{{count}} events",
|
|
181
|
+
userMessage: "User Message",
|
|
182
|
+
turnLabel: "Turn {{index}} \xB7 {{title}}",
|
|
183
|
+
turnFallback: "Turn {{index}}",
|
|
184
|
+
executionCountSorted: "{{count}} runs \xB7 sorted by time",
|
|
185
|
+
eventDetail: "Event Details",
|
|
186
|
+
traceSelectHint: "Click an event on the left to view details",
|
|
187
|
+
executionTraceEmpty: "No execution trace data",
|
|
188
|
+
roleUser: "User",
|
|
189
|
+
roleAssistant: "Assistant",
|
|
190
|
+
roleTool: "Tool",
|
|
191
|
+
roleSystem: "System",
|
|
192
|
+
noVariables: "No variables available",
|
|
193
|
+
dateToday: "Today",
|
|
194
|
+
dateLast7Days: "Last 7 Days",
|
|
195
|
+
dateLast30Days: "Last 30 Days",
|
|
196
|
+
dateLastHalfYear: "Last 6 Months",
|
|
197
|
+
dateEarlier: "Earlier",
|
|
198
|
+
previewNotSupported: "Preview is not supported in this environment",
|
|
199
|
+
deleteSuccess: "Deleted successfully",
|
|
200
|
+
operationBlocked: "Operation blocked",
|
|
201
|
+
favoriteSuccess: "Added to favorites",
|
|
202
|
+
unfavoriteSuccess: "Removed from favorites",
|
|
203
|
+
feedbackThanks: "Thank you for your feedback",
|
|
204
|
+
sendFailed: "Send failed, please retry",
|
|
205
|
+
newConversationTitle: "New Conversation",
|
|
206
|
+
stopped: "Stopped",
|
|
207
|
+
greetingHello: "Hello, I am",
|
|
208
|
+
greetingSubtitle: "What would you like to explore today?",
|
|
209
|
+
disclaimer: "Content is AI-generated, for reference only. Please verify carefully.",
|
|
210
|
+
helloIam: "Hello, I am {{name}}",
|
|
211
|
+
newConversation: "New Conversation",
|
|
212
|
+
uploadFromLocal: "Upload from local",
|
|
213
|
+
edit: "Edit",
|
|
214
|
+
noUserInputFields: "No user input fields",
|
|
215
|
+
startConversation: "Start Conversation"
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
// src/i18n/ja-JP.ts
|
|
219
|
+
var chatCopilotJaJP = {
|
|
220
|
+
// UserInputPanel
|
|
221
|
+
uploadFailed: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
222
|
+
valuePlaceholder: "\u5024\u3092\u5165\u529B...",
|
|
223
|
+
checkParams: "\u5165\u529B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044",
|
|
224
|
+
inputPlaceholder: "\u5024\u3092\u5165\u529B",
|
|
225
|
+
numberPlaceholder: "\u6570\u5024\u3092\u5165\u529B",
|
|
226
|
+
paramSettings: "\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A",
|
|
227
|
+
// ResourceSelectorModal
|
|
228
|
+
all: "\u3059\u3079\u3066",
|
|
229
|
+
selectSkill: "\u30B9\u30AD\u30EB\u3092\u9078\u629E",
|
|
230
|
+
selectKnowledge: "\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u3092\u9078\u629E",
|
|
231
|
+
searchSkill: "\u30B9\u30AD\u30EB\u540D\u3092\u691C\u7D22",
|
|
232
|
+
searchKnowledge: "\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u540D\u3092\u691C\u7D22",
|
|
233
|
+
noDescription: "\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
234
|
+
noMatch: "\u691C\u7D22\u7D50\u679C\u306B\u4E00\u81F4\u3059\u308B\u3082\u306E\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
235
|
+
selectedCount: "{{count}}\u4EF6\u9078\u629E\u4E2D",
|
|
236
|
+
added: "\u8FFD\u52A0\u6E08\u307F",
|
|
237
|
+
collapse: "\u6298\u308A\u305F\u305F\u3080",
|
|
238
|
+
expand: "\u5C55\u958B\u3059\u308B",
|
|
239
|
+
// HistoryBtn
|
|
240
|
+
history: "\u4F1A\u8A71\u5C65\u6B74",
|
|
241
|
+
// CreateBtn
|
|
242
|
+
create: "\u65B0\u3057\u3044\u4F1A\u8A71",
|
|
243
|
+
// ConversationShareBtn
|
|
244
|
+
share: "\u5171\u6709",
|
|
245
|
+
linkCopied: "\u30EA\u30F3\u30AF\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F\u3002\u305D\u306E\u307E\u307E\u8CBC\u308A\u4ED8\u3051\u3066\u5171\u6709\u3067\u304D\u307E\u3059",
|
|
246
|
+
// ConversationFavoritesBtn
|
|
247
|
+
unfavorite: "\u304A\u6C17\u306B\u5165\u308A\u3092\u89E3\u9664",
|
|
248
|
+
favorite: "\u304A\u6C17\u306B\u5165\u308A",
|
|
249
|
+
// ConversationList
|
|
250
|
+
delete: "\u524A\u9664",
|
|
251
|
+
tipTitle: "\u30D2\u30F3\u30C8",
|
|
252
|
+
confirm: "OK",
|
|
253
|
+
cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
|
|
254
|
+
confirmUnfavorite: "\u3053\u306E\u4F1A\u8A71\u3092\u304A\u6C17\u306B\u5165\u308A\u304B\u3089\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
|
|
255
|
+
unfavoriteTitle: "\u304A\u6C17\u306B\u5165\u308A\u3092\u89E3\u9664",
|
|
256
|
+
historyTab: "\u4F1A\u8A71\u5C65\u6B74",
|
|
257
|
+
historyEmpty: "\u4F1A\u8A71\u5C65\u6B74\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
258
|
+
favoritesTab: "\u304A\u6C17\u306B\u5165\u308A\u4F1A\u8A71",
|
|
259
|
+
favoritesEmpty: "\u304A\u6C17\u306B\u5165\u308A\u306E\u4F1A\u8A71\u306F\u3042\u308A\u307E\u305B\u3093",
|
|
260
|
+
// ChatSender
|
|
261
|
+
deepAnalysis: "\u8A73\u7D30\u5206\u6790",
|
|
262
|
+
summaryAnalysis: "\u6982\u8981\u5206\u6790",
|
|
263
|
+
// ChatHeader
|
|
264
|
+
headerClose: "\u9589\u3058\u308B",
|
|
265
|
+
// ReasonBtn / SkillBtn / KnowledgeBtn
|
|
266
|
+
deepThinking: "\u601D\u8003\u30D7\u30ED\u30BB\u30B9",
|
|
267
|
+
skill: "\u30B9\u30AD\u30EB",
|
|
268
|
+
knowledge: "\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9",
|
|
269
|
+
// Attachments
|
|
270
|
+
supportedExtensions: "\u5BFE\u5FDC\u62E1\u5F35\u5B50\uFF1A{{types}}",
|
|
271
|
+
empty: "\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
272
|
+
selectFile: "\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E",
|
|
273
|
+
unsupportedType: "\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\uFF1A{{fileName}} ({{fileType}})",
|
|
274
|
+
maxFileCountExceed: "\u3010{{fileName}}\u3011\u306E\u30BF\u30A4\u30D7\u306F\u6700\u5927{{max}}\u4EF6\u307E\u3067\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u3059",
|
|
275
|
+
maxFileSizeExceed: "\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u306F{{max}}MB\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
|
|
276
|
+
waitUpload: "\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u5B8C\u4E86\u307E\u3067\u304A\u5F85\u3061\u304F\u3060\u3055\u3044",
|
|
277
|
+
checkFailed: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044",
|
|
278
|
+
dropTitle: "\u3053\u3053\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30ED\u30C3\u30D7",
|
|
279
|
+
uploadTitle: "\u30D5\u30A1\u30A4\u30EB\u3092\u9001\u4FE1",
|
|
280
|
+
uploadDescription: "\u30AF\u30EA\u30C3\u30AF\u307E\u305F\u306F\u30C9\u30E9\u30C3\u30B0\uFF06\u30C9\u30ED\u30C3\u30D7\u3067\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",
|
|
281
|
+
// ChatInput
|
|
282
|
+
chatPlaceholder: "\u4ECA\u65E5\u306F\u4F55\u3092\u304A\u624B\u4F1D\u3044\u3057\u307E\u3057\u3087\u3046\u304B\uFF1F",
|
|
283
|
+
// A2UI ランタイム
|
|
284
|
+
selectPlaceholder: "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044...",
|
|
285
|
+
unnamedReport: "\u7121\u984C\u306E\u30EC\u30DD\u30FC\u30C8",
|
|
286
|
+
unnamedChart: "\u7121\u984C\u306E\u30B0\u30E9\u30D5",
|
|
287
|
+
unnamedTable: "\u7121\u984C\u306E\u30C6\u30FC\u30D6\u30EB",
|
|
288
|
+
unnamedContent: "\u7121\u984C\u306E\u30B3\u30F3\u30C6\u30F3\u30C4",
|
|
289
|
+
chart: "\u30B0\u30E9\u30D5",
|
|
290
|
+
exportPng: "PNG \u3092\u51FA\u529B",
|
|
291
|
+
report: "\u30EC\u30DD\u30FC\u30C8",
|
|
292
|
+
exportMd: "Markdown \u3092\u51FA\u529B",
|
|
293
|
+
table: "\u30C6\u30FC\u30D6\u30EB",
|
|
294
|
+
exportCsv: "CSV \u3092\u51FA\u529B",
|
|
295
|
+
exportJson: "JSON \u3092\u51FA\u529B",
|
|
296
|
+
boolYes: "\u306F\u3044",
|
|
297
|
+
boolNo: "\u3044\u3044\u3048",
|
|
298
|
+
formTitle: "\u30D5\u30A9\u30FC\u30E0",
|
|
299
|
+
stepIndicator: "\u30B9\u30C6\u30C3\u30D7 {{current}}/{{total}}",
|
|
300
|
+
prevStep: "\u524D\u3078",
|
|
301
|
+
nextStep: "\u6B21\u3078",
|
|
302
|
+
submit: "\u9001\u4FE1",
|
|
303
|
+
submitFailed: "\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
|
|
304
|
+
questionTitle: "\u8CEA\u554F",
|
|
305
|
+
questionSummary: "{{label}}: {{content}}",
|
|
306
|
+
questionCancelled: "\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F",
|
|
307
|
+
questionAnswered: "\u56DE\u7B54\u6E08\u307F",
|
|
308
|
+
questionDetails: "{{details}}",
|
|
309
|
+
basicInfoSubmitted: "\u57FA\u672C\u60C5\u5831\u3092\u9001\u4FE1\u3057\u307E\u3057\u305F",
|
|
310
|
+
paramsSubmitted: "\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A\u3092\u9001\u4FE1\u3057\u307E\u3057\u305F",
|
|
311
|
+
backToBasic: "\u57FA\u672C\u60C5\u5831\u306E\u7DE8\u96C6\u306B\u623B\u308A\u307E\u3057\u305F",
|
|
312
|
+
backToParams: "\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u7DE8\u96C6\u306B\u623B\u308A\u307E\u3057\u305F",
|
|
313
|
+
createConfirmed: "\u4F5C\u6210\u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F",
|
|
314
|
+
actionSelected: "\u9078\u629E\u3057\u307E\u3057\u305F",
|
|
315
|
+
actionSubmitted: "\u9001\u4FE1\u3057\u307E\u3057\u305F",
|
|
316
|
+
actionSubmittedNamed: "\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u9001\u4FE1\u3057\u307E\u3057\u305F ({{name}})",
|
|
317
|
+
quotedMessage: "\u3010\u5F15\u7528\u30E1\u30C3\u30BB\u30FC\u30B8\u3011\uFF1A",
|
|
318
|
+
answered: "\u56DE\u7B54\u6E08\u307F",
|
|
319
|
+
// ツールレンダリング
|
|
320
|
+
inputGenerating: "\u5165\u529B\u751F\u6210\u4E2D",
|
|
321
|
+
inputParams: "\u5165\u529B\u30D1\u30E9\u30E1\u30FC\u30BF",
|
|
322
|
+
outputResult: "\u51FA\u529B\u7D50\u679C",
|
|
323
|
+
subAgentRunning: "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u5B9F\u884C\u4E2D...",
|
|
324
|
+
subAgentNested: "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u5B9F\u884C\u5185\u5BB9\uFF08\u30CD\u30B9\u30C8\u30EC\u30D9\u30EB {{depth}}\u3001\u6298\u308A\u305F\u305F\u307F\u6E08\u307F\uFF09",
|
|
325
|
+
noTasks: "\u30BF\u30B9\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
326
|
+
clickHere: "\u3053\u3053\u3092\u30AF\u30EA\u30C3\u30AF",
|
|
327
|
+
unsupportedChart: "\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30C1\u30E3\u30FC\u30C8",
|
|
328
|
+
unsupportedChartDesc: '\u30C1\u30E3\u30FC\u30C8\u30BF\u30A4\u30D7 "{{type}}" \u306F\u307E\u3060\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30C1\u30E3\u30FC\u30C8\u30BF\u30A4\u30D7\u304C\u6B63\u3057\u3044\u304B\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002',
|
|
329
|
+
previewEdit: "\u30D7\u30EC\u30D3\u30E5\u30FC\uFF06\u7DE8\u96C6",
|
|
330
|
+
copy: "\u30B3\u30D4\u30FC",
|
|
331
|
+
continueText: "\u7D9A\u3051\u308B",
|
|
332
|
+
aggregate: "\u96C6\u7D04",
|
|
333
|
+
sequence: "\u9806\u756A",
|
|
334
|
+
chatTab: "\u4F1A\u8A71",
|
|
335
|
+
traceTab: "\u5B9F\u884C\u30C8\u30EC\u30FC\u30B9",
|
|
336
|
+
previewTab: "\u30D5\u30A1\u30A4\u30EB\u30D7\u30EC\u30D3\u30E5\u30FC",
|
|
337
|
+
subAgentTab: "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
|
|
338
|
+
subAgentExecutionDetail: "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u5B9F\u884C\u8A73\u7D30",
|
|
339
|
+
closeSubAgentDetail: "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u8A73\u7D30\u3092\u9589\u3058\u308B",
|
|
340
|
+
execItemRunning: "\u5B9F\u884C\u4E2D",
|
|
341
|
+
execItemDone: "\u5B9F\u884C\u6E08\u307F",
|
|
342
|
+
execItemFailed: "\u5B9F\u884C\u5931\u6557",
|
|
343
|
+
execItemThinking: "\u601D\u8003\u30D7\u30ED\u30BB\u30B9",
|
|
344
|
+
execItemFile: "\u30D5\u30A1\u30A4\u30EB",
|
|
345
|
+
execItemPlan: "\u5B9F\u884C\u8A08\u753B",
|
|
346
|
+
execItemSummaryDone: "{{count}}\u4EF6\u5B8C\u4E86",
|
|
347
|
+
execItemSummaryFailed: "{{count}}\u4EF6\u5931\u6557",
|
|
348
|
+
execItemSummaryRunning: "{{count}}\u4EF6\u5B9F\u884C\u4E2D",
|
|
349
|
+
toolCallFallback: "\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057",
|
|
350
|
+
viewExecutionDetail: "\u5B9F\u884C\u8A73\u7D30\u3092\u898B\u308B",
|
|
351
|
+
executionStart: "\u958B\u59CB",
|
|
352
|
+
executionEnd: "\u7D42\u4E86",
|
|
353
|
+
unmatchedStep: "\u672A\u5BFE\u5FDC\u30B9\u30C6\u30C3\u30D7",
|
|
354
|
+
totalDuration: "\u7DCF\u6240\u8981\u6642\u9593 {{value}}",
|
|
355
|
+
contextSummary: "\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 {{messages}} \u4EF6\u306E\u30E1\u30C3\u30BB\u30FC\u30B8 \xB7 {{tools}} \u500B\u306E\u30C4\u30FC\u30EB \xB7 {{model}}",
|
|
356
|
+
tokenUsage: "\u5165\u529B {{input}} -> \u51FA\u529B {{output}} tokens",
|
|
357
|
+
modelRequestStarted: "\u30E2\u30C7\u30EB\u547C\u3073\u51FA\u3057\u3092\u958B\u59CB",
|
|
358
|
+
modelRequest: "\u30E2\u30C7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8",
|
|
359
|
+
executionMetaModel: "\u30E2\u30C7\u30EB {{model}} \xB7 \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30A6\u30A3\u30F3\u30C9\u30A6 {{contextWindow}}",
|
|
360
|
+
traceMessages: "\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08{{count}}\uFF09",
|
|
361
|
+
traceTools: "\u30C4\u30FC\u30EB\uFF08{{count}}\uFF09",
|
|
362
|
+
thoughtChain: "\u601D\u8003\u30C1\u30A7\u30FC\u30F3",
|
|
363
|
+
mainContent: "\u672C\u6587",
|
|
364
|
+
toolCall: "\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057",
|
|
365
|
+
result: "\u7D50\u679C",
|
|
366
|
+
metadata: "\u30E1\u30BF\u30C7\u30FC\u30BF",
|
|
367
|
+
params: "\u30D1\u30E9\u30E1\u30FC\u30BF",
|
|
368
|
+
userInput: "\u30E6\u30FC\u30B6\u30FC\u5165\u529B",
|
|
369
|
+
output: "\u51FA\u529B",
|
|
370
|
+
executionFinished: "\u5B9F\u884C\u5B8C\u4E86",
|
|
371
|
+
executionRunning: "\u5B9F\u884C\u4E2D",
|
|
372
|
+
executionLabel: "\u5B9F\u884C #{{id}}",
|
|
373
|
+
duration: "\u6240\u8981\u6642\u9593 {{value}}",
|
|
374
|
+
inputCount: "\u5165\u529B {{count}}",
|
|
375
|
+
outputCount: "\u51FA\u529B {{count}}",
|
|
376
|
+
turnsCount: "{{count}}\u30BF\u30FC\u30F3",
|
|
377
|
+
toolsCount: "{{count}}\u56DE\u30C4\u30FC\u30EB",
|
|
378
|
+
eventsCount: "{{count}}\u4EF6\u306E\u30A4\u30D9\u30F3\u30C8",
|
|
379
|
+
userMessage: "\u30E6\u30FC\u30B6\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8",
|
|
380
|
+
turnLabel: "\u30BF\u30FC\u30F3 {{index}} \xB7 {{title}}",
|
|
381
|
+
turnFallback: "\u30BF\u30FC\u30F3 {{index}}",
|
|
382
|
+
executionCountSorted: "\u5168 {{count}} \u56DE\u306E\u5B9F\u884C \xB7 \u6642\u7CFB\u5217\u9806",
|
|
383
|
+
eventDetail: "\u30A4\u30D9\u30F3\u30C8\u8A73\u7D30",
|
|
384
|
+
traceSelectHint: "\u5DE6\u5074\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u8A73\u7D30\u3092\u8868\u793A",
|
|
385
|
+
executionTraceEmpty: "\u5B9F\u884C\u30C8\u30EC\u30FC\u30B9\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
386
|
+
roleUser: "\u30E6\u30FC\u30B6\u30FC",
|
|
387
|
+
roleAssistant: "\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8",
|
|
388
|
+
roleTool: "\u30C4\u30FC\u30EB",
|
|
389
|
+
roleSystem: "\u30B7\u30B9\u30C6\u30E0",
|
|
390
|
+
// MonacoEditor
|
|
391
|
+
noVariables: "\u5229\u7528\u3067\u304D\u308B\u5909\u6570\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
392
|
+
// 会話時間グループ
|
|
393
|
+
dateToday: "\u4ECA\u65E5",
|
|
394
|
+
dateLast7Days: "\u6700\u8FD1 7 \u65E5\u9593",
|
|
395
|
+
dateLast30Days: "\u6700\u8FD1 30 \u65E5\u9593",
|
|
396
|
+
dateLastHalfYear: "\u904E\u53BB\u534A\u5E74",
|
|
397
|
+
dateEarlier: "\u305D\u308C\u4EE5\u524D",
|
|
398
|
+
// store 操作ヒント
|
|
399
|
+
previewNotSupported: "\u73FE\u5728\u306E\u74B0\u5883\u3067\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",
|
|
400
|
+
deleteSuccess: "\u524A\u9664\u3057\u307E\u3057\u305F",
|
|
401
|
+
operationBlocked: "\u64CD\u4F5C\u304C\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3057\u305F",
|
|
402
|
+
favoriteSuccess: "\u304A\u6C17\u306B\u5165\u308A\u306B\u8FFD\u52A0\u3057\u307E\u3057\u305F",
|
|
403
|
+
unfavoriteSuccess: "\u304A\u6C17\u306B\u5165\u308A\u3092\u89E3\u9664\u3057\u307E\u3057\u305F",
|
|
404
|
+
feedbackThanks: "\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059",
|
|
405
|
+
sendFailed: "\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
|
|
406
|
+
newConversationTitle: "\u65B0\u898F\u4F1A\u8A71",
|
|
407
|
+
// レイアウト / メッセージ
|
|
408
|
+
stopped: "\u505C\u6B62\u3057\u307E\u3057\u305F",
|
|
409
|
+
greetingHello: "\u3053\u3093\u306B\u3061\u306F\u3001\u79C1\u306F",
|
|
410
|
+
greetingSubtitle: "\u4ECA\u65E5\u306F\u4F55\u3092\u63A2\u691C\u3057\u307E\u3057\u3087\u3046\u304B\uFF1F",
|
|
411
|
+
disclaimer: "\u3053\u306E\u5185\u5BB9\u306F AI \u304C\u751F\u6210\u3057\u305F\u3082\u306E\u3067\u3059\u3002\u53C2\u8003\u3068\u3057\u3066\u3054\u5229\u7528\u304F\u3060\u3055\u3044\u3002\u6B63\u78BA\u6027\u3092\u3054\u78BA\u8A8D\u306E\u3046\u3048\u3054\u5229\u7528\u304F\u3060\u3055\u3044",
|
|
412
|
+
helloIam: "\u3053\u3093\u306B\u3061\u306F\u3001\u79C1\u306F{{name}}\u3067\u3059",
|
|
413
|
+
newConversation: "\u65B0\u3057\u3044\u4F1A\u8A71",
|
|
414
|
+
// UserInputPanel
|
|
415
|
+
uploadFromLocal: "\u30ED\u30FC\u30AB\u30EB\u304B\u3089\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",
|
|
416
|
+
edit: "\u7DE8\u96C6",
|
|
417
|
+
noUserInputFields: "\u30E6\u30FC\u30B6\u30FC\u5165\u529B\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
418
|
+
startConversation: "\u4F1A\u8A71\u3092\u958B\u59CB"
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
// src/i18n/zh-CN.ts
|
|
422
|
+
var chatCopilotZhCN = {
|
|
423
|
+
// UserInputPanel
|
|
424
|
+
uploadFailed: "\u4E0A\u4F20\u5931\u8D25",
|
|
425
|
+
valuePlaceholder: "\u8BF7\u8F93\u5165\u503C...",
|
|
426
|
+
checkParams: "\u8BF7\u68C0\u67E5\u8F93\u5165\u53C2\u6570",
|
|
427
|
+
inputPlaceholder: "\u8BF7\u8F93\u5165\u503C",
|
|
428
|
+
numberPlaceholder: "\u8BF7\u8F93\u5165\u6570\u503C",
|
|
429
|
+
paramSettings: "\u53C2\u6570\u8BBE\u7F6E",
|
|
430
|
+
// ResourceSelectorModal
|
|
431
|
+
all: "\u5168\u90E8",
|
|
432
|
+
selectSkill: "\u9009\u62E9\u6280\u80FD",
|
|
433
|
+
selectKnowledge: "\u9009\u62E9\u77E5\u8BC6\u5E93",
|
|
434
|
+
searchSkill: "\u641C\u7D22\u6280\u80FD\u540D\u79F0",
|
|
435
|
+
searchKnowledge: "\u641C\u7D22\u77E5\u8BC6\u5E93\u540D\u79F0",
|
|
436
|
+
noDescription: "\u6682\u65E0\u63CF\u8FF0",
|
|
437
|
+
noMatch: "\u6682\u65E0\u5339\u914D\u7684\u641C\u7D22\u7ED3\u679C",
|
|
438
|
+
selectedCount: "\u5DF2\u9009 {{count}}",
|
|
439
|
+
added: "\u5DF2\u6DFB\u52A0",
|
|
440
|
+
collapse: "\u6536\u8D77",
|
|
441
|
+
expand: "\u5C55\u5F00",
|
|
442
|
+
// HistoryBtn
|
|
443
|
+
history: "\u5386\u53F2\u4F1A\u8BDD",
|
|
444
|
+
// CreateBtn
|
|
445
|
+
create: "\u65B0\u5EFA\u4F1A\u8BDD",
|
|
446
|
+
// ConversationShareBtn
|
|
447
|
+
share: "\u5206\u4EAB",
|
|
448
|
+
linkCopied: "\u94FE\u63A5\u5DF2\u590D\u5236\uFF0C\u53EF\u76F4\u63A5\u7C98\u8D34\u5206\u4EAB",
|
|
449
|
+
// ConversationFavoritesBtn
|
|
450
|
+
unfavorite: "\u53D6\u6D88\u6536\u85CF",
|
|
451
|
+
favorite: "\u6536\u85CF",
|
|
452
|
+
// ConversationList
|
|
453
|
+
delete: "\u5220\u9664",
|
|
454
|
+
tipTitle: "\u63D0\u793A",
|
|
455
|
+
confirm: "\u786E\u5B9A",
|
|
456
|
+
cancel: "\u53D6\u6D88",
|
|
457
|
+
confirmUnfavorite: "\u786E\u8BA4\u53D6\u6D88\u6536\u85CF\u8BE5\u4F1A\u8BDD\u5417\uFF1F",
|
|
458
|
+
unfavoriteTitle: "\u53D6\u6D88\u6536\u85CF",
|
|
459
|
+
historyTab: "\u5386\u53F2\u4F1A\u8BDD",
|
|
460
|
+
historyEmpty: "\u6682\u65E0\u4F1A\u8BDD\u8BB0\u5F55",
|
|
461
|
+
favoritesTab: "\u6536\u85CF\u4F1A\u8BDD",
|
|
462
|
+
favoritesEmpty: "\u6682\u65E0\u6536\u85CF\u4F1A\u8BDD",
|
|
463
|
+
// ChatSender
|
|
464
|
+
deepAnalysis: "\u6DF1\u5EA6\u89E3\u8BFB",
|
|
465
|
+
summaryAnalysis: "\u6982\u8981\u89E3\u8BFB",
|
|
466
|
+
// ChatHeader
|
|
467
|
+
headerClose: "\u5173\u95ED",
|
|
468
|
+
// ReasonBtn / SkillBtn / KnowledgeBtn
|
|
469
|
+
deepThinking: "\u6DF1\u5EA6\u601D\u8003",
|
|
470
|
+
skill: "\u6280\u80FD",
|
|
471
|
+
knowledge: "\u77E5\u8BC6\u5E93",
|
|
472
|
+
// Attachments
|
|
473
|
+
supportedExtensions: "\u652F\u6301\u6269\u5C55\u540D\uFF1A{{types}}",
|
|
474
|
+
empty: "\u6682\u65E0\u6570\u636E",
|
|
475
|
+
selectFile: "\u9009\u62E9\u6587\u4EF6",
|
|
476
|
+
unsupportedType: "\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B\uFF1A{{fileName}} ({{fileType}})",
|
|
477
|
+
maxFileCountExceed: "\u3010{{fileName}}\u3011\u6240\u5C5E\u7C7B\u578B\u6700\u591A\u53EA\u80FD\u4E0A\u4F20 {{max}} \u4E2A\u6587\u4EF6",
|
|
478
|
+
maxFileSizeExceed: "\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 {{max}} MB",
|
|
479
|
+
waitUpload: "\u8BF7\u7B49\u5F85\u6240\u6709\u6587\u4EF6\u4E0A\u4F20\u5B8C\u6210",
|
|
480
|
+
checkFailed: "\u8BF7\u68C0\u67E5\u4E0A\u4F20\u5931\u8D25\u7684\u6587\u4EF6",
|
|
481
|
+
dropTitle: "\u5C06\u6587\u4EF6\u653E\u5230\u8FD9\u91CC",
|
|
482
|
+
uploadTitle: "\u63D0\u4EA4\u6587\u4EF6",
|
|
483
|
+
uploadDescription: "\u5355\u51FB\u6216\u62D6\u52A8\u6587\u4EF6\u5230\u6B64\u533A\u57DF\u8FDB\u884C\u4E0A\u4F20",
|
|
484
|
+
// ChatInput
|
|
485
|
+
chatPlaceholder: "\u4ECA\u5929\u5E2E\u4F60\u505A\u4E9B\u4EC0\u4E48\uFF1F",
|
|
486
|
+
// A2UI 运行时
|
|
487
|
+
selectPlaceholder: "\u8BF7\u9009\u62E9...",
|
|
488
|
+
unnamedReport: "\u672A\u547D\u540D\u62A5\u544A",
|
|
489
|
+
unnamedChart: "\u672A\u547D\u540D\u56FE\u8868",
|
|
490
|
+
unnamedTable: "\u672A\u547D\u540D\u8868\u683C",
|
|
491
|
+
unnamedContent: "\u672A\u547D\u540D\u5185\u5BB9",
|
|
492
|
+
chart: "\u56FE\u8868",
|
|
493
|
+
exportPng: "\u5BFC\u51FAPNG",
|
|
494
|
+
report: "\u62A5\u544A",
|
|
495
|
+
exportMd: "\u5BFC\u51FAMD",
|
|
496
|
+
table: "\u8868\u683C",
|
|
497
|
+
exportCsv: "\u5BFC\u51FACSV",
|
|
498
|
+
exportJson: "\u5BFC\u51FAJSON",
|
|
499
|
+
boolYes: "\u662F",
|
|
500
|
+
boolNo: "\u5426",
|
|
501
|
+
formTitle: "\u8868\u5355",
|
|
502
|
+
stepIndicator: "\u6B65\u9AA4 {{current}}/{{total}}",
|
|
503
|
+
prevStep: "\u4E0A\u4E00\u6B65",
|
|
504
|
+
nextStep: "\u4E0B\u4E00\u6B65",
|
|
505
|
+
submit: "\u63D0\u4EA4",
|
|
506
|
+
submitFailed: "\u63D0\u4EA4\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",
|
|
507
|
+
questionTitle: "\u95EE\u9898",
|
|
508
|
+
questionSummary: "{{label}}\uFF1A{{content}}",
|
|
509
|
+
questionCancelled: "\u5DF2\u53D6\u6D88",
|
|
510
|
+
questionAnswered: "\u5DF2\u56DE\u7B54",
|
|
511
|
+
questionDetails: "{{details}}",
|
|
512
|
+
basicInfoSubmitted: "\u5DF2\u63D0\u4EA4\u57FA\u7840\u4FE1\u606F",
|
|
513
|
+
paramsSubmitted: "\u5DF2\u63D0\u4EA4\u53C2\u6570\u914D\u7F6E",
|
|
514
|
+
backToBasic: "\u5DF2\u8FD4\u56DE\u4FEE\u6539\u57FA\u7840\u4FE1\u606F",
|
|
515
|
+
backToParams: "\u5DF2\u8FD4\u56DE\u4FEE\u6539\u53C2\u6570",
|
|
516
|
+
createConfirmed: "\u5DF2\u786E\u8BA4\u521B\u5EFA",
|
|
517
|
+
actionSelected: "\u5DF2\u9009\u62E9",
|
|
518
|
+
actionSubmitted: "\u5DF2\u63D0\u4EA4",
|
|
519
|
+
actionSubmittedNamed: "\u5DF2\u63D0\u4EA4\u52A8\u4F5C ({{name}})",
|
|
520
|
+
quotedMessage: "\u3010\u5F15\u7528\u6D88\u606F\u3011\uFF1A",
|
|
521
|
+
answered: "\u5DF2\u56DE\u7B54",
|
|
522
|
+
// 工具渲染
|
|
523
|
+
inputGenerating: "\u8F93\u5165\u751F\u6210\u4E2D",
|
|
524
|
+
inputParams: "\u8F93\u5165\u53C2\u6570",
|
|
525
|
+
outputResult: "\u8FD4\u56DE\u7ED3\u679C",
|
|
526
|
+
subAgentRunning: "\u5B50\u667A\u80FD\u4F53\u6267\u884C\u4E2D...",
|
|
527
|
+
subAgentNested: "\u5B50\u667A\u80FD\u4F53\u6267\u884C\u5185\u5BB9\uFF08\u5D4C\u5957\u5C42\u7EA7 {{depth}}\uFF0C\u5DF2\u6298\u53E0\uFF09",
|
|
528
|
+
noTasks: "\u6682\u65E0\u4EFB\u52A1",
|
|
529
|
+
clickHere: "\u70B9\u51FB\u6B64\u5904",
|
|
530
|
+
unsupportedChart: "\u4E0D\u652F\u6301\u7684\u56FE\u8868",
|
|
531
|
+
unsupportedChartDesc: '\u5F53\u524D\u56FE\u8868\u7C7B\u578B "{{type}}" \u6682\u672A\u5B9E\u73B0\uFF0C\u8BF7\u68C0\u67E5\u56FE\u8868\u7C7B\u578B\u662F\u5426\u6B63\u786E\u3002',
|
|
532
|
+
previewEdit: "\u9884\u89C8\u7F16\u8F91",
|
|
533
|
+
copy: "\u590D\u5236",
|
|
534
|
+
continueText: "\u7EE7\u7EED",
|
|
535
|
+
aggregate: "\u805A\u5408",
|
|
536
|
+
sequence: "\u987A\u5E8F",
|
|
537
|
+
chatTab: "\u5BF9\u8BDD",
|
|
538
|
+
traceTab: "\u6267\u884C\u8F68\u8FF9",
|
|
539
|
+
previewTab: "\u6587\u4EF6\u9884\u89C8",
|
|
540
|
+
subAgentTab: "\u5B50\u667A\u80FD\u4F53",
|
|
541
|
+
subAgentExecutionDetail: "\u5B50\u667A\u80FD\u4F53\u6267\u884C\u8BE6\u60C5",
|
|
542
|
+
closeSubAgentDetail: "\u5173\u95ED\u5B50\u667A\u80FD\u4F53\u8BE6\u60C5",
|
|
543
|
+
execItemRunning: "\u6267\u884C\u4E2D",
|
|
544
|
+
execItemDone: "\u5DF2\u6267\u884C",
|
|
545
|
+
execItemFailed: "\u6267\u884C\u5931\u8D25",
|
|
546
|
+
execItemThinking: "\u601D\u8003\u8FC7\u7A0B",
|
|
547
|
+
execItemFile: "\u6587\u4EF6",
|
|
548
|
+
execItemPlan: "\u6267\u884C\u8BA1\u5212",
|
|
549
|
+
execItemSummaryDone: "{{count}} \u9879\u5B8C\u6210",
|
|
550
|
+
execItemSummaryFailed: "{{count}} \u9879\u5931\u8D25",
|
|
551
|
+
execItemSummaryRunning: "{{count}} \u9879\u6267\u884C\u4E2D",
|
|
552
|
+
toolCallFallback: "\u5DE5\u5177\u8C03\u7528",
|
|
553
|
+
viewExecutionDetail: "\u67E5\u770B\u6267\u884C\u8BE6\u60C5",
|
|
554
|
+
executionStart: "\u5F00\u59CB",
|
|
555
|
+
executionEnd: "\u7ED3\u675F",
|
|
556
|
+
unmatchedStep: "\u672A\u5339\u914D\u6B65\u9AA4",
|
|
557
|
+
totalDuration: "\u603B\u8017\u65F6 {{value}}",
|
|
558
|
+
contextSummary: "\u4E0A\u4E0B\u6587 {{messages}} \u6761\u6D88\u606F \xB7 {{tools}} \u4E2A\u5DE5\u5177 \xB7 {{model}}",
|
|
559
|
+
tokenUsage: "\u8F93\u5165 {{input}} -> \u8F93\u51FA {{output}} tokens",
|
|
560
|
+
modelRequestStarted: "\u53D1\u8D77\u6A21\u578B\u8C03\u7528",
|
|
561
|
+
modelRequest: "\u6A21\u578B\u8BF7\u6C42",
|
|
562
|
+
executionMetaModel: "\u6A21\u578B {{model}} \xB7 \u4E0A\u4E0B\u6587\u7A97\u53E3 {{contextWindow}}",
|
|
563
|
+
traceMessages: "\u6D88\u606F\uFF08{{count}}\uFF09",
|
|
564
|
+
traceTools: "\u5DE5\u5177\uFF08{{count}}\uFF09",
|
|
565
|
+
thoughtChain: "\u601D\u7EF4\u94FE",
|
|
566
|
+
mainContent: "\u6B63\u6587",
|
|
567
|
+
toolCall: "\u5DE5\u5177\u8C03\u7528",
|
|
568
|
+
result: "\u7ED3\u679C",
|
|
569
|
+
metadata: "\u5143\u6570\u636E",
|
|
570
|
+
params: "\u53C2\u6570",
|
|
571
|
+
userInput: "\u7528\u6237\u8F93\u5165",
|
|
572
|
+
output: "\u8F93\u51FA",
|
|
573
|
+
executionFinished: "\u6267\u884C\u5B8C\u6210",
|
|
574
|
+
executionRunning: "\u6267\u884C\u4E2D",
|
|
575
|
+
executionLabel: "\u6267\u884C #{{id}}",
|
|
576
|
+
duration: "\u8017\u65F6 {{value}}",
|
|
577
|
+
inputCount: "\u8F93\u5165 {{count}}",
|
|
578
|
+
outputCount: "\u8F93\u51FA {{count}}",
|
|
579
|
+
turnsCount: "{{count}} \u8F6E",
|
|
580
|
+
toolsCount: "{{count}} \u6B21\u5DE5\u5177",
|
|
581
|
+
eventsCount: "{{count}} \u4E2A\u4E8B\u4EF6",
|
|
582
|
+
userMessage: "\u7528\u6237\u6D88\u606F",
|
|
583
|
+
turnLabel: "\u8F6E\u6B21 {{index}} \xB7 {{title}}",
|
|
584
|
+
turnFallback: "\u8F6E\u6B21 {{index}}",
|
|
585
|
+
executionCountSorted: "\u5171 {{count}} \u6B21\u6267\u884C \xB7 \u6309\u65F6\u95F4\u6B63\u5E8F",
|
|
586
|
+
eventDetail: "\u4E8B\u4EF6\u8BE6\u60C5",
|
|
587
|
+
traceSelectHint: "\u70B9\u51FB\u5DE6\u4FA7\u4E8B\u4EF6\u67E5\u770B\u8BE6\u60C5",
|
|
588
|
+
executionTraceEmpty: "\u6682\u65E0\u6267\u884C\u8F68\u8FF9\u6570\u636E",
|
|
589
|
+
roleUser: "\u7528\u6237",
|
|
590
|
+
roleAssistant: "\u52A9\u624B",
|
|
591
|
+
roleTool: "\u5DE5\u5177",
|
|
592
|
+
roleSystem: "\u7CFB\u7EDF",
|
|
593
|
+
// MonacoEditor
|
|
594
|
+
noVariables: "\u6682\u65E0\u53EF\u7528\u53D8\u91CF",
|
|
595
|
+
// 会话时间分组
|
|
596
|
+
dateToday: "\u4ECA\u5929",
|
|
597
|
+
dateLast7Days: "\u6700\u8FD1 7 \u5929",
|
|
598
|
+
dateLast30Days: "\u6700\u8FD1 30 \u5929",
|
|
599
|
+
dateLastHalfYear: "\u6700\u8FD1\u534A\u5E74",
|
|
600
|
+
dateEarlier: "\u66F4\u65E9",
|
|
601
|
+
// store 操作提示
|
|
602
|
+
previewNotSupported: "\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9884\u89C8",
|
|
603
|
+
deleteSuccess: "\u5220\u9664\u6210\u529F",
|
|
604
|
+
operationBlocked: "\u64CD\u4F5C\u88AB\u963B\u6B62",
|
|
605
|
+
favoriteSuccess: "\u6536\u85CF\u6210\u529F",
|
|
606
|
+
unfavoriteSuccess: "\u5DF2\u53D6\u6D88\u6536\u85CF",
|
|
607
|
+
feedbackThanks: "\u611F\u8C22\u60A8\u7684\u53CD\u9988",
|
|
608
|
+
sendFailed: "\u53D1\u9001\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",
|
|
609
|
+
newConversationTitle: "\u65B0\u4F1A\u8BDD",
|
|
610
|
+
// 布局 / 消息
|
|
611
|
+
stopped: "\u5DF2\u505C\u6B62",
|
|
612
|
+
greetingHello: "\u4F60\u597D\uFF0C\u6211\u662F",
|
|
613
|
+
greetingSubtitle: "\u4ECA\u5929\u60F3\u63A2\u7D22\u70B9\u4EC0\u4E48\uFF1F",
|
|
614
|
+
disclaimer: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u8BF7\u4ED4\u7EC6\u7504\u522B",
|
|
615
|
+
helloIam: "\u4F60\u597D\uFF0C\u6211\u662F{{name}}",
|
|
616
|
+
newConversation: "\u65B0\u5EFA\u4F1A\u8BDD",
|
|
617
|
+
// UserInputPanel
|
|
618
|
+
uploadFromLocal: "\u4ECE\u672C\u5730\u4E0A\u4F20",
|
|
619
|
+
edit: "\u7F16\u8F91",
|
|
620
|
+
noUserInputFields: "\u6682\u65E0\u7528\u6237\u8F93\u5165\u5B57\u6BB5",
|
|
621
|
+
startConversation: "\u5F00\u59CB\u4F1A\u8BDD"
|
|
622
|
+
};
|
|
30
623
|
var ChatContext = createContext(null);
|
|
31
624
|
function ChatProvider({ store, children }) {
|
|
32
625
|
return React10__default.createElement(ChatContext.Provider, { value: store }, children);
|
|
@@ -46,6 +639,7 @@ var styles_module_default = {
|
|
|
46
639
|
bubble: "styles_module_bubble"
|
|
47
640
|
};
|
|
48
641
|
var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList = [], onChange, extraParams }, ref) => {
|
|
642
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
49
643
|
const { message: message3 } = App.useApp();
|
|
50
644
|
const chatStore = useChatStore();
|
|
51
645
|
const configState = useSnapshot(chatStore.config);
|
|
@@ -79,30 +673,43 @@ var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList =
|
|
|
79
673
|
const findConfig = (file) => {
|
|
80
674
|
return fileUploadConfig?.allowedTypes?.find((type) => type === getFileSuffixName(file.name)) || "";
|
|
81
675
|
};
|
|
82
|
-
const
|
|
83
|
-
|
|
676
|
+
const ensureFileUid = (file) => {
|
|
677
|
+
if (!file.uid) {
|
|
678
|
+
file.uid = `${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
679
|
+
}
|
|
680
|
+
return file.uid;
|
|
681
|
+
};
|
|
682
|
+
const validateFiles = (files) => {
|
|
683
|
+
const currentCount = getAttachedFiles().length;
|
|
684
|
+
for (const [index, file] of files.entries()) {
|
|
84
685
|
const cfg = findConfig(file);
|
|
85
686
|
if (!cfg) {
|
|
86
|
-
onErrorTip(
|
|
87
|
-
return
|
|
687
|
+
onErrorTip(t11("unsupportedType", { fileName: file.name, fileType: file.type }));
|
|
688
|
+
return false;
|
|
88
689
|
}
|
|
89
690
|
if (isNumber(fileUploadConfig?.maxCount)) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return Promise.reject(false);
|
|
691
|
+
if (currentCount + index + 1 > fileUploadConfig?.maxCount) {
|
|
692
|
+
onErrorTip(t11("maxFileCountExceed", { fileName: file.name, max: fileUploadConfig?.maxCount }));
|
|
693
|
+
return false;
|
|
94
694
|
}
|
|
95
695
|
}
|
|
96
696
|
}
|
|
697
|
+
return true;
|
|
97
698
|
};
|
|
98
|
-
const
|
|
699
|
+
const onBeforeUpload = (files) => {
|
|
700
|
+
if (!validateFiles(files)) {
|
|
701
|
+
return Promise.reject(false);
|
|
702
|
+
}
|
|
703
|
+
};
|
|
704
|
+
const uploadSingleFile = async (file) => {
|
|
705
|
+
ensureFileUid(file);
|
|
99
706
|
const cfg = findConfig(file);
|
|
100
707
|
if (!cfg) {
|
|
101
|
-
onErrorTip(
|
|
708
|
+
onErrorTip(t11("unsupportedType", { fileName: file.name }));
|
|
102
709
|
return;
|
|
103
710
|
}
|
|
104
711
|
if (fileUploadConfig?.maxSize && file.size > fileUploadConfig?.maxSize * 1024 * 1024) {
|
|
105
|
-
onErrorTip(
|
|
712
|
+
onErrorTip(t11("maxFileSizeExceed", { max: fileUploadConfig?.maxSize }));
|
|
106
713
|
return;
|
|
107
714
|
}
|
|
108
715
|
const abortController = new AbortController();
|
|
@@ -154,7 +761,7 @@ var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList =
|
|
|
154
761
|
setAttachedFiles(
|
|
155
762
|
getAttachedFiles().map((f) => {
|
|
156
763
|
if (f.uid === file.uid) {
|
|
157
|
-
return { ...f, status: "error", description: "
|
|
764
|
+
return { ...f, status: "error", description: t11("uploadFailed") };
|
|
158
765
|
} else {
|
|
159
766
|
return f;
|
|
160
767
|
}
|
|
@@ -162,12 +769,18 @@ var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList =
|
|
|
162
769
|
);
|
|
163
770
|
}
|
|
164
771
|
};
|
|
772
|
+
const onCustomRequest = async ({ file }) => {
|
|
773
|
+
if (!validateFiles([file])) {
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
776
|
+
await uploadSingleFile(file);
|
|
777
|
+
};
|
|
165
778
|
const onRemove = (file) => {
|
|
166
779
|
const currentFile = getAttachedFiles().find((f) => f.uid === file.uid);
|
|
167
780
|
if (currentFile?.abortController) {
|
|
168
781
|
currentFile.abortController.abort();
|
|
169
782
|
}
|
|
170
|
-
setAttachedFiles(
|
|
783
|
+
setAttachedFiles(getAttachedFiles().filter((f) => f.uid !== file.uid));
|
|
171
784
|
const filePath = file.path;
|
|
172
785
|
configState.hooks?.onAfterRemoveFile?.(filePath);
|
|
173
786
|
};
|
|
@@ -178,18 +791,22 @@ var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList =
|
|
|
178
791
|
const files = getAttachedFiles();
|
|
179
792
|
const uploadingFiles = files.filter((file) => file.status === "uploading");
|
|
180
793
|
if (uploadingFiles.length > 0) {
|
|
181
|
-
onErrorTip("
|
|
794
|
+
onErrorTip(t11("waitUpload"));
|
|
182
795
|
return false;
|
|
183
796
|
}
|
|
184
797
|
const errorFiles = files.filter((file) => file.status === "error");
|
|
185
798
|
if (errorFiles.length > 0) {
|
|
186
|
-
onErrorTip("
|
|
799
|
+
onErrorTip(t11("checkFailed"));
|
|
187
800
|
return false;
|
|
188
801
|
}
|
|
189
802
|
return true;
|
|
803
|
+
},
|
|
804
|
+
uploadFiles: async (files) => {
|
|
805
|
+
if (!files.length || !validateFiles(files)) return;
|
|
806
|
+
await Promise.all(files.map((file) => uploadSingleFile(file)));
|
|
190
807
|
}
|
|
191
808
|
}),
|
|
192
|
-
[]
|
|
809
|
+
[extraParams, fileUpload, fileUploadConfig]
|
|
193
810
|
);
|
|
194
811
|
const acceptStr = useMemo(() => {
|
|
195
812
|
const allTypes = fileUploadConfig?.allowedTypes.map((type) => `.${type}`) || [];
|
|
@@ -206,14 +823,16 @@ var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList =
|
|
|
206
823
|
items: attachedFiles,
|
|
207
824
|
onRemove,
|
|
208
825
|
overflow: "wrap",
|
|
209
|
-
placeholder: (type) => type === "drop" ? { title: "
|
|
826
|
+
placeholder: (type) => type === "drop" ? { title: t11("dropTitle") } : {
|
|
210
827
|
icon: /* @__PURE__ */ jsx(CloudUploadOutlined, {}),
|
|
211
|
-
title: "
|
|
828
|
+
title: t11("uploadTitle"),
|
|
212
829
|
description: /* @__PURE__ */ jsxs("div", { children: [
|
|
213
|
-
/* @__PURE__ */
|
|
830
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
831
|
+
t11("uploadDescription"),
|
|
832
|
+
"; "
|
|
833
|
+
] }),
|
|
214
834
|
fileUploadConfig?.allowedTypes && /* @__PURE__ */ jsxs("div", { children: [
|
|
215
|
-
"
|
|
216
|
-
fileUploadConfig?.allowedTypes.join(","),
|
|
835
|
+
t11("supportedExtensions", { types: fileUploadConfig?.allowedTypes.join(",") }),
|
|
217
836
|
"; "
|
|
218
837
|
] })
|
|
219
838
|
] })
|
|
@@ -266,17 +885,17 @@ var classifyTime = (timestamp) => {
|
|
|
266
885
|
const now = dayjs();
|
|
267
886
|
const target = dayjs(timestamp);
|
|
268
887
|
if (target.isSame(now, "day")) {
|
|
269
|
-
return
|
|
888
|
+
return t(`${NS_CHAT_COPILOT}:dateToday`);
|
|
270
889
|
}
|
|
271
890
|
const diffInDays = now.diff(target, "day");
|
|
272
891
|
if (diffInDays < 7) {
|
|
273
|
-
return
|
|
892
|
+
return t(`${NS_CHAT_COPILOT}:dateLast7Days`);
|
|
274
893
|
} else if (diffInDays < 30) {
|
|
275
|
-
return
|
|
894
|
+
return t(`${NS_CHAT_COPILOT}:dateLast30Days`);
|
|
276
895
|
} else if (diffInDays < 180) {
|
|
277
|
-
return
|
|
896
|
+
return t(`${NS_CHAT_COPILOT}:dateLastHalfYear`);
|
|
278
897
|
} else {
|
|
279
|
-
return
|
|
898
|
+
return t(`${NS_CHAT_COPILOT}:dateEarlier`);
|
|
280
899
|
}
|
|
281
900
|
};
|
|
282
901
|
var variablesToObject = (variables) => {
|
|
@@ -367,6 +986,7 @@ function GroupPicker({
|
|
|
367
986
|
onSelect,
|
|
368
987
|
onHover
|
|
369
988
|
}) {
|
|
989
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
370
990
|
const itemRefs = useRef([]);
|
|
371
991
|
let currentIndex = -1;
|
|
372
992
|
useEffect(() => {
|
|
@@ -397,7 +1017,7 @@ function GroupPicker({
|
|
|
397
1017
|
},
|
|
398
1018
|
`${group.value}-${option.value}`
|
|
399
1019
|
);
|
|
400
|
-
}) : /* @__PURE__ */ jsx("div", { className: index_module_default.fileMenuEmpty, children: "
|
|
1020
|
+
}) : /* @__PURE__ */ jsx("div", { className: index_module_default.fileMenuEmpty, children: t11("empty") })
|
|
401
1021
|
] }, group.value)) });
|
|
402
1022
|
}
|
|
403
1023
|
function ResourcePickerMenu({
|
|
@@ -765,6 +1385,24 @@ function InitialStatePlugin({ value }) {
|
|
|
765
1385
|
}, [editor, value]);
|
|
766
1386
|
return null;
|
|
767
1387
|
}
|
|
1388
|
+
function getPastedFileSuffix(file) {
|
|
1389
|
+
const fileName = file.name || "";
|
|
1390
|
+
const nameSuffix = fileName.includes(".") ? fileName.split(".").pop()?.toLowerCase() : "";
|
|
1391
|
+
const mimeSuffix = file.type?.split("/")[1]?.split("+")[0]?.toLowerCase() || "";
|
|
1392
|
+
return nameSuffix || mimeSuffix || "png";
|
|
1393
|
+
}
|
|
1394
|
+
function normalizePastedFiles(files) {
|
|
1395
|
+
return files.map((file, index) => {
|
|
1396
|
+
const suffix = getPastedFileSuffix(file);
|
|
1397
|
+
const timestamp = Date.now();
|
|
1398
|
+
const randomPart = Math.random().toString(36).slice(2, 10);
|
|
1399
|
+
const nextName = `pasted-${timestamp}-${index}-${randomPart}.${suffix}`;
|
|
1400
|
+
return new File([file], nextName, {
|
|
1401
|
+
type: file.type,
|
|
1402
|
+
lastModified: timestamp
|
|
1403
|
+
});
|
|
1404
|
+
});
|
|
1405
|
+
}
|
|
768
1406
|
var ChatInput = React10.forwardRef(
|
|
769
1407
|
({
|
|
770
1408
|
value = "",
|
|
@@ -780,10 +1418,12 @@ var ChatInput = React10.forwardRef(
|
|
|
780
1418
|
onKeyDown,
|
|
781
1419
|
onKeyUp,
|
|
782
1420
|
onPaste,
|
|
1421
|
+
onPasteFiles,
|
|
783
1422
|
onCompositionStart,
|
|
784
1423
|
onCompositionEnd
|
|
785
1424
|
}, ref) => {
|
|
786
1425
|
const contentEditableRef = useRef(null);
|
|
1426
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
787
1427
|
const stringValue = typeof value === "string" ? value : "";
|
|
788
1428
|
const initialConfig = {
|
|
789
1429
|
namespace: "ChatInput",
|
|
@@ -804,6 +1444,18 @@ var ChatInput = React10.forwardRef(
|
|
|
804
1444
|
}
|
|
805
1445
|
});
|
|
806
1446
|
};
|
|
1447
|
+
const handlePaste = async (event) => {
|
|
1448
|
+
const clipboardData = event.nativeEvent.clipboardData || event.clipboardData;
|
|
1449
|
+
const clipboardFiles = Array.from(clipboardData?.files || []).filter((file) => file.type.startsWith("image/"));
|
|
1450
|
+
const clipboardItems = Array.from(clipboardData?.items || []);
|
|
1451
|
+
const imageFiles = clipboardItems.filter((item) => item.kind === "file" && item.type.startsWith("image/")).map((item) => item.getAsFile()).filter((file) => !!file);
|
|
1452
|
+
const pastedFiles = clipboardFiles.length ? clipboardFiles : imageFiles;
|
|
1453
|
+
if (pastedFiles.length) {
|
|
1454
|
+
event.preventDefault();
|
|
1455
|
+
await onPasteFiles?.(normalizePastedFiles(pastedFiles));
|
|
1456
|
+
}
|
|
1457
|
+
onPaste?.(event);
|
|
1458
|
+
};
|
|
807
1459
|
return /* @__PURE__ */ jsx("div", { className: index_module_default.promptEditorInputContainer, onClick: () => contentEditableRef.current?.focus(), children: /* @__PURE__ */ jsxs(LexicalComposer, { initialConfig, children: [
|
|
808
1460
|
/* @__PURE__ */ jsx(
|
|
809
1461
|
RichTextPlugin,
|
|
@@ -828,14 +1480,14 @@ var ChatInput = React10.forwardRef(
|
|
|
828
1480
|
onBlur: (event) => onBlur?.(event),
|
|
829
1481
|
onKeyDown: (event) => onKeyDown?.(event),
|
|
830
1482
|
onKeyUp: (event) => onKeyUp?.(event),
|
|
831
|
-
onPaste:
|
|
1483
|
+
onPaste: handlePaste,
|
|
832
1484
|
onCompositionStart: (event) => onCompositionStart?.(event),
|
|
833
1485
|
onCompositionEnd: (event) => {
|
|
834
1486
|
onCompositionEnd?.(event);
|
|
835
1487
|
}
|
|
836
1488
|
}
|
|
837
1489
|
),
|
|
838
|
-
placeholder: !stringValue ? /* @__PURE__ */ jsx("div", { className: index_module_default.promptEditorPlaceholder, children: placeholder || "
|
|
1490
|
+
placeholder: !stringValue ? /* @__PURE__ */ jsx("div", { className: index_module_default.promptEditorPlaceholder, children: placeholder || t11("chatPlaceholder") }) : null,
|
|
839
1491
|
ErrorBoundary: LexicalErrorBoundary
|
|
840
1492
|
}
|
|
841
1493
|
),
|
|
@@ -869,10 +1521,12 @@ var ChatSender_default = forwardRef(
|
|
|
869
1521
|
}, ref) => {
|
|
870
1522
|
const senderRef = useRef(null);
|
|
871
1523
|
const { inputValue, setInputValue } = useSyncInput(content || "", onContentChange);
|
|
1524
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
872
1525
|
const attachmentsNode = fileUpload?.config?.enabled && /* @__PURE__ */ jsx(Badge, { dot: !!fileList?.length && !headerOpen, children: /* @__PURE__ */ jsx(Button, { type: "text", icon: /* @__PURE__ */ jsx(PaperClipOutlined, {}), onClick: () => onHeaderOpenChange(!headerOpen) }) });
|
|
873
|
-
const attachmentsRef = useRef();
|
|
1526
|
+
const attachmentsRef = useRef(null);
|
|
1527
|
+
const handlePasteFilesRef = useRef(void 0);
|
|
874
1528
|
const senderHeader = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
875
|
-
/* @__PURE__ */ jsx(Sender.Header, { title: "
|
|
1529
|
+
/* @__PURE__ */ jsx(Sender.Header, { title: t11("selectFile"), open: headerOpen, onOpenChange: onHeaderOpenChange, children: /* @__PURE__ */ jsx(
|
|
876
1530
|
Attachments_default,
|
|
877
1531
|
{
|
|
878
1532
|
ref: attachmentsRef,
|
|
@@ -890,11 +1544,31 @@ var ChatSender_default = forwardRef(
|
|
|
890
1544
|
onSend();
|
|
891
1545
|
}
|
|
892
1546
|
};
|
|
1547
|
+
handlePasteFilesRef.current = async (files) => {
|
|
1548
|
+
if (!files.length) return;
|
|
1549
|
+
if (!headerOpen) {
|
|
1550
|
+
onHeaderOpenChange(true);
|
|
1551
|
+
}
|
|
1552
|
+
if (!attachmentsRef.current) {
|
|
1553
|
+
await new Promise((resolve) => {
|
|
1554
|
+
requestAnimationFrame(() => resolve());
|
|
1555
|
+
});
|
|
1556
|
+
}
|
|
1557
|
+
await attachmentsRef.current?.uploadFiles(files);
|
|
1558
|
+
};
|
|
893
1559
|
const isFocusedRef = useRef(false);
|
|
894
1560
|
const commandConfigRef = useRef(commandConfig);
|
|
895
1561
|
commandConfigRef.current = commandConfig;
|
|
896
1562
|
const inputComponent = useMemo(
|
|
897
|
-
() => forwardRef((inputProps, ref2) => /* @__PURE__ */ jsx(
|
|
1563
|
+
() => forwardRef((inputProps, ref2) => /* @__PURE__ */ jsx(
|
|
1564
|
+
ChatInput_default,
|
|
1565
|
+
{
|
|
1566
|
+
...inputProps,
|
|
1567
|
+
ref: ref2,
|
|
1568
|
+
commandConfig: commandConfigRef.current,
|
|
1569
|
+
onPasteFiles: (files) => handlePasteFilesRef.current?.(files)
|
|
1570
|
+
}
|
|
1571
|
+
)),
|
|
898
1572
|
[]
|
|
899
1573
|
);
|
|
900
1574
|
useEffect(() => {
|
|
@@ -1021,6 +1695,9 @@ var createChatService = (request, config) => {
|
|
|
1021
1695
|
const shareConversation = (conversationId) => {
|
|
1022
1696
|
return request.post(`/agents/conversations/${conversationId}/share/url`);
|
|
1023
1697
|
};
|
|
1698
|
+
const fetchExecutionDebug = (conversationId) => {
|
|
1699
|
+
return request.get(`/agents/conversations/${conversationId}/executions/debug`);
|
|
1700
|
+
};
|
|
1024
1701
|
return {
|
|
1025
1702
|
fetchModelList,
|
|
1026
1703
|
fetchAgentInfo,
|
|
@@ -1041,7 +1718,8 @@ var createChatService = (request, config) => {
|
|
|
1041
1718
|
listTags,
|
|
1042
1719
|
getAgentAvatar,
|
|
1043
1720
|
conversationFavorite,
|
|
1044
|
-
shareConversation
|
|
1721
|
+
shareConversation,
|
|
1722
|
+
fetchExecutionDebug
|
|
1045
1723
|
};
|
|
1046
1724
|
};
|
|
1047
1725
|
|
|
@@ -1069,6 +1747,8 @@ function createChatStore() {
|
|
|
1069
1747
|
/** 钩子函数 */
|
|
1070
1748
|
hooks: {},
|
|
1071
1749
|
layout: {},
|
|
1750
|
+
/** 智能体执行链展示模式(默认聚合模式,可运行时切换) */
|
|
1751
|
+
agentExecMode: "aggregate",
|
|
1072
1752
|
loading: false,
|
|
1073
1753
|
/** 文件预览状态 */
|
|
1074
1754
|
preview: {
|
|
@@ -1088,7 +1768,7 @@ function createChatStore() {
|
|
|
1088
1768
|
};
|
|
1089
1769
|
const setServices = ({ http, websocket } = {}) => {
|
|
1090
1770
|
const baseURL = http?.config?.baseURL || "/luya/v1";
|
|
1091
|
-
const headers = baseURL === "/luya/share" ? { [SHARE_KEY]: localStorage.getItem(SHARE_KEY) || "" } : { [TOKEN_KEY]: tokenManager.get() };
|
|
1771
|
+
const headers = baseURL === "/luya/share" ? { [SHARE_KEY]: localStorage.getItem(SHARE_KEY) || "", "Accept-Language": getLang() } : { [TOKEN_KEY]: tokenManager.get(), "Accept-Language": getLang() };
|
|
1092
1772
|
const httpConfig = {
|
|
1093
1773
|
baseURL,
|
|
1094
1774
|
headers,
|
|
@@ -1139,11 +1819,12 @@ function createChatStore() {
|
|
|
1139
1819
|
file: newFile,
|
|
1140
1820
|
isEdit
|
|
1141
1821
|
};
|
|
1822
|
+
focusTarget.target = "preview";
|
|
1142
1823
|
} else {
|
|
1143
1824
|
if (file?.fileUrl) {
|
|
1144
1825
|
window.open(file.fileUrl, "_blank");
|
|
1145
1826
|
} else if (file?.content) {
|
|
1146
|
-
message.warning(
|
|
1827
|
+
message.warning(t(`${NS_CHAT_COPILOT}:previewNotSupported`));
|
|
1147
1828
|
}
|
|
1148
1829
|
}
|
|
1149
1830
|
config.hooks?.onAfterFilePreview?.(file, preview);
|
|
@@ -1156,6 +1837,12 @@ function createChatStore() {
|
|
|
1156
1837
|
const setLayout = (layout) => {
|
|
1157
1838
|
config.layout = deepMerge(defaultLayout, layout);
|
|
1158
1839
|
};
|
|
1840
|
+
const setExecMode = (mode) => {
|
|
1841
|
+
config.agentExecMode = mode;
|
|
1842
|
+
};
|
|
1843
|
+
const fetchExecutionDebug = (conversationId) => {
|
|
1844
|
+
return config.services.request.fetchExecutionDebug(conversationId);
|
|
1845
|
+
};
|
|
1159
1846
|
const setHooks = (hooks = {}) => {
|
|
1160
1847
|
config.hooks = hooks;
|
|
1161
1848
|
};
|
|
@@ -1241,7 +1928,7 @@ function createChatStore() {
|
|
|
1241
1928
|
if (canProceed === false) return;
|
|
1242
1929
|
conversations.editLoading = true;
|
|
1243
1930
|
await config.services.request.deleteConversation(conversationId);
|
|
1244
|
-
message.success(
|
|
1931
|
+
message.success(t(`${NS_CHAT_COPILOT}:deleteSuccess`));
|
|
1245
1932
|
conversations.list.items = conversations.list.items.filter((item) => item.key !== conversationId);
|
|
1246
1933
|
favorite.list.items = favorite.list.items.filter((item) => item.id !== conversationId);
|
|
1247
1934
|
delete conversation.messages[conversationId];
|
|
@@ -1271,9 +1958,10 @@ function createChatStore() {
|
|
|
1271
1958
|
if (conversation.active.id === conversationId) return;
|
|
1272
1959
|
const canProceed = await config.hooks?.onBeforeSwitchConversation?.(conversationId);
|
|
1273
1960
|
if (canProceed === false) {
|
|
1274
|
-
throw new Error(
|
|
1961
|
+
throw new Error(t(`${NS_CHAT_COPILOT}:operationBlocked`));
|
|
1275
1962
|
}
|
|
1276
1963
|
conversation.active.id = conversationId;
|
|
1964
|
+
conversation.unread[conversationId] = false;
|
|
1277
1965
|
const targetConversation = conversations.list.items.find((item) => item.key === conversationId);
|
|
1278
1966
|
if (targetConversation) {
|
|
1279
1967
|
conversation.active.spec = targetConversation.spec;
|
|
@@ -1361,7 +2049,7 @@ function createChatStore() {
|
|
|
1361
2049
|
} else if (favorite.list.items.length) {
|
|
1362
2050
|
favorite.list.items = favorite.list.items.filter((item) => item.id !== conversationId);
|
|
1363
2051
|
}
|
|
1364
|
-
message.success(isFavorite ?
|
|
2052
|
+
message.success(isFavorite ? t(`${NS_CHAT_COPILOT}:favoriteSuccess`) : t(`${NS_CHAT_COPILOT}:unfavoriteSuccess`));
|
|
1365
2053
|
} finally {
|
|
1366
2054
|
}
|
|
1367
2055
|
};
|
|
@@ -1375,16 +2063,86 @@ function createChatStore() {
|
|
|
1375
2063
|
},
|
|
1376
2064
|
/** 每个会话的消息存储,以会话ID为键 */
|
|
1377
2065
|
messages: {},
|
|
2066
|
+
/** 每个会话的运行中状态(消息流式执行中) */
|
|
2067
|
+
running: {},
|
|
2068
|
+
/** 每个会话的待查看状态(运行结束但尚未查看) */
|
|
2069
|
+
unread: {},
|
|
1378
2070
|
/** 消息反馈状态 */
|
|
1379
2071
|
feedback: {
|
|
1380
2072
|
/** 反馈操作加载状态 */
|
|
1381
2073
|
loading: false
|
|
1382
2074
|
}
|
|
1383
2075
|
});
|
|
2076
|
+
subscribe(conversation, (ops) => {
|
|
2077
|
+
for (const op of ops) {
|
|
2078
|
+
if (op[0] !== "set") continue;
|
|
2079
|
+
const path = op[1];
|
|
2080
|
+
if (!Array.isArray(path) || path[0] !== "messages" || path[2] !== "loading") continue;
|
|
2081
|
+
const convId = path[1];
|
|
2082
|
+
const loading = !!conversation.messages?.[convId]?.loading;
|
|
2083
|
+
conversation.running[convId] = loading;
|
|
2084
|
+
if (!loading && convId !== conversation.active.id) {
|
|
2085
|
+
conversation.unread[convId] = true;
|
|
2086
|
+
}
|
|
2087
|
+
}
|
|
2088
|
+
});
|
|
2089
|
+
const subAgentMessages = proxy({
|
|
2090
|
+
/** 以子会话 ID 为键的消息列表 */
|
|
2091
|
+
messages: {},
|
|
2092
|
+
/** 以子会话 ID 为键的 loading 状态 */
|
|
2093
|
+
loading: {}
|
|
2094
|
+
});
|
|
2095
|
+
const subAgentPanel = proxy({
|
|
2096
|
+
/** 当前展示的 toolCall 项(含 subConversationId),null 表示关闭 */
|
|
2097
|
+
active: null
|
|
2098
|
+
});
|
|
2099
|
+
const focusTarget = proxy({
|
|
2100
|
+
target: null
|
|
2101
|
+
});
|
|
2102
|
+
const openSubAgent = async (item) => {
|
|
2103
|
+
let subConvId = item.subConversationId ?? item.metadata?.conversationId;
|
|
2104
|
+
let agentName = item.agentName;
|
|
2105
|
+
if (!subConvId) {
|
|
2106
|
+
for (const id of Object.keys(subAgentMessages.messages)) {
|
|
2107
|
+
const list = subAgentMessages.messages[id] || [];
|
|
2108
|
+
const hit = list.some((m) => {
|
|
2109
|
+
if (item.toolCallId && m.toolCallId === item.toolCallId) return true;
|
|
2110
|
+
return !!(m.agentName && m.agentName === agentName);
|
|
2111
|
+
});
|
|
2112
|
+
if (hit) {
|
|
2113
|
+
subConvId = id;
|
|
2114
|
+
agentName = agentName || list.find((m) => m.agentName)?.agentName;
|
|
2115
|
+
break;
|
|
2116
|
+
}
|
|
2117
|
+
}
|
|
2118
|
+
}
|
|
2119
|
+
subAgentPanel.active = { ...item, subConversationId: subConvId, agentName };
|
|
2120
|
+
focusTarget.target = "subAgent";
|
|
2121
|
+
if (!subConvId) return;
|
|
2122
|
+
if (subAgentMessages.messages[subConvId]?.length) return;
|
|
2123
|
+
subAgentMessages.loading[subConvId] = true;
|
|
2124
|
+
try {
|
|
2125
|
+
const { data } = await config.services.request.fetchMessages({
|
|
2126
|
+
...config.params.convMeta,
|
|
2127
|
+
conversationId: subConvId
|
|
2128
|
+
});
|
|
2129
|
+
if (data?.length) {
|
|
2130
|
+
const list = [];
|
|
2131
|
+
data.forEach((msg) => processMessageContent(msg, list));
|
|
2132
|
+
finalizeSubMessages(list);
|
|
2133
|
+
subAgentMessages.messages[subConvId] = list;
|
|
2134
|
+
}
|
|
2135
|
+
} finally {
|
|
2136
|
+
subAgentMessages.loading[subConvId] = false;
|
|
2137
|
+
}
|
|
2138
|
+
};
|
|
2139
|
+
const closeSubAgent = () => {
|
|
2140
|
+
subAgentPanel.active = null;
|
|
2141
|
+
};
|
|
1384
2142
|
const setReferences = async (references) => {
|
|
1385
2143
|
const canProceed = await config.hooks?.onBeforeSetReferences?.(references);
|
|
1386
2144
|
if (canProceed === false) {
|
|
1387
|
-
throw new Error(
|
|
2145
|
+
throw new Error(t(`${NS_CHAT_COPILOT}:operationBlocked`));
|
|
1388
2146
|
}
|
|
1389
2147
|
conversation.messages[conversation.active.id].references = references;
|
|
1390
2148
|
config.hooks?.onAfterSetReferences?.(references);
|
|
@@ -1413,7 +2171,7 @@ function createChatStore() {
|
|
|
1413
2171
|
try {
|
|
1414
2172
|
conversation.feedback.loading = true;
|
|
1415
2173
|
await config.services.request.feedbackUpdate({ executionId, feedback: feedback2 });
|
|
1416
|
-
message.success(
|
|
2174
|
+
message.success(t(`${NS_CHAT_COPILOT}:feedbackThanks`));
|
|
1417
2175
|
conversation.messages[conversation.active.id].message[index].feedback = feedback2;
|
|
1418
2176
|
} finally {
|
|
1419
2177
|
conversation.feedback.loading = false;
|
|
@@ -1436,7 +2194,7 @@ function createChatStore() {
|
|
|
1436
2194
|
const getMessages = async (conversationId) => {
|
|
1437
2195
|
const canProceed = await config.hooks?.onBeforeInitMessages?.(conversationId);
|
|
1438
2196
|
if (canProceed === false) {
|
|
1439
|
-
throw new Error(
|
|
2197
|
+
throw new Error(t(`${NS_CHAT_COPILOT}:operationBlocked`));
|
|
1440
2198
|
}
|
|
1441
2199
|
conversation.loading = true;
|
|
1442
2200
|
if (!conversation.messages[conversationId]) {
|
|
@@ -1449,14 +2207,9 @@ function createChatStore() {
|
|
|
1449
2207
|
});
|
|
1450
2208
|
conversation.messages[conversationId].message = [];
|
|
1451
2209
|
if (data?.length) {
|
|
1452
|
-
|
|
1453
|
-
const subAgentMessages = data.filter((msg) => msg.toolCallId);
|
|
1454
|
-
mainMessages.forEach((msg) => {
|
|
2210
|
+
data.forEach((msg) => {
|
|
1455
2211
|
processMessageContent(msg);
|
|
1456
2212
|
});
|
|
1457
|
-
subAgentMessages.forEach((msg) => {
|
|
1458
|
-
routeSubAgentMessage(msg);
|
|
1459
|
-
});
|
|
1460
2213
|
finalizeHistoryMessages(conversationId);
|
|
1461
2214
|
normalizeMessagesByExecutionAndRole(conversation.messages[conversationId].message);
|
|
1462
2215
|
}
|
|
@@ -1475,7 +2228,8 @@ function createChatStore() {
|
|
|
1475
2228
|
messages.forEach((item) => {
|
|
1476
2229
|
const key = `${item.executionId}-${item.role}`;
|
|
1477
2230
|
const existedIndex = groupedMessageIndex.get(key);
|
|
1478
|
-
|
|
2231
|
+
const isNewTurn = (item.content || []).some((c) => c.type === "runStarted");
|
|
2232
|
+
if (isNullOrUnDef(existedIndex) || isNewTurn) {
|
|
1479
2233
|
mergedMessages.push({
|
|
1480
2234
|
...item,
|
|
1481
2235
|
content: [...item.content || []],
|
|
@@ -1523,31 +2277,30 @@ function createChatStore() {
|
|
|
1523
2277
|
item.generating = false;
|
|
1524
2278
|
});
|
|
1525
2279
|
}
|
|
2280
|
+
function finalizeSubMessages(messages) {
|
|
2281
|
+
messages.forEach((item) => {
|
|
2282
|
+
item.generating = false;
|
|
2283
|
+
});
|
|
2284
|
+
normalizeMessagesByExecutionAndRole(messages);
|
|
2285
|
+
}
|
|
1526
2286
|
function startCallback(msg, messages, isMain) {
|
|
1527
|
-
const idx = findExecutionMsgIndex(msg, messages);
|
|
1528
2287
|
const contentItem = msg.content[0];
|
|
1529
2288
|
if (contentItem.type !== "runStarted") return;
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
if (
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
updatedAt: msg.createdAt
|
|
1545
|
-
});
|
|
1546
|
-
}
|
|
2289
|
+
messages.push({
|
|
2290
|
+
...msg,
|
|
2291
|
+
content: [contentItem],
|
|
2292
|
+
generating: true
|
|
2293
|
+
});
|
|
2294
|
+
if (isMain) {
|
|
2295
|
+
const targetConversation = conversations.list.items.find((item) => item.id === msg.conversationId);
|
|
2296
|
+
if (targetConversation && msg.createdAt) {
|
|
2297
|
+
updateConversations({
|
|
2298
|
+
...targetConversation,
|
|
2299
|
+
id: targetConversation.id,
|
|
2300
|
+
title: targetConversation.label,
|
|
2301
|
+
updatedAt: msg.createdAt
|
|
2302
|
+
});
|
|
1547
2303
|
}
|
|
1548
|
-
} else {
|
|
1549
|
-
const prevContent = messages[idx]?.content || [];
|
|
1550
|
-
messages[idx].content = [...prevContent, contentItem];
|
|
1551
2304
|
}
|
|
1552
2305
|
if (isMain) conversation.messages[msg.conversationId].loading = true;
|
|
1553
2306
|
}
|
|
@@ -1622,9 +2375,8 @@ function createChatStore() {
|
|
|
1622
2375
|
}
|
|
1623
2376
|
if (isMain) config.hooks?.onStepMessage?.(msg);
|
|
1624
2377
|
}
|
|
1625
|
-
function doneCallback(msg,
|
|
1626
|
-
conversation.messages[msg.conversationId].loading = false;
|
|
1627
|
-
const messages = conversation.messages[msg.conversationId]?.message;
|
|
2378
|
+
function doneCallback(msg, messages, isMain) {
|
|
2379
|
+
if (isMain) conversation.messages[msg.conversationId].loading = false;
|
|
1628
2380
|
if (messages) {
|
|
1629
2381
|
const idx = findExecutionMsgIndex(msg, messages);
|
|
1630
2382
|
const contentItem = msg.content[0];
|
|
@@ -1731,6 +2483,12 @@ function createChatStore() {
|
|
|
1731
2483
|
nextToolCallItem.resultDisplay = contentItem.display;
|
|
1732
2484
|
nextToolCallItem.displayProtocol = true;
|
|
1733
2485
|
}
|
|
2486
|
+
const meta = contentItem.metadata;
|
|
2487
|
+
if (meta?.conversationId) {
|
|
2488
|
+
nextToolCallItem.subConversationId = meta.conversationId;
|
|
2489
|
+
nextToolCallItem.hasSubAgent = true;
|
|
2490
|
+
nextToolCallItem.agentName = msg.agentName || meta.agentName || nextToolCallItem.agentName;
|
|
2491
|
+
}
|
|
1734
2492
|
messages[idx].content = contents.map((item, i) => i === toolCallIndex ? nextToolCallItem : item);
|
|
1735
2493
|
} else {
|
|
1736
2494
|
messages[idx].content = [...contents, contentItem];
|
|
@@ -1834,35 +2592,46 @@ function createChatStore() {
|
|
|
1834
2592
|
if (itemIdx !== -1) {
|
|
1835
2593
|
return { messageList: msg, itemIndex: itemIdx };
|
|
1836
2594
|
}
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
2595
|
+
}
|
|
2596
|
+
return null;
|
|
2597
|
+
}
|
|
2598
|
+
function findSpawnToolCallRecursive(messages) {
|
|
2599
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
2600
|
+
const msg = messages[i];
|
|
2601
|
+
const contents = msg.content || [];
|
|
2602
|
+
for (let k = contents.length - 1; k >= 0; k--) {
|
|
2603
|
+
const c = contents[k];
|
|
2604
|
+
if (c.type === "toolCall" || c.type === "toolResult") {
|
|
2605
|
+
return { messageList: msg, itemIndex: k };
|
|
1844
2606
|
}
|
|
1845
2607
|
}
|
|
1846
2608
|
}
|
|
1847
2609
|
return null;
|
|
1848
2610
|
}
|
|
1849
2611
|
function routeSubAgentMessage(msg) {
|
|
1850
|
-
const
|
|
1851
|
-
|
|
1852
|
-
if (!
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
2612
|
+
const subConvId = msg.conversationId;
|
|
2613
|
+
if (!subConvId) return;
|
|
2614
|
+
if (!subAgentMessages.messages[subConvId]) {
|
|
2615
|
+
subAgentMessages.messages[subConvId] = [];
|
|
2616
|
+
}
|
|
2617
|
+
processMessageContent(msg, subAgentMessages.messages[subConvId]);
|
|
2618
|
+
for (const convId of Object.keys(conversation.messages)) {
|
|
2619
|
+
const mainMessages = conversation.messages[convId]?.message;
|
|
2620
|
+
if (!mainMessages) continue;
|
|
2621
|
+
const found = msg.toolCallId ? findToolCallItemRecursive(mainMessages, msg.toolCallId) : findSpawnToolCallRecursive(mainMessages);
|
|
2622
|
+
if (!found) continue;
|
|
2623
|
+
const { messageList, itemIndex } = found;
|
|
2624
|
+
const contents = messageList.content;
|
|
2625
|
+
const toolCallItem = contents[itemIndex];
|
|
2626
|
+
toolCallItem.hasSubAgent = true;
|
|
2627
|
+
toolCallItem.subConversationId = subConvId;
|
|
2628
|
+
toolCallItem.agentName = msg.agentName || toolCallItem.agentName;
|
|
2629
|
+
messageList.content = contents.map((c, i) => i === itemIndex ? { ...toolCallItem } : c);
|
|
2630
|
+
if (subAgentPanel.active?.subConversationId === subConvId && msg.agentName) {
|
|
2631
|
+
subAgentPanel.active.agentName = msg.agentName;
|
|
2632
|
+
}
|
|
2633
|
+
break;
|
|
1863
2634
|
}
|
|
1864
|
-
processMessageContent(msg, toolCallItem.subMessages);
|
|
1865
|
-
messageList.content = contents.map((c, i) => i === itemIndex ? { ...toolCallItem } : c);
|
|
1866
2635
|
}
|
|
1867
2636
|
function processSingleMessageContent(newMessage, messages, isMain) {
|
|
1868
2637
|
switch (newMessage.content[0].type) {
|
|
@@ -1954,31 +2723,25 @@ function createChatStore() {
|
|
|
1954
2723
|
function isStoppedIncomingMessage(newMessage) {
|
|
1955
2724
|
const messages = conversation.messages[newMessage.conversationId]?.message;
|
|
1956
2725
|
if (!messages) return false;
|
|
1957
|
-
|
|
1958
|
-
return true;
|
|
1959
|
-
}
|
|
1960
|
-
return messages.some(
|
|
1961
|
-
(msg) => msg.content?.some((c) => {
|
|
1962
|
-
if (c.type === "toolCall") {
|
|
1963
|
-
const subMessages = c.subMessages;
|
|
1964
|
-
return subMessages?.some((sub) => sub.stopFlag && sub.executionId === newMessage.executionId);
|
|
1965
|
-
}
|
|
1966
|
-
return false;
|
|
1967
|
-
})
|
|
1968
|
-
);
|
|
2726
|
+
return messages.some((item) => item.stopFlag && item.executionId === newMessage.executionId);
|
|
1969
2727
|
}
|
|
1970
2728
|
const acceptMessage = async (newMessage) => {
|
|
1971
2729
|
const conversationId = newMessage.conversationId;
|
|
1972
|
-
if (!conversation.messages[conversationId]?.message) return;
|
|
1973
2730
|
const isActive = conversation.active.id === conversationId;
|
|
1974
|
-
const
|
|
1975
|
-
if (
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
2731
|
+
const isSubAgent = !!newMessage.parentExecutionId || (newMessage.depth ?? 0) > 0;
|
|
2732
|
+
if (isSubAgent) {
|
|
2733
|
+
const canProceed2 = await config.hooks?.onBeforeAcceptMessage?.(newMessage, isActive);
|
|
2734
|
+
if (canProceed2 === false) {
|
|
2735
|
+
throw new Error("\u64CD\u4F5C\u88AB\u963B\u6B62");
|
|
2736
|
+
}
|
|
1979
2737
|
routeSubAgentMessage(newMessage);
|
|
1980
2738
|
return;
|
|
1981
2739
|
}
|
|
2740
|
+
if (!conversation.messages[conversationId]?.message) return;
|
|
2741
|
+
const canProceed = await config.hooks?.onBeforeAcceptMessage?.(newMessage, isActive);
|
|
2742
|
+
if (canProceed === false) {
|
|
2743
|
+
throw new Error(t(`${NS_CHAT_COPILOT}:operationBlocked`));
|
|
2744
|
+
}
|
|
1982
2745
|
if (isStoppedIncomingMessage(newMessage)) {
|
|
1983
2746
|
conversation.messages[conversationId].loading = false;
|
|
1984
2747
|
return;
|
|
@@ -2015,14 +2778,14 @@ function createChatStore() {
|
|
|
2015
2778
|
return false;
|
|
2016
2779
|
});
|
|
2017
2780
|
if (invalid) {
|
|
2018
|
-
message.error(
|
|
2781
|
+
message.error(t(`${NS_CHAT_COPILOT}:checkParams`));
|
|
2019
2782
|
return;
|
|
2020
2783
|
}
|
|
2021
2784
|
}
|
|
2022
2785
|
conversation.messages[conversationId].loading = true;
|
|
2023
2786
|
const idx = conversations.list.items.findIndex((item) => item.id === conversationId);
|
|
2024
2787
|
if (idx !== -1 && !conversations.list.items[idx].label) {
|
|
2025
|
-
conversations.list.items[idx].label =
|
|
2788
|
+
conversations.list.items[idx].label = t(`${NS_CHAT_COPILOT}:newConversationTitle`);
|
|
2026
2789
|
}
|
|
2027
2790
|
const sendParams = {
|
|
2028
2791
|
conversationId,
|
|
@@ -2057,7 +2820,7 @@ function createChatStore() {
|
|
|
2057
2820
|
config.hooks?.onAfterSend?.();
|
|
2058
2821
|
} catch (err) {
|
|
2059
2822
|
conversation.messages[conversationId].loading = false;
|
|
2060
|
-
const errMsg = err?.response?.data?.message || err?.message ||
|
|
2823
|
+
const errMsg = err?.response?.data?.message || err?.message || t(`${NS_CHAT_COPILOT}:sendFailed`);
|
|
2061
2824
|
message.error(errMsg);
|
|
2062
2825
|
throw err;
|
|
2063
2826
|
} finally {
|
|
@@ -2080,9 +2843,6 @@ function createChatStore() {
|
|
|
2080
2843
|
if (contentItem.type === "toolCall" && contentItem.status !== "success" && contentItem.status !== "error") {
|
|
2081
2844
|
contentItem.status = "error";
|
|
2082
2845
|
}
|
|
2083
|
-
if (contentItem.subMessages?.length) {
|
|
2084
|
-
markStopped(contentItem.subMessages);
|
|
2085
|
-
}
|
|
2086
2846
|
});
|
|
2087
2847
|
}
|
|
2088
2848
|
});
|
|
@@ -2110,6 +2870,10 @@ function createChatStore() {
|
|
|
2110
2870
|
setParams,
|
|
2111
2871
|
/** 设置布局配置 */
|
|
2112
2872
|
setLayout,
|
|
2873
|
+
/** 设置智能体执行链展示模式(聚合 / 顺序) */
|
|
2874
|
+
setExecMode,
|
|
2875
|
+
/** 获取会话执行轨迹(debug 模式) */
|
|
2876
|
+
fetchExecutionDebug,
|
|
2113
2877
|
/** 设置生命周期钩子 */
|
|
2114
2878
|
setHooks,
|
|
2115
2879
|
/** 获取智能体详情 */
|
|
@@ -2161,7 +2925,17 @@ function createChatStore() {
|
|
|
2161
2925
|
/** 获取会话收藏列表 */
|
|
2162
2926
|
getConversationFavorite,
|
|
2163
2927
|
/** 收藏会话 */
|
|
2164
|
-
collectConversation
|
|
2928
|
+
collectConversation,
|
|
2929
|
+
/** 子智能体执行详情面板状态 */
|
|
2930
|
+
subAgentPanel,
|
|
2931
|
+
/** 子智能体消息独立存储(实时推送 + 懒加载) */
|
|
2932
|
+
subAgentMessages,
|
|
2933
|
+
/** 打开子智能体执行详情面板 */
|
|
2934
|
+
openSubAgent,
|
|
2935
|
+
/** 关闭子智能体执行详情面板 */
|
|
2936
|
+
closeSubAgent,
|
|
2937
|
+
/** 右侧面板聚焦意图(通用) */
|
|
2938
|
+
focusTarget
|
|
2165
2939
|
};
|
|
2166
2940
|
}
|
|
2167
2941
|
var AuthImage = ({ path, size, shape = "square" }) => {
|
|
@@ -2200,7 +2974,7 @@ var AuthImage_default = AuthImage;
|
|
|
2200
2974
|
window._iconfont_svg_string_5021436 = '<svg><symbol id="icon-Ollama" viewBox="0 0 1024 1024"><path d="M686.682353 446.524235a33.912471 33.912471 0 0 0-21.022118 17.648941l-2.710588 5.601883 0.060235 7.830588c0 7.228235 0.180706 8.131765 2.228706 13.251765 2.831059 7.228235 5.722353 11.745882 10.962824 16.865882 9.035294 8.975059 19.215059 11.264 32.828235 7.710118a32.346353 32.346353 0 0 0 22.467765-35.177412c-2.409412-17.046588-12.408471-29.455059-27.286588-33.731765a41.381647 41.381647 0 0 0-17.468236 0z m-346.473412 0.180706a37.948235 37.948235 0 0 0-24.455529 24.094118 45.176471 45.176471 0 0 0-2.228706 19.516235 33.129412 33.129412 0 0 0 22.467765 25.118118c13.673412 3.614118 23.792941 1.204706 32.828235-7.710118a42.887529 42.887529 0 0 0 10.962823-16.865882 25.479529 25.479529 0 0 0 2.228706-13.251765v-7.830588l-2.650353-5.601883a33.852235 33.852235 0 0 0-21.263058-17.769411 37.647059 37.647059 0 0 0-17.889883 0.301176z m157.515294 75.294118c-4.939294 2.650353-8.372706 9.396706-7.348706 14.396235 1.204706 5.421176 5.963294 10.842353 13.312 15.299765 3.975529 2.409412 4.216471 2.710588 4.397177 5.12a45.899294 45.899294 0 0 1-1.084235 9.155765 65.656471 65.656471 0 0 0-1.325177 8.372705 15.661176 15.661176 0 0 0 5.360941 9.517177c2.409412 1.987765 2.831059 2.048 9.637647 2.228706 6.144 0.180706 7.408941 0 9.878589-1.144471 6.384941-3.072 8.011294-8.794353 5.662117-19.757176-1.927529-9.155765-1.566118-10.541176 3.252706-13.372236a33.731765 33.731765 0 0 0 12.227765-11.806117 13.733647 13.733647 0 0 0-6.625883-18.070588 15.058824 15.058824 0 0 0-6.806588-1.204706c-4.698353 0-7.770353 1.084235-13.312 4.638117l-3.252706 1.987765-1.987764-1.204706c-8.252235-4.879059-9.758118-5.421176-14.697412-5.421176a15.058824 15.058824 0 0 0-7.228235 1.204706z m14.697412-82.642824a205.763765 205.763765 0 0 0-24.636235 3.252706 169.381647 169.381647 0 0 0-35.779765 12.348235c-35.418353 17.287529-59.813647 46.140235-67.282823 79.510589-1.505882 6.625882-1.686588 8.854588-1.686589 19.998117 0 11.083294 0.180706 13.432471 1.626353 19.757177 9.938824 43.670588 50.115765 75.896471 102.159059 81.799529 11.324235 1.204706 60.114824 1.204706 71.378824 0 41.803294-4.758588 77.703529-27.407059 93.846588-59.151059a85.534118 85.534118 0 0 0 8.31247-22.64847 68.065882 68.065882 0 0 0 1.626353-19.696941c0-11.203765-0.180706-13.372235-1.686588-19.998118-10.842353-48.549647-57.946353-86.738824-115.651765-93.967059a264.011294 264.011294 0 0 0-32.225882-1.204706z m24.274824 35.237647c19.335529 2.168471 37.948235 8.794353 54.211764 19.395765 8.432941 5.541647 20.239059 17.227294 25.298824 24.877177 6.204235 9.456941 9.758118 19.154824 11.38447 30.900705a44.815059 44.815059 0 0 1-1.626353 18.130824c-3.011765 13.010824-12.468706 26.503529-25.298823 36.020706-8.011294 5.481412-16.745412 9.878588-25.901177 13.131294-14.456471 4.577882-23.853176 5.421176-57.46447 5.180235-21.865412-0.240941-25.780706-0.361412-32.105412-1.566117-21.443765-4.035765-38.430118-12.589176-50.838588-25.6a59.994353 59.994353 0 0 1-16.865882-35.599059c-1.204706-7.228235 0.903529-19.215059 5.12-29.214118 5.12-12.288 18.371765-27.527529 31.442823-36.261647a124.687059 124.687059 0 0 1 53.609412-19.275294 197.571765 197.571765 0 0 1 29.033412-0.120471zM329.487059 60.476235c-9.276235 1.807059-18.070588 5.601882-25.660235 11.264-21.624471 16.384-38.309647 51.2-45.417412 94.629647-2.590118 16.384-4.457412 39.152941-4.457412 56.621177 0 20.48 2.409412 46.622118 5.842824 64.752941 0.722824 4.035765 1.204706 7.589647 0.843294 7.830588l-7.04753 5.722353c-13.552941 11.143529-25.539765 24.094118-35.719529 38.369883a207.088941 207.088941 0 0 0-35.358118 88.064 248.470588 248.470588 0 0 0-0.903529 51.079529c3.433412 29.394824 12.227765 54.211765 27.407059 76.8l4.818823 7.348706-1.325176 2.409412c-10.119529 17.046588-18.733176 41.562353-22.768942 65.234823-3.192471 18.672941-3.614118 23.672471-3.614117 48.730353 0 25.178353 0.361412 30.177882 3.312941 47.585882 3.614118 20.961882 10.842353 43.068235 18.974118 57.825883 2.650353 4.818824 9.155765 14.757647 9.938823 15.299764 0.240941 0.120471-0.602353 2.529882-1.807059 5.300706-9.878588 22.467765-16.865882 46.200471-20.60047 70.475294-2.108235 12.348235-3.011765 24.877176-2.650353 37.345883 0 21.082353 1.204706 31.322353 5.601882 48.188235l0.602353 2.409412h55.657412l-1.867294-3.433412c-11.203765-20.781176-12.227765-59.271529-2.590118-97.761882 4.397176-17.769412 9.396706-30.840471 18.733177-48.790588l5.601882-10.902589v-6.625882c0-6.264471-0.120471-6.987294-2.168471-11.083294a33.912471 33.912471 0 0 0-7.28847-9.396706 64.030118 64.030118 0 0 1-14.456471-20.48c-16.022588-34.635294-19.094588-86.016-7.830588-129.867294 4.638118-18.311529 12.348235-34.575059 20.48-43.489883a30.117647 30.117647 0 0 0 8.372706-19.998117 27.587765 27.587765 0 0 0-8.432941-19.636706 118.241882 118.241882 0 0 1-30.72-65.054118c-5.300706-36.141176 4.216471-75.535059 25.901176-106.736941 21.202824-30.599529 50.959059-50.296471 84.208941-55.536941 7.529412-1.204706 21.504-1.024 29.214118 0.421647 8.553412 1.505882 13.854118 1.024 19.275294-1.566118 6.746353-3.192471 10.119529-7.168 14.095059-16.263529a80.715294 80.715294 0 0 1 13.552941-21.684706c8.794353-10.842353 17.347765-18.371765 30.960941-27.407059 15.540706-10.179765 33.249882-17.588706 50.898824-21.082353 6.384941-1.325176 9.396706-1.566118 21.443764-1.566117 11.986824 0 14.938353 0.240941 21.38353 1.505882 26.985412 5.842824 51.862588 18.793412 72.041412 37.586824 4.457412 4.096 15.058824 17.167059 18.371764 22.64847 1.325176 2.108235 3.614118 6.625882 4.99953 10.059294 3.975529 9.035294 7.348706 13.010824 14.095059 16.143059a29.214118 29.214118 0 0 0 18.913882 1.746824c12.890353-2.228706 22.889412-2.048 35.538823 0.602353 43.008 8.613647 80.534588 44.152471 97.15953 91.738352 14.456471 41.682824 10.360471 85.353412-11.14353 118.66353-3.674353 5.662118-7.288471 10.24-12.589176 15.781647-11.324235 12.107294-11.324235 27.166118 0 39.634823 18.552471 20.299294 30.117647 70.294588 26.624 114.326589-2.288941 29.033412-9.758118 55.055059-20.058353 69.812706a75.294118 75.294118 0 0 1-8.432941 9.637647 33.972706 33.972706 0 0 0-7.288471 9.456941c-2.048 4.096-2.168471 4.818824-2.16847 11.023059v6.686117l5.601882 10.962824c9.336471 17.889882 14.275765 30.960941 18.733177 48.730353 9.517176 37.948235 8.673882 75.655529-2.228706 97.159529a36.141176 36.141176 0 0 0-1.626353 3.674353c0 0.240941 12.348235 0.361412 27.527529 0.361412h27.467294l0.783059-2.770824 1.325177-5.059764a278.287059 278.287059 0 0 0 3.312941-19.395765 337.679059 337.679059 0 0 0 0-47.405177c-4.096-32.948706-11.083294-59.090824-22.467765-83.787294-1.204706-2.770824-1.987765-5.180235-1.686588-5.300706a53.729882 53.729882 0 0 0 4.035764-5.722352c14.155294-21.443765 22.889412-48.368941 27.286589-83.907765 1.144471-9.758118 1.144471-51.802353 0-61.259294a243.049412 243.049412 0 0 0-13.131294-57.404236 226.063059 226.063059 0 0 0-12.408471-26.383058l-1.385412-2.409412 4.939294-7.288471a169.863529 169.863529 0 0 0 27.346824-76.8c1.445647-17.046588 1.204706-34.153412-0.90353-51.139764a207.088941 207.088941 0 0 0-35.358117-88.064 199.619765 199.619765 0 0 0-35.779765-38.369883l-6.987294-5.722353a26.383059 26.383059 0 0 1 0.843294-7.830588c7.830588-40.96 7.589647-91.979294-0.602353-131.915294-7.168-34.755765-20.178824-62.403765-36.924235-78.305882-13.251765-12.769882-26.925176-18.191059-43.248941-17.167059-37.526588 2.228706-67.764706 45.357176-79.691294 113.302588-1.686588 9.035294-2.891294 18.191059-3.614118 27.346823 0 1.325176-0.301176 2.469647-0.602353 2.469648a37.586824 37.586824 0 0 1-5.601882-2.95153 182.994824 182.994824 0 0 0-92.400942-26.202353c-31.322353 0-63.548235 9.155765-92.461176 26.262588a37.707294 37.707294 0 0 1-5.601882 2.95153c-0.301176 0-0.602353-1.144471-0.602353-2.469647a263.589647 263.589647 0 0 0-3.614118-27.346824C409.419294 112.64 384.602353 72.282353 351.593412 62.042353a75.535059 75.535059 0 0 0-22.046118-1.566118z m11.083294 52.826353c9.336471 7.408941 19.696941 28.551529 25.660235 52.224a199.499294 199.499294 0 0 1 4.156236 19.757177c2.529882 13.733647 3.674353 28.611765 3.855058 46.682353l0.060236 17.889882-4.517647 6.625882-4.457412 6.625883h-10.480941c-12.167529 0-24.274824 1.566118-35.900236 4.698353l-8.975058 2.288941c-1.204706 0.240941-1.385412-0.120471-2.108236-5.421177a316.235294 316.235294 0 0 1 0.602353-87.461647c4.638118-29.696 15.540706-56.500706 26.202353-64.451764 2.529882-1.807059 3.011765-1.807059 5.903059 0.542117z m369.844706-0.481882c6.445176 4.758588 13.492706 17.347765 18.793412 33.430588 10.541176 32.165647 13.552941 76.378353 7.951058 118.422588-0.722824 5.240471-0.903529 5.662118-2.108235 5.421177l-9.035294-2.288941a139.264 139.264 0 0 0-35.84-4.638118h-10.480941l-4.457412-6.686118-4.517647-6.625882 0.060235-17.829647c0.180706-25.178353 2.529882-44.815059 8.07153-66.740706 5.903059-23.431529 16.323765-44.574118 25.6-51.983059 2.951529-2.349176 3.373176-2.409412 6.023529-0.481882z" fill="#1E1E1E" ></path></symbol><symbol id="icon-Zhipu" viewBox="0 0 1024 1024"><path d="M511.6512 958.56213333a9.3088 9.3088 0 0 0-9.46453333 9.62026667 9.3088 9.3088 0 0 0 9.46453333 9.6576 9.3088 9.3088 0 0 0 9.50293333-9.6576 9.3088 9.3088 0 0 0-8.53333333-9.5808l-0.97066667-0.03946667z m-89.9872-703.53066666c34.592 11.08266667 53.66933333 48.09066667 42.6272 82.69546666l-2.75413333 6.672-0.6208 1.552-0.6976 2.09386667c-2.71573333 6.20586667-4.03413333 12.41173333-4.03413334 19.31733333-1.35786667 27.53813333 18.22933333 49.60853333 46.00213334 50.96533334h14.19733333c50.77226667 2.05653333 90.6848 45.49866667 88.66773333 97.8624-2.01706667 51.66506667-44.68266667 92.31466667-96.11626666 90.25813333H502.18666667c-27.73333333 0.69866667-49.41546667 24.82453333-48.0576 53.06133333 0 4.81066667 0.6976 8.9216 2.05546666 13.072 8.10666667 14.4672 20.94506667 25.52213333 37.23626667 31.02933334 29.09013333 8.9216 58.84053333-4.848 73.696-30.33173334l0.69866667-1.3568c15.59253333-24.82453333 45.38133333-37.23733333 74.47253333-27.57866666 33.12426667 11.01653333 53.4496 47.55413333 42.6272 84.05333333a64.42666667 64.42666667 0 0 1-80.56213333 42.74346667A66.36586667 66.36586667 0 0 1 569.17333333 743.56266667l-0.6592-1.35786667c-7.75786667-12.528-17.95946667-22.496-33.00906666-27.5776l-2.17173334-0.69866667c-28.93226667-9.70773333-60.69013333 2.416-75.79093333 28.93546667a64.3872 64.3872 0 0 1-41.3088 29.63413333c-34.98346667 7.4944-69.45173333-14.66986667-77.1488-49.6096-8.10666667-35.14133333 12.87786667-70.98133333 48.75626667-79.24266666a58.5696 58.5696 0 0 1 11.48053333-1.35786667h0.69866667c26.37546667-2.75413333 44.64426667-24.12586667 43.2864-51.70346667a50.69546667 50.69546667 0 0 0-8.80426667-26.88 97.55093333 97.55093333 0 0 1-14.19733333-54.4192 92.70293333 92.70293333 0 0 1 14.19733333-46.85546666c5.42933333-7.56373333 8.14506667-17.22133333 8.80426667-26.88 0.69866667-27.5392-19.62666667-48.91093333-46.00213334-51.66506667l-2.71466666-0.69866667a55.46666667 55.46666667 0 0 1-11.59786667-2.71466666l-1.9392-0.736c-33.38453333-11.96586667-51.32586667-48.192-40.61013333-81.99786667 10.7616-34.11626667 47.0144-53.17866667 81.22133333-42.70506667zM205.42293333 647.17653333c10.08426667-10.24 24.78506667-14.23573333 38.55466667-10.47253333 13.7696 3.72266667 24.55253333 14.69973333 28.2368 28.70293333 3.68533333 14.04053333-0.27093333 29.01333333-10.35626667 39.29173334-15.59253333 15.90293333-40.84266667 15.90293333-56.4352 0-15.57973333-15.99466667-15.57973333-41.48906667 0-57.48266667v-0.03946667z m575.80266667-11.40373333c13.92426667-3.4912 28.62506667 0.9312 38.4768 11.52 9.85173333 10.62826667 13.344 25.79413333 9.19253333 39.7568-4.14933333 13.96373333-15.36 24.592-29.32266666 27.85066667-21.3728 4.96426667-42.66666667-8.53333333-47.70986667-30.29333334-5.14773333-21.568 7.904-43.29173333 29.3632-48.87253333v0.0384z m-2.4832-170.27733333c12.1792 12.41173333 19.00586667 29.2064 19.00586667 46.7776 0 17.53173333-6.82666667 34.36586667-19.00586667 46.7776-12.2176 12.41173333-28.70293333 19.39413333-45.96266667 19.39413333-17.2224 0-33.74613333-6.9824-45.92533333-19.39413333-25.38453333-26.0192-25.38453333-67.536 0-93.5552a64.15466667 64.15466667 0 0 1 91.888 0z m-436.0896 6.32213333c14.11946667 18.77333333 17.33866667 43.75253333 8.45653333 65.58933333a64.58133333 64.58133333 0 0 1-84.86826666 35.8016c-33.16266667-13.96373333-48.87253333-52.67413333-35.17973334-86.4192a65.16266667 65.16266667 0 0 1 51.5872-40.26133333c23.0016-3.104 45.88586667 6.55466667 60.00426667 25.2896z m447.80373333-163.72266667c14.27413333 0 27.46133333 7.75786667 34.5984 20.32426667 7.13706667 12.56746667 7.13706667 28.08213333 0 40.65066667a39.79626667 39.79626667 0 0 1-34.5984 20.32426666c-22.03093333 0-39.95093333-18.2304-39.95093333-40.65066666 0-22.4576 17.92-40.64853333 39.95093333-40.64853334z m-556.91306666 0c14.27413333 0 27.42293333 7.75786667 34.56 20.32426667 7.136 12.56746667 7.136 28.08213333 0 40.65066667a39.79626667 39.79626667 0 0 1-34.56 20.32426666c-22.06933333 0-39.95093333-18.2304-39.95093334-40.65066666 0-22.4576 17.88053333-40.64853333 39.95093334-40.64853334z m389.0784-57.21173333c35.87946667 0 64.97066667 29.63306667 64.97066666 66.17173333 0 36.5376-29.0912 66.13333333-64.97066666 66.13333334-35.8784 0-64.93013333-29.59573333-64.93013334-66.13333334 0-36.53866667 29.0912-66.17173333 64.93013334-66.17173333z m-101.856-26.5312c14.0416-3.1808 25.328-13.808 29.51786666-27.8496a41.19253333 41.19253333 0 0 0-9.232-39.87306667 39.44746667 39.44746667 0 0 0-38.63253333-11.40373333c-21.216 5.42933333-34.17173333 27.15093333-29.168 48.75626667 5.04213333 21.64266667 26.18133333 35.17973333 47.51466667 30.37013333z m0 654.58133333c13.92533333-3.37493333 24.9792-13.9648 29.0912-27.92746666a41.19253333 41.19253333 0 0 0-9.19253334-39.52533334 39.48586667 39.48586667 0 0 0-38.20586666-11.67466666 40.22293333 40.22293333 0 0 0-29.55733334 27.8112c-4.1888 14.00213333-0.6592 29.24586667 9.27146667 39.87306666 9.50293333 10.2016 23.50506667 14.624 36.96426667 11.8304l1.6672-0.38826666h-0.0384z m192.54186666-696.23893333a24.47466667 24.47466667 0 0 0 24.3584-24.82453333c0-13.7696-10.82133333-24.82346667-24.3584-24.82346667a24.47466667 24.47466667 0 0 0-24.3584 24.82346667c0 13.77066667 10.8608 24.82453333 24.3584 24.82453333z m-402.61546666 0a24.47466667 24.47466667 0 0 0 24.3584-24.82453333c0-13.7696-10.8608-24.82346667-24.3584-24.82346667a24.47466667 24.47466667 0 0 0-24.3584 24.82346667c0 13.77066667 10.82133333 24.82453333 24.3584 24.82453333zM109.69493333 487.25333333a24.47466667 24.47466667 0 0 0-24.35946666 24.82453334c0 13.7312 10.8608 24.78506667 24.35946666 24.78506666 13.0944-0.05333333 23.8208-10.4192 24.32-23.50506666l0.0384-1.3184a24.048 24.048 0 0 0-24.3584-24.82453334v0.0384zM310.69226667 841.38666667a24.47466667 24.47466667 0 0 0-24.3584 24.82346666c0 13.77066667 10.82133333 24.82453333 24.3584 24.82453334a24.47466667 24.47466667 0 0 0 24.3584-24.82453334c0-13.7696-10.8608-24.82346667-24.3584-24.82346666z m402.61546666 0.6976a24.47466667 24.47466667 0 0 0-24.3584 24.82453333c0 13.7696 10.8608 24.82346667 24.3584 24.82346667a24.47466667 24.47466667 0 0 0 24.3584-24.82346667c0-13.77066667-10.82133333-24.82453333-24.3584-24.82453333zM914.30506667 487.25333333a24.47466667 24.47466667 0 0 0-24.3584 24.82453334c0 13.7312 10.8224 24.78506667 24.3584 24.78506666a24.47466667 24.47466667 0 0 0 24.35946666-24.82346666c0-13.77066667-10.8608-24.82453333-24.35946666-24.82453334v0.0384z m-14.89386667-193.62773333a9.3088 9.3088 0 0 0 9.46453333-9.6576 9.3088 9.3088 0 0 0-9.46453333-9.65866667 9.3088 9.3088 0 0 0-9.46453333 9.65866667c0 5.5072 4.7328 9.6576 9.46453333 9.6576zM511.6512 66.2144a9.3088 9.3088 0 0 0 9.50293333-9.62026667 9.3088 9.3088 0 0 0-9.5424-9.6576 9.3088 9.3088 0 0 0-9.46346666 9.6576c0 5.15946667 4.1888 9.15413333 8.6496 9.5808l0.81386666 0.03946667h0.03946667zM124.5504 293.6256a9.3088 9.3088 0 0 0 9.50293333-9.6576 9.3088 9.3088 0 0 0-9.46453333-9.65866667 9.3088 9.3088 0 0 0-9.46453333 9.65866667 9.3088 9.3088 0 0 0 9.46453333 9.6576h-0.0384z m0 436.86613333a9.3088 9.3088 0 0 0-9.42613333 9.6192 9.3088 9.3088 0 0 0 9.46453333 9.6576 9.3088 9.3088 0 0 0 9.46453333-9.6576 9.77493333 9.77493333 0 0 0-9.46453333-9.6192h-0.0384z m775.5584-0.69866666a9.3088 9.3088 0 0 0-9.50293333 9.6192 9.3088 9.3088 0 0 0 9.504 9.696 9.3088 9.3088 0 0 0 9.46346666-9.696 9.77493333 9.77493333 0 0 0-9.46453333-9.6192z" fill="#3859FF" ></path></symbol><symbol id="icon-lolrai" viewBox="0 0 1024 1024"><path d="M1002.50055111 880.16668445c-1.16508445 12.23338667-4.07779555 25.04931555-12.81592889 34.3699911-17.47626667 19.22389333-46.02083555 15.14609778-68.73998222 14.56355556-54.17642667-1.74762667-139.22759111-13.98101333-226.60892445-57.67168-13.98101333-6.99050667-27.96202667-14.56355555-41.36049777-22.71914666-6.40796445-4.07779555-13.39847111-8.15559111-19.80643556-12.8159289-5.82542222-3.49525333-12.23338667-6.99050667-16.31118222-12.81592888-2.91271111-4.07779555-4.07779555-9.90321778-2.33016889-15.14609778 1.16508445-4.07779555 4.07779555-6.99050667 7.57304889-9.32067556 3.49525333-2.33016889 20.97152-11.65084445 25.63185778-14.56355555 8.73813333-5.24288 18.05880889-11.06830222 26.2144-17.47626667 16.89372445-11.65084445 33.78744889-25.04931555 49.51608889-38.44778666 33.20490667-29.12711111 63.49710222-62.91456 88.54641778-99.03217778 8.15559111-12.23338667 14.56355555-25.63185778 26.2144-34.95253334 13.98101333-10.48576 31.45728-13.39847111 47.18592-5.82542222 11.06830222 5.24288 19.22389333 13.98101333 27.37948444 22.71914667 24.46677333 27.37948445 46.60337778 58.25422222 61.16693333 92.04167111 0 0.58254222 0.58254222 0.58254222 0.58254223 1.16508444 13.98101333 31.45728 23.30168889 65.82727111 27.37948444 100.19726222l1.74762666 19.22389334c1.16508445 16.89372445 0.58254222 33.78744889-1.16508444 50.68117333 0.58254222 2.33016889 0.58254222 4.07779555 0 5.82542223zM768.31857778 435.10442667c0.58254222 6.99050667-0.58254222 13.98101333-2.33016889 20.38897778-24.46677333 121.16878222-91.45912889 233.59943111-186.41351111 312.82517333-4.66033778 4.07779555-10.48576 8.15559111-16.89372445 7.57304889-6.40796445-0.58254222-11.65084445-5.82542222-15.72864-9.90321778l-13.39847111-13.39847111c-9.32067555-9.32067555-18.64135111-19.22389333-27.37948444-29.12711111-17.47626667-19.80643555-33.20490667-41.36049778-47.76846223-63.49710222-14.56355555-22.13660445-26.79694222-45.43829333-37.86524444-69.90506667-11.06830222-23.88423111-20.38897778-48.93354667-27.37948444-74.56540445-7.57304889-25.63185778-12.81592889-51.26371555-16.31118222-77.47811555-0.58254222-4.66033778-1.16508445-8.73813333-1.74762667-13.39847111-8.73813333-81.55591111 1.16508445-164.85944889 29.12711111-241.75502222 13.98101333-39.03032889 32.03982222-76.31303111 54.75896889-111.26556445 9.32067555-14.56355555 15.72864-22.13660445 33.20490667-24.46677333 16.89372445-2.33016889 34.95253333 4.07779555 44.27320888 19.22389333 8.73813333 13.98101333 8.73813333 31.45728 9.90321778 48.35100445 6.99050667 114.17827555 76.89557333 222.53112889 178.25792 275.5424711 17.47626667 8.73813333 37.28270222 18.64135111 42.52558222 37.28270223 0.58254222 2.33016889 1.16508445 5.24288 1.16508445 7.57304889zM652.39267555 974.53852445c-2.91271111 2.91271111-6.99050667 3.49525333-10.48576 1.16508444-4.07779555-2.33016889-6.99050667-5.82542222-10.48576-8.73813334-3.49525333-2.91271111-7.57304889-6.40796445-11.06830222-9.32067555-8.15559111-6.40796445-15.72864-12.81592889-24.46677333-18.64135111-6.99050667-5.24288-14.56355555-10.48576-22.71914667-15.14609778-38.44778667-23.88423111-79.80828445-41.94304-121.16878222-53.01134222-44.85575111-12.23338667-90.29404445-16.89372445-135.14979556-15.14609778-6.40796445 0-13.39847111 0.58254222-19.80643555 1.16508444l-15.72864 1.74762667c-4.07779555 0-7.57304889-1.16508445-9.90321778-4.07779555-1.74762667-2.91271111-2.33016889-6.40796445 0-9.32067556 1.74762667-1.74762667 3.49525333-2.91271111 5.82542223-4.07779556 2.33016889-1.16508445 4.07779555-2.33016889 6.40796444-2.9127111 4.66033778-2.33016889 9.32067555-4.07779555 13.98101333-6.40796445 9.32067555-4.07779555 19.22389333-7.57304889 29.12711111-10.48576 1.16508445-0.58254222 2.33016889-0.58254222 4.07779556-1.16508445 2.33016889-0.58254222 5.24288-1.16508445 7.57304889-1.74762666 70.48760889-16.89372445 147.38318222-6.99050667 213.21045333 34.36999111 5.82542222 3.49525333 11.06830222 7.57304889 16.89372444 11.06830222 6.40796445 4.66033778 12.81592889 9.90321778 19.22389334 15.14609778 8.73813333 7.57304889 17.47626667 15.72864 25.04931556 24.46677333 13.98101333 15.14609778 39.03032889 53.01134222 41.94304 65.24472889 0.58254222 2.33016889-0.58254222 4.07779555-2.3301689 5.82542223zM473.55221333 749.09468445c-0.58254222 3.49525333-4.07779555 5.82542222-7.57304888 5.24288 0 0-58.25422222-8.73813333-113.59573334-31.45728C191.60177778 658.21809778 64.60757333 517.82542222 22.08199111 336.65479111c-0.58254222-2.91271111-1.16508445-5.82542222-1.74762666-8.15559111v-0.58254222c-1.74762667-8.73813333-1.74762667-18.05880889 1.74762666-26.2144 5.82542222-13.98101333 17.47626667-24.46677333 33.20490667-27.96202667 11.06830222-2.33016889 23.30168889-0.58254222 33.20490667 5.24288 2.91271111 1.74762667 5.82542222 4.07779555 8.73813333 6.99050667 5.24288 5.24288 8.73813333 11.06830222 13.39847111 16.31118222 4.66033778 5.24288 9.90321778 10.48576 15.14609778 15.14609778 11.06830222 9.90321778 23.88423111 19.22389333 36.70016 26.2144 8.73813333 4.66033778 18.05880889 9.32067555 27.37948444 12.81592889 9.32067555 3.49525333 19.22389333 6.40796445 29.12711111 8.73813333 5.82542222 1.16508445 11.65084445 2.33016889 18.05880889 2.91271111 6.40796445 0.58254222 12.23338667 1.16508445 18.64135111 1.16508444 3.49525333 0 6.99050667 0.58254222 9.32067556 2.3301689 3.49525333 1.74762667 5.24288 5.82542222 6.40796444 9.32067555 1.16508445 3.49525333 2.91271111 17.47626667 3.49525333 20.97152 1.16508445 8.15559111 5.24288 26.79694222 5.24288 28.54456889 6.40796445 28.54456889 14.56355555 57.08913778 25.63185778 84.46862222 10.48576 26.79694222 22.71914667 52.4288 37.28270222 76.89557334 14.56355555 25.04931555 30.87473778 48.93354667 49.5160889 71.0701511 20.97152 24.46677333 68.15744 69.90506667 75.14794666 76.31303112 2.33016889 2.91271111 6.40796445 5.82542222 5.82542222 9.90321778z" fill="#2b84ad" ></path></symbol><symbol id="icon-reason" viewBox="0 0 1024 1024"><path d="M638.06472596 110.87954931c49.79829823-19.09314497 98.52342423-29.73683863 142.61151416-28.58340504 44.38583372 1.16249537 86.51917085 14.49235595 117.92466931 45.89785443 31.40420393 31.40420393 44.73535905 73.53883559 45.89785442 117.92337477 1.1534336 44.08808992-9.49155461 92.81321591-28.58340503 142.61151416-15.38558736 40.12939188-36.72605076 82.1643441-63.34305217 124.6860427 26.8707309 42.81814787 48.39501875 85.15602205 63.88675824 125.55985604 19.09185043 49.79829823 29.73683863 98.52342423 28.58340503 142.61151416-1.16249537 44.38583372-14.49235595 86.51917085-45.89655987 117.9246693-31.40549847 31.40420393-73.53883559 44.73406451-117.92466932 45.89655989-44.08808992 1.15472814-92.81321591-9.48896553-142.61151415-28.5821105-40.43878653-15.50468489-82.81679138-37.05356895-125.67248087-63.95795785-42.35729225 26.47719127-84.22654356 47.71538615-124.20447448 63.04271929-49.79829823 19.09185043-98.52342423 29.73683863-142.61151414 28.58340504-44.38453918-1.16249537-86.51917085-14.49365049-117.92466932-45.89785441-31.40290939-31.40549847-44.73406451-73.53754107-45.89655988-117.92337479-1.1534336-44.08808992 9.49155461-92.81321591 28.58340504-142.61151415 15.38170373-40.1164465 36.7105163-82.13845333 63.31586686-124.64461748-26.35162107-42.20971488-47.49660918-83.93138883-62.77216078-123.77339322-19.09185043-49.79829823-29.7355441-98.52342423-28.58211051-142.61151416 1.16249537-44.38453918 14.49235595-86.51917085 45.89655988-117.92337477 31.40549847-31.40549847 73.53883559-44.73535905 117.92466932-45.89655988 44.08808992-1.15472814 92.81321591 9.49026007 142.61151415 28.58340503 39.80705185 15.26131168 81.48859511 36.38299813 123.6607684 62.7009612 42.67057051-26.74516069 84.85827824-48.17753632 125.12618571-63.61619976z m162.61471953 477.2341229c-29.31740823 38.36364169-62.59739813 76.44766309-99.35581234 113.20607732-36.89692981 36.89692981-75.13241221 70.28824999-113.64363125 99.68721415 27.83775099 15.72864 54.89489541 28.60670672 80.59018557 38.45814297 43.31395603 16.60633695 80.89440205 23.90235465 110.78270165 23.11915898 29.59055582-0.77413389 49.10830933-9.25724318 61.50869145-21.65762528 12.39908756-12.4003821 20.88478594-31.91813563 21.65891981-61.50869143 0.78319565-29.88829962-6.51411659-67.46874563-23.12045353-110.78399621-9.84366901-25.67328301-22.70879037-52.70712573-38.42060136-80.5202805z m-574.6092917 0.13592653c-15.44254704 27.44421136-28.10960403 54.12205605-37.82899736 79.47170449-16.60633695 43.31395603-23.90235465 80.89440205-23.119159 110.78270167 0.77542843 29.59055582 9.25983227 49.10701479 21.65891982 61.50739689 12.4003821 12.39908756 31.91813563 20.88478594 61.50869144 21.65891983 29.88829962 0.78319565 67.46874563-6.51282205 110.78270168-23.11915899 25.26938706-9.68832443 51.85402501-22.30618896 79.2050296-37.68142002-38.04518526-29.14264557-75.8016885-62.1805568-112.2584753-98.63734359-37.00567103-37.00567103-70.48760889-75.3550728-99.94871088-113.98280028z m286.96029867-314.09123177c-43.03433577 30.77894195-86.6796936 67.60337762-128.97225891 109.89594295-42.43755362 42.43884816-79.37073051 86.2369615-110.21310484 129.41628555 30.95241008 43.42528631 68.06941139 87.49136909 110.75810544 130.1787686 42.11391905 42.1152136 85.56897975 78.80631182 128.42725831 109.50499239 43.27253081-30.88379955 87.17550175-67.88558697 129.7088512-110.41893641 42.38836116-42.38836116 79.2827019-86.13598752 110.10306909-129.26482458-30.71033141-42.88287478-67.42084773-86.36382625-109.55936301-128.50234152-42.71199573-42.71199573-86.80396926-79.84712059-130.25255728-110.80988698z m0.44661571 126.92559392c62.07181558 0 112.39181275 50.31999715 112.39181274 112.39310728 0 62.07181558-50.31999715 112.39181275-112.39181274 112.39181274-62.07311013 0-112.39310729-50.31999715-112.39310728-112.39181274 0-62.07311013 50.31999715-112.39310729 112.39310728-112.39310728z m0 82.85044938c-16.31506583 0-29.5426579 13.22759205-29.5426579 29.5426579 0 16.31506583 13.22629751 29.54136336 29.5426579 29.54136335 16.31506583 0 29.54136336-13.22629751 29.54136335-29.54136335 0-16.31636037-13.22629751-29.5426579-29.54136335-29.5426579z m265.03082034-318.81629646c-29.88829962-0.78190112-67.47004018 6.51411659-110.78399621 23.12045354-25.50110942 9.77764756-52.34594955 22.53661677-79.96362903 38.10473402 38.66915271 29.48440368 77.06127423 62.99482137 114.10707595 100.04062309 36.49562295 36.49562295 69.5646031 74.29614048 98.72925582 112.38275097 15.50080126-27.52447273 28.21187255-54.27740065 37.9584512-79.69824868 16.60633695-43.31395603 23.90235465-80.89569659 23.119159-110.78399621-0.77413389-29.59055582-9.25853772-49.10830933-21.65762529-61.50869144-12.4003821-12.39908756-31.91813563-20.88219685-61.50869144-21.65762529z m-418.89057754 24.03310302c-43.31395603-16.60633695-80.89440205-23.90106011-110.78270167-23.119159-29.59055582 0.77542843-49.10830933 9.25983227-61.50869143 21.65891982-12.39908756 12.4003821-20.88349139 31.91813563-21.65762528 61.50869145-0.78319565 29.88829962 6.51282205 67.46874563 23.11915898 110.78270166 9.62230297 25.09591893 22.13401537 51.49155429 37.36555268 78.64449454 29.30964101-38.34681268 62.57798005-76.4140051 99.3208598-113.15688485 36.60436417-36.60306963 74.52009561-69.76007838 112.72062546-98.98816348-27.12963856-15.21600285-53.50197223-27.71606439-78.57717854-37.33060014z" ></path></symbol><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) => {
|
|
2201
2975
|
var a = (c = (c = document.getElementsByTagName("script"))[c.length - 1]).getAttribute("data-injectcss"), c = c.getAttribute("data-disable-injectsvg");
|
|
2202
2976
|
if (!c) {
|
|
2203
|
-
var h, o,
|
|
2977
|
+
var h, o, t11, i, z, m = function(a2, c2) {
|
|
2204
2978
|
c2.parentNode.insertBefore(a2, c2);
|
|
2205
2979
|
};
|
|
2206
2980
|
if (a && !l.__iconfont__svg__cssinject__) {
|
|
@@ -2216,12 +2990,12 @@ window._iconfont_svg_string_5021436 = '<svg><symbol id="icon-Ollama" viewBox="0
|
|
|
2216
2990
|
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", c2 = c2, (a2 = document.body).firstChild ? m(c2, a2.firstChild) : a2.appendChild(c2));
|
|
2217
2991
|
}, document.addEventListener ? ~["complete", "loaded", "interactive"].indexOf(document.readyState) ? setTimeout(h, 0) : (o = function() {
|
|
2218
2992
|
document.removeEventListener("DOMContentLoaded", o, false), h();
|
|
2219
|
-
}, document.addEventListener("DOMContentLoaded", o, false)) : document.attachEvent && (
|
|
2993
|
+
}, document.addEventListener("DOMContentLoaded", o, false)) : document.attachEvent && (t11 = h, i = l.document, z = false, s(), i.onreadystatechange = function() {
|
|
2220
2994
|
"complete" == i.readyState && (i.onreadystatechange = null, v());
|
|
2221
2995
|
});
|
|
2222
2996
|
}
|
|
2223
2997
|
function v() {
|
|
2224
|
-
z || (z = true,
|
|
2998
|
+
z || (z = true, t11());
|
|
2225
2999
|
}
|
|
2226
3000
|
function s() {
|
|
2227
3001
|
try {
|
|
@@ -2240,6 +3014,7 @@ var ConversationFavoritesBtn_default = ({ icon, disabled, ...rest }) => {
|
|
|
2240
3014
|
const chatStore = useChatStore();
|
|
2241
3015
|
const conversationsState = useSnapshot(chatStore.conversations);
|
|
2242
3016
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
3017
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2243
3018
|
const activeMessages = conversationState.messages[conversationState.active.id]?.message;
|
|
2244
3019
|
const activeConversation = useMemo(() => {
|
|
2245
3020
|
return conversationsState.list.items.find((item) => item.id === conversationState.active.id);
|
|
@@ -2252,7 +3027,7 @@ var ConversationFavoritesBtn_default = ({ icon, disabled, ...rest }) => {
|
|
|
2252
3027
|
return /* @__PURE__ */ jsx(
|
|
2253
3028
|
Button,
|
|
2254
3029
|
{
|
|
2255
|
-
title: isFavorite ? "
|
|
3030
|
+
title: isFavorite ? t11("unfavorite") : t11("favorite"),
|
|
2256
3031
|
type: "text",
|
|
2257
3032
|
size: "large",
|
|
2258
3033
|
disabled: disabled || !conversationState.active.id || !activeMessages?.length,
|
|
@@ -2266,17 +3041,18 @@ var ConversationShareBtn_default = ({ icon, disabled, ...rest }) => {
|
|
|
2266
3041
|
const chatStore = useChatStore();
|
|
2267
3042
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
2268
3043
|
const configState = useSnapshot(chatStore.config);
|
|
3044
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2269
3045
|
const activeMessages = conversationState.messages[conversationState.active.id]?.message;
|
|
2270
3046
|
const handleShareConversation = async () => {
|
|
2271
3047
|
const { data } = await configState.services.request.shareConversation(conversationState.active.id);
|
|
2272
3048
|
if (data) {
|
|
2273
|
-
copyText(data.url, "
|
|
3049
|
+
copyText(data.url, t11("linkCopied"));
|
|
2274
3050
|
}
|
|
2275
3051
|
};
|
|
2276
3052
|
return /* @__PURE__ */ jsx(
|
|
2277
3053
|
Button,
|
|
2278
3054
|
{
|
|
2279
|
-
title: "
|
|
3055
|
+
title: t11("share"),
|
|
2280
3056
|
type: "text",
|
|
2281
3057
|
size: "large",
|
|
2282
3058
|
disabled: disabled || !conversationState.active.id || !activeMessages?.length,
|
|
@@ -2288,7 +3064,18 @@ var ConversationShareBtn_default = ({ icon, disabled, ...rest }) => {
|
|
|
2288
3064
|
};
|
|
2289
3065
|
var CreateBtn_default = ({ icon, ...rest }) => {
|
|
2290
3066
|
const chatStore = useChatStore();
|
|
2291
|
-
|
|
3067
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3068
|
+
return /* @__PURE__ */ jsx(
|
|
3069
|
+
Button,
|
|
3070
|
+
{
|
|
3071
|
+
title: t11("create"),
|
|
3072
|
+
size: "large",
|
|
3073
|
+
type: "text",
|
|
3074
|
+
icon: icon?.() || /* @__PURE__ */ jsx(PlusOutlined, {}),
|
|
3075
|
+
onClick: () => chatStore.createConversation(),
|
|
3076
|
+
...rest
|
|
3077
|
+
}
|
|
3078
|
+
);
|
|
2292
3079
|
};
|
|
2293
3080
|
|
|
2294
3081
|
// src/ui/common/styles.module.less
|
|
@@ -2316,7 +3103,12 @@ var styles_module_default2 = {
|
|
|
2316
3103
|
gradientText: "styles_module_gradientText",
|
|
2317
3104
|
greetingSubtitle: "styles_module_greetingSubtitle",
|
|
2318
3105
|
senderReferenceHeaderTitle: "styles_module_senderReferenceHeaderTitle",
|
|
2319
|
-
senderReferenceHeaderContent: "styles_module_senderReferenceHeaderContent"
|
|
3106
|
+
senderReferenceHeaderContent: "styles_module_senderReferenceHeaderContent",
|
|
3107
|
+
conversationLabel: "styles_module_conversationLabel",
|
|
3108
|
+
conversationLabelTitle: "styles_module_conversationLabelTitle",
|
|
3109
|
+
conversationStatusDot: "styles_module_conversationStatusDot",
|
|
3110
|
+
conversationStatusRunning: "styles_module_conversationStatusRunning",
|
|
3111
|
+
conversationStatusUnread: "styles_module_conversationStatusUnread"
|
|
2320
3112
|
};
|
|
2321
3113
|
var ConversationTabPane = ({ items, activeKey, emptyDescription, scrollableTarget, menu, onActiveChange }) => {
|
|
2322
3114
|
return /* @__PURE__ */ jsx("div", { className: "height-full", children: items.length ? /* @__PURE__ */ jsx("div", { className: "height-full scroll-fade-in", id: scrollableTarget, children: /* @__PURE__ */ jsx(
|
|
@@ -2344,27 +3136,56 @@ var ConversationTabPane = ({ items, activeKey, emptyDescription, scrollableTarge
|
|
|
2344
3136
|
}
|
|
2345
3137
|
) }) : /* @__PURE__ */ jsx("div", { className: styles_module_default2.conversationEmpty, children: /* @__PURE__ */ jsx(Empty, { description: emptyDescription, image: Empty.PRESENTED_IMAGE_SIMPLE }) }) });
|
|
2346
3138
|
};
|
|
3139
|
+
function withStatusDot(item, running, unread, activeId) {
|
|
3140
|
+
const convId = item.key;
|
|
3141
|
+
const isActive = convId === activeId;
|
|
3142
|
+
const isRunning = !!running[convId];
|
|
3143
|
+
const isUnread = !isActive && !!unread[convId];
|
|
3144
|
+
if (!isRunning && !isUnread) return item;
|
|
3145
|
+
return {
|
|
3146
|
+
...item,
|
|
3147
|
+
label: /* @__PURE__ */ jsxs("span", { className: styles_module_default2.conversationLabel, children: [
|
|
3148
|
+
/* @__PURE__ */ jsx("span", { className: styles_module_default2.conversationLabelTitle, children: String(item.label) }),
|
|
3149
|
+
/* @__PURE__ */ jsx("span", { className: `${styles_module_default2.conversationStatusDot} ${isRunning ? styles_module_default2.conversationStatusRunning : styles_module_default2.conversationStatusUnread}` })
|
|
3150
|
+
] })
|
|
3151
|
+
};
|
|
3152
|
+
}
|
|
3153
|
+
function sortRunningFirst(arr, running) {
|
|
3154
|
+
return [...arr].sort((a, b) => {
|
|
3155
|
+
const ar = !!running[a.key];
|
|
3156
|
+
const br = !!running[b.key];
|
|
3157
|
+
if (ar === br) return 0;
|
|
3158
|
+
return ar ? -1 : 1;
|
|
3159
|
+
});
|
|
3160
|
+
}
|
|
2347
3161
|
var ConversationList_default = ({ onClose }) => {
|
|
2348
3162
|
const chatStore = useChatStore();
|
|
2349
3163
|
const conversationsState = useSnapshot(chatStore.conversations);
|
|
2350
3164
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
2351
3165
|
const favoriteState = useSnapshot(chatStore.favorite);
|
|
2352
3166
|
const [activeTabKey, setActiveTabKey] = useState("history");
|
|
3167
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2353
3168
|
const conversationList = useMemo(() => {
|
|
2354
|
-
return
|
|
2355
|
-
|
|
3169
|
+
return sortRunningFirst(
|
|
3170
|
+
conversationsState.list.items.filter((item) => item.label).map((item) => withStatusDot(item, conversationState.running, conversationState.unread, conversationState.active.id)),
|
|
3171
|
+
conversationState.running
|
|
3172
|
+
);
|
|
3173
|
+
}, [conversationsState.list.items, conversationState.running, conversationState.unread, conversationState.active.id]);
|
|
2356
3174
|
const favoriteConversationList = useMemo(() => {
|
|
2357
|
-
return
|
|
2358
|
-
|
|
3175
|
+
return sortRunningFirst(
|
|
3176
|
+
favoriteState.list.items.filter((item) => item.label).map((item) => withStatusDot(item, conversationState.running, conversationState.unread, conversationState.active.id)),
|
|
3177
|
+
conversationState.running
|
|
3178
|
+
);
|
|
3179
|
+
}, [favoriteState.list.items, conversationState.running, conversationState.unread, conversationState.active.id]);
|
|
2359
3180
|
const historyMenuConfig = (conversation) => ({
|
|
2360
3181
|
items: [
|
|
2361
3182
|
{
|
|
2362
|
-
label: `${conversation.isFavorite ? "
|
|
3183
|
+
label: `${conversation.isFavorite ? t11("unfavorite") : t11("favorite")}`,
|
|
2363
3184
|
key: "collect",
|
|
2364
3185
|
icon: conversation?.isFavorite ? /* @__PURE__ */ jsx(StarFilled, { className: "primary-text" }) : /* @__PURE__ */ jsx(StarOutlined, {})
|
|
2365
3186
|
},
|
|
2366
3187
|
{
|
|
2367
|
-
label: "
|
|
3188
|
+
label: t11("delete"),
|
|
2368
3189
|
key: "deleteChat",
|
|
2369
3190
|
icon: /* @__PURE__ */ jsx(DeleteOutlined, {}),
|
|
2370
3191
|
danger: true
|
|
@@ -2384,10 +3205,10 @@ var ConversationList_default = ({ onClose }) => {
|
|
|
2384
3205
|
trigger: /* @__PURE__ */ jsx(
|
|
2385
3206
|
Popconfirm,
|
|
2386
3207
|
{
|
|
2387
|
-
title: "
|
|
2388
|
-
okText: "
|
|
2389
|
-
cancelText: "
|
|
2390
|
-
description: "
|
|
3208
|
+
title: t11("tipTitle"),
|
|
3209
|
+
okText: t11("confirm"),
|
|
3210
|
+
cancelText: t11("cancel"),
|
|
3211
|
+
description: t11("confirmUnfavorite"),
|
|
2391
3212
|
onConfirm: (e) => {
|
|
2392
3213
|
e.stopPropagation();
|
|
2393
3214
|
chatStore.collectConversation(conversation.id, false);
|
|
@@ -2397,7 +3218,7 @@ var ConversationList_default = ({ onClose }) => {
|
|
|
2397
3218
|
Button,
|
|
2398
3219
|
{
|
|
2399
3220
|
icon: /* @__PURE__ */ jsx(StarFilled, { className: "primary-text" }),
|
|
2400
|
-
title: "
|
|
3221
|
+
title: t11("unfavoriteTitle"),
|
|
2401
3222
|
type: "text",
|
|
2402
3223
|
onClick: (e) => {
|
|
2403
3224
|
e.stopPropagation();
|
|
@@ -2422,13 +3243,13 @@ var ConversationList_default = ({ onClose }) => {
|
|
|
2422
3243
|
items: [
|
|
2423
3244
|
{
|
|
2424
3245
|
key: "history",
|
|
2425
|
-
label: "
|
|
3246
|
+
label: t11("historyTab"),
|
|
2426
3247
|
children: /* @__PURE__ */ jsx(
|
|
2427
3248
|
ConversationTabPane,
|
|
2428
3249
|
{
|
|
2429
3250
|
items: conversationList,
|
|
2430
3251
|
activeKey: conversationState.active.id,
|
|
2431
|
-
emptyDescription: "
|
|
3252
|
+
emptyDescription: t11("historyEmpty"),
|
|
2432
3253
|
scrollableTarget: "historyConversationScrollableDiv",
|
|
2433
3254
|
menu: historyMenuConfig,
|
|
2434
3255
|
onActiveChange: handleConversationChange
|
|
@@ -2437,13 +3258,13 @@ var ConversationList_default = ({ onClose }) => {
|
|
|
2437
3258
|
},
|
|
2438
3259
|
{
|
|
2439
3260
|
key: "favorite",
|
|
2440
|
-
label: "
|
|
3261
|
+
label: t11("favoritesTab"),
|
|
2441
3262
|
children: /* @__PURE__ */ jsx(
|
|
2442
3263
|
ConversationTabPane,
|
|
2443
3264
|
{
|
|
2444
3265
|
items: favoriteConversationList,
|
|
2445
3266
|
activeKey: conversationState.active.id,
|
|
2446
|
-
emptyDescription: "
|
|
3267
|
+
emptyDescription: t11("favoritesEmpty"),
|
|
2447
3268
|
scrollableTarget: "favoriteConversationScrollableDiv",
|
|
2448
3269
|
menu: favoriteMenuConfig,
|
|
2449
3270
|
onActiveChange: handleConversationChange
|
|
@@ -2491,6 +3312,7 @@ var style_module_default = {
|
|
|
2491
3312
|
var HistoryBtn_default = ({ icon, ...rest }) => {
|
|
2492
3313
|
const chatStore = useChatStore();
|
|
2493
3314
|
const agentState = useSnapshot(chatStore.agent);
|
|
3315
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2494
3316
|
const [open, setOpen] = useState(false);
|
|
2495
3317
|
const handleOpenChange = (open2) => {
|
|
2496
3318
|
setOpen(open2);
|
|
@@ -2509,7 +3331,7 @@ var HistoryBtn_default = ({ icon, ...rest }) => {
|
|
|
2509
3331
|
classNames: { container: style_module_default.popover },
|
|
2510
3332
|
content: /* @__PURE__ */ jsx(ConversationList_default, { onClose: () => setOpen(false) }),
|
|
2511
3333
|
trigger: ["click"],
|
|
2512
|
-
children: /* @__PURE__ */ jsx(Button, { title: "
|
|
3334
|
+
children: /* @__PURE__ */ jsx(Button, { title: t11("history"), size: "large", type: "text", icon: icon?.() || /* @__PURE__ */ jsx(CommentOutlined, {}), ...rest })
|
|
2513
3335
|
}
|
|
2514
3336
|
);
|
|
2515
3337
|
};
|
|
@@ -2525,7 +3347,11 @@ var ChatHeader_default = ({
|
|
|
2525
3347
|
const chatStore = useChatStore();
|
|
2526
3348
|
const agentState = useSnapshot(chatStore.agent);
|
|
2527
3349
|
const configState = useSnapshot(chatStore.config);
|
|
2528
|
-
|
|
3350
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3351
|
+
const conversationState = useSnapshot(chatStore.conversation);
|
|
3352
|
+
const conversationsState = useSnapshot(chatStore.conversations);
|
|
3353
|
+
const conversationTitle = String(conversationsState.list.items.find((item) => item.key === conversationState.active.id)?.label || "");
|
|
3354
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: classNames10(styles_module_default2.chatHeader, "zero-chat-header"), children: [
|
|
2529
3355
|
/* @__PURE__ */ jsxs("div", { className: styles_module_default2.chatHeaderContent, children: [
|
|
2530
3356
|
/* @__PURE__ */ jsx(
|
|
2531
3357
|
RenderWrapper,
|
|
@@ -2535,7 +3361,13 @@ var ChatHeader_default = ({
|
|
|
2535
3361
|
}
|
|
2536
3362
|
),
|
|
2537
3363
|
" ",
|
|
2538
|
-
/* @__PURE__ */ jsx(
|
|
3364
|
+
/* @__PURE__ */ jsx(
|
|
3365
|
+
RenderWrapper,
|
|
3366
|
+
{
|
|
3367
|
+
control: title,
|
|
3368
|
+
DefaultComponent: /* @__PURE__ */ jsx("div", { className: styles_module_default2.chatTitle, children: conversationTitle || agentState.agentInfo.name })
|
|
3369
|
+
}
|
|
3370
|
+
)
|
|
2539
3371
|
] }),
|
|
2540
3372
|
/* @__PURE__ */ jsxs(Space, { size: 2, children: [
|
|
2541
3373
|
/* @__PURE__ */ jsxs("div", { className: styles_module_default2.chatHeaderBtnGroup, children: [
|
|
@@ -2548,7 +3380,7 @@ var ChatHeader_default = ({
|
|
|
2548
3380
|
RenderWrapper,
|
|
2549
3381
|
{
|
|
2550
3382
|
control: closeBtn,
|
|
2551
|
-
DefaultComponent: /* @__PURE__ */ jsx(Button, { title: "
|
|
3383
|
+
DefaultComponent: /* @__PURE__ */ jsx(Button, { title: t11("headerClose"), type: "text", size: "large", onClick: configState.hooks?.onHeaderClose, icon: /* @__PURE__ */ jsx(CloseOutlined, {}) })
|
|
2552
3384
|
}
|
|
2553
3385
|
)
|
|
2554
3386
|
] })
|
|
@@ -2558,6 +3390,7 @@ var { Text } = Typography;
|
|
|
2558
3390
|
var ConversationListHeader_default = ({ title = true, avatar = true, newConversationBtn = true, conversationFavoriteBtn = true }) => {
|
|
2559
3391
|
const chatStore = useChatStore();
|
|
2560
3392
|
const agentState = useSnapshot(chatStore.agent);
|
|
3393
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2561
3394
|
return /* @__PURE__ */ jsxs(Flex, { className: "p-24", gap: 16, vertical: true, children: [
|
|
2562
3395
|
/* @__PURE__ */ jsxs(Flex, { align: "center", gap: 16, children: [
|
|
2563
3396
|
/* @__PURE__ */ jsx(
|
|
@@ -2572,8 +3405,8 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
|
|
|
2572
3405
|
{
|
|
2573
3406
|
control: title,
|
|
2574
3407
|
DefaultComponent: /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Flex, { vertical: true, gap: 4, flex: 1, style: { minWidth: 0 }, children: [
|
|
2575
|
-
/* @__PURE__ */ jsx(Text, { strong: true, className:
|
|
2576
|
-
/* @__PURE__ */ jsx(Text, { type: "secondary", ellipsis: true, className:
|
|
3408
|
+
/* @__PURE__ */ jsx(Text, { strong: true, className: classNames10("fz-16"), children: agentState.agentInfo.name }),
|
|
3409
|
+
/* @__PURE__ */ jsx(Text, { type: "secondary", ellipsis: true, className: classNames10("fz-12"), children: agentState.agentInfo.description })
|
|
2577
3410
|
] }) })
|
|
2578
3411
|
}
|
|
2579
3412
|
)
|
|
@@ -2588,9 +3421,9 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
|
|
|
2588
3421
|
block: true,
|
|
2589
3422
|
type: "primary",
|
|
2590
3423
|
onClick: () => chatStore.createConversation(),
|
|
2591
|
-
className:
|
|
3424
|
+
className: classNames10(styles_module_default2.createConversationButton),
|
|
2592
3425
|
icon: /* @__PURE__ */ jsx(PlusOutlined, {}),
|
|
2593
|
-
children: "
|
|
3426
|
+
children: t11("newConversation")
|
|
2594
3427
|
}
|
|
2595
3428
|
)
|
|
2596
3429
|
}
|
|
@@ -2598,28 +3431,51 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
|
|
|
2598
3431
|
] });
|
|
2599
3432
|
};
|
|
2600
3433
|
var ConversationListPanel = ({ header }) => {
|
|
2601
|
-
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className:
|
|
3434
|
+
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className: classNames10("height-full", "zero-chat-conversations", styles_module_default2.conversationListPanel), children: [
|
|
2602
3435
|
/* @__PURE__ */ jsx(RenderWrapper, { control: header, DefaultComponent: ConversationListHeader_default }),
|
|
2603
3436
|
/* @__PURE__ */ jsx("div", { className: "full-scroll", children: /* @__PURE__ */ jsx(ConversationList_default, {}) })
|
|
2604
3437
|
] });
|
|
2605
3438
|
};
|
|
2606
3439
|
var ConversationListPanel_default = ConversationListPanel;
|
|
3440
|
+
|
|
3441
|
+
// src/components/agentExecShared.ts
|
|
3442
|
+
var EXEC_CONTENT_EVENT_TYPES = ["text", "toolCall", "toolResult", "stepError", "runFailed", "files", "plan"];
|
|
3443
|
+
function hasContent(content = [], countAnswer) {
|
|
3444
|
+
return content.some((item) => {
|
|
3445
|
+
const evt = item;
|
|
3446
|
+
if (evt.type === "text") {
|
|
3447
|
+
const t11 = item;
|
|
3448
|
+
return countAnswer ? !!(t11.reasoningContent || t11.messageContent) : !!t11.reasoningContent;
|
|
3449
|
+
}
|
|
3450
|
+
return EXEC_CONTENT_EVENT_TYPES.includes(evt.type);
|
|
3451
|
+
});
|
|
3452
|
+
}
|
|
3453
|
+
function hasExecContent(content = []) {
|
|
3454
|
+
return hasContent(content, true);
|
|
3455
|
+
}
|
|
3456
|
+
function hasExecChain(content = []) {
|
|
3457
|
+
return hasContent(content, false);
|
|
3458
|
+
}
|
|
3459
|
+
function isSubAgentEvent(tool) {
|
|
3460
|
+
if (!tool) return false;
|
|
3461
|
+
return !!tool.hasSubAgent || !!tool.subConversationId || !!tool.metadata?.conversationId || tool.toolName === "agent_spawn";
|
|
3462
|
+
}
|
|
2607
3463
|
var XCard = XCard$1;
|
|
2608
3464
|
var { Text: AText } = Typography;
|
|
2609
3465
|
function getArtifactFallbackTitle(type) {
|
|
2610
3466
|
const normalizedType = String(type || "").toLowerCase();
|
|
2611
|
-
if (normalizedType === "report") return
|
|
2612
|
-
if (normalizedType === "chart") return
|
|
2613
|
-
if (normalizedType === "table") return
|
|
2614
|
-
return
|
|
3467
|
+
if (normalizedType === "report") return t(`${NS_CHAT_COPILOT}:unnamedReport`);
|
|
3468
|
+
if (normalizedType === "chart") return t(`${NS_CHAT_COPILOT}:unnamedChart`);
|
|
3469
|
+
if (normalizedType === "table") return t(`${NS_CHAT_COPILOT}:unnamedTable`);
|
|
3470
|
+
return t(`${NS_CHAT_COPILOT}:unnamedContent`);
|
|
2615
3471
|
}
|
|
2616
3472
|
var ArtifactCard = ({ type, title }) => /* @__PURE__ */ jsx(Card, { size: "small", style: { borderRadius: 12 }, children: /* @__PURE__ */ jsxs(Space, { align: "center", wrap: true, children: [
|
|
2617
3473
|
/* @__PURE__ */ jsx(Tag, { color: "blue", children: type }),
|
|
2618
3474
|
/* @__PURE__ */ jsx(AText, { strong: true, children: title || getArtifactFallbackTitle(type) })
|
|
2619
3475
|
] }) });
|
|
2620
3476
|
function renderMiniChart(spec, opts) {
|
|
2621
|
-
const
|
|
2622
|
-
if (
|
|
3477
|
+
const t11 = String(spec?.type ?? "").toLowerCase();
|
|
3478
|
+
if (t11 !== "line" && t11 !== "bar" && t11 !== "pie" && t11 !== "scatter") return null;
|
|
2623
3479
|
const xs = Array.isArray(spec?.x) ? spec.x : null;
|
|
2624
3480
|
const ys = Array.isArray(spec?.y) ? spec.y : null;
|
|
2625
3481
|
if (!xs || !ys || xs.length === 0 || ys.length === 0) return null;
|
|
@@ -2630,7 +3486,7 @@ function renderMiniChart(spec, opts) {
|
|
|
2630
3486
|
y: typeof ys[i] === "number" ? ys[i] : Number(ys[i])
|
|
2631
3487
|
})).filter((p) => Number.isFinite(p.y));
|
|
2632
3488
|
if (pairs.length === 0) return null;
|
|
2633
|
-
if (
|
|
3489
|
+
if (t11 === "line" && pairs.length < 2) return null;
|
|
2634
3490
|
const height = 180;
|
|
2635
3491
|
const left = 44;
|
|
2636
3492
|
const right = 18;
|
|
@@ -2639,7 +3495,7 @@ function renderMiniChart(spec, opts) {
|
|
|
2639
3495
|
const baseWidth = Math.max(520, Math.floor(opts?.containerWidth ?? 0));
|
|
2640
3496
|
const minBarPx = 22;
|
|
2641
3497
|
const minPointPx = 32;
|
|
2642
|
-
const neededWidth = left + right + Math.max(pairs.length * (
|
|
3498
|
+
const neededWidth = left + right + Math.max(pairs.length * (t11 === "bar" ? minBarPx : minPointPx), 320);
|
|
2643
3499
|
const width = Math.max(baseWidth, neededWidth);
|
|
2644
3500
|
const colors = [
|
|
2645
3501
|
"#1677ff",
|
|
@@ -2675,7 +3531,7 @@ function renderMiniChart(spec, opts) {
|
|
|
2675
3531
|
return luminance > 0.6 ? "#111" : "#fff";
|
|
2676
3532
|
};
|
|
2677
3533
|
const colorAt = (i) => colors[i] ?? colors[i % colors.length];
|
|
2678
|
-
if (
|
|
3534
|
+
if (t11 === "pie") {
|
|
2679
3535
|
const total = pairs.reduce((sum, p) => sum + p.y, 0);
|
|
2680
3536
|
if (total <= 0) return null;
|
|
2681
3537
|
let currentAngle = 0;
|
|
@@ -2718,7 +3574,7 @@ function renderMiniChart(spec, opts) {
|
|
|
2718
3574
|
] }, i);
|
|
2719
3575
|
}) }) });
|
|
2720
3576
|
}
|
|
2721
|
-
if (
|
|
3577
|
+
if (t11 === "scatter") {
|
|
2722
3578
|
const numericPairs = pairs.map((p) => ({
|
|
2723
3579
|
...p,
|
|
2724
3580
|
x: typeof p.x === "number" ? p.x : Number(p.x)
|
|
@@ -2790,7 +3646,7 @@ function renderMiniChart(spec, opts) {
|
|
|
2790
3646
|
const ticks = Array.from({ length: 5 }, (_, i) => minY + i * spanY / 4);
|
|
2791
3647
|
const maxLabels = Math.max(2, Math.floor(plotW / 70));
|
|
2792
3648
|
const labelStep = Math.max(1, Math.ceil(pairs.length / maxLabels));
|
|
2793
|
-
if (
|
|
3649
|
+
if (t11 === "line") {
|
|
2794
3650
|
const points = pairs.map((p, i) => `${scaleX(i)},${scaleY(p.y)}`).join(" ");
|
|
2795
3651
|
return /* @__PURE__ */ jsx("div", { style: { width: "100%", overflowX: "auto" }, children: /* @__PURE__ */ jsxs("svg", { width, height, viewBox: `0 0 ${width} ${height}`, children: [
|
|
2796
3652
|
ticks.map((value, idx) => {
|
|
@@ -2915,6 +3771,7 @@ function exportJsonFile(data, fileName) {
|
|
|
2915
3771
|
exportTextFile(json, fileName, "application/json;charset=utf-8");
|
|
2916
3772
|
}
|
|
2917
3773
|
var ChartViewer = ({ artifactId, title, payload }) => {
|
|
3774
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2918
3775
|
const containerRef = React10__default.useRef(null);
|
|
2919
3776
|
const [containerWidth, setContainerWidth] = React10__default.useState(0);
|
|
2920
3777
|
const spec = payload?.spec;
|
|
@@ -2963,14 +3820,15 @@ var ChartViewer = ({ artifactId, title, payload }) => {
|
|
|
2963
3820
|
{
|
|
2964
3821
|
size: "small",
|
|
2965
3822
|
style: { borderRadius: 12 },
|
|
2966
|
-
title: title || "
|
|
2967
|
-
extra: /* @__PURE__ */ jsx(Space, { size: 4, children: /* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportPng, children: "
|
|
3823
|
+
title: title || t11("chart"),
|
|
3824
|
+
extra: /* @__PURE__ */ jsx(Space, { size: 4, children: /* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportPng, children: t11("exportPng") }) }),
|
|
2968
3825
|
children: /* @__PURE__ */ jsx("div", { ref: containerRef, children: node })
|
|
2969
3826
|
}
|
|
2970
3827
|
);
|
|
2971
3828
|
};
|
|
2972
3829
|
var AgentNavigate_default = memo(({ data }) => {
|
|
2973
3830
|
const [content, setContent] = useState(null);
|
|
3831
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
2974
3832
|
useEffect(() => {
|
|
2975
3833
|
if (!data) {
|
|
2976
3834
|
return;
|
|
@@ -2990,7 +3848,7 @@ var AgentNavigate_default = memo(({ data }) => {
|
|
|
2990
3848
|
if (!content?.emit) return;
|
|
2991
3849
|
emit(content.emit, { ...content.data, name: "luya-web-drawer" }, "nearest");
|
|
2992
3850
|
};
|
|
2993
|
-
return /* @__PURE__ */ jsx(Button, { onClick: handleClick, style: { padding: 0 }, type: "link", children: content?.name || "
|
|
3851
|
+
return /* @__PURE__ */ jsx(Button, { onClick: handleClick, style: { padding: 0 }, type: "link", children: content?.name || t11("clickHere") });
|
|
2994
3852
|
});
|
|
2995
3853
|
|
|
2996
3854
|
// src/components/CustomComponents/XMarkdown/styles.module.less
|
|
@@ -3067,7 +3925,8 @@ var CHART_COMPONENTS = Object.fromEntries(
|
|
|
3067
3925
|
);
|
|
3068
3926
|
var Charts_default = ({ data, loading }) => {
|
|
3069
3927
|
const { type, config } = data;
|
|
3070
|
-
|
|
3928
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3929
|
+
return /* @__PURE__ */ jsx("div", { className: classNames10(styles_module_default3.chart, "scroll-fade-in"), children: loading ? (
|
|
3071
3930
|
// Antd 骨架屏
|
|
3072
3931
|
/* @__PURE__ */ jsx(Skeleton.Node, { active: true, className: styles_module_default3.chartSkeleton, children: /* @__PURE__ */ jsx(DotChartOutlined, { className: styles_module_default3.chartSkeletonIcon }) })
|
|
3073
3932
|
) : /* @__PURE__ */ jsx(
|
|
@@ -3076,7 +3935,7 @@ var Charts_default = ({ data, loading }) => {
|
|
|
3076
3935
|
type,
|
|
3077
3936
|
...config,
|
|
3078
3937
|
customComponents: CHART_COMPONENTS,
|
|
3079
|
-
unknownContent: /* @__PURE__ */ jsx(Alert, { title: "
|
|
3938
|
+
unknownContent: /* @__PURE__ */ jsx(Alert, { title: t11("unsupportedChart"), description: t11("unsupportedChartDesc", { type }), type: "warning", showIcon: true })
|
|
3080
3939
|
}
|
|
3081
3940
|
) });
|
|
3082
3941
|
};
|
|
@@ -3104,6 +3963,7 @@ var CodeHighlight_default = ({ className, data }) => {
|
|
|
3104
3963
|
};
|
|
3105
3964
|
var FileEdit_default = ({ data, loading }) => {
|
|
3106
3965
|
const chatStore = useChatStore();
|
|
3966
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3107
3967
|
const onPreview = () => {
|
|
3108
3968
|
chatStore.setPreview(data, true);
|
|
3109
3969
|
};
|
|
@@ -3114,8 +3974,8 @@ var FileEdit_default = ({ data, loading }) => {
|
|
|
3114
3974
|
/* @__PURE__ */ jsx("div", { className: "text-ellipsis", title: data.fileName, children: data.fileName })
|
|
3115
3975
|
] }),
|
|
3116
3976
|
/* @__PURE__ */ jsx(Spin, { spinning: loading, size: "small", children: /* @__PURE__ */ jsxs(Flex, { children: [
|
|
3117
|
-
/* @__PURE__ */ jsx(Button, { color: "default", variant: "text", size: "small", icon: /* @__PURE__ */ jsx(PlayCircleOutlined, {}), onClick: onPreview, children: "
|
|
3118
|
-
/* @__PURE__ */ jsx(Button, { color: "default", variant: "text", size: "small", icon: /* @__PURE__ */ jsx(CopyOutlined, {}), onClick: () => copyText(data.content), children: "
|
|
3977
|
+
/* @__PURE__ */ jsx(Button, { color: "default", variant: "text", size: "small", icon: /* @__PURE__ */ jsx(PlayCircleOutlined, {}), onClick: onPreview, children: t11("previewEdit") }),
|
|
3978
|
+
/* @__PURE__ */ jsx(Button, { color: "default", variant: "text", size: "small", icon: /* @__PURE__ */ jsx(CopyOutlined, {}), onClick: () => copyText(data.content), children: t11("copy") })
|
|
3119
3979
|
] }) })
|
|
3120
3980
|
] }),
|
|
3121
3981
|
/* @__PURE__ */ jsx(Flex, { gap: 8, align: "center", className: styles_module_default3.fileEditContent, children: /* @__PURE__ */ jsx(XMarkdown_default, { content: data.content }) })
|
|
@@ -3185,7 +4045,8 @@ var MarkImg_default = ({ data, loading, message: message3, ...rest }) => {
|
|
|
3185
4045
|
var MdEdit_default = ({ data, loading }) => {
|
|
3186
4046
|
const chatStore = useChatStore();
|
|
3187
4047
|
const [value, setValue] = useState("");
|
|
3188
|
-
const
|
|
4048
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
4049
|
+
const btnText = data.btnText || t11("continueText");
|
|
3189
4050
|
const onOk = () => {
|
|
3190
4051
|
chatStore.sendMessage(btnText, [], { citation: value });
|
|
3191
4052
|
};
|
|
@@ -3260,7 +4121,8 @@ var PreviewLink_default = ({ data, loading, message: message3, ...rest }) => {
|
|
|
3260
4121
|
return /* @__PURE__ */ jsx("a", { ...rest, onClick: handleClick, children: data });
|
|
3261
4122
|
};
|
|
3262
4123
|
var Think_default = ({ data }) => {
|
|
3263
|
-
|
|
4124
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
4125
|
+
return /* @__PURE__ */ jsx(Think, { title: t11("deepThinking"), className: "m-b-16", children: data });
|
|
3264
4126
|
};
|
|
3265
4127
|
|
|
3266
4128
|
// src/components/XMarkdown/styles.module.less
|
|
@@ -3374,7 +4236,7 @@ var XMarkdown_default = memo(({ message: message3, components = {}, content = ""
|
|
|
3374
4236
|
return /* @__PURE__ */ jsx(
|
|
3375
4237
|
XMarkdown,
|
|
3376
4238
|
{
|
|
3377
|
-
className:
|
|
4239
|
+
className: classNames10("x-markdown-light", styles_module_default4.xMarkdownStyle),
|
|
3378
4240
|
config,
|
|
3379
4241
|
...rest,
|
|
3380
4242
|
content: processedContent,
|
|
@@ -3383,6 +4245,7 @@ var XMarkdown_default = memo(({ message: message3, components = {}, content = ""
|
|
|
3383
4245
|
);
|
|
3384
4246
|
});
|
|
3385
4247
|
var ReportViewer = ({ artifactId, title, payload }) => {
|
|
4248
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3386
4249
|
const markdown = typeof payload?.markdown === "string" ? payload.markdown : null;
|
|
3387
4250
|
if (!markdown) {
|
|
3388
4251
|
return /* @__PURE__ */ jsx(ArtifactCard, { type: "report", artifactId, title, payload });
|
|
@@ -3396,13 +4259,14 @@ var ReportViewer = ({ artifactId, title, payload }) => {
|
|
|
3396
4259
|
{
|
|
3397
4260
|
size: "small",
|
|
3398
4261
|
style: { borderRadius: 12 },
|
|
3399
|
-
title: title || "
|
|
3400
|
-
extra: /* @__PURE__ */ jsx(Space, { size: 4, children: /* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportMd, children: "
|
|
4262
|
+
title: title || t11("report"),
|
|
4263
|
+
extra: /* @__PURE__ */ jsx(Space, { size: 4, children: /* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportMd, children: t11("exportMd") }) }),
|
|
3401
4264
|
children: /* @__PURE__ */ jsx("div", { style: { lineHeight: 1.75 }, children: /* @__PURE__ */ jsx(XMarkdown_default, { content: markdown }) })
|
|
3402
4265
|
}
|
|
3403
4266
|
);
|
|
3404
4267
|
};
|
|
3405
4268
|
var TableViewer = ({ artifactId, title, payload }) => {
|
|
4269
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3406
4270
|
const columns = Array.isArray(payload?.columns) ? payload.columns : null;
|
|
3407
4271
|
const rows = Array.isArray(payload?.rows) ? payload.rows : null;
|
|
3408
4272
|
if (!columns || !rows) {
|
|
@@ -3432,10 +4296,10 @@ ${body}
|
|
|
3432
4296
|
{
|
|
3433
4297
|
size: "small",
|
|
3434
4298
|
style: { borderRadius: 12 },
|
|
3435
|
-
title: title || "
|
|
4299
|
+
title: title || t11("table"),
|
|
3436
4300
|
extra: /* @__PURE__ */ jsxs(Space, { size: 4, children: [
|
|
3437
|
-
/* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportCsv, children: "
|
|
3438
|
-
/* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportJson, children: "
|
|
4301
|
+
/* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportCsv, children: t11("exportCsv") }),
|
|
4302
|
+
/* @__PURE__ */ jsx(Button, { size: "small", type: "text", onClick: exportJson, children: t11("exportJson") })
|
|
3439
4303
|
] }),
|
|
3440
4304
|
children: /* @__PURE__ */ jsx(Table, { size: "small", pagination: false, columns: safeColumns, dataSource, scroll: { x: true } })
|
|
3441
4305
|
}
|
|
@@ -3675,6 +4539,7 @@ var TextField = ({ id, label, placeholder, value, bind_path_token, onChange, onD
|
|
|
3675
4539
|
) });
|
|
3676
4540
|
};
|
|
3677
4541
|
var Select = ({ id, label, placeholder, options, value, bind_path_token, onChange, onDataChange }) => {
|
|
4542
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
3678
4543
|
const inputId = useControlId(id);
|
|
3679
4544
|
const { localValue, updateLocalValue, valuePath } = useBoundFieldState({
|
|
3680
4545
|
value,
|
|
@@ -3693,7 +4558,7 @@ var Select = ({ id, label, placeholder, options, value, bind_path_token, onChang
|
|
|
3693
4558
|
options,
|
|
3694
4559
|
value: localValue,
|
|
3695
4560
|
onChange: (nextValue) => emitFieldChange(nextValue, valuePath, updateLocalValue, onDataChange, onChange),
|
|
3696
|
-
placeholder: placeholder ||
|
|
4561
|
+
placeholder: placeholder || t11(`selectPlaceholder`)
|
|
3697
4562
|
}
|
|
3698
4563
|
) });
|
|
3699
4564
|
};
|
|
@@ -3838,8 +4703,6 @@ function extractDismissedSurfaceIdsFromMessages(messages) {
|
|
|
3838
4703
|
}
|
|
3839
4704
|
return dismissed;
|
|
3840
4705
|
}
|
|
3841
|
-
|
|
3842
|
-
// src/components/CustomComponents/A2uiRuntime/controller/meta.ts
|
|
3843
4706
|
function readProp(current, props, key) {
|
|
3844
4707
|
return current[key] ?? props?.[key];
|
|
3845
4708
|
}
|
|
@@ -3912,7 +4775,7 @@ function resolveDisplayValue(value, meta) {
|
|
|
3912
4775
|
return meta.optionLabels[String(value)];
|
|
3913
4776
|
}
|
|
3914
4777
|
if (typeof value === "boolean") {
|
|
3915
|
-
return value ? "
|
|
4778
|
+
return t(`${NS_CHAT_COPILOT}:${value ? "boolYes" : "boolNo"}`);
|
|
3916
4779
|
}
|
|
3917
4780
|
if (Array.isArray(value)) {
|
|
3918
4781
|
return value.map((item) => String(item)).join("\u3001");
|
|
@@ -4092,8 +4955,6 @@ function resolveVisibleSurfaceIds(commands, dismissedSurfaceIds = []) {
|
|
|
4092
4955
|
});
|
|
4093
4956
|
return Array.from(states.entries()).filter(([sid, st]) => !st.deleted && !dismissedSurfaceIds.includes(sid)).map(([sid]) => sid);
|
|
4094
4957
|
}
|
|
4095
|
-
|
|
4096
|
-
// src/components/CustomComponents/A2uiRuntime/controller/wizard.ts
|
|
4097
4958
|
function readString(obj, ...keys) {
|
|
4098
4959
|
for (const k of keys) {
|
|
4099
4960
|
const v = obj?.[k];
|
|
@@ -4205,9 +5066,14 @@ function buildWizardComponents(schema, stepId) {
|
|
|
4205
5066
|
const rootChildren = ["title", "desc", "step-indicator", "step-title"];
|
|
4206
5067
|
const nodes = [
|
|
4207
5068
|
{ component: "Column", id: "root", children: rootChildren },
|
|
4208
|
-
{ component: "Text", id: "title", text: schema.title ||
|
|
5069
|
+
{ component: "Text", id: "title", text: schema.title || t(`${NS_CHAT_COPILOT}:formTitle`), variant: "h2" },
|
|
4209
5070
|
{ component: "Text", id: "desc", text: schema.description || "", variant: "caption" },
|
|
4210
|
-
{
|
|
5071
|
+
{
|
|
5072
|
+
component: "Text",
|
|
5073
|
+
id: "step-indicator",
|
|
5074
|
+
text: t(`${NS_CHAT_COPILOT}:stepIndicator`, { current: stepIndex + 1, total: schema.steps.length }),
|
|
5075
|
+
variant: "caption"
|
|
5076
|
+
},
|
|
4211
5077
|
{ component: "Text", id: "step-title", text: step?.title || "", variant: "h3" }
|
|
4212
5078
|
];
|
|
4213
5079
|
for (const f of fields) {
|
|
@@ -4257,9 +5123,9 @@ function buildWizardComponents(schema, stepId) {
|
|
|
4257
5123
|
const actions = nodes.find((n) => n.id === "actions");
|
|
4258
5124
|
const actionChildren = [];
|
|
4259
5125
|
actions.children = actionChildren;
|
|
4260
|
-
const backLabel = typeof schema.labels?.back === "string" && schema.labels.back.trim() ? schema.labels.back.trim() :
|
|
4261
|
-
const nextLabel = typeof schema.labels?.next === "string" && schema.labels.next.trim() ? schema.labels.next.trim() :
|
|
4262
|
-
const submitLabel = typeof schema.labels?.submit === "string" && schema.labels.submit.trim() ? schema.labels.submit.trim() :
|
|
5126
|
+
const backLabel = typeof schema.labels?.back === "string" && schema.labels.back.trim() ? schema.labels.back.trim() : t(`${NS_CHAT_COPILOT}:prevStep`);
|
|
5127
|
+
const nextLabel = typeof schema.labels?.next === "string" && schema.labels.next.trim() ? schema.labels.next.trim() : t(`${NS_CHAT_COPILOT}:nextStep`);
|
|
5128
|
+
const submitLabel = typeof schema.labels?.submit === "string" && schema.labels.submit.trim() ? schema.labels.submit.trim() : t(`${NS_CHAT_COPILOT}:submit`);
|
|
4263
5129
|
if (stepIndex > 0) {
|
|
4264
5130
|
actionChildren.push("btn-prev");
|
|
4265
5131
|
nodes.push({
|
|
@@ -4586,10 +5452,7 @@ function useA2uiController(params) {
|
|
|
4586
5452
|
applyA2uiRuntimeEffects(result.effects);
|
|
4587
5453
|
setRuntimeState(result.state);
|
|
4588
5454
|
}, [conversationMessages, conversationId]);
|
|
4589
|
-
const permanentDismissedSurfaceIds = useMemo(
|
|
4590
|
-
() => extractDismissedSurfaceIdsFromMessages(conversationMessages || []),
|
|
4591
|
-
[conversationMessages]
|
|
4592
|
-
);
|
|
5455
|
+
const permanentDismissedSurfaceIds = useMemo(() => extractDismissedSurfaceIdsFromMessages(conversationMessages || []), [conversationMessages]);
|
|
4593
5456
|
const mergedDismissedSurfaceIds = useMemo(
|
|
4594
5457
|
() => Array.from(/* @__PURE__ */ new Set([...dismissedSurfaceIds || [], ...permanentDismissedSurfaceIds])),
|
|
4595
5458
|
[dismissedSurfaceIds, permanentDismissedSurfaceIds]
|
|
@@ -4632,8 +5495,6 @@ function A2uiMessageCards({ messageIndex }) {
|
|
|
4632
5495
|
if (!surfaceIds.length) return null;
|
|
4633
5496
|
return /* @__PURE__ */ jsx("div", { children: surfaceIds.map((surfaceId) => /* @__PURE__ */ jsx(XCard.Card, { id: surfaceId }, surfaceId)) });
|
|
4634
5497
|
}
|
|
4635
|
-
|
|
4636
|
-
// src/components/CustomComponents/A2uiRuntime/renderer/protocol.ts
|
|
4637
5498
|
function isSubmitLikeActionName(name) {
|
|
4638
5499
|
const normalized = String(name || "").trim();
|
|
4639
5500
|
return normalized === "submit" || normalized === "confirm" || normalized.startsWith("submit_") || normalized.endsWith(".confirm");
|
|
@@ -4642,7 +5503,7 @@ function isCancelLikeActionName(name) {
|
|
|
4642
5503
|
const normalized = String(name || "").trim();
|
|
4643
5504
|
return normalized === "cancel" || normalized === "qf.cancel" || normalized.endsWith(".cancel");
|
|
4644
5505
|
}
|
|
4645
|
-
function shouldDismissA2uiSurface(
|
|
5506
|
+
function shouldDismissA2uiSurface(_name, _context) {
|
|
4646
5507
|
return true;
|
|
4647
5508
|
}
|
|
4648
5509
|
function normalizeA2uiActionPayload(payload) {
|
|
@@ -4681,42 +5542,49 @@ function isQuestionActionPayload(payload) {
|
|
|
4681
5542
|
}
|
|
4682
5543
|
function formatActionValue(value, displayOverride) {
|
|
4683
5544
|
if (typeof displayOverride === "string" && displayOverride.trim()) return displayOverride.trim();
|
|
4684
|
-
if (typeof value === "boolean") return value ? "
|
|
5545
|
+
if (typeof value === "boolean") return t(`${NS_CHAT_COPILOT}:${value ? "boolYes" : "boolNo"}`);
|
|
4685
5546
|
if (Array.isArray(value)) return value.map((item) => String(item)).join("\u3001");
|
|
4686
5547
|
if (value && typeof value === "object") return JSON.stringify(value);
|
|
4687
5548
|
return String(value);
|
|
4688
5549
|
}
|
|
4689
|
-
function
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
const
|
|
4696
|
-
|
|
5550
|
+
function formatQuestionSummary(payload, withLabel = true) {
|
|
5551
|
+
const content = (() => {
|
|
5552
|
+
if (isCancelLikeActionName(payload.name)) return t(`${NS_CHAT_COPILOT}:questionCancelled`);
|
|
5553
|
+
const values = payload.context.values && typeof payload.context.values === "object" && !Array.isArray(payload.context.values) ? payload.context.values : payload.context;
|
|
5554
|
+
const labels = payload.context.labels && typeof payload.context.labels === "object" && !Array.isArray(payload.context.labels) ? payload.context.labels : {};
|
|
5555
|
+
const valueLabels = payload.context.valueLabels && typeof payload.context.valueLabels === "object" && !Array.isArray(payload.context.valueLabels) ? payload.context.valueLabels : {};
|
|
5556
|
+
const details = Object.entries(values).filter(([, value]) => value !== null && value !== void 0 && value !== "").map(([key, value]) => {
|
|
5557
|
+
const label = typeof labels[key] === "string" && String(labels[key]).trim() ? String(labels[key]).trim() : key;
|
|
5558
|
+
return `${label}: ${formatActionValue(value, valueLabels[key])}`;
|
|
5559
|
+
});
|
|
5560
|
+
return details.length ? t(`${NS_CHAT_COPILOT}:questionDetails`, { details: details.join("\uFF1B ") }) : t(`${NS_CHAT_COPILOT}:questionAnswered`);
|
|
5561
|
+
})();
|
|
5562
|
+
if (!withLabel) return content;
|
|
5563
|
+
return t(`${NS_CHAT_COPILOT}:questionSummary`, {
|
|
5564
|
+
label: t(`${NS_CHAT_COPILOT}:questionTitle`),
|
|
5565
|
+
content
|
|
4697
5566
|
});
|
|
4698
|
-
return details.length ? `Question: ${details.join("\uFF1B ")}` : "Question: \u5DF2\u56DE\u7B54";
|
|
4699
5567
|
}
|
|
4700
5568
|
function formatA2uiActionDisplayText(payload) {
|
|
4701
|
-
if (isQuestionActionPayload(payload)) return
|
|
5569
|
+
if (isQuestionActionPayload(payload)) return formatQuestionSummary(payload);
|
|
4702
5570
|
const values = payload.context.values && typeof payload.context.values === "object" && !Array.isArray(payload.context.values) ? payload.context.values : payload.context;
|
|
4703
5571
|
const labels = payload.context.labels && typeof payload.context.labels === "object" && !Array.isArray(payload.context.labels) ? payload.context.labels : {};
|
|
4704
5572
|
const valueLabels = payload.context.valueLabels && typeof payload.context.valueLabels === "object" && !Array.isArray(payload.context.valueLabels) ? payload.context.valueLabels : {};
|
|
4705
5573
|
const actionLabels = {
|
|
4706
|
-
submit_basic:
|
|
4707
|
-
submit_params:
|
|
4708
|
-
back_to_basic:
|
|
4709
|
-
back_to_params:
|
|
4710
|
-
confirm:
|
|
5574
|
+
submit_basic: t(`${NS_CHAT_COPILOT}:basicInfoSubmitted`),
|
|
5575
|
+
submit_params: t(`${NS_CHAT_COPILOT}:paramsSubmitted`),
|
|
5576
|
+
back_to_basic: t(`${NS_CHAT_COPILOT}:backToBasic`),
|
|
5577
|
+
back_to_params: t(`${NS_CHAT_COPILOT}:backToParams`),
|
|
5578
|
+
confirm: t(`${NS_CHAT_COPILOT}:createConfirmed`)
|
|
4711
5579
|
};
|
|
4712
5580
|
let actionLabel = actionLabels[payload.name];
|
|
4713
5581
|
if (!actionLabel) {
|
|
4714
5582
|
if (payload.name.startsWith("confirm_")) {
|
|
4715
|
-
actionLabel =
|
|
5583
|
+
actionLabel = t(`${NS_CHAT_COPILOT}:actionSelected`);
|
|
4716
5584
|
} else if (payload.name.startsWith("submit_")) {
|
|
4717
|
-
actionLabel =
|
|
5585
|
+
actionLabel = t(`${NS_CHAT_COPILOT}:actionSubmitted`);
|
|
4718
5586
|
} else {
|
|
4719
|
-
actionLabel =
|
|
5587
|
+
actionLabel = t(`${NS_CHAT_COPILOT}:actionSubmittedNamed`, { name: payload.name });
|
|
4720
5588
|
}
|
|
4721
5589
|
}
|
|
4722
5590
|
const isConfirmLike = payload.name.startsWith("confirm_");
|
|
@@ -4787,7 +5655,7 @@ function ViewerPlan({ payload }) {
|
|
|
4787
5655
|
if (!artifacts.length) return null;
|
|
4788
5656
|
const title = typeof payload.title === "string" ? payload.title.trim() : "";
|
|
4789
5657
|
const description = typeof payload.description === "string" ? payload.description.trim() : "";
|
|
4790
|
-
const header = title || description ? `### ${title ||
|
|
5658
|
+
const header = title || description ? `### ${title || t(`${NS_CHAT_COPILOT}:report`)}
|
|
4791
5659
|
|
|
4792
5660
|
${description || ""}`.trim() : "";
|
|
4793
5661
|
return /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [
|
|
@@ -4881,7 +5749,7 @@ function A2uiRuntimeProvider({ messages, children }) {
|
|
|
4881
5749
|
await chatStore.sendMessage(formatA2uiActionMessage(actionPayload));
|
|
4882
5750
|
} catch (error) {
|
|
4883
5751
|
console.error("A2UI action send failed:", error);
|
|
4884
|
-
message.error(
|
|
5752
|
+
message.error(t(`${NS_CHAT_COPILOT}:submitFailed`));
|
|
4885
5753
|
}
|
|
4886
5754
|
},
|
|
4887
5755
|
[chatStore, latestCommandIndexBySurface]
|
|
@@ -4987,10 +5855,10 @@ var RunStartedNode = React10__default.memo(() => {
|
|
|
4987
5855
|
var RESOURCE_MARKDOWN_TAG = "resourcetag";
|
|
4988
5856
|
var RESOURCE_TOKEN_REGEX = /(\w+):\/\/([^?\s]+)\?name=([^&\s]+)&label=([^\s]+)/g;
|
|
4989
5857
|
function QuestionSummary({ content }) {
|
|
4990
|
-
const
|
|
5858
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
4991
5859
|
return /* @__PURE__ */ jsxs("span", { style: { display: "inline-flex", flexDirection: "column", gap: 4 }, children: [
|
|
4992
|
-
/* @__PURE__ */ jsx("span", { style: { fontSize: 13, fontWeight: 600, color: "#1677ff", lineHeight: 1.4 }, children: "
|
|
4993
|
-
/* @__PURE__ */ jsx("span", { style: { fontSize: 13, color: "#262626", lineHeight: 1.6, whiteSpace: "pre-wrap" }, children:
|
|
5860
|
+
/* @__PURE__ */ jsx("span", { style: { fontSize: 13, fontWeight: 600, color: "#1677ff", lineHeight: 1.4 }, children: t11("questionTitle") }),
|
|
5861
|
+
/* @__PURE__ */ jsx("span", { style: { fontSize: 13, color: "#262626", lineHeight: 1.6, whiteSpace: "pre-wrap" }, children: content || t11("answered") })
|
|
4994
5862
|
] });
|
|
4995
5863
|
}
|
|
4996
5864
|
function MessageResourceTag({ data }) {
|
|
@@ -5016,17 +5884,20 @@ var TextNode2 = React10__default.memo(
|
|
|
5016
5884
|
customComponents,
|
|
5017
5885
|
message: message3
|
|
5018
5886
|
}) => {
|
|
5019
|
-
const
|
|
5887
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
5888
|
+
const rawContent = item?.messageContent;
|
|
5889
|
+
const actionPayload = role === 1 ? parseA2uiActionMessage(rawContent) : null;
|
|
5890
|
+
const content = toA2uiDisplayText(role, rawContent);
|
|
5020
5891
|
const markdownComponents = {
|
|
5021
5892
|
[RESOURCE_MARKDOWN_TAG]: MessageResourceTag,
|
|
5022
5893
|
...customComponents
|
|
5023
5894
|
};
|
|
5024
|
-
if (
|
|
5025
|
-
return /* @__PURE__ */ jsx(QuestionSummary, { content });
|
|
5895
|
+
if (actionPayload && isQuestionActionPayload(actionPayload)) {
|
|
5896
|
+
return /* @__PURE__ */ jsx(QuestionSummary, { content: formatQuestionSummary(actionPayload, false) });
|
|
5026
5897
|
}
|
|
5027
5898
|
const markdownContent = typeof content === "string" ? transformResourceText(content) : content;
|
|
5028
5899
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5029
|
-
!!item.reasoningContent && /* @__PURE__ */ jsx(Think, { title: "
|
|
5900
|
+
!!item.reasoningContent && /* @__PURE__ */ jsx(Think, { title: t11("deepThinking"), style: { marginBottom: "16px" }, children: item.reasoningContent }),
|
|
5030
5901
|
!!markdownContent && /* @__PURE__ */ jsx(XMarkdown_default, { message: message3, components: markdownComponents, content: markdownContent })
|
|
5031
5902
|
] });
|
|
5032
5903
|
}
|
|
@@ -5034,18 +5905,7 @@ var TextNode2 = React10__default.memo(
|
|
|
5034
5905
|
|
|
5035
5906
|
// src/components/CustomComponents/ToolRenders/index.module.less
|
|
5036
5907
|
var index_module_default2 = {
|
|
5037
|
-
|
|
5038
|
-
toolCallItem: "index_module_toolCallItem",
|
|
5039
|
-
toolIcon: "index_module_toolIcon",
|
|
5040
|
-
toolName: "index_module_toolName",
|
|
5041
|
-
statusIcon: "index_module_statusIcon",
|
|
5042
|
-
duration: "index_module_duration",
|
|
5043
|
-
toolNamePending: "index_module_toolNamePending",
|
|
5044
|
-
dot: "index_module_dot",
|
|
5045
|
-
"dot-blink": "index_module_dot-blink",
|
|
5046
|
-
expandIcon: "index_module_expandIcon",
|
|
5047
|
-
expanded: "index_module_expanded",
|
|
5048
|
-
contentScrollContainer: "index_module_contentScrollContainer",
|
|
5908
|
+
toolCallContent: "index_module_toolCallContent",
|
|
5049
5909
|
sectionLabel: "index_module_sectionLabel",
|
|
5050
5910
|
plainTextContainer: "index_module_plainTextContainer",
|
|
5051
5911
|
markdownContainer: "index_module_markdownContainer",
|
|
@@ -5068,10 +5928,6 @@ var index_module_default2 = {
|
|
|
5068
5928
|
errorDisplay: "index_module_errorDisplay",
|
|
5069
5929
|
sectionBlock: "index_module_sectionBlock",
|
|
5070
5930
|
compactSectionBlock: "index_module_compactSectionBlock",
|
|
5071
|
-
subAgentContainer: "index_module_subAgentContainer",
|
|
5072
|
-
subAgentHeader: "index_module_subAgentHeader",
|
|
5073
|
-
subAgentName: "index_module_subAgentName",
|
|
5074
|
-
subAgentMessages: "index_module_subAgentMessages",
|
|
5075
5931
|
todoList: "index_module_todoList",
|
|
5076
5932
|
todoItem: "index_module_todoItem",
|
|
5077
5933
|
statusIconWrapper: "index_module_statusIconWrapper",
|
|
@@ -5140,25 +5996,26 @@ var renderDisplayView = (view, fallbackLabel) => {
|
|
|
5140
5996
|
] });
|
|
5141
5997
|
};
|
|
5142
5998
|
var DefaultToolRender = ({ argsContent, resultContent, item }) => {
|
|
5999
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
5143
6000
|
const sd = item.streamingArgsDisplay;
|
|
5144
6001
|
const isError = item.isError || item.status === "error";
|
|
5145
6002
|
const hasStructuredDisplay = !!item.displayProtocol || !!sd?.content || !!item.argsDisplay || !!item.resultDisplay;
|
|
5146
6003
|
return /* @__PURE__ */ jsxs("div", { className: isError ? index_module_default2.errorDisplay : "", children: [
|
|
5147
6004
|
!item.argsDisplay && sd?.content && /* @__PURE__ */ jsxs("div", { className: `${index_module_default2.sectionBlock} ${index_module_default2.compactSectionBlock}`, children: [
|
|
5148
|
-
/* @__PURE__ */ jsx(Typography.Text, { className: index_module_default2.sectionLabel, children: sd.title || "
|
|
6005
|
+
/* @__PURE__ */ jsx(Typography.Text, { className: index_module_default2.sectionLabel, children: sd.title || t11("inputGenerating") }),
|
|
5149
6006
|
/* @__PURE__ */ jsx("div", { className: index_module_default2.markdownContainer, children: /* @__PURE__ */ jsx(XMarkdown_default, { content: toMarkdown(sd.content, sd.kind, sd.lang) }) })
|
|
5150
6007
|
] }),
|
|
5151
6008
|
renderDisplayView(item.argsDisplay),
|
|
5152
6009
|
renderDisplayView(item.resultDisplay),
|
|
5153
6010
|
!hasStructuredDisplay && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5154
6011
|
(item.content || item.arguments) && argsContent && /* @__PURE__ */ jsxs("div", { className: index_module_default2.sectionBlock, children: [
|
|
5155
|
-
/* @__PURE__ */ jsx(Typography.Text, { className: index_module_default2.sectionLabel, children: "
|
|
6012
|
+
/* @__PURE__ */ jsx(Typography.Text, { className: index_module_default2.sectionLabel, children: t11("inputParams") }),
|
|
5156
6013
|
/* @__PURE__ */ jsx("div", { className: index_module_default2.markdownContainer, children: /* @__PURE__ */ jsx(XMarkdown_default, { content: argsContent.isJson ? `\`\`\`json
|
|
5157
6014
|
${argsContent.text}
|
|
5158
6015
|
\`\`\`` : argsContent.text }) })
|
|
5159
6016
|
] }),
|
|
5160
6017
|
item.result && resultContent && /* @__PURE__ */ jsxs("div", { className: index_module_default2.sectionBlock, children: [
|
|
5161
|
-
/* @__PURE__ */ jsx(Typography.Text, { className: index_module_default2.sectionLabel, children: "
|
|
6018
|
+
/* @__PURE__ */ jsx(Typography.Text, { className: index_module_default2.sectionLabel, children: t11("outputResult") }),
|
|
5162
6019
|
/* @__PURE__ */ jsx("div", { className: index_module_default2.markdownContainer, children: /* @__PURE__ */ jsx(XMarkdown_default, { content: resultContent.isJson ? `\`\`\`json
|
|
5163
6020
|
${resultContent.text}
|
|
5164
6021
|
\`\`\`` : resultContent.text }) })
|
|
@@ -5167,36 +6024,9 @@ ${resultContent.text}
|
|
|
5167
6024
|
] });
|
|
5168
6025
|
};
|
|
5169
6026
|
var default_render_default = DefaultToolRender;
|
|
5170
|
-
var MAX_NESTING_DEPTH = 3;
|
|
5171
|
-
var SubAgentRender = ({ item }) => {
|
|
5172
|
-
const subMessages = item.subMessages || [];
|
|
5173
|
-
const depth = subMessages[0]?.subAgentDepth || 1;
|
|
5174
|
-
if (!subMessages.length) {
|
|
5175
|
-
return /* @__PURE__ */ jsx(Typography.Text, { type: "secondary", className: index_module_default2.emptyText, children: "\u5B50\u667A\u80FD\u4F53\u6267\u884C\u4E2D..." });
|
|
5176
|
-
}
|
|
5177
|
-
if (depth > MAX_NESTING_DEPTH) {
|
|
5178
|
-
return /* @__PURE__ */ jsxs(Typography.Text, { type: "secondary", className: index_module_default2.emptyText, children: [
|
|
5179
|
-
"\u5B50\u667A\u80FD\u4F53\u6267\u884C\u5185\u5BB9\uFF08\u5D4C\u5957\u5C42\u7EA7 ",
|
|
5180
|
-
depth,
|
|
5181
|
-
"\uFF0C\u5DF2\u6298\u53E0\uFF09"
|
|
5182
|
-
] });
|
|
5183
|
-
}
|
|
5184
|
-
return /* @__PURE__ */ jsxs("div", { className: index_module_default2.subAgentContainer, children: [
|
|
5185
|
-
item.subAgentName && /* @__PURE__ */ jsx("div", { className: index_module_default2.subAgentHeader, children: /* @__PURE__ */ jsx(Typography.Text, { type: "secondary", className: index_module_default2.subAgentName, children: item.subAgentName }) }),
|
|
5186
|
-
/* @__PURE__ */ jsx("div", { className: index_module_default2.subAgentMessages, children: subMessages.map((msg, index) => /* @__PURE__ */ jsx(
|
|
5187
|
-
MessageRender_default,
|
|
5188
|
-
{
|
|
5189
|
-
role: { user: "agent", role: 2, placement: "start" },
|
|
5190
|
-
message: msg,
|
|
5191
|
-
loading: !!msg.generating
|
|
5192
|
-
},
|
|
5193
|
-
`sub-agent-${msg.messageId || index}`
|
|
5194
|
-
)) })
|
|
5195
|
-
] });
|
|
5196
|
-
};
|
|
5197
|
-
var sub_agent_render_default = SubAgentRender;
|
|
5198
6027
|
var TodoWriteRender = ({ args, result }) => {
|
|
5199
6028
|
const { token } = theme.useToken();
|
|
6029
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
5200
6030
|
const todos = Array.isArray(result) ? result : result?.todos || (Array.isArray(args) ? args : args?.todos) || [];
|
|
5201
6031
|
const getStatusIcon = (status) => {
|
|
5202
6032
|
switch (status) {
|
|
@@ -5210,7 +6040,7 @@ var TodoWriteRender = ({ args, result }) => {
|
|
|
5210
6040
|
}
|
|
5211
6041
|
};
|
|
5212
6042
|
if (!todos || todos.length === 0) {
|
|
5213
|
-
return /* @__PURE__ */ jsx(Typography.Text, { type: "secondary", className: index_module_default2.emptyText, children: "
|
|
6043
|
+
return /* @__PURE__ */ jsx(Typography.Text, { type: "secondary", className: index_module_default2.emptyText, children: t11("noTasks") });
|
|
5214
6044
|
}
|
|
5215
6045
|
return /* @__PURE__ */ jsx(
|
|
5216
6046
|
List,
|
|
@@ -5241,13 +6071,6 @@ var toolRenders = {
|
|
|
5241
6071
|
}
|
|
5242
6072
|
};
|
|
5243
6073
|
var getToolRenderConfig = (item) => {
|
|
5244
|
-
if (item?.hasSubAgent && item?.subMessages?.length) {
|
|
5245
|
-
return {
|
|
5246
|
-
component: sub_agent_render_default,
|
|
5247
|
-
defaultExpanded: true,
|
|
5248
|
-
alwaysShowContent: true
|
|
5249
|
-
};
|
|
5250
|
-
}
|
|
5251
6074
|
if (item?.toolName && toolRenders[item.toolName]) {
|
|
5252
6075
|
return toolRenders[item.toolName];
|
|
5253
6076
|
}
|
|
@@ -5287,7 +6110,6 @@ var hasDisplayViewBody = (view) => {
|
|
|
5287
6110
|
return !!(view?.summary || view?.blocks?.length || view?.meta?.length);
|
|
5288
6111
|
};
|
|
5289
6112
|
var ToolCallItem = ({ item }) => {
|
|
5290
|
-
const { token } = theme.useToken();
|
|
5291
6113
|
const renderConfig = getToolRenderConfig(item);
|
|
5292
6114
|
const CustomRender = renderConfig.component;
|
|
5293
6115
|
const status = useMemo(() => {
|
|
@@ -5303,7 +6125,7 @@ var ToolCallItem = ({ item }) => {
|
|
|
5303
6125
|
if (!cleanedResult) return null;
|
|
5304
6126
|
return formatContent(cleanedResult);
|
|
5305
6127
|
}, [item.result]);
|
|
5306
|
-
const
|
|
6128
|
+
const hasContent2 = useMemo(() => {
|
|
5307
6129
|
if (renderConfig.disableExpandOnError && status === "error") return false;
|
|
5308
6130
|
let alwaysShow = false;
|
|
5309
6131
|
if (typeof renderConfig.alwaysShowContent === "function") {
|
|
@@ -5334,80 +6156,303 @@ var ToolCallItem = ({ item }) => {
|
|
|
5334
6156
|
argsContent.text,
|
|
5335
6157
|
resultContent?.text
|
|
5336
6158
|
]);
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
6159
|
+
if (!hasContent2) return null;
|
|
6160
|
+
return /* @__PURE__ */ jsx("div", { className: index_module_default2.toolCallContent, children: /* @__PURE__ */ jsx(
|
|
6161
|
+
CustomRender,
|
|
6162
|
+
{
|
|
6163
|
+
item,
|
|
6164
|
+
args: argsContent.parsed,
|
|
6165
|
+
result: resultContent?.parsed,
|
|
6166
|
+
argsContent,
|
|
6167
|
+
resultContent,
|
|
6168
|
+
errorMessage: item.errorMessage
|
|
6169
|
+
}
|
|
6170
|
+
) });
|
|
6171
|
+
};
|
|
6172
|
+
var tool_call_item_default = ToolCallItem;
|
|
6173
|
+
|
|
6174
|
+
// src/components/agentExecList.module.less
|
|
6175
|
+
var agentExecList_module_default = {
|
|
6176
|
+
wrap: "agentExecList_module_wrap",
|
|
6177
|
+
summary: "agentExecList_module_summary",
|
|
6178
|
+
summaryIcon: "agentExecList_module_summaryIcon",
|
|
6179
|
+
count: "agentExecList_module_count",
|
|
6180
|
+
divider: "agentExecList_module_divider",
|
|
6181
|
+
list: "agentExecList_module_list",
|
|
6182
|
+
execRow: "agentExecList_module_execRow",
|
|
6183
|
+
rowLine: "agentExecList_module_rowLine",
|
|
6184
|
+
rowIcon: "agentExecList_module_rowIcon",
|
|
6185
|
+
rowLabel: "agentExecList_module_rowLabel",
|
|
6186
|
+
rowLabelError: "agentExecList_module_rowLabelError",
|
|
6187
|
+
rowDetail: "agentExecList_module_rowDetail",
|
|
6188
|
+
rowDetailExpandable: "agentExecList_module_rowDetailExpandable",
|
|
6189
|
+
rowDetailAction: "agentExecList_module_rowDetailAction",
|
|
6190
|
+
rowBody: "agentExecList_module_rowBody"
|
|
6191
|
+
};
|
|
6192
|
+
var AgentExecRow = memo(({ icon, label, detail, status, content, onDetail }) => {
|
|
6193
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6194
|
+
const [open, setOpen] = useState(false);
|
|
6195
|
+
const hasExpand = !!content;
|
|
6196
|
+
return /* @__PURE__ */ jsxs("div", { className: agentExecList_module_default.execRow, children: [
|
|
6197
|
+
/* @__PURE__ */ jsxs("div", { className: agentExecList_module_default.rowLine, onClick: () => hasExpand && setOpen((o) => !o), children: [
|
|
6198
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.rowIcon, children: icon }),
|
|
6199
|
+
/* @__PURE__ */ jsx("span", { className: `${agentExecList_module_default.rowLabel} ${status === "error" ? agentExecList_module_default.rowLabelError : ""}`, children: label }),
|
|
6200
|
+
/* @__PURE__ */ jsx("span", { className: `${agentExecList_module_default.rowDetail} ${hasExpand ? agentExecList_module_default.rowDetailExpandable : ""}`, title: detail, children: detail || " " }),
|
|
6201
|
+
onDetail && /* @__PURE__ */ jsx(
|
|
6202
|
+
"span",
|
|
6203
|
+
{
|
|
6204
|
+
className: agentExecList_module_default.rowDetailAction,
|
|
6205
|
+
onClick: (e) => {
|
|
6206
|
+
e.stopPropagation();
|
|
6207
|
+
onDetail();
|
|
6208
|
+
},
|
|
6209
|
+
children: t11("viewExecutionDetail")
|
|
6210
|
+
}
|
|
6211
|
+
)
|
|
6212
|
+
] }),
|
|
6213
|
+
open && content && /* @__PURE__ */ jsx("div", { className: agentExecList_module_default.rowBody, children: content })
|
|
6214
|
+
] });
|
|
6215
|
+
});
|
|
6216
|
+
var agentExecRow_default = AgentExecRow;
|
|
6217
|
+
var TOOL_LABEL = {
|
|
6218
|
+
loading: t(`${NS_CHAT_COPILOT}:execItemRunning`),
|
|
6219
|
+
success: t(`${NS_CHAT_COPILOT}:execItemDone`),
|
|
6220
|
+
error: t(`${NS_CHAT_COPILOT}:execItemFailed`)
|
|
6221
|
+
};
|
|
6222
|
+
function mapToolStatus(tool) {
|
|
6223
|
+
if (tool.status === "success") return "success";
|
|
6224
|
+
if (tool.status === "error" || tool.isError || tool.errorMessage) return "error";
|
|
6225
|
+
if (tool.status === "pending" || tool.status === "running") return "loading";
|
|
6226
|
+
return tool.result !== void 0 ? "success" : "loading";
|
|
6227
|
+
}
|
|
6228
|
+
function toolDetail(tool) {
|
|
6229
|
+
const title = tool.display?.title || tool.title || "";
|
|
6230
|
+
if (title) return title;
|
|
6231
|
+
const name = tool.toolName || "";
|
|
6232
|
+
const args = typeof tool.arguments === "string" ? tool.arguments : "";
|
|
6233
|
+
return [name, args].filter(Boolean).join(" ") || t(`${NS_CHAT_COPILOT}:toolCallFallback`);
|
|
6234
|
+
}
|
|
6235
|
+
var ICON_SIZE = 13;
|
|
6236
|
+
function renderToolIcon(toolIcon) {
|
|
6237
|
+
if (!toolIcon) return /* @__PURE__ */ jsx(ToolOutlined, { style: { fontSize: ICON_SIZE, color: "var(--ant-color-text-secondary, #8c8c8c)" } });
|
|
6238
|
+
const isUrl = /^(https?:|\/)/.test(toolIcon);
|
|
6239
|
+
if (isUrl) return /* @__PURE__ */ jsx("img", { src: toolIcon, alt: "tool-icon", style: { width: 14, height: 14, objectFit: "contain" } });
|
|
6240
|
+
return /* @__PURE__ */ jsx("span", { style: { fontSize: ICON_SIZE }, children: toolIcon });
|
|
6241
|
+
}
|
|
6242
|
+
function renderStatusIcon(status, toolIcon) {
|
|
6243
|
+
if (status === "loading") {
|
|
6244
|
+
return /* @__PURE__ */ jsx(LoadingOutlined, { spin: true, style: { fontSize: ICON_SIZE, color: "var(--ant-color-text-secondary, #8c8c8c)" } });
|
|
6245
|
+
}
|
|
6246
|
+
return renderToolIcon(toolIcon);
|
|
6247
|
+
}
|
|
6248
|
+
function buildExecRow(item, index, ctx) {
|
|
6249
|
+
switch (item.type) {
|
|
6250
|
+
case "text": {
|
|
6251
|
+
const textItem = item;
|
|
6252
|
+
const reasoning = textItem.reasoningContent;
|
|
6253
|
+
if (!reasoning) return null;
|
|
6254
|
+
const text = typeof reasoning === "string" ? reasoning : "";
|
|
6255
|
+
return {
|
|
6256
|
+
key: `thinking-${index}`,
|
|
6257
|
+
kind: "thinking",
|
|
6258
|
+
status: "success",
|
|
6259
|
+
label: t(`${NS_CHAT_COPILOT}:execItemThinking`),
|
|
6260
|
+
detail: text,
|
|
6261
|
+
icon: /* @__PURE__ */ jsx(BulbOutlined, { style: { fontSize: ICON_SIZE, color: "var(--ant-color-text-secondary, #8c8c8c)" } }),
|
|
6262
|
+
content: /* @__PURE__ */ jsx(XMarkdown_default, { content: text, message: ctx.message, components: ctx.customComponents })
|
|
6263
|
+
};
|
|
6264
|
+
}
|
|
6265
|
+
case "toolCall":
|
|
6266
|
+
case "toolResult": {
|
|
6267
|
+
const tool = item;
|
|
6268
|
+
const status = mapToolStatus(tool);
|
|
6269
|
+
const isSubAgent = isSubAgentEvent(tool);
|
|
6270
|
+
return {
|
|
6271
|
+
key: `tool-${tool.toolCallId || index}`,
|
|
6272
|
+
kind: "tool",
|
|
6273
|
+
status,
|
|
6274
|
+
label: TOOL_LABEL[status] || "\u6267\u884C",
|
|
6275
|
+
detail: toolDetail(tool),
|
|
6276
|
+
icon: renderStatusIcon(status, tool.toolIcon),
|
|
6277
|
+
// 子智能体:不在行内展开子执行内容,只保留"查看执行详情"打开右侧抽屉
|
|
6278
|
+
content: isSubAgent ? void 0 : /* @__PURE__ */ jsx(tool_call_item_default, { item: tool }),
|
|
6279
|
+
onDetail: isSubAgent && ctx.onViewSubAgent ? () => ctx.onViewSubAgent?.(tool) : void 0
|
|
6280
|
+
};
|
|
6281
|
+
}
|
|
6282
|
+
case "stepError":
|
|
6283
|
+
case "runFailed": {
|
|
6284
|
+
const err = item;
|
|
6285
|
+
return {
|
|
6286
|
+
key: `error-${index}`,
|
|
6287
|
+
kind: "error",
|
|
6288
|
+
status: "error",
|
|
6289
|
+
label: t(`${NS_CHAT_COPILOT}:execItemFailed`),
|
|
6290
|
+
detail: err.errorMessage || "",
|
|
6291
|
+
icon: /* @__PURE__ */ jsx(CloseCircleOutlined, { style: { fontSize: ICON_SIZE, color: "var(--ant-color-error, #ff4d4f)" } }),
|
|
6292
|
+
content: err.errorMessage ? /* @__PURE__ */ jsx(XMarkdown_default, { content: err.errorMessage, message: ctx.message, components: ctx.customComponents }) : void 0
|
|
6293
|
+
};
|
|
6294
|
+
}
|
|
6295
|
+
case "files": {
|
|
6296
|
+
const files = item.files || [];
|
|
6297
|
+
const detail = files.map((f) => f.name).filter(Boolean).join("\u3001") || "";
|
|
6298
|
+
return {
|
|
6299
|
+
key: `files-${index}`,
|
|
6300
|
+
kind: "file",
|
|
6301
|
+
status: "success",
|
|
6302
|
+
label: t(`${NS_CHAT_COPILOT}:execItemFile`),
|
|
6303
|
+
detail,
|
|
6304
|
+
icon: /* @__PURE__ */ jsx(PaperClipOutlined, { style: { fontSize: ICON_SIZE, color: "var(--ant-color-text-secondary, #8c8c8c)" } }),
|
|
6305
|
+
content: /* @__PURE__ */ jsx(FilesNode, { item })
|
|
6306
|
+
};
|
|
6307
|
+
}
|
|
6308
|
+
case "plan": {
|
|
6309
|
+
const plan = item;
|
|
6310
|
+
return {
|
|
6311
|
+
key: `plan-${index}`,
|
|
6312
|
+
kind: "plan",
|
|
6313
|
+
status: "success",
|
|
6314
|
+
label: t(`${NS_CHAT_COPILOT}:execItemPlan`),
|
|
6315
|
+
detail: plan.title || "",
|
|
6316
|
+
icon: /* @__PURE__ */ jsx(ScheduleOutlined, { style: { fontSize: ICON_SIZE, color: "var(--ant-color-text-secondary, #8c8c8c)" } }),
|
|
6317
|
+
content: /* @__PURE__ */ jsx(A2uiPlanNode, { item: plan })
|
|
6318
|
+
};
|
|
6319
|
+
}
|
|
6320
|
+
default:
|
|
6321
|
+
return null;
|
|
6322
|
+
}
|
|
6323
|
+
}
|
|
6324
|
+
function buildAgentExecItems(content, ctx) {
|
|
6325
|
+
const items = [];
|
|
6326
|
+
let lastThinkingText = null;
|
|
6327
|
+
(content || []).forEach((item, index) => {
|
|
6328
|
+
const row = buildExecRow(item, index, ctx);
|
|
6329
|
+
if (!row) return;
|
|
6330
|
+
if (row.kind === "thinking") {
|
|
6331
|
+
if (row.detail === lastThinkingText) return;
|
|
6332
|
+
lastThinkingText = row.detail;
|
|
6333
|
+
}
|
|
6334
|
+
items.push(row);
|
|
6335
|
+
});
|
|
6336
|
+
const completed = items.filter((i) => i.status === "success").length;
|
|
6337
|
+
const failed = items.filter((i) => i.status === "error").length;
|
|
6338
|
+
const loading = items.filter((i) => i.status === "loading").length;
|
|
6339
|
+
return { items, completed, failed, loading };
|
|
6340
|
+
}
|
|
6341
|
+
function AgentExecList({ items, completed, failed, loading = 0, defaultActive = true }) {
|
|
6342
|
+
if (!items.length) return null;
|
|
6343
|
+
const summary = /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 8, className: agentExecList_module_default.summary, children: [
|
|
6344
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.summaryIcon, children: /* @__PURE__ */ jsx(CheckCircleFilled, { style: { color: "#faad14", fontSize: 14 } }) }),
|
|
6345
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.count, children: t(`${NS_CHAT_COPILOT}:execItemSummaryDone`, { count: completed }) }),
|
|
6346
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.divider, children: "|" }),
|
|
6347
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.count, children: t(`${NS_CHAT_COPILOT}:execItemSummaryFailed`, { count: failed }) }),
|
|
6348
|
+
loading > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6349
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.divider, children: "|" }),
|
|
6350
|
+
/* @__PURE__ */ jsx("span", { className: agentExecList_module_default.count, children: t(`${NS_CHAT_COPILOT}:execItemSummaryRunning`, { count: loading }) })
|
|
6351
|
+
] })
|
|
6352
|
+
] });
|
|
5355
6353
|
return /* @__PURE__ */ jsx(
|
|
5356
6354
|
Collapse,
|
|
5357
6355
|
{
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
defaultActiveKey:
|
|
5362
|
-
expandIconPlacement: "end",
|
|
5363
|
-
expandIcon: ({ isActive }) => hasContent ? /* @__PURE__ */ jsx(RightOutlined, { className: `${index_module_default2.expandIcon} ${isActive ? index_module_default2.expanded : ""}` }) : null,
|
|
6356
|
+
ghost: true,
|
|
6357
|
+
size: "small",
|
|
6358
|
+
className: agentExecList_module_default.wrap,
|
|
6359
|
+
defaultActiveKey: defaultActive ? ["agent-exec"] : [],
|
|
5364
6360
|
items: [
|
|
5365
6361
|
{
|
|
5366
|
-
key:
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
displayName ? /* @__PURE__ */ jsx("span", { className: `${index_module_default2.toolName} text-ellipsis`, children: displayName }) : /* @__PURE__ */ jsxs("span", { className: index_module_default2.toolNamePending, children: [
|
|
5371
|
-
/* @__PURE__ */ jsx("span", { className: index_module_default2.dot }),
|
|
5372
|
-
/* @__PURE__ */ jsx("span", { className: index_module_default2.dot }),
|
|
5373
|
-
/* @__PURE__ */ jsx("span", { className: index_module_default2.dot })
|
|
5374
|
-
] }),
|
|
5375
|
-
showLoading && /* @__PURE__ */ jsx("div", { className: index_module_default2.statusIcon, style: { color: token.colorPrimary }, children: /* @__PURE__ */ jsx(LoadingOutlined, {}) })
|
|
5376
|
-
] }),
|
|
5377
|
-
children: /* @__PURE__ */ jsx("div", { className: index_module_default2.contentScrollContainer, children: /* @__PURE__ */ jsx(
|
|
5378
|
-
CustomRender,
|
|
6362
|
+
key: "agent-exec",
|
|
6363
|
+
label: summary,
|
|
6364
|
+
children: /* @__PURE__ */ jsx("div", { className: agentExecList_module_default.list, children: items.map((item) => /* @__PURE__ */ jsx(
|
|
6365
|
+
agentExecRow_default,
|
|
5379
6366
|
{
|
|
5380
|
-
item,
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
}
|
|
5387
|
-
|
|
6367
|
+
icon: item.icon,
|
|
6368
|
+
label: item.label,
|
|
6369
|
+
detail: item.detail,
|
|
6370
|
+
status: item.status,
|
|
6371
|
+
content: item.content,
|
|
6372
|
+
onDetail: item.onDetail
|
|
6373
|
+
},
|
|
6374
|
+
item.key
|
|
6375
|
+
)) })
|
|
5388
6376
|
}
|
|
5389
6377
|
]
|
|
5390
6378
|
}
|
|
5391
6379
|
);
|
|
6380
|
+
}
|
|
6381
|
+
|
|
6382
|
+
// src/components/agentExecSequence.module.less
|
|
6383
|
+
var agentExecSequence_module_default = {
|
|
6384
|
+
seq: "agentExecSequence_module_seq"
|
|
5392
6385
|
};
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
|
|
5402
|
-
|
|
6386
|
+
function renderRow(row, key) {
|
|
6387
|
+
return /* @__PURE__ */ jsx(agentExecRow_default, { icon: row.icon, label: row.label, detail: row.detail, status: row.status, content: row.content, onDetail: row.onDetail }, key);
|
|
6388
|
+
}
|
|
6389
|
+
var AgentExecSequence = memo(({ content, message: message3, customComponents, messageIndex, role, onViewSubAgent }) => {
|
|
6390
|
+
const ctx = { message: message3, customComponents, onViewSubAgent };
|
|
6391
|
+
const nodes = [];
|
|
6392
|
+
let lastThinkingText = null;
|
|
6393
|
+
(content || []).forEach((item, index) => {
|
|
6394
|
+
if (item.type === "text") {
|
|
6395
|
+
const textItem = item;
|
|
6396
|
+
if (textItem.reasoningContent) {
|
|
6397
|
+
const thinking = buildExecRow(item, index, ctx);
|
|
6398
|
+
if (thinking && thinking.detail !== lastThinkingText) {
|
|
6399
|
+
lastThinkingText = thinking.detail;
|
|
6400
|
+
nodes.push(renderRow(thinking, `seq-thinking-${index}`));
|
|
6401
|
+
}
|
|
5403
6402
|
}
|
|
5404
|
-
if (
|
|
5405
|
-
|
|
5406
|
-
|
|
6403
|
+
if (textItem.messageContent) {
|
|
6404
|
+
nodes.push(
|
|
6405
|
+
/* @__PURE__ */ jsx(
|
|
6406
|
+
TextNode2,
|
|
6407
|
+
{
|
|
6408
|
+
item: { ...textItem, reasoningContent: void 0 },
|
|
6409
|
+
role,
|
|
6410
|
+
message: message3,
|
|
6411
|
+
customComponents,
|
|
6412
|
+
messageIndex
|
|
6413
|
+
},
|
|
6414
|
+
`seq-answer-${index}`
|
|
6415
|
+
)
|
|
6416
|
+
);
|
|
5407
6417
|
}
|
|
5408
|
-
return
|
|
5409
|
-
}
|
|
5410
|
-
|
|
6418
|
+
return;
|
|
6419
|
+
}
|
|
6420
|
+
const row = buildExecRow(item, index, ctx);
|
|
6421
|
+
if (row) nodes.push(renderRow(row, `seq-${index}`));
|
|
6422
|
+
});
|
|
6423
|
+
if (!nodes.length) return null;
|
|
6424
|
+
return /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 10, className: agentExecSequence_module_default.seq, children: nodes });
|
|
6425
|
+
});
|
|
6426
|
+
var agentExecSequence_default = AgentExecSequence;
|
|
6427
|
+
var MessageRender_default = React10__default.memo(({ role, message: message3, messageIndex = -1, loading, containerRef, customComponents }) => {
|
|
6428
|
+
const chatStore = useChatStore();
|
|
6429
|
+
const configState = useSnapshot(chatStore.config);
|
|
6430
|
+
const execMode = configState.agentExecMode || "aggregate";
|
|
6431
|
+
const isSequence = execMode === "sequence";
|
|
6432
|
+
const openSubAgent = useCallback((item) => chatStore.openSubAgent(item), [chatStore]);
|
|
6433
|
+
const {
|
|
6434
|
+
items,
|
|
6435
|
+
completed,
|
|
6436
|
+
failed,
|
|
6437
|
+
loading: runLoading
|
|
6438
|
+
} = useMemo(
|
|
6439
|
+
() => buildAgentExecItems(message3.content || [], {
|
|
6440
|
+
message: message3,
|
|
6441
|
+
customComponents,
|
|
6442
|
+
// 子智能体:打开右侧执行详情抽屉
|
|
6443
|
+
onViewSubAgent: openSubAgent
|
|
6444
|
+
}),
|
|
6445
|
+
[message3, customComponents, openSubAgent]
|
|
6446
|
+
);
|
|
6447
|
+
const hasSequenceContent = useMemo(() => hasExecContent(message3.content || []), [message3.content]);
|
|
6448
|
+
const finalAnswer = useMemo(() => {
|
|
6449
|
+
const lastText = [...message3.content || []].reverse().find((i) => i.type === "text");
|
|
6450
|
+
if (!lastText) return null;
|
|
6451
|
+
const content = lastText.messageContent || "";
|
|
6452
|
+
if (!String(content).trim()) return null;
|
|
6453
|
+
const answerItem = { ...lastText, reasoningContent: void 0 };
|
|
6454
|
+
return /* @__PURE__ */ jsx(TextNode2, { item: answerItem, role: message3.role, customComponents, message: message3, messageIndex });
|
|
6455
|
+
}, [message3, messageIndex, customComponents]);
|
|
5411
6456
|
const quoteMsg = useMemo(() => {
|
|
5412
6457
|
const quoteMsg2 = {};
|
|
5413
6458
|
if (message3.params) {
|
|
@@ -5421,50 +6466,49 @@ var MessageRender_default = React10__default.memo(({ role, message: message3, me
|
|
|
5421
6466
|
}
|
|
5422
6467
|
return isEmptyObj(quoteMsg2) ? null : quoteMsg2;
|
|
5423
6468
|
}, [message3.params, message3.quoteMsg]);
|
|
5424
|
-
const
|
|
5425
|
-
|
|
5426
|
-
const
|
|
5427
|
-
|
|
5428
|
-
|
|
5429
|
-
if (item.type === "toolCall" || item.type === "toolResult") lastIdx = i;
|
|
5430
|
-
});
|
|
5431
|
-
return lastIdx;
|
|
5432
|
-
})();
|
|
6469
|
+
const hasToolCall = useMemo(() => (message3.content || []).some((i) => i.type === "toolCall" || i.type === "toolResult"), [message3]);
|
|
6470
|
+
const lastContentType = message3.content?.[message3.content.length - 1]?.type;
|
|
6471
|
+
const hasVisibleContent = isSequence ? hasSequenceContent : items.length > 0;
|
|
6472
|
+
const showPending = loading && !finalAnswer && (!hasVisibleContent || lastContentType !== "text");
|
|
6473
|
+
if (isSequence ? !hasSequenceContent && !showPending : items.length === 0 && !finalAnswer && !showPending) return null;
|
|
5433
6474
|
return /* @__PURE__ */ jsxs(Flex, { ref: containerRef, vertical: true, gap: 8, children: [
|
|
5434
|
-
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
|
|
5438
|
-
|
|
5439
|
-
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5445
|
-
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
6475
|
+
isSequence ? hasSequenceContent && /* @__PURE__ */ jsx(
|
|
6476
|
+
Bubble,
|
|
6477
|
+
{
|
|
6478
|
+
role: role.user,
|
|
6479
|
+
placement: role.placement,
|
|
6480
|
+
variant: "borderless",
|
|
6481
|
+
className: styles_module_default.bubble,
|
|
6482
|
+
content: /* @__PURE__ */ jsx(
|
|
6483
|
+
agentExecSequence_default,
|
|
6484
|
+
{
|
|
6485
|
+
content: message3.content || [],
|
|
6486
|
+
message: message3,
|
|
6487
|
+
customComponents,
|
|
6488
|
+
messageIndex,
|
|
6489
|
+
role: message3.role,
|
|
6490
|
+
onViewSubAgent: openSubAgent
|
|
6491
|
+
}
|
|
6492
|
+
)
|
|
6493
|
+
}
|
|
6494
|
+
) : items.length > 0 && /* @__PURE__ */ jsx(
|
|
6495
|
+
Bubble,
|
|
6496
|
+
{
|
|
6497
|
+
role: role.user,
|
|
6498
|
+
placement: role.placement,
|
|
6499
|
+
variant: "borderless",
|
|
6500
|
+
className: styles_module_default.bubble,
|
|
6501
|
+
content: /* @__PURE__ */ jsx(AgentExecList, { items, completed, failed, loading: runLoading })
|
|
6502
|
+
}
|
|
6503
|
+
),
|
|
6504
|
+
hasToolCall && messageIndex >= 0 && /* @__PURE__ */ jsx(A2uiMessageCards, { messageIndex, message: message3 }),
|
|
6505
|
+
!isSequence && finalAnswer && /* @__PURE__ */ jsx(Bubble, { role: role.user, placement: role.placement, className: styles_module_default.bubble, content: finalAnswer }),
|
|
5463
6506
|
showPending && role.user === "agent" && /* @__PURE__ */ jsx(Bubble, { role: role.user, placement: role.placement, content: /* @__PURE__ */ jsx(RunStartedNode, {}) }),
|
|
5464
6507
|
quoteMsg && /* @__PURE__ */ jsx(QuoteMsgNode, { quoteMsg, role })
|
|
5465
6508
|
] });
|
|
5466
6509
|
});
|
|
5467
6510
|
var WelcomeItem_default = ({ icon = true, title = true, description = true, prompts = true }) => {
|
|
6511
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
5468
6512
|
const chatStore = useChatStore();
|
|
5469
6513
|
const agentState = useSnapshot(chatStore.agent);
|
|
5470
6514
|
const recommendQuestions = useMemo(() => {
|
|
@@ -5477,7 +6521,7 @@ var WelcomeItem_default = ({ icon = true, title = true, description = true, prom
|
|
|
5477
6521
|
/* @__PURE__ */ jsx(
|
|
5478
6522
|
Welcome,
|
|
5479
6523
|
{
|
|
5480
|
-
className:
|
|
6524
|
+
className: classNames10(styles_module_default2.chatWelcome, "p-t-32"),
|
|
5481
6525
|
variant: "borderless",
|
|
5482
6526
|
icon: /* @__PURE__ */ jsx(
|
|
5483
6527
|
RenderWrapper,
|
|
@@ -5486,7 +6530,7 @@ var WelcomeItem_default = ({ icon = true, title = true, description = true, prom
|
|
|
5486
6530
|
DefaultComponent: agentState.agentInfo?.iconUrl ? /^https?:\/\//i.test(agentState.agentInfo?.iconUrl) ? /* @__PURE__ */ jsx(Avatar, { size: 58, src: agentState.agentInfo?.iconUrl }) : /* @__PURE__ */ jsx(AuthImage_default, { size: 58, path: agentState.agentInfo?.iconUrl }) : /* @__PURE__ */ jsx(Avatar, { size: 58, src: /* @__PURE__ */ jsx(IconFont_default, { type: "icon-lolrai", className: styles_module_default2.defaultLogo }) })
|
|
5487
6531
|
}
|
|
5488
6532
|
),
|
|
5489
|
-
title: /* @__PURE__ */ jsx(RenderWrapper, { control: title, DefaultComponent:
|
|
6533
|
+
title: /* @__PURE__ */ jsx(RenderWrapper, { control: title, DefaultComponent: t11("helloIam", { name: agentState.agentInfo?.name || "" }) }),
|
|
5490
6534
|
description: /* @__PURE__ */ jsx(
|
|
5491
6535
|
RenderWrapper,
|
|
5492
6536
|
{
|
|
@@ -5503,7 +6547,7 @@ var WelcomeItem_default = ({ icon = true, title = true, description = true, prom
|
|
|
5503
6547
|
DefaultComponent: /* @__PURE__ */ jsx(
|
|
5504
6548
|
Prompts,
|
|
5505
6549
|
{
|
|
5506
|
-
className:
|
|
6550
|
+
className: classNames10("m-t-16", styles_module_default2.promptItem),
|
|
5507
6551
|
wrap: true,
|
|
5508
6552
|
onItemClick: (info) => chatStore.sendMessage(info.data.description),
|
|
5509
6553
|
items: recommendQuestions
|
|
@@ -5712,7 +6756,7 @@ var BubbleListItems_default = ({
|
|
|
5712
6756
|
autoScroll: false,
|
|
5713
6757
|
ref: listRef,
|
|
5714
6758
|
items: bubbleListItems,
|
|
5715
|
-
className:
|
|
6759
|
+
className: classNames10(styles_module_default2.bubbleList, "height-full", "scroll-fade-in"),
|
|
5716
6760
|
onScroll: handleScroll
|
|
5717
6761
|
},
|
|
5718
6762
|
conversationState.active.id
|
|
@@ -5724,6 +6768,7 @@ var ALL_CATEGORY_ID = "all";
|
|
|
5724
6768
|
var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
5725
6769
|
const chatStore = useChatStore();
|
|
5726
6770
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
6771
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
5727
6772
|
const { token } = theme.useToken();
|
|
5728
6773
|
const tagsContainerRef = useRef(null);
|
|
5729
6774
|
const isSkill = type === "skill";
|
|
@@ -5757,7 +6802,7 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5757
6802
|
]);
|
|
5758
6803
|
if (canceled) return;
|
|
5759
6804
|
const fetchedResources = resourcesRes.data || [];
|
|
5760
|
-
setCategories(
|
|
6805
|
+
setCategories(tagsRes.data || []);
|
|
5761
6806
|
setResources(fetchedResources);
|
|
5762
6807
|
const spec = conversationState.active.spec;
|
|
5763
6808
|
const initialItems = isSkill ? spec?.skills?.items : spec?.knowledges?.items;
|
|
@@ -5790,6 +6835,7 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5790
6835
|
if (tagsContainerRef.current) observer.observe(tagsContainerRef.current);
|
|
5791
6836
|
return () => observer.disconnect();
|
|
5792
6837
|
}, [open, selectedIds]);
|
|
6838
|
+
const allCategories = useMemo(() => [{ id: ALL_CATEGORY_ID, name: t11("all") }, ...categories], [categories, t11]);
|
|
5793
6839
|
const filteredResources = useMemo(() => {
|
|
5794
6840
|
return resources.filter((item) => {
|
|
5795
6841
|
const matchCategory = selectedCategoryIds.includes(ALL_CATEGORY_ID) || item.tagIds?.some((id) => selectedCategoryIds.includes(id));
|
|
@@ -5843,7 +6889,7 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5843
6889
|
if (!item) return id;
|
|
5844
6890
|
return "aliasName" in item && item.aliasName ? item.aliasName : item.name || id;
|
|
5845
6891
|
};
|
|
5846
|
-
const title = isSkill ? "
|
|
6892
|
+
const title = isSkill ? t11("selectSkill") : t11("selectKnowledge");
|
|
5847
6893
|
const iconType = isSkill ? "icon-skill" : "icon-remark";
|
|
5848
6894
|
return /* @__PURE__ */ jsx(
|
|
5849
6895
|
Modal,
|
|
@@ -5856,14 +6902,14 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5856
6902
|
centered: true,
|
|
5857
6903
|
destroyOnHidden: true,
|
|
5858
6904
|
title: /* @__PURE__ */ jsx("div", { className: style_module_default.titleContainer, children: /* @__PURE__ */ jsx(Title2, { level: 5, children: title }) }),
|
|
5859
|
-
footer: /* @__PURE__ */ jsx("div", { className: style_module_default.footer, children: /* @__PURE__ */ jsx(Button, { type: "primary", onClick: handleConfirm, children: "
|
|
6905
|
+
footer: /* @__PURE__ */ jsx("div", { className: style_module_default.footer, children: /* @__PURE__ */ jsx(Button, { type: "primary", onClick: handleConfirm, children: t11("confirm") }) }),
|
|
5860
6906
|
children: /* @__PURE__ */ jsxs(Layout, { className: style_module_default.layout, children: [
|
|
5861
|
-
/* @__PURE__ */ jsx(Sider, { width: 220, className: style_module_default.sider, theme: "light", children: /* @__PURE__ */ jsx("div", { className: style_module_default.siderContent, children: /* @__PURE__ */ jsx(Flex, { gap: 4, vertical: true, children:
|
|
6907
|
+
/* @__PURE__ */ jsx(Sider, { width: 220, className: style_module_default.sider, theme: "light", children: /* @__PURE__ */ jsx("div", { className: style_module_default.siderContent, children: /* @__PURE__ */ jsx(Flex, { gap: 4, vertical: true, children: allCategories.map((cat) => {
|
|
5862
6908
|
const isChecked = selectedCategoryIds.includes(cat.id);
|
|
5863
6909
|
return /* @__PURE__ */ jsxs(
|
|
5864
6910
|
Flex,
|
|
5865
6911
|
{
|
|
5866
|
-
className:
|
|
6912
|
+
className: classNames10(style_module_default.categoryItem, { [style_module_default.categoryActive]: isChecked }),
|
|
5867
6913
|
onClick: () => handleCategoryChange(cat.id, !isChecked),
|
|
5868
6914
|
children: [
|
|
5869
6915
|
/* @__PURE__ */ jsx(
|
|
@@ -5886,7 +6932,7 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5886
6932
|
Input,
|
|
5887
6933
|
{
|
|
5888
6934
|
className: style_module_default.searchInput,
|
|
5889
|
-
placeholder:
|
|
6935
|
+
placeholder: isSkill ? t11("searchSkill") : t11("searchKnowledge"),
|
|
5890
6936
|
prefix: /* @__PURE__ */ jsx(SearchOutlined, { style: { color: token.colorTextQuaternary } }),
|
|
5891
6937
|
value: searchText,
|
|
5892
6938
|
onChange: (e) => setSearchText(e.target.value),
|
|
@@ -5894,11 +6940,8 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5894
6940
|
autoFocus: true
|
|
5895
6941
|
}
|
|
5896
6942
|
) }),
|
|
5897
|
-
selectedIds.length > 0 && /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 2, children: /* @__PURE__ */
|
|
5898
|
-
|
|
5899
|
-
selectedIds.length
|
|
5900
|
-
] }) }),
|
|
5901
|
-
/* @__PURE__ */ jsxs("div", { className: classNames2(style_module_default.tagsArea, { [style_module_default.tagsExpanded]: tagsExpanded }), children: [
|
|
6943
|
+
selectedIds.length > 0 && /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 2, children: /* @__PURE__ */ jsx(Text4, { type: "secondary", className: style_module_default.selectedCount, children: t11("selectedCount", { count: selectedIds.length }) }) }),
|
|
6944
|
+
/* @__PURE__ */ jsxs("div", { className: classNames10(style_module_default.tagsArea, { [style_module_default.tagsExpanded]: tagsExpanded }), children: [
|
|
5902
6945
|
/* @__PURE__ */ jsxs(Flex, { gap: 8, className: style_module_default.tagContainer, wrap: true, ref: tagsContainerRef, children: [
|
|
5903
6946
|
selectedIds.map((id) => /* @__PURE__ */ jsx(
|
|
5904
6947
|
Tag,
|
|
@@ -5914,12 +6957,14 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5914
6957
|
id
|
|
5915
6958
|
)),
|
|
5916
6959
|
showExpandBtn && tagsExpanded && /* @__PURE__ */ jsxs(Button, { size: "small", className: style_module_default.expandBtn, onClick: () => setTagsExpanded(false), children: [
|
|
5917
|
-
"
|
|
6960
|
+
t11("collapse"),
|
|
6961
|
+
" ",
|
|
5918
6962
|
/* @__PURE__ */ jsx(UpOutlined, {})
|
|
5919
6963
|
] })
|
|
5920
6964
|
] }),
|
|
5921
6965
|
showExpandBtn && !tagsExpanded && /* @__PURE__ */ jsx("div", { className: style_module_default.expandBtnWrapper, children: /* @__PURE__ */ jsxs(Button, { size: "small", className: style_module_default.expandBtn, onClick: () => setTagsExpanded(true), children: [
|
|
5922
|
-
"
|
|
6966
|
+
t11("expand"),
|
|
6967
|
+
" ",
|
|
5923
6968
|
/* @__PURE__ */ jsx(DownOutlined, {})
|
|
5924
6969
|
] }) })
|
|
5925
6970
|
] }),
|
|
@@ -5928,22 +6973,22 @@ var ResourceSelectorModal_default = ({ open, type, onCancel }) => {
|
|
|
5928
6973
|
return /* @__PURE__ */ jsxs(
|
|
5929
6974
|
"div",
|
|
5930
6975
|
{
|
|
5931
|
-
className:
|
|
6976
|
+
className: classNames10(style_module_default.listItem, { [style_module_default.listItemSelected]: isSelected }),
|
|
5932
6977
|
onClick: () => toggleItemSelection(item.id),
|
|
5933
6978
|
children: [
|
|
5934
6979
|
/* @__PURE__ */ jsx("div", { className: style_module_default.itemIconWrapper, children: /* @__PURE__ */ jsx(IconFont_default, { type: iconType }) }),
|
|
5935
6980
|
/* @__PURE__ */ jsxs(Flex, { vertical: true, className: style_module_default.itemInfo, children: [
|
|
5936
6981
|
/* @__PURE__ */ jsxs(Flex, { justify: "space-between", children: [
|
|
5937
6982
|
/* @__PURE__ */ jsx(Text4, { strong: true, children: getDisplayName(item.id) }),
|
|
5938
|
-
isSelected && /* @__PURE__ */ jsx(Tag, { color: token.colorPrimary, variant: "outlined", children: "
|
|
6983
|
+
isSelected && /* @__PURE__ */ jsx(Tag, { color: token.colorPrimary, variant: "outlined", children: t11("added") })
|
|
5939
6984
|
] }),
|
|
5940
|
-
/* @__PURE__ */ jsx(Text4, { type: "secondary", className: style_module_default.itemDesc, children: item.description || "
|
|
6985
|
+
/* @__PURE__ */ jsx(Text4, { type: "secondary", className: style_module_default.itemDesc, children: item.description || t11("noDescription") })
|
|
5941
6986
|
] })
|
|
5942
6987
|
]
|
|
5943
6988
|
},
|
|
5944
6989
|
item.id
|
|
5945
6990
|
);
|
|
5946
|
-
}) : /* @__PURE__ */ jsx(Empty, { description: "
|
|
6991
|
+
}) : /* @__PURE__ */ jsx(Empty, { description: t11("noMatch") }) }) }) }) })
|
|
5947
6992
|
] })
|
|
5948
6993
|
] })
|
|
5949
6994
|
}
|
|
@@ -5953,12 +6998,13 @@ var { Text: Text5 } = Typography;
|
|
|
5953
6998
|
var KnowledgeBtn_default = ({}) => {
|
|
5954
6999
|
const chatStore = useChatStore();
|
|
5955
7000
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
7001
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
5956
7002
|
const [modalOpen, setModalOpen] = useState(false);
|
|
5957
7003
|
const knowledgeCount = conversationState.active.spec?.knowledges?.items?.length ?? 0;
|
|
5958
7004
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5959
7005
|
/* @__PURE__ */ jsxs("div", { className: style_module_default.resourceBtn, onClick: () => setModalOpen(true), children: [
|
|
5960
7006
|
/* @__PURE__ */ jsx(IconFont_default, { type: "icon-remark" }),
|
|
5961
|
-
/* @__PURE__ */ jsx(Text5, { children: "
|
|
7007
|
+
/* @__PURE__ */ jsx(Text5, { children: t11("knowledge") }),
|
|
5962
7008
|
knowledgeCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5963
7009
|
/* @__PURE__ */ jsx(Divider$1, { vertical: true, className: style_module_default.divider }),
|
|
5964
7010
|
/* @__PURE__ */ jsx(Flex, { className: style_module_default.count, children: knowledgeCount })
|
|
@@ -6060,6 +7106,7 @@ var ModelSelect_default = ({}) => {
|
|
|
6060
7106
|
var ReasonBtn_default = () => {
|
|
6061
7107
|
const chatStore = useChatStore();
|
|
6062
7108
|
const agentState = useSnapshot(chatStore.agent);
|
|
7109
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6063
7110
|
const currentModel = agentState.agentInfo.spec?.model;
|
|
6064
7111
|
const toggleReasoning = () => {
|
|
6065
7112
|
const nextAgentInfo = {
|
|
@@ -6074,15 +7121,16 @@ var ReasonBtn_default = () => {
|
|
|
6074
7121
|
};
|
|
6075
7122
|
chatStore.setAgent(nextAgentInfo);
|
|
6076
7123
|
};
|
|
6077
|
-
return /* @__PURE__ */ jsxs("div", { className:
|
|
7124
|
+
return /* @__PURE__ */ jsxs("div", { className: classNames10(style_module_default.resourceBtn, { [style_module_default.resourceBtnActive]: currentModel?.reasoning }), onClick: toggleReasoning, children: [
|
|
6078
7125
|
/* @__PURE__ */ jsx(IconFont_default, { type: "icon-reason" }),
|
|
6079
|
-
/* @__PURE__ */ jsx("span", { children: "
|
|
7126
|
+
/* @__PURE__ */ jsx("span", { children: t11("deepThinking") })
|
|
6080
7127
|
] });
|
|
6081
7128
|
};
|
|
6082
7129
|
var { Text: Text7 } = Typography;
|
|
6083
7130
|
var SkillBtn_default = ({}) => {
|
|
6084
7131
|
const chatStore = useChatStore();
|
|
6085
7132
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
7133
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6086
7134
|
const [modalOpen, setModalOpen] = useState(false);
|
|
6087
7135
|
const [skillsCount, setSkillsCount] = useState(0);
|
|
6088
7136
|
useEffect(() => {
|
|
@@ -6106,7 +7154,7 @@ var SkillBtn_default = ({}) => {
|
|
|
6106
7154
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6107
7155
|
/* @__PURE__ */ jsxs("div", { className: style_module_default.resourceBtn, onClick: () => setModalOpen(true), children: [
|
|
6108
7156
|
/* @__PURE__ */ jsx(IconFont_default, { type: "icon-skill" }),
|
|
6109
|
-
/* @__PURE__ */ jsx(Text7, { children: "
|
|
7157
|
+
/* @__PURE__ */ jsx(Text7, { children: t11("skill") }),
|
|
6110
7158
|
skillsCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6111
7159
|
/* @__PURE__ */ jsx(Divider$1, { vertical: true, className: style_module_default.divider }),
|
|
6112
7160
|
/* @__PURE__ */ jsx(Flex, { className: style_module_default.count, children: skillsCount })
|
|
@@ -6133,6 +7181,7 @@ var ChatSender_default2 = forwardRef(
|
|
|
6133
7181
|
const configState = useSnapshot(chatStore.config);
|
|
6134
7182
|
const agentState = useSnapshot(chatStore.agent);
|
|
6135
7183
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
7184
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6136
7185
|
const fileUploadRequest = (formData, signal) => {
|
|
6137
7186
|
const params = {
|
|
6138
7187
|
workspaceType: "conversation" /* CONVERSATION */,
|
|
@@ -6204,7 +7253,7 @@ var ChatSender_default2 = forwardRef(
|
|
|
6204
7253
|
RenderWrapper,
|
|
6205
7254
|
{
|
|
6206
7255
|
control: referencesBtn,
|
|
6207
|
-
DefaultComponent: /* @__PURE__ */ jsx(Flex, { gap: 8, children: ["
|
|
7256
|
+
DefaultComponent: /* @__PURE__ */ jsx(Flex, { gap: 8, children: [t11("deepAnalysis"), t11("summaryAnalysis")].map((con) => /* @__PURE__ */ jsxs(Button, { color: "primary", variant: "filled", onClick: () => referenceHandle(con), children: [
|
|
6208
7257
|
con,
|
|
6209
7258
|
" \u2192"
|
|
6210
7259
|
] }, con)) })
|
|
@@ -6217,16 +7266,18 @@ var ChatSender_default2 = forwardRef(
|
|
|
6217
7266
|
}
|
|
6218
7267
|
);
|
|
6219
7268
|
var ChatSenderHeader = () => {
|
|
7269
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6220
7270
|
return /* @__PURE__ */ jsxs("div", { className: styles_module_default2.logoArea, children: [
|
|
6221
7271
|
/* @__PURE__ */ jsxs("div", { className: styles_module_default2.logoContainer, children: [
|
|
6222
7272
|
/* @__PURE__ */ jsx("div", { className: styles_module_default2.staticHalo }),
|
|
6223
7273
|
/* @__PURE__ */ jsx("div", { className: styles_module_default2.logoHoverWrapper, children: /* @__PURE__ */ jsx(IconFont_default, { type: "icon-lolrai", className: styles_module_default2.logoImage }) })
|
|
6224
7274
|
] }),
|
|
6225
7275
|
/* @__PURE__ */ jsxs("h1", { className: styles_module_default2.greetingTitle, children: [
|
|
6226
|
-
"
|
|
7276
|
+
t11("greetingHello"),
|
|
7277
|
+
" ",
|
|
6227
7278
|
/* @__PURE__ */ jsx("span", { className: styles_module_default2.gradientText, children: "LoLR.AI" })
|
|
6228
7279
|
] }),
|
|
6229
|
-
/* @__PURE__ */ jsx("p", { className: styles_module_default2.greetingSubtitle, children: "
|
|
7280
|
+
/* @__PURE__ */ jsx("p", { className: styles_module_default2.greetingSubtitle, children: t11("greetingSubtitle") })
|
|
6230
7281
|
] });
|
|
6231
7282
|
};
|
|
6232
7283
|
var ChatSenderHeader_default = ChatSenderHeader;
|
|
@@ -6273,6 +7324,7 @@ var FormFileUpload = ({ value, onChange, multiple = false }) => {
|
|
|
6273
7324
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
6274
7325
|
const agentState = useSnapshot(chatStore.agent);
|
|
6275
7326
|
const configState = useSnapshot(chatStore.config);
|
|
7327
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6276
7328
|
const customRequest = async (options) => {
|
|
6277
7329
|
const { file, onSuccess, onError } = options;
|
|
6278
7330
|
try {
|
|
@@ -6293,7 +7345,7 @@ var FormFileUpload = ({ value, onChange, multiple = false }) => {
|
|
|
6293
7345
|
onChange?.([uploadedFile]);
|
|
6294
7346
|
}
|
|
6295
7347
|
} else {
|
|
6296
|
-
message.error(res.message || "
|
|
7348
|
+
message.error(res.message || t11("uploadFailed"));
|
|
6297
7349
|
onError(new Error(res.message));
|
|
6298
7350
|
}
|
|
6299
7351
|
} catch (error) {
|
|
@@ -6305,7 +7357,7 @@ var FormFileUpload = ({ value, onChange, multiple = false }) => {
|
|
|
6305
7357
|
onChange?.(newList.length > 0 ? newList : void 0);
|
|
6306
7358
|
};
|
|
6307
7359
|
return /* @__PURE__ */ jsxs(Flex, { vertical: true, gap: 12, style: { width: "100%" }, children: [
|
|
6308
|
-
!multiple && fileList.length >= 1 ? null : /* @__PURE__ */ jsx(Upload, { multiple, customRequest, showUploadList: false, children: /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(CloudUploadOutlined, {}), children: "
|
|
7360
|
+
!multiple && fileList.length >= 1 ? null : /* @__PURE__ */ jsx(Upload, { multiple, customRequest, showUploadList: false, children: /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(CloudUploadOutlined, {}), children: t11("uploadFromLocal") }) }),
|
|
6309
7361
|
fileList.length > 0 && /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 8, children: fileList.map((file) => /* @__PURE__ */ jsxs(
|
|
6310
7362
|
Flex,
|
|
6311
7363
|
{
|
|
@@ -6353,13 +7405,15 @@ var FormFileUpload = ({ value, onChange, multiple = false }) => {
|
|
|
6353
7405
|
};
|
|
6354
7406
|
var FormMonacoEditor = ({ value, onChange }) => {
|
|
6355
7407
|
const { token } = theme.useToken();
|
|
6356
|
-
|
|
7408
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
7409
|
+
return /* @__PURE__ */ jsx("div", { style: { backgroundColor: token.colorFillAlter, padding: 8, borderRadius: token.borderRadius }, children: /* @__PURE__ */ jsx(MonacoEditor_default, { language: "json", placeholder: t11("valuePlaceholder"), height: 80, value, onChange }) });
|
|
6357
7410
|
};
|
|
6358
7411
|
var UserInputPanel = () => {
|
|
6359
7412
|
const chatStore = useChatStore();
|
|
6360
7413
|
const agentState = useSnapshot(chatStore.agent);
|
|
6361
7414
|
const [form] = Form.useForm();
|
|
6362
7415
|
const [activeKey, setActiveKey] = useState(["1"]);
|
|
7416
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6363
7417
|
const inputs = useMemo(() => {
|
|
6364
7418
|
if (agentState.agentInfo.userInput?.length > 0) {
|
|
6365
7419
|
return agentState.agentInfo.userInput;
|
|
@@ -6368,7 +7422,7 @@ var UserInputPanel = () => {
|
|
|
6368
7422
|
useEffect(() => {
|
|
6369
7423
|
if (inputs.length > 0) {
|
|
6370
7424
|
const initialValues = inputs.reduce((acc, cur) => {
|
|
6371
|
-
|
|
7425
|
+
const value = cur.value;
|
|
6372
7426
|
acc[cur.name] = value;
|
|
6373
7427
|
return acc;
|
|
6374
7428
|
}, {});
|
|
@@ -6392,7 +7446,7 @@ var UserInputPanel = () => {
|
|
|
6392
7446
|
form.validateFields().then(() => {
|
|
6393
7447
|
setActiveKey([]);
|
|
6394
7448
|
}).catch(() => {
|
|
6395
|
-
message.error("
|
|
7449
|
+
message.error(t11("checkParams"));
|
|
6396
7450
|
});
|
|
6397
7451
|
};
|
|
6398
7452
|
const renderFormItem = (item) => {
|
|
@@ -6469,10 +7523,10 @@ var UserInputPanel = () => {
|
|
|
6469
7523
|
})
|
|
6470
7524
|
};
|
|
6471
7525
|
if (["STRING", "LONG"].includes(item.type)) {
|
|
6472
|
-
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(Input, { placeholder: "
|
|
7526
|
+
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(Input, { placeholder: t11("inputPlaceholder") }) });
|
|
6473
7527
|
}
|
|
6474
7528
|
if (["NUMBER"].includes(item.type)) {
|
|
6475
|
-
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(InputNumber, { style: { width: "100%" }, placeholder: "
|
|
7529
|
+
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(InputNumber, { style: { width: "100%" }, placeholder: t11("numberPlaceholder") }) });
|
|
6476
7530
|
}
|
|
6477
7531
|
if (item.type === "BOOLEAN") {
|
|
6478
7532
|
return /* @__PURE__ */ jsx(Form.Item, { style: itemStyle, name: item.name, valuePropName: "checked", children: /* @__PURE__ */ jsxs(Flex, { justify: "space-between", align: "center", children: [
|
|
@@ -6489,7 +7543,7 @@ var UserInputPanel = () => {
|
|
|
6489
7543
|
if (["OBJECT", "ARRAY", "ARRAY_STRING", "ARRAY_NUMBER", "ARRAY_DECIMAL", "ARRAY_BOOLEAN", "ARRAY_OBJECT"].includes(item.type)) {
|
|
6490
7544
|
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(FormMonacoEditor, {}) });
|
|
6491
7545
|
}
|
|
6492
|
-
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(Input, { placeholder: "
|
|
7546
|
+
return /* @__PURE__ */ jsx(Form.Item, { ...commonProps, children: /* @__PURE__ */ jsx(Input, { placeholder: t11("inputPlaceholder") }) });
|
|
6493
7547
|
};
|
|
6494
7548
|
const genExtra = () => {
|
|
6495
7549
|
if (activeKey.includes("1")) return null;
|
|
@@ -6502,18 +7556,18 @@ var UserInputPanel = () => {
|
|
|
6502
7556
|
e.stopPropagation();
|
|
6503
7557
|
setActiveKey(["1"]);
|
|
6504
7558
|
},
|
|
6505
|
-
children: "
|
|
7559
|
+
children: t11("edit")
|
|
6506
7560
|
}
|
|
6507
7561
|
);
|
|
6508
7562
|
};
|
|
6509
7563
|
const items = [
|
|
6510
7564
|
{
|
|
6511
7565
|
key: "1",
|
|
6512
|
-
label: "
|
|
7566
|
+
label: t11("paramSettings"),
|
|
6513
7567
|
extra: genExtra(),
|
|
6514
7568
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6515
|
-
/* @__PURE__ */ jsx(Form, { form, layout: "vertical", onValuesChange: handleValuesChange, style: { maxHeight: 500, overflow: "auto", paddingRight: 16 }, children: inputs.length > 0 ? /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 12, children: inputs.map((item) => /* @__PURE__ */ jsx(React10__default.Fragment, { children: renderFormItem(item) }, item.name)) }) : /* @__PURE__ */ jsx("div", { style: { padding: "10px", color: "#999", textAlign: "center" }, children: "
|
|
6516
|
-
/* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", className: "m-t-16", children: /* @__PURE__ */ jsx(Button, { type: "primary", onClick: handleStartChat, children: "
|
|
7569
|
+
/* @__PURE__ */ jsx(Form, { form, layout: "vertical", onValuesChange: handleValuesChange, style: { maxHeight: 500, overflow: "auto", paddingRight: 16 }, children: inputs.length > 0 ? /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 12, children: inputs.map((item) => /* @__PURE__ */ jsx(React10__default.Fragment, { children: renderFormItem(item) }, item.name)) }) : /* @__PURE__ */ jsx("div", { style: { padding: "10px", color: "#999", textAlign: "center" }, children: t11("noUserInputFields") }) }),
|
|
7570
|
+
/* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", className: "m-t-16", children: /* @__PURE__ */ jsx(Button, { type: "primary", onClick: handleStartChat, children: t11("startConversation") }) })
|
|
6517
7571
|
] })
|
|
6518
7572
|
}
|
|
6519
7573
|
];
|
|
@@ -6538,19 +7592,600 @@ var UserInputPanel = () => {
|
|
|
6538
7592
|
};
|
|
6539
7593
|
var UserInputPanel_default = UserInputPanel;
|
|
6540
7594
|
|
|
7595
|
+
// src/ui/layouts/components/execution-trace.module.less
|
|
7596
|
+
var execution_trace_module_default = {
|
|
7597
|
+
tracePanel: "execution_trace_module_tracePanel",
|
|
7598
|
+
tracePanelHeader: "execution_trace_module_tracePanelHeader",
|
|
7599
|
+
tracePanelTitle: "execution_trace_module_tracePanelTitle",
|
|
7600
|
+
tracePanelCount: "execution_trace_module_tracePanelCount",
|
|
7601
|
+
traceBody: "execution_trace_module_traceBody",
|
|
7602
|
+
traceMain: "execution_trace_module_traceMain",
|
|
7603
|
+
traceDetail: "execution_trace_module_traceDetail",
|
|
7604
|
+
traceDetailHeader: "execution_trace_module_traceDetailHeader",
|
|
7605
|
+
traceDetailTitle: "execution_trace_module_traceDetailTitle",
|
|
7606
|
+
traceDetailTime: "execution_trace_module_traceDetailTime",
|
|
7607
|
+
detailEmpty: "execution_trace_module_detailEmpty",
|
|
7608
|
+
executionSection: "execution_trace_module_executionSection",
|
|
7609
|
+
executionHeader: "execution_trace_module_executionHeader",
|
|
7610
|
+
executionHeaderMain: "execution_trace_module_executionHeaderMain",
|
|
7611
|
+
executionHeaderTitle: "execution_trace_module_executionHeaderTitle",
|
|
7612
|
+
executionStatus: "execution_trace_module_executionStatus",
|
|
7613
|
+
executionHeaderMeta: "execution_trace_module_executionHeaderMeta",
|
|
7614
|
+
executionMeta: "execution_trace_module_executionMeta",
|
|
7615
|
+
userMessage: "execution_trace_module_userMessage",
|
|
7616
|
+
userMessageHeader: "execution_trace_module_userMessageHeader",
|
|
7617
|
+
userMessageLabel: "execution_trace_module_userMessageLabel",
|
|
7618
|
+
userMessageContent: "execution_trace_module_userMessageContent",
|
|
7619
|
+
turnList: "execution_trace_module_turnList",
|
|
7620
|
+
turnSection: "execution_trace_module_turnSection",
|
|
7621
|
+
turnHeader: "execution_trace_module_turnHeader",
|
|
7622
|
+
turnHeaderDot: "execution_trace_module_turnHeaderDot",
|
|
7623
|
+
turnTitle: "execution_trace_module_turnTitle",
|
|
7624
|
+
turnMeta: "execution_trace_module_turnMeta",
|
|
7625
|
+
turnHeaderMuted: "execution_trace_module_turnHeaderMuted",
|
|
7626
|
+
turnHeaderDotMuted: "execution_trace_module_turnHeaderDotMuted",
|
|
7627
|
+
eventRow: "execution_trace_module_eventRow",
|
|
7628
|
+
eventRowSelected: "execution_trace_module_eventRowSelected",
|
|
7629
|
+
eventLane: "execution_trace_module_eventLane",
|
|
7630
|
+
lane_input: "execution_trace_module_lane_input",
|
|
7631
|
+
lane_model: "execution_trace_module_lane_model",
|
|
7632
|
+
lane_tools: "execution_trace_module_lane_tools",
|
|
7633
|
+
lane_system: "execution_trace_module_lane_system",
|
|
7634
|
+
eventIcon: "execution_trace_module_eventIcon",
|
|
7635
|
+
eventRole: "execution_trace_module_eventRole",
|
|
7636
|
+
eventType: "execution_trace_module_eventType",
|
|
7637
|
+
eventTypeError: "execution_trace_module_eventTypeError",
|
|
7638
|
+
eventPreview: "execution_trace_module_eventPreview",
|
|
7639
|
+
eventTime: "execution_trace_module_eventTime",
|
|
7640
|
+
detailBody: "execution_trace_module_detailBody",
|
|
7641
|
+
detailSectionTitle: "execution_trace_module_detailSectionTitle",
|
|
7642
|
+
detailMeta: "execution_trace_module_detailMeta",
|
|
7643
|
+
toolCard: "execution_trace_module_toolCard",
|
|
7644
|
+
toolCardName: "execution_trace_module_toolCardName",
|
|
7645
|
+
toolCardDesc: "execution_trace_module_toolCardDesc",
|
|
7646
|
+
msgCard: "execution_trace_module_msgCard",
|
|
7647
|
+
msgTag: "execution_trace_module_msgTag",
|
|
7648
|
+
msgContent: "execution_trace_module_msgContent",
|
|
7649
|
+
jsonBlock: "execution_trace_module_jsonBlock",
|
|
7650
|
+
empty: "execution_trace_module_empty"
|
|
7651
|
+
};
|
|
7652
|
+
var ROLE_COLOR = {
|
|
7653
|
+
USER: "green",
|
|
7654
|
+
ASSISTANT: "geekblue",
|
|
7655
|
+
TOOL: "purple",
|
|
7656
|
+
SYSTEM: "orange"
|
|
7657
|
+
};
|
|
7658
|
+
function roleLabel(role) {
|
|
7659
|
+
const keyMap = {
|
|
7660
|
+
USER: "roleUser",
|
|
7661
|
+
ASSISTANT: "roleAssistant",
|
|
7662
|
+
TOOL: "roleTool",
|
|
7663
|
+
SYSTEM: "roleSystem"
|
|
7664
|
+
};
|
|
7665
|
+
return t(`${NS_CHAT_COPILOT}:${keyMap[role]}`);
|
|
7666
|
+
}
|
|
7667
|
+
function normalizeRole(role) {
|
|
7668
|
+
const normalized = String(role || "").trim().toUpperCase();
|
|
7669
|
+
if (normalized === "USER" || normalized === "ASSISTANT" || normalized === "TOOL" || normalized === "SYSTEM") {
|
|
7670
|
+
return normalized;
|
|
7671
|
+
}
|
|
7672
|
+
return null;
|
|
7673
|
+
}
|
|
7674
|
+
function truncate(text, max = 80) {
|
|
7675
|
+
if (!text) return "";
|
|
7676
|
+
const t11 = text.replace(/\s+/g, " ").trim();
|
|
7677
|
+
return t11.length > max ? t11.slice(0, max) + "\u2026" : t11;
|
|
7678
|
+
}
|
|
7679
|
+
function messageText(m) {
|
|
7680
|
+
const c = m?.content;
|
|
7681
|
+
if (!c) return "";
|
|
7682
|
+
if (typeof c === "string") return c;
|
|
7683
|
+
if (Array.isArray(c)) return c.map((p) => typeof p === "string" ? p : p?.text || "").join(" ");
|
|
7684
|
+
return c?.text || "";
|
|
7685
|
+
}
|
|
7686
|
+
function formatDuration(ms) {
|
|
7687
|
+
if (ms == null) return "";
|
|
7688
|
+
if (ms < 1e3) return `${ms}ms`;
|
|
7689
|
+
return `${(ms / 1e3).toFixed(1)}s`;
|
|
7690
|
+
}
|
|
7691
|
+
function formatTokens(n) {
|
|
7692
|
+
return (n || 0).toLocaleString();
|
|
7693
|
+
}
|
|
7694
|
+
function eventIcon(eventType) {
|
|
7695
|
+
const props = { fontSize: 13, color: "var(--ant-color-text-tertiary, #8c8c8c)" };
|
|
7696
|
+
switch (eventType) {
|
|
7697
|
+
case "run_input":
|
|
7698
|
+
return /* @__PURE__ */ jsx(LoginOutlined, { ...props });
|
|
7699
|
+
case "run_started":
|
|
7700
|
+
return /* @__PURE__ */ jsx(PlayCircleOutlined, { ...props });
|
|
7701
|
+
case "run_finished":
|
|
7702
|
+
return /* @__PURE__ */ jsx(FlagOutlined, { ...props });
|
|
7703
|
+
case "run_failed":
|
|
7704
|
+
case "step_error":
|
|
7705
|
+
return /* @__PURE__ */ jsx(CloseCircleFilled, { style: { fontSize: 13, color: "var(--ant-color-error, #ff4d4f)" } });
|
|
7706
|
+
case "agent_resolved":
|
|
7707
|
+
return /* @__PURE__ */ jsx(SettingOutlined, { ...props });
|
|
7708
|
+
case "context_prepared":
|
|
7709
|
+
case "context_updated":
|
|
7710
|
+
return /* @__PURE__ */ jsx(FileTextOutlined, { ...props });
|
|
7711
|
+
case "context_usage":
|
|
7712
|
+
case "model_request":
|
|
7713
|
+
case "model_response":
|
|
7714
|
+
return /* @__PURE__ */ jsx(CloudSyncOutlined, { ...props });
|
|
7715
|
+
case "step_started":
|
|
7716
|
+
return /* @__PURE__ */ jsx(ForwardOutlined, { ...props });
|
|
7717
|
+
case "step_finished":
|
|
7718
|
+
return /* @__PURE__ */ jsx(CheckCircleFilled, { style: { fontSize: 13, color: "#52c41a" } });
|
|
7719
|
+
case "assistant_message":
|
|
7720
|
+
return /* @__PURE__ */ jsx(MessageOutlined, { ...props });
|
|
7721
|
+
default:
|
|
7722
|
+
return /* @__PURE__ */ jsx(ToolOutlined, { ...props });
|
|
7723
|
+
}
|
|
7724
|
+
}
|
|
7725
|
+
function sortEvents(events) {
|
|
7726
|
+
return [...events].sort((a, b) => {
|
|
7727
|
+
if (a.seq !== b.seq) return a.seq - b.seq;
|
|
7728
|
+
return (a.payloadJson?.timestampMs || 0) - (b.payloadJson?.timestampMs || 0);
|
|
7729
|
+
});
|
|
7730
|
+
}
|
|
7731
|
+
function groupByTurn(events) {
|
|
7732
|
+
const groups = [];
|
|
7733
|
+
let current = null;
|
|
7734
|
+
let seenStep = false;
|
|
7735
|
+
const pushStart = (evt) => {
|
|
7736
|
+
if (!groups.length || groups[groups.length - 1].kind !== "start") {
|
|
7737
|
+
groups.push({ turnIndex: -2, kind: "start", title: t(`${NS_CHAT_COPILOT}:executionStart`), events: [evt] });
|
|
7738
|
+
} else {
|
|
7739
|
+
groups[groups.length - 1].events.push(evt);
|
|
7740
|
+
}
|
|
7741
|
+
};
|
|
7742
|
+
const pushEnd = (evt) => {
|
|
7743
|
+
if (!groups.length || groups[groups.length - 1].kind !== "end") {
|
|
7744
|
+
groups.push({ turnIndex: -1, kind: "end", title: t(`${NS_CHAT_COPILOT}:executionEnd`), events: [evt] });
|
|
7745
|
+
} else {
|
|
7746
|
+
groups[groups.length - 1].events.push(evt);
|
|
7747
|
+
}
|
|
7748
|
+
};
|
|
7749
|
+
for (const evt of events) {
|
|
7750
|
+
if (evt.eventType === "step_started") {
|
|
7751
|
+
if (current) groups.push(current);
|
|
7752
|
+
const ev = evt.payloadJson?.event;
|
|
7753
|
+
current = {
|
|
7754
|
+
turnIndex: ev.turnIndex ?? groups.length,
|
|
7755
|
+
kind: "turn",
|
|
7756
|
+
title: ev.stepId || ev.title || t(`${NS_CHAT_COPILOT}:turnFallback`, { index: groups.length + 1 }),
|
|
7757
|
+
events: [evt]
|
|
7758
|
+
};
|
|
7759
|
+
seenStep = true;
|
|
7760
|
+
continue;
|
|
7761
|
+
}
|
|
7762
|
+
if (evt.eventType === "step_finished") {
|
|
7763
|
+
const ev = evt.payloadJson?.event;
|
|
7764
|
+
if (current) {
|
|
7765
|
+
current.events.push(evt);
|
|
7766
|
+
if (ev.durationMs != null) current.durationMs = ev.durationMs;
|
|
7767
|
+
groups.push(current);
|
|
7768
|
+
current = null;
|
|
7769
|
+
} else {
|
|
7770
|
+
groups.push({
|
|
7771
|
+
turnIndex: -1,
|
|
7772
|
+
kind: "end",
|
|
7773
|
+
title: ev.stepId || t(`${NS_CHAT_COPILOT}:unmatchedStep`),
|
|
7774
|
+
events: [evt],
|
|
7775
|
+
durationMs: ev.durationMs
|
|
7776
|
+
});
|
|
7777
|
+
}
|
|
7778
|
+
continue;
|
|
7779
|
+
}
|
|
7780
|
+
if (current) {
|
|
7781
|
+
current.events.push(evt);
|
|
7782
|
+
} else if (seenStep) {
|
|
7783
|
+
pushEnd(evt);
|
|
7784
|
+
} else {
|
|
7785
|
+
pushStart(evt);
|
|
7786
|
+
}
|
|
7787
|
+
}
|
|
7788
|
+
if (current) groups.push(current);
|
|
7789
|
+
return groups;
|
|
7790
|
+
}
|
|
7791
|
+
function eventSummary(evt) {
|
|
7792
|
+
const ev = evt.payloadJson?.event || {};
|
|
7793
|
+
switch (evt.eventType) {
|
|
7794
|
+
case "run_input":
|
|
7795
|
+
return { role: "USER", lane: "input", preview: truncate(ev.message || "") };
|
|
7796
|
+
case "run_started":
|
|
7797
|
+
return { role: "SYSTEM", lane: "system", preview: truncate(ev.agentName || "") };
|
|
7798
|
+
case "run_finished":
|
|
7799
|
+
return {
|
|
7800
|
+
role: "SYSTEM",
|
|
7801
|
+
lane: "system",
|
|
7802
|
+
preview: t(`${NS_CHAT_COPILOT}:totalDuration`, { value: formatDuration(ev.durationMs) })
|
|
7803
|
+
};
|
|
7804
|
+
case "run_failed":
|
|
7805
|
+
return { role: "SYSTEM", lane: "system", preview: truncate(ev.errorMessage || "") };
|
|
7806
|
+
case "agent_resolved":
|
|
7807
|
+
return { role: "SYSTEM", lane: "system", preview: `${ev.agent?.name || ""} \xB7 ${ev.agent?.spec?.model?.model || ""}` };
|
|
7808
|
+
case "context_prepared": {
|
|
7809
|
+
const tools = ev.tools?.length || 0;
|
|
7810
|
+
const msgs = ev.messages?.length || 0;
|
|
7811
|
+
return {
|
|
7812
|
+
role: "SYSTEM",
|
|
7813
|
+
lane: "system",
|
|
7814
|
+
preview: t(`${NS_CHAT_COPILOT}:contextSummary`, { messages: msgs, tools, model: ev.model?.model || "" })
|
|
7815
|
+
};
|
|
7816
|
+
}
|
|
7817
|
+
case "context_usage": {
|
|
7818
|
+
const u = ev.usage || {};
|
|
7819
|
+
return {
|
|
7820
|
+
role: "SYSTEM",
|
|
7821
|
+
lane: "system",
|
|
7822
|
+
preview: u.phase === "model_finished" ? t(`${NS_CHAT_COPILOT}:tokenUsage`, {
|
|
7823
|
+
input: formatTokens(u.inputActualTokens),
|
|
7824
|
+
output: formatTokens(u.outputActualTokens)
|
|
7825
|
+
}) : truncate(u.phase || u.model || "")
|
|
7826
|
+
};
|
|
7827
|
+
}
|
|
7828
|
+
case "step_started":
|
|
7829
|
+
return { role: "ASSISTANT", lane: "model", preview: truncate(ev.title || ev.stepId || "") };
|
|
7830
|
+
case "step_finished":
|
|
7831
|
+
return { role: "ASSISTANT", lane: "model", preview: t(`${NS_CHAT_COPILOT}:duration`, { value: formatDuration(ev.durationMs) }) };
|
|
7832
|
+
case "model_request":
|
|
7833
|
+
return {
|
|
7834
|
+
role: "ASSISTANT",
|
|
7835
|
+
lane: "model",
|
|
7836
|
+
preview: t(`${NS_CHAT_COPILOT}:${turnIndex(evt) >= 0 ? "modelRequestStarted" : "modelRequest"}`)
|
|
7837
|
+
};
|
|
7838
|
+
case "model_response": {
|
|
7839
|
+
const u = ev.usage || {};
|
|
7840
|
+
return {
|
|
7841
|
+
role: "ASSISTANT",
|
|
7842
|
+
lane: "model",
|
|
7843
|
+
preview: `${ev.finishReason || ""} ${u.totalTokens ? `\xB7 ${formatTokens(u.totalTokens)} tokens` : ""}`
|
|
7844
|
+
};
|
|
7845
|
+
}
|
|
7846
|
+
case "assistant_message": {
|
|
7847
|
+
const msg = ev.message || {};
|
|
7848
|
+
const thinking = msg.thinking ? truncate(msg.thinking, 40) : "";
|
|
7849
|
+
const text = msg.content?.find((c) => c.type === "text")?.text || "";
|
|
7850
|
+
return { role: "ASSISTANT", lane: "model", preview: thinking || truncate(text, 60) };
|
|
7851
|
+
}
|
|
7852
|
+
case "extension":
|
|
7853
|
+
return { role: "TOOL", lane: "tools", preview: truncate(ev.name || "") };
|
|
7854
|
+
case "tool_pending":
|
|
7855
|
+
return { role: "TOOL", lane: "tools", preview: truncate(ev.toolPending?.toolName || "") };
|
|
7856
|
+
case "tool_started":
|
|
7857
|
+
return { role: "TOOL", lane: "tools", preview: truncate(ev.toolCall?.title || ev.toolCall?.toolName || "") };
|
|
7858
|
+
case "tool_finished": {
|
|
7859
|
+
const tr = ev.toolResult || {};
|
|
7860
|
+
return { role: "TOOL", lane: "tools", preview: `${tr.toolName || ""} \xB7 ${formatDuration(tr.durationMs)} \xB7 ${tr.status || ""}` };
|
|
7861
|
+
}
|
|
7862
|
+
case "step_error":
|
|
7863
|
+
return { role: "SYSTEM", lane: "system", preview: truncate(ev.errorMessage || ev.title || "") };
|
|
7864
|
+
default:
|
|
7865
|
+
return { role: "SYSTEM", lane: "system", preview: truncate(ev.type || evt.eventType) };
|
|
7866
|
+
}
|
|
7867
|
+
}
|
|
7868
|
+
function turnIndex(evt) {
|
|
7869
|
+
return evt.payloadJson?.event?.turnIndex ?? -1;
|
|
7870
|
+
}
|
|
7871
|
+
function tsToTime(evt) {
|
|
7872
|
+
const ts = evt.payloadJson?.timestampMs;
|
|
7873
|
+
if (!ts) return "";
|
|
7874
|
+
const d = new Date(ts);
|
|
7875
|
+
return isNaN(d.getTime()) ? "" : d.toLocaleTimeString(void 0, { hour12: false });
|
|
7876
|
+
}
|
|
7877
|
+
function EventDetail({ evt }) {
|
|
7878
|
+
const ev = evt.payloadJson?.event || {};
|
|
7879
|
+
const content = (c) => /* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailBody, children: typeof c !== "string" ? /* @__PURE__ */ jsx("pre", { className: execution_trace_module_default.jsonBlock, children: JSON.stringify(c, null, 2) }) : /* @__PURE__ */ jsx(XMarkdown_default, { content: c }) });
|
|
7880
|
+
switch (evt.eventType) {
|
|
7881
|
+
case "context_prepared": {
|
|
7882
|
+
const msgs = ev.messages || [];
|
|
7883
|
+
const tools = ev.tools || [];
|
|
7884
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailBody, children: [
|
|
7885
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailMeta, children: t(`${NS_CHAT_COPILOT}:executionMetaModel`, {
|
|
7886
|
+
model: ev.model?.model || "-",
|
|
7887
|
+
contextWindow: formatTokens(ev.model?.contextWindowTokens)
|
|
7888
|
+
}) }),
|
|
7889
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:traceMessages`, { count: msgs.length }) }),
|
|
7890
|
+
msgs.map((m, i) => {
|
|
7891
|
+
const text = messageText(m);
|
|
7892
|
+
const normalizedRole = normalizeRole(m.role);
|
|
7893
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.msgCard, children: [
|
|
7894
|
+
/* @__PURE__ */ jsx(Tag, { className: execution_trace_module_default.msgTag, children: normalizedRole ? roleLabel(normalizedRole) : m.role }),
|
|
7895
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.msgContent, children: text || " " })
|
|
7896
|
+
] }, i);
|
|
7897
|
+
}),
|
|
7898
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:traceTools`, { count: tools.length }) }),
|
|
7899
|
+
tools.map((t11, i) => /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.toolCard, children: [
|
|
7900
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.toolCardName, children: [
|
|
7901
|
+
t11.icon,
|
|
7902
|
+
" ",
|
|
7903
|
+
t11.name || t11.description?.slice?.(0, 20)
|
|
7904
|
+
] }),
|
|
7905
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.toolCardDesc, children: truncate(t11.description || "", 160) })
|
|
7906
|
+
] }, i))
|
|
7907
|
+
] });
|
|
7908
|
+
}
|
|
7909
|
+
case "assistant_message": {
|
|
7910
|
+
const msg = ev.message || {};
|
|
7911
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailBody, children: [
|
|
7912
|
+
msg.thinking && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7913
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:thoughtChain`) }),
|
|
7914
|
+
/* @__PURE__ */ jsx(XMarkdown_default, { content: msg.thinking })
|
|
7915
|
+
] }),
|
|
7916
|
+
msg.content?.map((c, i) => {
|
|
7917
|
+
if (c.type === "text")
|
|
7918
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
7919
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:mainContent`) }),
|
|
7920
|
+
/* @__PURE__ */ jsx(XMarkdown_default, { content: c.text })
|
|
7921
|
+
] }, i);
|
|
7922
|
+
if (c.type === "tool_call")
|
|
7923
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
7924
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:toolCall`) }),
|
|
7925
|
+
content(c)
|
|
7926
|
+
] }, i);
|
|
7927
|
+
return null;
|
|
7928
|
+
})
|
|
7929
|
+
] });
|
|
7930
|
+
}
|
|
7931
|
+
case "tool_finished": {
|
|
7932
|
+
const tr = ev.toolResult || {};
|
|
7933
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailBody, children: [
|
|
7934
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailMeta, children: [
|
|
7935
|
+
tr.toolName || "",
|
|
7936
|
+
" \xB7 ",
|
|
7937
|
+
tr.status || "",
|
|
7938
|
+
" \xB7 ",
|
|
7939
|
+
formatDuration(tr.durationMs)
|
|
7940
|
+
] }),
|
|
7941
|
+
tr.result != null && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7942
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:result`) }),
|
|
7943
|
+
typeof tr.result === "string" ? /* @__PURE__ */ jsx(XMarkdown_default, { content: tr.result }) : content(tr.result)
|
|
7944
|
+
] }),
|
|
7945
|
+
tr.metadata && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7946
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:metadata`) }),
|
|
7947
|
+
content(tr.metadata)
|
|
7948
|
+
] })
|
|
7949
|
+
] });
|
|
7950
|
+
}
|
|
7951
|
+
case "tool_started": {
|
|
7952
|
+
const tc = ev.toolCall || {};
|
|
7953
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailBody, children: [
|
|
7954
|
+
tc.title && /* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: tc.title }),
|
|
7955
|
+
tc.arguments != null && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7956
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:params`) }),
|
|
7957
|
+
content(tc.arguments)
|
|
7958
|
+
] })
|
|
7959
|
+
] });
|
|
7960
|
+
}
|
|
7961
|
+
case "run_input":
|
|
7962
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailBody, children: [
|
|
7963
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:userInput`) }),
|
|
7964
|
+
/* @__PURE__ */ jsx(XMarkdown_default, { content: ev.message || "" })
|
|
7965
|
+
] });
|
|
7966
|
+
case "step_finished": {
|
|
7967
|
+
const out = ev.output;
|
|
7968
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailBody, children: [
|
|
7969
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.detailMeta, children: [
|
|
7970
|
+
ev.title || "",
|
|
7971
|
+
" \xB7 ",
|
|
7972
|
+
t(`${NS_CHAT_COPILOT}:duration`, { value: formatDuration(ev.durationMs) })
|
|
7973
|
+
] }),
|
|
7974
|
+
out != null && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7975
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailSectionTitle, children: t(`${NS_CHAT_COPILOT}:output`) }),
|
|
7976
|
+
typeof out === "string" ? /* @__PURE__ */ jsx(XMarkdown_default, { content: out }) : content(out)
|
|
7977
|
+
] })
|
|
7978
|
+
] });
|
|
7979
|
+
}
|
|
7980
|
+
default:
|
|
7981
|
+
return /* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailBody, children: content(evt.payloadJson) });
|
|
7982
|
+
}
|
|
7983
|
+
}
|
|
7984
|
+
function EventRow({ evt, selected, onSelect }) {
|
|
7985
|
+
const { role, lane, preview } = eventSummary(evt);
|
|
7986
|
+
const isError = evt.eventType === "run_failed" || evt.eventType === "step_error";
|
|
7987
|
+
const time = tsToTime(evt);
|
|
7988
|
+
return /* @__PURE__ */ jsxs("div", { className: classNames10(execution_trace_module_default.eventRow, { [execution_trace_module_default.eventRowSelected]: selected }), onClick: () => onSelect(evt), children: [
|
|
7989
|
+
/* @__PURE__ */ jsx("span", { className: classNames10(execution_trace_module_default.eventLane, execution_trace_module_default[`lane_${lane}`]) }),
|
|
7990
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.eventIcon, children: eventIcon(evt.eventType) }),
|
|
7991
|
+
/* @__PURE__ */ jsx(Tag, { className: execution_trace_module_default.eventRole, color: ROLE_COLOR[role], children: roleLabel(role) }),
|
|
7992
|
+
/* @__PURE__ */ jsx("span", { className: classNames10(execution_trace_module_default.eventType, { [execution_trace_module_default.eventTypeError]: isError }), children: evt.eventType }),
|
|
7993
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.eventPreview, title: preview, children: preview || " " }),
|
|
7994
|
+
time && /* @__PURE__ */ jsx("span", { className: execution_trace_module_default.eventTime, children: time })
|
|
7995
|
+
] });
|
|
7996
|
+
}
|
|
7997
|
+
function ExecutionSection({
|
|
7998
|
+
execution,
|
|
7999
|
+
selected,
|
|
8000
|
+
onSelect
|
|
8001
|
+
}) {
|
|
8002
|
+
const events = useMemo(() => sortEvents(execution.events || []), [execution.events]);
|
|
8003
|
+
const turns = useMemo(() => groupByTurn(events.filter((e) => e.eventType !== "run_input")), [events]);
|
|
8004
|
+
const userInput = events.find((e) => e.eventType === "run_input");
|
|
8005
|
+
const summary = useMemo(() => {
|
|
8006
|
+
const runFinished = events.find((e) => e.eventType === "run_finished");
|
|
8007
|
+
const metas = runFinished?.payloadJson?.event?.responseMeta || [];
|
|
8008
|
+
const totalInput = metas.reduce((s, m) => s + (m.usage?.promptTokens || 0), 0);
|
|
8009
|
+
const totalOutput = metas.reduce((s, m) => s + (m.usage?.completionTokens || 0), 0);
|
|
8010
|
+
const dur = runFinished?.payloadJson?.event?.durationMs;
|
|
8011
|
+
const toolCount = events.filter((e) => e.eventType === "tool_finished").length;
|
|
8012
|
+
const turnCount = turns.filter((t11) => t11.turnIndex >= 0).length;
|
|
8013
|
+
return { dur, totalInput, totalOutput, turnCount, toolCount, eventCount: events.length };
|
|
8014
|
+
}, [events, turns]);
|
|
8015
|
+
const statusColor = execution.status === "finished" ? "success" : execution.status === "error" || execution.status === "failed" ? "error" : "processing";
|
|
8016
|
+
const statusText = execution.status === "finished" ? t(`${NS_CHAT_COPILOT}:executionFinished`) : execution.status === "error" || execution.status === "failed" ? t(`${NS_CHAT_COPILOT}:execItemFailed`) : t(`${NS_CHAT_COPILOT}:executionRunning`);
|
|
8017
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.executionSection, children: [
|
|
8018
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.executionHeader, children: [
|
|
8019
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.executionHeaderMain, children: [
|
|
8020
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionHeaderTitle, children: t(`${NS_CHAT_COPILOT}:executionLabel`, { id: execution.id?.slice(-8) || "-" }) }),
|
|
8021
|
+
/* @__PURE__ */ jsx(Tag, { color: statusColor, className: execution_trace_module_default.executionStatus, children: statusText })
|
|
8022
|
+
] }),
|
|
8023
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.executionHeaderMeta, children: [
|
|
8024
|
+
execution.startedAt && /* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: execution.startedAt }),
|
|
8025
|
+
summary.dur != null && /* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: t(`${NS_CHAT_COPILOT}:duration`, { value: formatDuration(summary.dur) }) }),
|
|
8026
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: t(`${NS_CHAT_COPILOT}:inputCount`, { count: formatTokens(summary.totalInput) }) }),
|
|
8027
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: t(`${NS_CHAT_COPILOT}:outputCount`, { count: formatTokens(summary.totalOutput) }) }),
|
|
8028
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: t(`${NS_CHAT_COPILOT}:turnsCount`, { count: summary.turnCount }) }),
|
|
8029
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: t(`${NS_CHAT_COPILOT}:toolsCount`, { count: summary.toolCount }) }),
|
|
8030
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.executionMeta, children: t(`${NS_CHAT_COPILOT}:eventsCount`, { count: summary.eventCount }) })
|
|
8031
|
+
] })
|
|
8032
|
+
] }),
|
|
8033
|
+
userInput && /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.userMessage, children: [
|
|
8034
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.userMessageHeader, children: [
|
|
8035
|
+
/* @__PURE__ */ jsx(Tag, { color: ROLE_COLOR.USER, children: roleLabel("USER") }),
|
|
8036
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.userMessageLabel, children: t(`${NS_CHAT_COPILOT}:userMessage`) })
|
|
8037
|
+
] }),
|
|
8038
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.userMessageContent, children: /* @__PURE__ */ jsx(XMarkdown_default, { content: userInput.payloadJson?.event?.message || "" }) })
|
|
8039
|
+
] }),
|
|
8040
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.turnList, children: turns.map((group, gi) => /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.turnSection, children: [
|
|
8041
|
+
/* @__PURE__ */ jsxs("div", { className: classNames10(execution_trace_module_default.turnHeader, group.kind !== "turn" && execution_trace_module_default.turnHeaderMuted), children: [
|
|
8042
|
+
/* @__PURE__ */ jsx("span", { className: classNames10(execution_trace_module_default.turnHeaderDot, group.kind !== "turn" && execution_trace_module_default.turnHeaderDotMuted) }),
|
|
8043
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.turnTitle, children: group.kind === "turn" ? t(`${NS_CHAT_COPILOT}:turnLabel`, { index: group.turnIndex + 1, title: group.title }) : group.title }),
|
|
8044
|
+
/* @__PURE__ */ jsxs("span", { className: execution_trace_module_default.turnMeta, children: [
|
|
8045
|
+
group.durationMs != null ? formatDuration(group.durationMs) : "",
|
|
8046
|
+
t(`${NS_CHAT_COPILOT}:eventsCount`, { count: group.events.length })
|
|
8047
|
+
] })
|
|
8048
|
+
] }),
|
|
8049
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.turnEvents, children: group.events.map((evt, ei) => /* @__PURE__ */ jsx(EventRow, { evt, selected: selected?.id === evt.id, onSelect }, evt.id || `${group.turnIndex}-${ei}`)) })
|
|
8050
|
+
] }, `turn-${group.turnIndex}-${gi}`)) })
|
|
8051
|
+
] });
|
|
8052
|
+
}
|
|
8053
|
+
function sortExecutions(executions) {
|
|
8054
|
+
return [...executions].sort((a, b) => {
|
|
8055
|
+
const ta = new Date(a.startedAt || 0).getTime();
|
|
8056
|
+
const tb = new Date(b.startedAt || 0).getTime();
|
|
8057
|
+
if (!isNaN(ta) && !isNaN(tb) && ta !== tb) return ta - tb;
|
|
8058
|
+
return 0;
|
|
8059
|
+
});
|
|
8060
|
+
}
|
|
8061
|
+
function normalizeExecutions(data) {
|
|
8062
|
+
if (!data) return [];
|
|
8063
|
+
if (Array.isArray(data.items)) return data.items || [];
|
|
8064
|
+
if (Array.isArray(data)) return data;
|
|
8065
|
+
if (Array.isArray(data.events)) return [data];
|
|
8066
|
+
return [];
|
|
8067
|
+
}
|
|
8068
|
+
var ExecutionTracePanel = memo(() => {
|
|
8069
|
+
const chatStore = useChatStore();
|
|
8070
|
+
const conversationState = useSnapshot(chatStore.conversation);
|
|
8071
|
+
const [loading, setLoading] = useState(false);
|
|
8072
|
+
const [executions, setExecutions] = useState(null);
|
|
8073
|
+
const [selected, setSelected] = useState(null);
|
|
8074
|
+
const conversationId = conversationState.active.id;
|
|
8075
|
+
const loadTrace = useCallback(async () => {
|
|
8076
|
+
if (!conversationId) return;
|
|
8077
|
+
setLoading(true);
|
|
8078
|
+
try {
|
|
8079
|
+
const { data } = await chatStore.fetchExecutionDebug(conversationId);
|
|
8080
|
+
const list2 = sortExecutions(normalizeExecutions(data));
|
|
8081
|
+
setExecutions(list2);
|
|
8082
|
+
setSelected(null);
|
|
8083
|
+
} catch {
|
|
8084
|
+
setExecutions([]);
|
|
8085
|
+
} finally {
|
|
8086
|
+
setLoading(false);
|
|
8087
|
+
}
|
|
8088
|
+
}, [conversationId, chatStore]);
|
|
8089
|
+
useEffect(() => {
|
|
8090
|
+
loadTrace();
|
|
8091
|
+
}, [loadTrace]);
|
|
8092
|
+
const onSelect = useCallback((e) => setSelected(e), []);
|
|
8093
|
+
if (loading) {
|
|
8094
|
+
return /* @__PURE__ */ jsx(Flex, { justify: "center", align: "center", style: { height: "100%" }, children: /* @__PURE__ */ jsx(Spin, { size: "small" }) });
|
|
8095
|
+
}
|
|
8096
|
+
const list = executions || [];
|
|
8097
|
+
if (!list.length) {
|
|
8098
|
+
return /* @__PURE__ */ jsx("div", { className: execution_trace_module_default.empty, children: t(`${NS_CHAT_COPILOT}:executionTraceEmpty`) });
|
|
8099
|
+
}
|
|
8100
|
+
return /* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.tracePanel, children: [
|
|
8101
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.tracePanelHeader, children: [
|
|
8102
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.tracePanelTitle, children: t(`${NS_CHAT_COPILOT}:traceTab`) }),
|
|
8103
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.tracePanelCount, children: t(`${NS_CHAT_COPILOT}:executionCountSorted`, { count: list.length }) })
|
|
8104
|
+
] }),
|
|
8105
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.traceBody, children: [
|
|
8106
|
+
/* @__PURE__ */ jsx("div", { className: execution_trace_module_default.traceMain, children: list.map((exec, i) => /* @__PURE__ */ jsx(ExecutionSection, { execution: exec, selected, onSelect }, exec.id || i)) }),
|
|
8107
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.traceDetail, children: [
|
|
8108
|
+
/* @__PURE__ */ jsxs("div", { className: execution_trace_module_default.traceDetailHeader, children: [
|
|
8109
|
+
/* @__PURE__ */ jsx("span", { className: execution_trace_module_default.traceDetailTitle, children: selected ? selected.eventType : t(`${NS_CHAT_COPILOT}:eventDetail`) }),
|
|
8110
|
+
selected && /* @__PURE__ */ jsx("span", { className: execution_trace_module_default.traceDetailTime, children: tsToTime(selected) })
|
|
8111
|
+
] }),
|
|
8112
|
+
selected ? /* @__PURE__ */ jsx(EventDetail, { evt: selected }) : /* @__PURE__ */ jsx("div", { className: execution_trace_module_default.detailEmpty, children: /* @__PURE__ */ jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: t(`${NS_CHAT_COPILOT}:traceSelectHint`) }) })
|
|
8113
|
+
] })
|
|
8114
|
+
] })
|
|
8115
|
+
] });
|
|
8116
|
+
});
|
|
8117
|
+
var ExecutionTracePanel_default = ExecutionTracePanel;
|
|
8118
|
+
|
|
6541
8119
|
// src/ui/layouts/components/styles.module.less
|
|
6542
8120
|
var styles_module_default5 = {
|
|
6543
8121
|
bodyWidth: "styles_module_bodyWidth",
|
|
8122
|
+
execModeBar: "styles_module_execModeBar",
|
|
8123
|
+
mainTabs: "styles_module_mainTabs",
|
|
6544
8124
|
inputContainer: "styles_module_inputContainer",
|
|
6545
8125
|
disclaimerNotice: "styles_module_disclaimerNotice",
|
|
6546
8126
|
previewHeader: "styles_module_previewHeader",
|
|
6547
8127
|
previewHeaderTitle: "styles_module_previewHeaderTitle",
|
|
6548
|
-
actionIcon: "styles_module_actionIcon"
|
|
8128
|
+
actionIcon: "styles_module_actionIcon",
|
|
8129
|
+
subAgentHeader: "styles_module_subAgentHeader",
|
|
8130
|
+
subAgentTitle: "styles_module_subAgentTitle",
|
|
8131
|
+
subAgentMessages: "styles_module_subAgentMessages"
|
|
6549
8132
|
};
|
|
8133
|
+
var ExecModeSwitch = memo(() => {
|
|
8134
|
+
const chatStore = useChatStore();
|
|
8135
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
8136
|
+
const configState = useSnapshot(chatStore.config);
|
|
8137
|
+
const conversationState = useSnapshot(chatStore.conversation);
|
|
8138
|
+
const activeId = conversationState.active.id;
|
|
8139
|
+
const messages = conversationState.messages[activeId]?.message;
|
|
8140
|
+
const hasAgentExec = useMemo(() => (messages || []).some((m) => m.role === 2 && hasExecChain(m.content || [])), [messages]);
|
|
8141
|
+
const handleExecModeChange = useCallback(
|
|
8142
|
+
(v) => {
|
|
8143
|
+
chatStore.setExecMode(v);
|
|
8144
|
+
},
|
|
8145
|
+
[chatStore]
|
|
8146
|
+
);
|
|
8147
|
+
if (!hasAgentExec) return null;
|
|
8148
|
+
return /* @__PURE__ */ jsx("div", { className: styles_module_default5.execModeBar, children: /* @__PURE__ */ jsx(
|
|
8149
|
+
Segmented,
|
|
8150
|
+
{
|
|
8151
|
+
size: "small",
|
|
8152
|
+
value: configState.agentExecMode,
|
|
8153
|
+
onChange: handleExecModeChange,
|
|
8154
|
+
options: [
|
|
8155
|
+
{ label: t11("aggregate"), value: "aggregate" },
|
|
8156
|
+
{ label: t11("sequence"), value: "sequence" }
|
|
8157
|
+
]
|
|
8158
|
+
}
|
|
8159
|
+
) });
|
|
8160
|
+
});
|
|
8161
|
+
var ChatContent = memo(({ senderRef }) => {
|
|
8162
|
+
const chatStore = useChatStore();
|
|
8163
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
8164
|
+
const configState = useSnapshot(chatStore.config);
|
|
8165
|
+
const agentState = useSnapshot(chatStore.agent);
|
|
8166
|
+
return /* @__PURE__ */ jsxs(Flex, { align: "center", vertical: true, gap: 24, className: classNames10(styles_module_default5.bodyWidth, "height-full"), children: [
|
|
8167
|
+
shouldRender(agentState.agentInfo.userInput && agentState.agentInfo.userInput.length > 0) && /* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.userInput, DefaultComponent: UserInputPanel_default }),
|
|
8168
|
+
/* @__PURE__ */ jsx(ExecModeSwitch, {}),
|
|
8169
|
+
shouldRender(configState.layout.messageList) && /* @__PURE__ */ jsx("div", { className: "full-scroll", style: { width: "100%" }, children: /* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.messageList, DefaultComponent: BubbleListItems_default }) }),
|
|
8170
|
+
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.senderHeader, DefaultComponent: /* @__PURE__ */ jsx(ChatSenderHeader_default, {}) }),
|
|
8171
|
+
/* @__PURE__ */ jsxs(Flex, { className: styles_module_default5.inputContainer, vertical: true, gap: 8, children: [
|
|
8172
|
+
/* @__PURE__ */ jsx(RenderWrapper, { ref: senderRef, control: configState.layout.sender, DefaultComponent: ChatSender_default2 }),
|
|
8173
|
+
/* @__PURE__ */ jsx(
|
|
8174
|
+
RenderWrapper,
|
|
8175
|
+
{
|
|
8176
|
+
control: configState.layout.disclaimerNotice,
|
|
8177
|
+
DefaultComponent: /* @__PURE__ */ jsx("div", { className: styles_module_default5.disclaimerNotice, children: t11("disclaimer") })
|
|
8178
|
+
}
|
|
8179
|
+
),
|
|
8180
|
+
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.senderFooter })
|
|
8181
|
+
] })
|
|
8182
|
+
] });
|
|
8183
|
+
});
|
|
6550
8184
|
var ChatMainPanel = memo(
|
|
6551
|
-
forwardRef((
|
|
8185
|
+
forwardRef(({ debugMode = false }, ref) => {
|
|
6552
8186
|
const chatStore = useChatStore();
|
|
6553
8187
|
const senderRef = useRef(null);
|
|
8188
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6554
8189
|
useImperativeHandle(
|
|
6555
8190
|
ref,
|
|
6556
8191
|
() => ({
|
|
@@ -6561,25 +8196,19 @@ var ChatMainPanel = memo(
|
|
|
6561
8196
|
[]
|
|
6562
8197
|
);
|
|
6563
8198
|
const configState = useSnapshot(chatStore.config);
|
|
6564
|
-
|
|
6565
|
-
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className: classNames2("height-full"), children: [
|
|
8199
|
+
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className: classNames10("height-full"), children: [
|
|
6566
8200
|
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.chatHeader, DefaultComponent: ChatHeader_default }),
|
|
6567
|
-
/* @__PURE__ */
|
|
6568
|
-
|
|
6569
|
-
|
|
6570
|
-
|
|
6571
|
-
|
|
6572
|
-
|
|
6573
|
-
|
|
6574
|
-
|
|
6575
|
-
|
|
6576
|
-
|
|
6577
|
-
|
|
6578
|
-
}
|
|
6579
|
-
),
|
|
6580
|
-
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.senderFooter })
|
|
6581
|
-
] })
|
|
6582
|
-
] })
|
|
8201
|
+
debugMode ? /* @__PURE__ */ jsx(
|
|
8202
|
+
Tabs,
|
|
8203
|
+
{
|
|
8204
|
+
className: classNames10(styles_module_default5.mainTabs),
|
|
8205
|
+
defaultActiveKey: "chat",
|
|
8206
|
+
items: [
|
|
8207
|
+
{ key: "chat", label: t11("chatTab"), children: /* @__PURE__ */ jsx(ChatContent, { senderRef }) },
|
|
8208
|
+
{ key: "trace", label: t11("traceTab"), children: /* @__PURE__ */ jsx(ExecutionTracePanel_default, {}) }
|
|
8209
|
+
]
|
|
8210
|
+
}
|
|
8211
|
+
) : /* @__PURE__ */ jsx(ChatContent, { senderRef })
|
|
6583
8212
|
] });
|
|
6584
8213
|
})
|
|
6585
8214
|
);
|
|
@@ -6599,7 +8228,7 @@ var ChatPreviewPanel = memo(({ file }) => {
|
|
|
6599
8228
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6600
8229
|
file.fileUrl && /* @__PURE__ */ jsxs(Flex, { vertical: true, className: "height-full", children: [
|
|
6601
8230
|
/* @__PURE__ */ jsxs("div", { className: styles_module_default5.previewHeader, children: [
|
|
6602
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
8231
|
+
/* @__PURE__ */ jsx("div", { className: classNames10(styles_module_default5.previewHeaderTitle, "text-ellipsis"), title: file.fileName, children: file.fileName }),
|
|
6603
8232
|
/* @__PURE__ */ jsxs(Flex, { gap: 8, justify: "center", align: "center", children: [
|
|
6604
8233
|
/* @__PURE__ */ jsx(
|
|
6605
8234
|
Button,
|
|
@@ -6637,14 +8266,101 @@ var ChatPreviewPanel = memo(({ file }) => {
|
|
|
6637
8266
|
] });
|
|
6638
8267
|
});
|
|
6639
8268
|
var ChatPreviewPanel_default = ChatPreviewPanel;
|
|
8269
|
+
var { Text: Text9 } = Typography;
|
|
8270
|
+
function roleForMessage(role) {
|
|
8271
|
+
if (role === 1) {
|
|
8272
|
+
return { user: "user", role: 1, placement: "end" };
|
|
8273
|
+
}
|
|
8274
|
+
return { user: "agent", role: 2, placement: "start" };
|
|
8275
|
+
}
|
|
8276
|
+
var ChatSubAgentPanel = memo(() => {
|
|
8277
|
+
const chatStore = useChatStore();
|
|
8278
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
8279
|
+
const subAgentState = useSnapshot(chatStore.subAgentPanel);
|
|
8280
|
+
const subAgentMessagesState = useSnapshot(chatStore.subAgentMessages);
|
|
8281
|
+
const active = subAgentState.active;
|
|
8282
|
+
const subConvId = active?.subConversationId;
|
|
8283
|
+
const messages = subConvId ? subAgentMessagesState.messages[subConvId] : void 0;
|
|
8284
|
+
const loading = subConvId ? subAgentMessagesState.loading[subConvId] : false;
|
|
8285
|
+
const listRef = useRef(null);
|
|
8286
|
+
const autoScrollRef = useRef(true);
|
|
8287
|
+
const forceScrollRef = useRef(true);
|
|
8288
|
+
const handleScroll = (el) => {
|
|
8289
|
+
const target = el.target;
|
|
8290
|
+
const distanceToBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
|
|
8291
|
+
autoScrollRef.current = distanceToBottom < 90;
|
|
8292
|
+
};
|
|
8293
|
+
useEffect(() => {
|
|
8294
|
+
forceScrollRef.current = true;
|
|
8295
|
+
autoScrollRef.current = true;
|
|
8296
|
+
}, [subConvId]);
|
|
8297
|
+
useEffect(() => {
|
|
8298
|
+
if (!messages?.length) return;
|
|
8299
|
+
const latest = messages[messages.length - 1];
|
|
8300
|
+
if (latest.generating) {
|
|
8301
|
+
autoScrollRef.current = true;
|
|
8302
|
+
}
|
|
8303
|
+
if (!forceScrollRef.current && !autoScrollRef.current) return;
|
|
8304
|
+
setTimeout(() => {
|
|
8305
|
+
if (forceScrollRef.current || autoScrollRef.current) {
|
|
8306
|
+
listRef.current?.scrollTo({ top: "bottom", behavior: "instant" });
|
|
8307
|
+
}
|
|
8308
|
+
forceScrollRef.current = false;
|
|
8309
|
+
}, 300);
|
|
8310
|
+
}, [messages]);
|
|
8311
|
+
const items = useMemo(() => {
|
|
8312
|
+
if (!messages?.length) return [];
|
|
8313
|
+
return messages.map((msg, index) => {
|
|
8314
|
+
const rc = roleForMessage(msg.role);
|
|
8315
|
+
return {
|
|
8316
|
+
key: `${msg.messageId || index}-${index}`,
|
|
8317
|
+
role: String(rc.role),
|
|
8318
|
+
placement: rc.placement,
|
|
8319
|
+
variant: "borderless",
|
|
8320
|
+
content: /* @__PURE__ */ jsx(MessageRender_default, { role: rc, message: msg, loading: !!msg.generating })
|
|
8321
|
+
};
|
|
8322
|
+
});
|
|
8323
|
+
}, [messages]);
|
|
8324
|
+
if (!active) return null;
|
|
8325
|
+
const subAgentName = active.agentName || active.toolName || t11("subAgentExecutionDetail");
|
|
8326
|
+
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className: "height-full", children: [
|
|
8327
|
+
/* @__PURE__ */ jsxs(Flex, { align: "center", justify: "space-between", gap: 8, className: styles_module_default5.subAgentHeader, children: [
|
|
8328
|
+
/* @__PURE__ */ jsx(Text9, { strong: true, className: styles_module_default5.subAgentTitle, title: subAgentName, children: subAgentName }),
|
|
8329
|
+
/* @__PURE__ */ jsx(
|
|
8330
|
+
Button,
|
|
8331
|
+
{
|
|
8332
|
+
type: "text",
|
|
8333
|
+
size: "small",
|
|
8334
|
+
icon: /* @__PURE__ */ jsx(CloseOutlined, {}),
|
|
8335
|
+
onClick: chatStore.closeSubAgent,
|
|
8336
|
+
"aria-label": t11("closeSubAgentDetail")
|
|
8337
|
+
}
|
|
8338
|
+
)
|
|
8339
|
+
] }),
|
|
8340
|
+
/* @__PURE__ */ jsx("div", { className: classNames10("full-scroll", styles_module_default5.subAgentMessages), children: loading ? /* @__PURE__ */ jsx(Flex, { justify: "center", align: "center", style: { height: 120 }, children: /* @__PURE__ */ jsx(Spin, { size: "small" }) }) : /* @__PURE__ */ jsx(Bubble.List, { ref: listRef, autoScroll: false, items, onScroll: handleScroll, className: "height-full" }) })
|
|
8341
|
+
] });
|
|
8342
|
+
});
|
|
8343
|
+
var ChatSubAgentPanel_default = ChatSubAgentPanel;
|
|
6640
8344
|
|
|
6641
8345
|
// src/ui/layouts/index.module.less
|
|
6642
8346
|
var index_module_default3 = {
|
|
6643
8347
|
chatLayout: "index_module_chatLayout",
|
|
6644
8348
|
animatedSplitter: "index_module_animatedSplitter",
|
|
6645
|
-
hideSplitterBar: "index_module_hideSplitterBar"
|
|
8349
|
+
hideSplitterBar: "index_module_hideSplitterBar",
|
|
8350
|
+
rightTabs: "index_module_rightTabs"
|
|
6646
8351
|
};
|
|
6647
|
-
|
|
8352
|
+
function readModeDebug(target) {
|
|
8353
|
+
try {
|
|
8354
|
+
return new URLSearchParams(target.location.search).get("mode") === "debug";
|
|
8355
|
+
} catch {
|
|
8356
|
+
return false;
|
|
8357
|
+
}
|
|
8358
|
+
}
|
|
8359
|
+
function resolveDebugMode() {
|
|
8360
|
+
return readModeDebug(window) || window.top !== window && readModeDebug(window.top);
|
|
8361
|
+
}
|
|
8362
|
+
var layouts_default = forwardRef(({ theme: theme4, params, hooks, layout, config, services }, _ref) => {
|
|
8363
|
+
const { t: t11 } = useTranslation(NS_CHAT_COPILOT);
|
|
6648
8364
|
const chatStore = useMemo(() => createChatStore(), []);
|
|
6649
8365
|
const senderRef = useRef(null);
|
|
6650
8366
|
useImperativeHandle(
|
|
@@ -6668,6 +8384,8 @@ var layouts_default = forwardRef(({ theme: theme5, params, hooks, layout, config
|
|
|
6668
8384
|
);
|
|
6669
8385
|
const configState = useSnapshot(chatStore.config);
|
|
6670
8386
|
const agentState = useSnapshot(chatStore.agent);
|
|
8387
|
+
const subAgentState = useSnapshot(chatStore.subAgentPanel);
|
|
8388
|
+
const focusState = useSnapshot(chatStore.focusTarget);
|
|
6671
8389
|
const containerRef = useRef(null);
|
|
6672
8390
|
useEffect(() => {
|
|
6673
8391
|
chatStore.setHooks(hooks);
|
|
@@ -6696,17 +8414,60 @@ var layouts_default = forwardRef(({ theme: theme5, params, hooks, layout, config
|
|
|
6696
8414
|
const hasPreView = useMemo(() => {
|
|
6697
8415
|
return shouldRender(configState.layout.preview) && (!!configState.preview.file.fileUrl || !!configState.preview.file.content);
|
|
6698
8416
|
}, [configState.layout.preview, configState.preview.file]);
|
|
6699
|
-
const
|
|
8417
|
+
const isDebugMode = useMemo(() => resolveDebugMode(), []);
|
|
8418
|
+
const hasSubAgentPanel = !!subAgentState.active;
|
|
8419
|
+
const subAgentTrigger = subAgentState.active?.toolCallId ?? subAgentState.active?.toolName ?? subAgentState.active?.subConversationId;
|
|
8420
|
+
const previewTrigger = configState.preview.file?.fileUrl || configState.preview.file?.content;
|
|
8421
|
+
const [activeRightTab, setActiveRightTab] = useState("preview");
|
|
8422
|
+
const prevTriggers = useRef({
|
|
8423
|
+
subAgent: void 0,
|
|
8424
|
+
preview: void 0
|
|
8425
|
+
});
|
|
8426
|
+
useEffect(() => {
|
|
8427
|
+
const prev = prevTriggers.current;
|
|
8428
|
+
let nextTab = null;
|
|
8429
|
+
if (subAgentTrigger !== prev.subAgent) {
|
|
8430
|
+
nextTab = hasSubAgentPanel ? "subAgent" : hasPreView ? "preview" : null;
|
|
8431
|
+
}
|
|
8432
|
+
if (previewTrigger !== prev.preview) {
|
|
8433
|
+
const fromPreview = hasPreView ? "preview" : hasSubAgentPanel ? "subAgent" : null;
|
|
8434
|
+
if (fromPreview) nextTab = fromPreview;
|
|
8435
|
+
}
|
|
8436
|
+
if (nextTab) setActiveRightTab(nextTab);
|
|
8437
|
+
prevTriggers.current = { subAgent: subAgentTrigger, preview: previewTrigger };
|
|
8438
|
+
}, [subAgentTrigger, previewTrigger, hasSubAgentPanel, hasPreView]);
|
|
8439
|
+
useEffect(() => {
|
|
8440
|
+
if (!focusState.target) return;
|
|
8441
|
+
const targetTab = focusState.target;
|
|
8442
|
+
const hasTarget = targetTab === "subAgent" && hasSubAgentPanel || targetTab === "preview" && hasPreView;
|
|
8443
|
+
if (hasTarget) {
|
|
8444
|
+
setActiveRightTab(targetTab);
|
|
8445
|
+
}
|
|
8446
|
+
chatStore.focusTarget.target = null;
|
|
8447
|
+
}, [focusState.target, hasSubAgentPanel, hasPreView]);
|
|
8448
|
+
const rightTabs = useMemo(() => {
|
|
8449
|
+
const tabs = [];
|
|
8450
|
+
if (hasPreView) {
|
|
8451
|
+
tabs.push({ key: "preview", label: t11("previewTab"), children: /* @__PURE__ */ jsx(ChatPreviewPanel_default, { file: configState.preview.file }) });
|
|
8452
|
+
}
|
|
8453
|
+
if (hasSubAgentPanel) {
|
|
8454
|
+
tabs.push({ key: "subAgent", label: t11("subAgentTab"), children: /* @__PURE__ */ jsx(ChatSubAgentPanel_default, {}) });
|
|
8455
|
+
}
|
|
8456
|
+
return tabs;
|
|
8457
|
+
}, [hasPreView, hasSubAgentPanel, configState.preview.file, t11]);
|
|
8458
|
+
const effectiveRightTab = rightTabs.some((t12) => t12.key === activeRightTab) ? activeRightTab : rightTabs[0]?.key;
|
|
8459
|
+
const [sizes, setSizes] = useState(["100%", 0]);
|
|
6700
8460
|
const setSplitterSizes = (sizes2) => {
|
|
6701
8461
|
setSizes(sizes2);
|
|
6702
8462
|
};
|
|
6703
8463
|
useEffect(() => {
|
|
6704
|
-
if (hasPreView) {
|
|
8464
|
+
if (hasSubAgentPanel || hasPreView) {
|
|
6705
8465
|
setSplitterSizes(["50%", "50%"]);
|
|
6706
8466
|
} else {
|
|
6707
|
-
setSplitterSizes([
|
|
8467
|
+
setSplitterSizes(["100%", 0]);
|
|
6708
8468
|
}
|
|
6709
|
-
}, [hasPreView]);
|
|
8469
|
+
}, [hasPreView, hasSubAgentPanel]);
|
|
8470
|
+
const hasRightPanel = hasSubAgentPanel || hasPreView;
|
|
6710
8471
|
useWebSocket({
|
|
6711
8472
|
url: configState.services.websocketUrls?.[0],
|
|
6712
8473
|
onMessage: (message3) => chatStore.acceptMessage(message3.payload),
|
|
@@ -6722,19 +8483,38 @@ var layouts_default = forwardRef(({ theme: theme5, params, hooks, layout, config
|
|
|
6722
8483
|
useEffect(() => {
|
|
6723
8484
|
hooks?.onBeforeInit?.();
|
|
6724
8485
|
}, []);
|
|
6725
|
-
return /* @__PURE__ */ jsx(XProvider, { theme: { cssVar: {}, ...
|
|
8486
|
+
return /* @__PURE__ */ jsx(XProvider, { theme: { cssVar: {}, ...theme4 }, children: /* @__PURE__ */ jsx(ChatProvider, { store: chatStore, children: /* @__PURE__ */ jsx(Spin, { spinning: configState.loading, classNames: { root: "full-spin" }, children: /* @__PURE__ */ jsxs(Flex, { vertical: true, className: classNames10(index_module_default3.chatLayout, "zero-chat-layout", "height-full"), children: [
|
|
6726
8487
|
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.globalHeader, DefaultComponent: ChatHeader_default }),
|
|
6727
8488
|
/* @__PURE__ */ jsxs(Flex, { ref: containerRef, className: "full-scroll", children: [
|
|
6728
8489
|
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.leftPanel }),
|
|
6729
8490
|
/* @__PURE__ */ jsx(RenderWrapper, { control: configState.layout.conversationList, DefaultComponent: ConversationListPanel_default }),
|
|
6730
|
-
/* @__PURE__ */ jsxs(
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
8491
|
+
/* @__PURE__ */ jsxs(
|
|
8492
|
+
Splitter,
|
|
8493
|
+
{
|
|
8494
|
+
className: classNames10("flex-1", index_module_default3.animatedSplitter, { [index_module_default3.hideSplitterBar]: !hasRightPanel }),
|
|
8495
|
+
onResize: (p) => setSizes(p),
|
|
8496
|
+
children: [
|
|
8497
|
+
/* @__PURE__ */ jsx(Splitter.Panel, { collapsible: false, max: 800, min: 400, size: sizes[0], children: /* @__PURE__ */ jsx(ChatMainPanel_default, { ref: senderRef, debugMode: isDebugMode }) }),
|
|
8498
|
+
hasRightPanel && /* @__PURE__ */ jsx(Splitter.Panel, { collapsible: false, min: 360, size: sizes[1], children: /* @__PURE__ */ jsx(
|
|
8499
|
+
Tabs,
|
|
8500
|
+
{
|
|
8501
|
+
className: classNames10("height-full", index_module_default3.rightTabs),
|
|
8502
|
+
activeKey: effectiveRightTab,
|
|
8503
|
+
onChange: (k) => setActiveRightTab(k),
|
|
8504
|
+
tabBarStyle: { marginBottom: 0 },
|
|
8505
|
+
items: rightTabs
|
|
8506
|
+
}
|
|
8507
|
+
) })
|
|
8508
|
+
]
|
|
8509
|
+
}
|
|
8510
|
+
)
|
|
6734
8511
|
] })
|
|
6735
8512
|
] }) }) }) });
|
|
6736
8513
|
});
|
|
6737
8514
|
|
|
6738
|
-
|
|
8515
|
+
// src/index.ts
|
|
8516
|
+
addBundledResource("zh-CN", NS_CHAT_COPILOT, chatCopilotZhCN);
|
|
8517
|
+
|
|
8518
|
+
export { Attachments_default as Attachments, layouts_default as ChatCopilot, ChatSender_default as ChatSender, NS_CHAT_COPILOT, WorkspaceTypeEnum, chatCopilotEnUS, chatCopilotJaJP, chatCopilotZhCN, getFileIcon, getFileUrl };
|
|
6739
8519
|
//# sourceMappingURL=index.esm.js.map
|
|
6740
8520
|
//# sourceMappingURL=index.esm.js.map
|