@ai-group/chat-sdk 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -60
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -6
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +19 -3
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +36 -8
- package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +5 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +9 -4
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +10 -4
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +3 -1
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +27 -3
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/index.js +18 -13
- package/dist/cjs/components/XAdkSender/index.js.map +2 -2
- package/dist/cjs/components/XAdkThoughtChain/index.js +29 -8
- package/dist/cjs/components/XAdkThoughtChain/index.js.map +3 -3
- package/dist/cjs/hooks/useADKChat.d.ts +1 -1
- package/dist/cjs/hooks/useADKChat.js +3 -1
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +20 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/presets/xGroupAdk.d.ts +20 -0
- package/dist/cjs/presets/xGroupAdk.js +130 -0
- package/dist/cjs/presets/xGroupAdk.js.map +7 -0
- package/dist/cjs/types/ChatStrategies.d.ts +45 -0
- package/dist/cjs/types/ChatStrategies.js +18 -0
- package/dist/cjs/types/ChatStrategies.js.map +7 -0
- package/dist/cjs/types/FunctionCallRender.d.ts +35 -0
- package/dist/cjs/types/FunctionCallRender.js +32 -0
- package/dist/cjs/types/FunctionCallRender.js.map +7 -0
- package/dist/cjs/types/XAdkChatbot.d.ts +32 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +19 -0
- package/dist/cjs/types/XAdkProvider.js.map +2 -2
- package/dist/cjs/types/XAdkSender.d.ts +20 -4
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/XAdkThoughtChain.d.ts +10 -2
- package/dist/cjs/types/XAdkThoughtChain.js.map +1 -1
- package/dist/cjs/types/XAiChatbot.d.ts +1 -1
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +1 -1
- package/dist/cjs/types/XAiProvider.js.map +1 -1
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +5 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/providerManager.d.ts +1 -1
- package/dist/cjs/utils/providerManager.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -6
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +25 -5
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +35 -8
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +5 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +9 -4
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +7 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.js +14 -9
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +3 -1
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.js +21 -4
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/index.js +25 -17
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkThoughtChain/index.js +23 -7
- package/dist/esm/components/XAdkThoughtChain/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +1 -1
- package/dist/esm/hooks/useADKChat.js +3 -1
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/presets/xGroupAdk.d.ts +20 -0
- package/dist/esm/presets/xGroupAdk.js +122 -0
- package/dist/esm/presets/xGroupAdk.js.map +1 -0
- package/dist/esm/types/ChatStrategies.d.ts +45 -0
- package/dist/esm/types/ChatStrategies.js +2 -0
- package/dist/esm/types/ChatStrategies.js.map +1 -0
- package/dist/esm/types/FunctionCallRender.d.ts +35 -0
- package/dist/esm/types/FunctionCallRender.js +14 -0
- package/dist/esm/types/FunctionCallRender.js.map +1 -0
- package/dist/esm/types/XAdkChatbot.d.ts +32 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +19 -0
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +20 -4
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/XAdkThoughtChain.d.ts +10 -2
- package/dist/esm/types/XAdkThoughtChain.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +1 -1
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +1 -1
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/providerManager.d.ts +1 -1
- package/dist/esm/utils/providerManager.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useCallback","useMemo","useRef","useState","fetchEventSource","EventStreamContentType","message","v4","SESSION_PAGE_SIZE","API_SUCCESS_CODE","SuccessCode","ErrorCode","fetchAppConfig","fetchSessionList","fetchSessionDetail","closeSession","updateSessionTitle","addFeedback","safeJsonParse","combineTextParts","parts","result","combinedTextPart","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","text","thought","_objectSpread","push","undefined","err","e","f","useADKChat","_ref","_ref$url","url","window","location","origin","token","_ref$config","config","_ref$type","type","_ref$enabled","enabled","onError","onMessage","onSuccess","onStream","_useState","_useState2","_slicedToArray","loading","setLoading","ctrl","_ref2","appNo","showFirstSession","_useState3","_useState4","appInfo","setAppInfo","_useState5","_useState6","initialized","setInitialized","_useState7","_useState8","sessionList","setSessionList","_useState9","_useState10","currentSessionId","setCurrentSessionId","_useState11","total","pageNum","pageSize","_useState12","sessionPagination","setSessionPagination","_useState13","_useState14","prologue","setPrologue","_useState15","_useState16","suggestedQuestions","setSuggestedQuestions","_useState17","_useState18","messages","setMessages","stateDeltaRef","mergedMessages","fnResMap","forEach","msg","functionResponse","_msg$functionResponse","id","map","functionCall","_msg$functionCall","textMsgRef","eventDataRef","Map","insertMessage","prev","lastMessage","length","isLoading","concat","_toConsumableArray","slice","insertSuggestedQuestions","suggested_questions","arguments","insertPrologue","updateMessage","m","storeEvents","event","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","role","author","invocationId","eventId","timestamp","isLike","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","fileData","Object","keys","processPart","_event$groundingMetad2","newChunk","newMessage","partial","processFollowupPart","_event$content","content","processErrorMessage","chunkJson","processActionArtifact","sendMessageRequest","values","Promise","resolve","abort","AbortController","requestUrl","method","signal","body","JSON","stringify","openWhenHidden","headers","stream","Authorization","onopen","response","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","next","ok","get","status","API_ERROR","stop","onmessage","rawData","sessionId","error","warning","_iterator2","_step2","onclose","_textMsgRef$current","onerror","console","startChat","_ref4","_callee2","_ref3","_ref3$text","_ref3$files","files","_callee2$","_context2","abrupt","trim","temp","file","_file$response","_file$response2","_file$response3","fileName","fileUri","tempUrl","fileUrl","_file$response4","_file$response5","_file$response6","_file$response7","_file$response8","_file$response9","fileId","fileType","stateDelta","initAppConversations","_x","apply","reChat","newMessages","lastAIIndex","findLastIndex","splice","lastUserMessage","findLast","_lastUserMessage$text","_lastUserMessage$file","confirmFnCall","fnCall","confirmed","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","_appInfo$onboardingIn2","newSessionId","onboardingInfo","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","textParts","fileDataParts","otherParts","raw","_iterator3","_step3","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSession","_ref5","_callee3","_yield$fetchSessionDe","_appInfo$onboardingIn3","_appInfo$onboardingIn4","_callee3$","_context3","sent","_x2","_ref6","_callee4","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","pagination","formatSessions","_data$","_appInfo$onboardingIn5","_appInfo$onboardingIn6","_args4","_callee4$","_context4","key","label","Date","startTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","finish","deleteSession","_ref7","_callee5","_yield$closeSession","_callee5$","_context5","_x3","likeMessage","_ref8","_callee6","feedbackData","_yield$addFeedback","_callee6$","_context6","requestId","_x4","_x5","_x6","updateSession","_ref9","_callee7","_yield$updateSessionT","_callee7$","_context7","_x7","_x8","initConfig","_ref10","_callee8","_yield$fetchAppConfig","_callee8$","_context8","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","suggestions","setStateDelta","delta"],"sources":["../../../src/hooks/useADKChat.ts"],"sourcesContent":["import { useEffect, useCallback, useMemo, useRef, useState } from \"react\";\nimport {\n fetchEventSource,\n EventStreamContentType,\n} from \"@microsoft/fetch-event-source\";\nimport { message } from \"antd\";\nimport { v4 } from \"uuid\";\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from \"@/constants\";\nimport {\n SuccessCode,\n ErrorCode,\n DebugOptions,\n FunctionCall,\n SendContent,\n SessionData,\n AgentRunRequest,\n Event,\n FunctionResponse,\n IMessage,\n Part,\n} from \"@/types\";\nimport {\n fetchAppConfig,\n fetchSessionList,\n fetchSessionDetail,\n closeSession,\n updateSessionTitle,\n addFeedback,\n type ChatConfig,\n} from \"@/services/api\";\nimport { safeJsonParse } from \"@/utils\";\n\nconst combineTextParts = (parts: Part[]) => {\n const result: Part[] = [];\n let combinedTextPart: Part | undefined;\n\n // eslint-disable-next-line no-restricted-syntax\n for (const part of parts) {\n if (part.text) {\n // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用\n if (!combinedTextPart || combinedTextPart.thought !== part.thought) {\n combinedTextPart = { ...part };\n result.push(combinedTextPart);\n } else {\n combinedTextPart.text += part.text;\n }\n } else {\n combinedTextPart = undefined;\n result.push(part);\n }\n }\n return result;\n};\n\nfunction useADKChat({\n url = window.location.origin,\n token,\n config = {},\n type = \"agentDebug\",\n enabled = true, // ← 新增: 是否启用 Hook\n onError,\n onMessage,\n onSuccess,\n onStream,\n}: DebugOptions) {\n const [loading, setLoading] = useState(false);\n const ctrl = useRef<AbortController | null>(null);\n // 应用配置\n const { appNo, showFirstSession } = config || {};\n const [appInfo, setAppInfo] = useState<ChatConfig | null>(null);\n // 初始化完成\n const [initialized, setInitialized] = useState(false);\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>(() => v4());\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({\n total: 0,\n pageNum: 1,\n pageSize: SESSION_PAGE_SIZE,\n });\n // 开场白\n const [prologue, setPrologue] = useState<string>(\"\");\n // 建议问题\n const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n const [messages, setMessages] = useState<IMessage[]>([]);\n // 用户自定义业务参数 (stateDelta),每次发送请求时携带\n const stateDeltaRef = useRef<Record<string, any> | undefined>(undefined);\n const mergedMessages = useMemo(() => {\n const fnResMap: Record<string, FunctionResponse> = {};\n messages.forEach((msg) => {\n if (msg.functionResponse) {\n fnResMap[msg?.functionResponse?.id || \"\"] = msg.functionResponse;\n }\n });\n return messages.map((msg) => {\n if (msg.functionCall) {\n return {\n ...msg,\n functionResponse: fnResMap[msg?.functionCall?.id || \"\"],\n };\n }\n return msg;\n });\n }, [messages]);\n const textMsgRef = useRef<IMessage>(null);\n const eventDataRef = useRef<Map<string, any>>(new Map());\n\n // 插入消息\n const insertMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n const lastMessage = prev[prev.length - 1];\n if (lastMessage?.isLoading) {\n return [...prev.slice(0, -1), msg, lastMessage];\n }\n return [...prev, msg];\n });\n }, []);\n\n // 初始化开场白预设置问题\n const insertSuggestedQuestions = (suggested_questions: string[] = []) => {\n if (!suggested_questions?.length) return;\n // 无消息内容 且 有建议问题时\n if (messages.length === 0 && suggested_questions.length) {\n setSuggestedQuestions(suggested_questions);\n }\n };\n\n // 初始化开场白\n const insertPrologue = (prologue: string) => {\n if (prologue) {\n setPrologue(prologue);\n }\n };\n\n // 更新消息\n const updateMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n return prev.map((m) => {\n if (m.id === msg.id) {\n return msg;\n }\n return m;\n });\n });\n }, []);\n\n // 存储事件\n const storeEvents = useCallback((part: Part | null, event: any) => {\n let title = \"\";\n\n if (part == null && event.actions?.artifactDelta) {\n title += \"eventAction: artifact\";\n } else if (part) {\n if (part.text) {\n title += `text:${part.text}`;\n } else if (part.functionCall) {\n title += `functionCall:${part.functionCall.name}`;\n } else if (part.functionResponse) {\n title += `functionResponse:${part.functionResponse.name}`;\n } else if (part.executableCode) {\n title += `executableCode:${part.executableCode.code?.slice(0, 10)}`;\n } else if (part.codeExecutionResult) {\n title += `codeExecutionResult:${part.codeExecutionResult.outcome}`;\n } else if (part.errorMessage) {\n title += `errorMessage:${part.errorMessage}`;\n }\n }\n\n const updatedEvent = { ...event, title };\n\n const newEventData = new Map(eventDataRef.current);\n newEventData.set(event.id, updatedEvent);\n eventDataRef.current = newEventData;\n }, []);\n\n // 存储消息\n const storeMessage = useCallback(\n (part: Part | null, event: Event, role: \"user\" | \"bot\") => {\n const msg: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n isLike: event.isLike || 0,\n role,\n };\n\n if (part) {\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n };\n } else if (part.text) {\n msg.text = part.text;\n msg.thought = part.thought;\n\n if (event?.groundingMetadata?.searchEntryPoint?.renderedContent) {\n msg.renderedContent =\n event.groundingMetadata.searchEntryPoint.renderedContent;\n }\n } else if (part.fileData) {\n msg.fileData = [part.fileData];\n } else if (part.functionCall) {\n msg.functionCall = part.functionCall;\n } else if (part.functionResponse) {\n msg.functionResponse = part.functionResponse;\n } else if (part.executableCode) {\n msg.executableCode = part.executableCode;\n } else if (part.codeExecutionResult) {\n msg.codeExecutionResult = part.codeExecutionResult;\n }\n }\n\n if (part && Object.keys(part).length > 0) {\n insertMessage(msg);\n }\n },\n [insertMessage],\n );\n\n // 处理消息部分(关键更新)\n const processPart = useCallback(\n (event: Event, part: Part) => {\n const renderedContent =\n event.groundingMetadata?.searchEntryPoint?.renderedContent;\n if (part.text) {\n const newChunk = part.text;\n\n if (\n !textMsgRef.current ||\n textMsgRef.current.thought !== part.thought\n ) {\n const newMessage: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n role: \"bot\",\n text: newChunk,\n isLike: event.isLike || 0,\n thought: part.thought,\n };\n\n if (renderedContent) {\n newMessage.renderedContent = renderedContent;\n }\n\n textMsgRef.current = newMessage;\n // 存储原数据\n storeEvents(part, event);\n // 插入消息\n insertMessage(newMessage);\n } else {\n if (event.partial === false) {\n storeEvents(part, event);\n textMsgRef.current = null;\n return;\n }\n if (renderedContent) {\n textMsgRef.current = {\n ...textMsgRef.current,\n renderedContent,\n };\n }\n textMsgRef.current = {\n ...textMsgRef.current,\n text: (textMsgRef.current.text || \"\") + newChunk,\n };\n updateMessage(textMsgRef.current);\n }\n } else {\n textMsgRef.current = null;\n storeEvents(part, event);\n storeMessage(part, event, \"bot\");\n }\n },\n [storeEvents, storeMessage, insertMessage, updateMessage],\n );\n\n // 处理建议类消息\n const processFollowupPart = useCallback(\n (event: Event) => {\n // 获取建议类消息的文本内容\n const part = event?.content?.parts?.[0] || null;\n const text = part?.text || \"\";\n storeEvents(part, event);\n if (text) {\n setSuggestedQuestions((prev) => [...prev, text]);\n }\n },\n [storeEvents, insertMessage],\n );\n\n // 处理错误消息\n const processErrorMessage = useCallback(\n (chunkJson: any) => {\n storeEvents(null, chunkJson);\n insertMessage({\n id: v4(),\n text: chunkJson.errorMessage,\n role: \"bot\",\n });\n },\n [storeEvents, insertMessage],\n );\n\n // 处理动作和制品\n const processActionArtifact = useCallback(\n (event: any) => {\n if (event.actions && event.actions.artifactDelta) {\n storeEvents(null, event);\n storeMessage(null, event, \"bot\");\n }\n },\n [storeEvents, storeMessage],\n );\n\n // 发送消息请求\n const sendMessageRequest = useCallback(\n (values: AgentRunRequest) => {\n return new Promise<void>((resolve) => {\n if (ctrl.current) {\n ctrl.current.abort();\n }\n setLoading(true);\n ctrl.current = new AbortController();\n const requestUrl = `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`;\n\n fetchEventSource(requestUrl, {\n method: \"POST\",\n signal: ctrl.current.signal,\n body: JSON.stringify(values),\n openWhenHidden: true,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n stream: \"true\",\n Authorization: `Bearer ${token}`,\n },\n async onopen(response) {\n if (\n response.ok &&\n response.headers.get(\"content-type\") === EventStreamContentType\n ) {\n // everything's good\n } else if (response.status === 401 || response.status === 403) {\n setLoading(false);\n onError?.({\n code: ErrorCode.API_ERROR,\n message: response.status === 401 ? \"认证失败,token 无效或已过期\" : \"无权限访问该资源\",\n });\n resolve();\n } else if (\n response.status >= 400 &&\n response.status < 500 &&\n response.status !== 429\n ) {\n resolve();\n } else {\n resolve();\n }\n },\n onmessage: (event) => {\n const rawData = safeJsonParse(event.data, {});\n\n // 处理新的数据格式: { data: {...}, result: {...} }\n let chunkJson: Event = rawData;\n if (rawData.data && rawData.result) {\n // 转换为旧格式\n chunkJson = {\n ...rawData.data,\n content: rawData.data, // data 本身就是 content\n invocationId: rawData.result.invocationId,\n sessionId: rawData.result.sessionId,\n id: rawData.result.invocationId,\n };\n }\n\n if (chunkJson.error) {\n message.warning(chunkJson.error);\n return;\n }\n onStream?.(chunkJson);\n if (chunkJson.content) {\n // 建议类消息单独处理\n if (chunkJson.content.role === \"followup\") {\n processFollowupPart(chunkJson);\n return;\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const part of combineTextParts(chunkJson.content.parts)) {\n processPart(chunkJson, part);\n }\n } else if (chunkJson.errorMessage) {\n processErrorMessage(chunkJson);\n } else if (chunkJson.actions) {\n processActionArtifact(chunkJson);\n }\n },\n onclose: () => {\n setLoading(false);\n if (textMsgRef.current) {\n onMessage?.(textMsgRef.current?.text || \"\", textMsgRef.current);\n }\n textMsgRef.current = null;\n resolve();\n },\n onerror: (error) => {\n setLoading(false);\n resolve();\n console.error(\"EventSource failed:\", error);\n throw error;\n },\n });\n });\n },\n [\n type,\n currentSessionId,\n processActionArtifact,\n processErrorMessage,\n processPart,\n ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading) return;\n if (!text.trim() && !functionResponse) return;\n // 清空建议问题\n setSuggestedQuestions([]);\n // 发送消息\n setMessages((prev) => {\n let temp = [...prev];\n // 如果 text 存在\n if (text.trim()) {\n temp.push({\n id: v4(),\n role: \"user\",\n text,\n });\n }\n // 如果file 存在\n if (files.length > 0) {\n temp.push({\n id: v4(),\n role: \"user\",\n fileData: files.map((file) => ({\n displayName: file.fileName || file.name,\n mimeType: file.mimeType || file.response?.mimeType,\n fileUri: file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n })),\n });\n }\n // 如果 functionResponse 存在\n if (functionResponse) {\n temp.push({\n id: v4(),\n role: \"user\",\n functionResponse,\n });\n }\n return temp;\n });\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: functionResponse ? [{ functionResponse }] : [{ text }],\n },\n files: files.map((file) => ({\n fileName: file.fileName || file.response?.fileName,\n fileId: file.fileId || file.response?.fileId,\n tempUrl: file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n type: file.type || file.response?.fileType,\n mimeType: file.mimeType || file.response?.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && { stateDelta: stateDeltaRef.current }),\n });\n // 获取聊天记录\n initAppConversations();\n };\n\n // 重新发送会话\n const reChat = () => {\n if (loading) return;\n if (messages.length === 0) return;\n setMessages((prev) => {\n const newMessages = [...prev];\n // 删除最后一条 AI 消息\n const lastAIIndex = newMessages.findLastIndex(\n (msg) => msg.role === \"bot\",\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n // 清空建议问题\n setSuggestedQuestions([]);\n // 重新发送最后一条用户消息\n const lastUserMessage = newMessages.findLast(\n (msg) => msg.role === \"user\",\n );\n if (lastUserMessage) {\n const { text = \"\", fileData = [] } = lastUserMessage;\n sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: [\n {\n text,\n },\n ],\n },\n files: fileData?.map((file) => ({\n fileName: file.displayName,\n tempUrl: file.fileUri,\n mimeType: file.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && { stateDelta: stateDeltaRef.current }),\n });\n }\n\n return newMessages;\n });\n };\n\n // 确认函数调用\n const confirmFnCall = (fnCall: FunctionCall, confirmed: boolean) => {\n const functionResponse = {\n id: fnCall.id,\n name: fnCall.name,\n response: { confirmed },\n };\n startChat({ functionResponse });\n };\n\n // 使用建议问题\n const suggestChat = (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n setSuggestedQuestions([]);\n startChat({ text });\n };\n\n // 停止会话\n const stopChat = useCallback(() => {\n ctrl.current?.abort();\n setLoading(false);\n textMsgRef.current = null;\n }, [ctrl]);\n\n // 清除/重置会话\n const clearChat = () => {\n const newSessionId = v4();\n setCurrentSessionId(newSessionId);\n // 重置聊天内容\n stopChat();\n setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n setMessages([]);\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n };\n\n // 格式化会话记录\n const formatMessages = (messages: any[], isReplace = false) => {\n const mapped: IMessage[] = [];\n messages.forEach((item) => {\n if (!item || !item.content || !Array.isArray(item.content.parts)) return;\n\n const role =\n (item.content.role || \"\").toLowerCase() === \"user\" ? \"user\" : \"bot\";\n const parts = Array.isArray(item.content.parts)\n ? item.content.parts.filter((p: any) => {\n if (!p) return false;\n return Boolean(\n p.text ||\n p.inlineData ||\n p.functionCall ||\n p.functionResponse ||\n p.fileData ||\n p.executableCode ||\n p.codeExecutionResult ||\n p.errorMessage,\n );\n })\n : [];\n\n if (parts.length === 0) return;\n\n // 将同一条历史消息的 text/fileData parts 合并到一条 IMessage,避免拆分显示\n const textParts = parts.filter((p: any) => p.text || p.errorMessage || p.inlineData);\n const fileDataParts = parts.filter((p: any) => p.fileData);\n const otherParts = parts.filter((p: any) => !p.text && !p.errorMessage && !p.inlineData && !p.fileData);\n\n // 如果有 text/fileData,合并为一条消息\n if (textParts.length > 0 || fileDataParts.length > 0) {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n isLike: item.isLike,\n role,\n raw: item,\n } as IMessage;\n\n for (const part of textParts) {\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n } as any;\n }\n if (part.text) {\n msg.text = (msg.text ? msg.text + \"\\n\" : \"\") + part.text;\n if (typeof part.thought !== \"undefined\") msg.thought = part.thought;\n }\n if (part.errorMessage) {\n msg.text = (msg.text ? msg.text + \"\\n\" : \"\") + part.errorMessage;\n }\n }\n\n if (fileDataParts.length > 0) {\n msg.fileData = fileDataParts.map((part: any) => ({\n displayName: part.fileData.displayName || \"\",\n fileUri: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n }));\n }\n\n mapped.push(msg);\n }\n\n // 处理其他类型的 parts(functionCall、executableCode 等)\n otherParts.forEach((part: any) => {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n isLike: item.isLike,\n role,\n raw: item,\n } as IMessage;\n\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult)\n msg.codeExecutionResult = part.codeExecutionResult;\n // 补全函数调用结果\n if (part.functionResponse) {\n // 通过 functionCall.id 寻找对应的函数调用消息,在那条消息上添加functionResponse\n const functionCallMsg = mapped.find(\n (msg) => msg.functionCall?.id === part.functionResponse?.id,\n );\n if (functionCallMsg) {\n functionCallMsg.functionResponse = part.functionResponse;\n }\n return;\n }\n mapped.push(msg);\n });\n });\n\n setMessages((prev) => (isReplace ? mapped : [...prev, ...mapped]));\n };\n\n // 设置当前会话详情\n const setCurrentSession = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n // 新接口直接返回按 event/item 结构的数组,传入 formatMessages 处理\n if (Array.isArray(data) && data.length > 0) {\n formatMessages(data, true);\n } else {\n setSuggestedQuestions(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(v4());\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n setLoading(true);\n\n const {\n data = [],\n pagination,\n result,\n } = await fetchSessionList({\n url,\n appNo,\n token,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || \"新对话\",\n timestamp: new Date(item.startTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n total: pagination?.total || 0,\n });\n const { sessionId } = data?.[0];\n if (showFirstSession) {\n setCurrentSession(sessionId);\n } else {\n fetchDetail && setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n fetchDetail &&\n setSuggestedQuestions(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n // 成功回调\n if (!initialized) {\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: \"初始化聊天记录成功\",\n data: {\n sessionId,\n },\n });\n setInitialized(true);\n }\n } else {\n // 无会话记录时,初始化会话详情\n clearChat();\n }\n } else {\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue(\"\");\n setSuggestedQuestions([]);\n }\n } catch {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: \"获取会话列表失败\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await closeSession({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(true);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n clearChat();\n }\n } else {\n message.error(\"删除会话失败\");\n }\n };\n\n // 点赞/点踩\n const likeMessage = async (\n invocationId: string,\n isLike: 1 | -1,\n feedbackData?: { feedbackTags?: string; feedbackDescription?: string },\n ) => {\n if (!appNo || !invocationId) return false;\n const { result } = await addFeedback({\n url,\n appNo,\n token,\n requestId: invocationId,\n isLike,\n ...feedbackData,\n });\n if (result?.code === API_SUCCESS_CODE) {\n setMessages((prev) =>\n prev.map((m) =>\n m.invocationId === invocationId ? { ...m, isLike } : m,\n ),\n );\n return true;\n }\n return false;\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const { result } = await updateSessionTitle({\n url,\n appNo,\n title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations();\n } else {\n message.error(\"更新会话失败\");\n }\n };\n\n // 初始化应用\n const initConfig = async () => {\n try {\n setLoading(true);\n const { data, result } = await fetchAppConfig({ url, appNo });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: \"初始化配置成功\",\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || \"获取应用配置失败\",\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: \"获取应用配置失败\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n // 初始化—获取配置 (仅在启用时)\n useEffect(() => {\n if (enabled && url && appNo) {\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, url, appNo]);\n\n // 初始化-聊天记录\n useEffect(() => {\n if (appInfo) {\n initAppConversations(true);\n }\n }, [appInfo]);\n\n return {\n appInfo,\n startChat,\n reChat,\n stopChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n initialized,\n currentSessionId,\n sessionList,\n sessionPagination,\n prologue,\n suggestions: suggestedQuestions,\n loading,\n messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSession,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n setStateDelta: (delta: Record<string, any> | undefined) => {\n stateDeltaRef.current = delta;\n },\n };\n}\n\nexport default useADKChat;\n"],"mappings":";;;;;;AAAA,SAASA,SAAS,EAAEC,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SACEC,gBAAgB,EAChBC,sBAAsB,QACjB,+BAA+B;AACtC,SAASC,OAAO,QAAQ,MAAM;AAC9B,SAASC,EAAE,QAAQ,MAAM;AACzB,SAASC,iBAAiB,EAAEC,gBAAgB;AAC5C,SACEC,WAAW,EACXC,SAAS;AAWX,SACEC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,YAAY,EACZC,kBAAkB,EAClBC,WAAW;AAGb,SAASC,aAAa;AAEtB,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAa,EAAK;EAC1C,IAAMC,MAAc,GAAG,EAAE;EACzB,IAAIC,gBAAkC;;EAEtC;EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACmBJ,KAAK;IAAAK,KAAA;EAAA;IAAxB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA0B;MAAA,IAAfC,IAAI,GAAAJ,KAAA,CAAAK,KAAA;MACb,IAAID,IAAI,CAACE,IAAI,EAAE;QACb;QACA,IAAI,CAACT,gBAAgB,IAAIA,gBAAgB,CAACU,OAAO,KAAKH,IAAI,CAACG,OAAO,EAAE;UAClEV,gBAAgB,GAAAW,aAAA,KAAQJ,IAAI,CAAE;UAC9BR,MAAM,CAACa,IAAI,CAACZ,gBAAgB,CAAC;QAC/B,CAAC,MAAM;UACLA,gBAAgB,CAACS,IAAI,IAAIF,IAAI,CAACE,IAAI;QACpC;MACF,CAAC,MAAM;QACLT,gBAAgB,GAAGa,SAAS;QAC5Bd,MAAM,CAACa,IAAI,CAACL,IAAI,CAAC;MACnB;IACF;EAAC,SAAAO,GAAA;IAAAb,SAAA,CAAAc,CAAA,CAAAD,GAAA;EAAA;IAAAb,SAAA,CAAAe,CAAA;EAAA;EACD,OAAOjB,MAAM;AACf,CAAC;AAED,SAASkB,UAAUA,CAAAC,IAAA,EAUF;EAAA,IAAAC,QAAA,GAAAD,IAAA,CATfE,GAAG;IAAHA,GAAG,GAAAD,QAAA,cAAGE,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAAJ,QAAA;IAC5BK,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAAC,WAAA,GAAAP,IAAA,CACLQ,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,CAAC,CAAC,GAAAA,WAAA;IAAAE,SAAA,GAAAT,IAAA,CACXU,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,YAAY,GAAAA,SAAA;IAAAE,YAAA,GAAAX,IAAA,CACnBY,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;IACdE,OAAO,GAAAb,IAAA,CAAPa,OAAO;IACPC,SAAS,GAAAd,IAAA,CAATc,SAAS;IACTC,SAAS,GAAAf,IAAA,CAATe,SAAS;IACTC,QAAQ,GAAAhB,IAAA,CAARgB,QAAQ;EAER,IAAAC,SAAA,GAA8BtD,QAAQ,CAAC,KAAK,CAAC;IAAAuD,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAtCG,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAC1B,IAAMI,IAAI,GAAG5D,MAAM,CAAyB,IAAI,CAAC;EACjD;EACA,IAAA6D,KAAA,GAAoCf,MAAM,IAAI,CAAC,CAAC;IAAxCgB,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAEC,gBAAgB,GAAAF,KAAA,CAAhBE,gBAAgB;EAC/B,IAAAC,UAAA,GAA8B/D,QAAQ,CAAoB,IAAI,CAAC;IAAAgE,UAAA,GAAAR,cAAA,CAAAO,UAAA;IAAxDE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B;EACA,IAAAG,UAAA,GAAsCnE,QAAQ,CAAC,KAAK,CAAC;IAAAoE,UAAA,GAAAZ,cAAA,CAAAW,UAAA;IAA9CE,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAClC;EACA,IAAAG,UAAA,GAAsCvE,QAAQ,CAAgB,EAAE,CAAC;IAAAwE,UAAA,GAAAhB,cAAA,CAAAe,UAAA;IAA1DE,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAClC;EACA,IAAAG,UAAA,GAAgD3E,QAAQ,CAAS;MAAA,OAAMI,EAAE,CAAC,CAAC;IAAA,EAAC;IAAAwE,WAAA,GAAApB,cAAA,CAAAmB,UAAA;IAArEE,gBAAgB,GAAAD,WAAA;IAAEE,mBAAmB,GAAAF,WAAA;EAC5C;EACA,IAAAG,WAAA,GAAkD/E,QAAQ,CAAC;MACzDgF,KAAK,EAAE,CAAC;MACRC,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE7E;IACZ,CAAC,CAAC;IAAA8E,WAAA,GAAA3B,cAAA,CAAAuB,WAAA;IAJKK,iBAAiB,GAAAD,WAAA;IAAEE,oBAAoB,GAAAF,WAAA;EAK9C;EACA,IAAAG,WAAA,GAAgCtF,QAAQ,CAAS,EAAE,CAAC;IAAAuF,WAAA,GAAA/B,cAAA,CAAA8B,WAAA;IAA7CE,QAAQ,GAAAD,WAAA;IAAEE,WAAW,GAAAF,WAAA;EAC5B;EACA,IAAAG,WAAA,GAAoD1F,QAAQ,CAAW,EAAE,CAAC;IAAA2F,WAAA,GAAAnC,cAAA,CAAAkC,WAAA;IAAnEE,kBAAkB,GAAAD,WAAA;IAAEE,qBAAqB,GAAAF,WAAA;EAChD,IAAAG,WAAA,GAAgC9F,QAAQ,CAAa,EAAE,CAAC;IAAA+F,WAAA,GAAAvC,cAAA,CAAAsC,WAAA;IAAjDE,QAAQ,GAAAD,WAAA;IAAEE,WAAW,GAAAF,WAAA;EAC5B;EACA,IAAMG,aAAa,GAAGnG,MAAM,CAAkCiC,SAAS,CAAC;EACxE,IAAMmE,cAAc,GAAGrG,OAAO,CAAC,YAAM;IACnC,IAAMsG,QAA0C,GAAG,CAAC,CAAC;IACrDJ,QAAQ,CAACK,OAAO,CAAC,UAACC,GAAG,EAAK;MACxB,IAAIA,GAAG,CAACC,gBAAgB,EAAE;QAAA,IAAAC,qBAAA;QACxBJ,QAAQ,CAAC,CAAAE,GAAG,aAAHA,GAAG,gBAAAE,qBAAA,GAAHF,GAAG,CAAEC,gBAAgB,cAAAC,qBAAA,uBAArBA,qBAAA,CAAuBC,EAAE,KAAI,EAAE,CAAC,GAAGH,GAAG,CAACC,gBAAgB;MAClE;IACF,CAAC,CAAC;IACF,OAAOP,QAAQ,CAACU,GAAG,CAAC,UAACJ,GAAG,EAAK;MAC3B,IAAIA,GAAG,CAACK,YAAY,EAAE;QAAA,IAAAC,iBAAA;QACpB,OAAA9E,aAAA,CAAAA,aAAA,KACKwE,GAAG;UACNC,gBAAgB,EAAEH,QAAQ,CAAC,CAAAE,GAAG,aAAHA,GAAG,gBAAAM,iBAAA,GAAHN,GAAG,CAAEK,YAAY,cAAAC,iBAAA,uBAAjBA,iBAAA,CAAmBH,EAAE,KAAI,EAAE;QAAC;MAE3D;MACA,OAAOH,GAAG;IACZ,CAAC,CAAC;EACJ,CAAC,EAAE,CAACN,QAAQ,CAAC,CAAC;EACd,IAAMa,UAAU,GAAG9G,MAAM,CAAW,IAAI,CAAC;EACzC,IAAM+G,YAAY,GAAG/G,MAAM,CAAmB,IAAIgH,GAAG,CAAC,CAAC,CAAC;;EAExD;EACA,IAAMC,aAAa,GAAGnH,WAAW,CAAC,UAACyG,GAAa,EAAK;IACnDL,WAAW,CAAC,UAACgB,IAAI,EAAK;MACpB,IAAMC,WAAW,GAAGD,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC;MACzC,IAAID,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEE,SAAS,EAAE;QAC1B,UAAAC,MAAA,CAAAC,kBAAA,CAAWL,IAAI,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAEjB,GAAG,EAAEY,WAAW;MAChD;MACA,UAAAG,MAAA,CAAAC,kBAAA,CAAWL,IAAI,IAAEX,GAAG;IACtB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMkB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA,EAA2C;IAAA,IAAvCC,mBAA6B,GAAAC,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAA1F,SAAA,GAAA0F,SAAA,MAAG,EAAE;IAClE,IAAI,EAACD,mBAAmB,aAAnBA,mBAAmB,eAAnBA,mBAAmB,CAAEN,MAAM,GAAE;IAClC;IACA,IAAInB,QAAQ,CAACmB,MAAM,KAAK,CAAC,IAAIM,mBAAmB,CAACN,MAAM,EAAE;MACvDtB,qBAAqB,CAAC4B,mBAAmB,CAAC;IAC5C;EACF,CAAC;;EAED;EACA,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAInC,QAAgB,EAAK;IAC3C,IAAIA,QAAQ,EAAE;MACZC,WAAW,CAACD,QAAQ,CAAC;IACvB;EACF,CAAC;;EAED;EACA,IAAMoC,aAAa,GAAG/H,WAAW,CAAC,UAACyG,GAAa,EAAK;IACnDL,WAAW,CAAC,UAACgB,IAAI,EAAK;MACpB,OAAOA,IAAI,CAACP,GAAG,CAAC,UAACmB,CAAC,EAAK;QACrB,IAAIA,CAAC,CAACpB,EAAE,KAAKH,GAAG,CAACG,EAAE,EAAE;UACnB,OAAOH,GAAG;QACZ;QACA,OAAOuB,CAAC;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMC,WAAW,GAAGjI,WAAW,CAAC,UAAC6B,IAAiB,EAAEqG,KAAU,EAAK;IAAA,IAAAC,cAAA;IACjE,IAAIC,KAAK,GAAG,EAAE;IAEd,IAAIvG,IAAI,IAAI,IAAI,KAAAsG,cAAA,GAAID,KAAK,CAACG,OAAO,cAAAF,cAAA,eAAbA,cAAA,CAAeG,aAAa,EAAE;MAChDF,KAAK,IAAI,uBAAuB;IAClC,CAAC,MAAM,IAAIvG,IAAI,EAAE;MACf,IAAIA,IAAI,CAACE,IAAI,EAAE;QACbqG,KAAK,YAAAZ,MAAA,CAAY3F,IAAI,CAACE,IAAI,CAAE;MAC9B,CAAC,MAAM,IAAIF,IAAI,CAACiF,YAAY,EAAE;QAC5BsB,KAAK,oBAAAZ,MAAA,CAAoB3F,IAAI,CAACiF,YAAY,CAACyB,IAAI,CAAE;MACnD,CAAC,MAAM,IAAI1G,IAAI,CAAC6E,gBAAgB,EAAE;QAChC0B,KAAK,wBAAAZ,MAAA,CAAwB3F,IAAI,CAAC6E,gBAAgB,CAAC6B,IAAI,CAAE;MAC3D,CAAC,MAAM,IAAI1G,IAAI,CAAC2G,cAAc,EAAE;QAAA,IAAAC,qBAAA;QAC9BL,KAAK,sBAAAZ,MAAA,EAAAiB,qBAAA,GAAsB5G,IAAI,CAAC2G,cAAc,CAACE,IAAI,cAAAD,qBAAA,uBAAxBA,qBAAA,CAA0Bf,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE;MACrE,CAAC,MAAM,IAAI7F,IAAI,CAAC8G,mBAAmB,EAAE;QACnCP,KAAK,2BAAAZ,MAAA,CAA2B3F,IAAI,CAAC8G,mBAAmB,CAACC,OAAO,CAAE;MACpE,CAAC,MAAM,IAAI/G,IAAI,CAACgH,YAAY,EAAE;QAC5BT,KAAK,oBAAAZ,MAAA,CAAoB3F,IAAI,CAACgH,YAAY,CAAE;MAC9C;IACF;IAEA,IAAMC,YAAY,GAAA7G,aAAA,CAAAA,aAAA,KAAQiG,KAAK;MAAEE,KAAK,EAALA;IAAK,EAAE;IAExC,IAAMW,YAAY,GAAG,IAAI7B,GAAG,CAACD,YAAY,CAAC+B,OAAO,CAAC;IAClDD,YAAY,CAACE,GAAG,CAACf,KAAK,CAACtB,EAAE,EAAEkC,YAAY,CAAC;IACxC7B,YAAY,CAAC+B,OAAO,GAAGD,YAAY;EACrC,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMG,YAAY,GAAGlJ,WAAW,CAC9B,UAAC6B,IAAiB,EAAEqG,KAAY,EAAEiB,IAAoB,EAAK;IACzD,IAAM1C,GAAa,GAAG;MACpBG,EAAE,EAAErG,EAAE,CAAC,CAAC;MACR6I,MAAM,EAAElB,KAAK,CAACkB,MAAM;MACpBC,YAAY,EAAEnB,KAAK,CAACmB,YAAY;MAChCC,OAAO,EAAEpB,KAAK,CAACtB,EAAE;MACjB2C,SAAS,EAAErB,KAAK,CAACqB,SAAS;MAC1BC,MAAM,EAAEtB,KAAK,CAACsB,MAAM,IAAI,CAAC;MACzBL,IAAI,EAAJA;IACF,CAAC;IAED,IAAItH,IAAI,EAAE;MACR,IAAIA,IAAI,CAAC4H,UAAU,EAAE;QACnBhD,GAAG,CAACgD,UAAU,GAAG;UACfC,WAAW,EAAE7H,IAAI,CAAC4H,UAAU,CAACC,WAAW;UACxCC,IAAI,EAAE9H,IAAI,CAAC4H,UAAU,CAACE,IAAI;UAC1BC,QAAQ,EAAE/H,IAAI,CAAC4H,UAAU,CAACG;QAC5B,CAAC;MACH,CAAC,MAAM,IAAI/H,IAAI,CAACE,IAAI,EAAE;QAAA,IAAA8H,qBAAA;QACpBpD,GAAG,CAAC1E,IAAI,GAAGF,IAAI,CAACE,IAAI;QACpB0E,GAAG,CAACzE,OAAO,GAAGH,IAAI,CAACG,OAAO;QAE1B,IAAIkG,KAAK,aAALA,KAAK,gBAAA2B,qBAAA,GAAL3B,KAAK,CAAE4B,iBAAiB,cAAAD,qBAAA,gBAAAA,qBAAA,GAAxBA,qBAAA,CAA0BE,gBAAgB,cAAAF,qBAAA,eAA1CA,qBAAA,CAA4CG,eAAe,EAAE;UAC/DvD,GAAG,CAACuD,eAAe,GACjB9B,KAAK,CAAC4B,iBAAiB,CAACC,gBAAgB,CAACC,eAAe;QAC5D;MACF,CAAC,MAAM,IAAInI,IAAI,CAACoI,QAAQ,EAAE;QACxBxD,GAAG,CAACwD,QAAQ,GAAG,CAACpI,IAAI,CAACoI,QAAQ,CAAC;MAChC,CAAC,MAAM,IAAIpI,IAAI,CAACiF,YAAY,EAAE;QAC5BL,GAAG,CAACK,YAAY,GAAGjF,IAAI,CAACiF,YAAY;MACtC,CAAC,MAAM,IAAIjF,IAAI,CAAC6E,gBAAgB,EAAE;QAChCD,GAAG,CAACC,gBAAgB,GAAG7E,IAAI,CAAC6E,gBAAgB;MAC9C,CAAC,MAAM,IAAI7E,IAAI,CAAC2G,cAAc,EAAE;QAC9B/B,GAAG,CAAC+B,cAAc,GAAG3G,IAAI,CAAC2G,cAAc;MAC1C,CAAC,MAAM,IAAI3G,IAAI,CAAC8G,mBAAmB,EAAE;QACnClC,GAAG,CAACkC,mBAAmB,GAAG9G,IAAI,CAAC8G,mBAAmB;MACpD;IACF;IAEA,IAAI9G,IAAI,IAAIqI,MAAM,CAACC,IAAI,CAACtI,IAAI,CAAC,CAACyF,MAAM,GAAG,CAAC,EAAE;MACxCH,aAAa,CAACV,GAAG,CAAC;IACpB;EACF,CAAC,EACD,CAACU,aAAa,CAChB,CAAC;;EAED;EACA,IAAMiD,WAAW,GAAGpK,WAAW,CAC7B,UAACkI,KAAY,EAAErG,IAAU,EAAK;IAAA,IAAAwI,sBAAA;IAC5B,IAAML,eAAe,IAAAK,sBAAA,GACnBnC,KAAK,CAAC4B,iBAAiB,cAAAO,sBAAA,gBAAAA,sBAAA,GAAvBA,sBAAA,CAAyBN,gBAAgB,cAAAM,sBAAA,uBAAzCA,sBAAA,CAA2CL,eAAe;IAC5D,IAAInI,IAAI,CAACE,IAAI,EAAE;MACb,IAAMuI,QAAQ,GAAGzI,IAAI,CAACE,IAAI;MAE1B,IACE,CAACiF,UAAU,CAACgC,OAAO,IACnBhC,UAAU,CAACgC,OAAO,CAAChH,OAAO,KAAKH,IAAI,CAACG,OAAO,EAC3C;QACA,IAAMuI,UAAoB,GAAG;UAC3B3D,EAAE,EAAErG,EAAE,CAAC,CAAC;UACR6I,MAAM,EAAElB,KAAK,CAACkB,MAAM;UACpBC,YAAY,EAAEnB,KAAK,CAACmB,YAAY;UAChCC,OAAO,EAAEpB,KAAK,CAACtB,EAAE;UACjB2C,SAAS,EAAErB,KAAK,CAACqB,SAAS;UAC1BJ,IAAI,EAAE,KAAK;UACXpH,IAAI,EAAEuI,QAAQ;UACdd,MAAM,EAAEtB,KAAK,CAACsB,MAAM,IAAI,CAAC;UACzBxH,OAAO,EAAEH,IAAI,CAACG;QAChB,CAAC;QAED,IAAIgI,eAAe,EAAE;UACnBO,UAAU,CAACP,eAAe,GAAGA,eAAe;QAC9C;QAEAhD,UAAU,CAACgC,OAAO,GAAGuB,UAAU;QAC/B;QACAtC,WAAW,CAACpG,IAAI,EAAEqG,KAAK,CAAC;QACxB;QACAf,aAAa,CAACoD,UAAU,CAAC;MAC3B,CAAC,MAAM;QACL,IAAIrC,KAAK,CAACsC,OAAO,KAAK,KAAK,EAAE;UAC3BvC,WAAW,CAACpG,IAAI,EAAEqG,KAAK,CAAC;UACxBlB,UAAU,CAACgC,OAAO,GAAG,IAAI;UACzB;QACF;QACA,IAAIgB,eAAe,EAAE;UACnBhD,UAAU,CAACgC,OAAO,GAAA/G,aAAA,CAAAA,aAAA,KACb+E,UAAU,CAACgC,OAAO;YACrBgB,eAAe,EAAfA;UAAe,EAChB;QACH;QACAhD,UAAU,CAACgC,OAAO,GAAA/G,aAAA,CAAAA,aAAA,KACb+E,UAAU,CAACgC,OAAO;UACrBjH,IAAI,EAAE,CAACiF,UAAU,CAACgC,OAAO,CAACjH,IAAI,IAAI,EAAE,IAAIuI;QAAQ,EACjD;QACDvC,aAAa,CAACf,UAAU,CAACgC,OAAO,CAAC;MACnC;IACF,CAAC,MAAM;MACLhC,UAAU,CAACgC,OAAO,GAAG,IAAI;MACzBf,WAAW,CAACpG,IAAI,EAAEqG,KAAK,CAAC;MACxBgB,YAAY,CAACrH,IAAI,EAAEqG,KAAK,EAAE,KAAK,CAAC;IAClC;EACF,CAAC,EACD,CAACD,WAAW,EAAEiB,YAAY,EAAE/B,aAAa,EAAEY,aAAa,CAC1D,CAAC;;EAED;EACA,IAAM0C,mBAAmB,GAAGzK,WAAW,CACrC,UAACkI,KAAY,EAAK;IAAA,IAAAwC,cAAA;IAChB;IACA,IAAM7I,IAAI,GAAG,CAAAqG,KAAK,aAALA,KAAK,gBAAAwC,cAAA,GAALxC,KAAK,CAAEyC,OAAO,cAAAD,cAAA,gBAAAA,cAAA,GAAdA,cAAA,CAAgBtJ,KAAK,cAAAsJ,cAAA,uBAArBA,cAAA,CAAwB,CAAC,CAAC,KAAI,IAAI;IAC/C,IAAM3I,IAAI,GAAG,CAAAF,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,IAAI,KAAI,EAAE;IAC7BkG,WAAW,CAACpG,IAAI,EAAEqG,KAAK,CAAC;IACxB,IAAInG,IAAI,EAAE;MACRiE,qBAAqB,CAAC,UAACoB,IAAI;QAAA,UAAAI,MAAA,CAAAC,kBAAA,CAASL,IAAI,IAAErF,IAAI;MAAA,CAAC,CAAC;IAClD;EACF,CAAC,EACD,CAACkG,WAAW,EAAEd,aAAa,CAC7B,CAAC;;EAED;EACA,IAAMyD,mBAAmB,GAAG5K,WAAW,CACrC,UAAC6K,SAAc,EAAK;IAClB5C,WAAW,CAAC,IAAI,EAAE4C,SAAS,CAAC;IAC5B1D,aAAa,CAAC;MACZP,EAAE,EAAErG,EAAE,CAAC,CAAC;MACRwB,IAAI,EAAE8I,SAAS,CAAChC,YAAY;MAC5BM,IAAI,EAAE;IACR,CAAC,CAAC;EACJ,CAAC,EACD,CAAClB,WAAW,EAAEd,aAAa,CAC7B,CAAC;;EAED;EACA,IAAM2D,qBAAqB,GAAG9K,WAAW,CACvC,UAACkI,KAAU,EAAK;IACd,IAAIA,KAAK,CAACG,OAAO,IAAIH,KAAK,CAACG,OAAO,CAACC,aAAa,EAAE;MAChDL,WAAW,CAAC,IAAI,EAAEC,KAAK,CAAC;MACxBgB,YAAY,CAAC,IAAI,EAAEhB,KAAK,EAAE,KAAK,CAAC;IAClC;EACF,CAAC,EACD,CAACD,WAAW,EAAEiB,YAAY,CAC5B,CAAC;;EAED;EACA,IAAM6B,kBAAkB,GAAG/K,WAAW,CACpC,UAACgL,MAAuB,EAAK;IAC3B,OAAO,IAAIC,OAAO,CAAO,UAACC,OAAO,EAAK;MACpC,IAAIpH,IAAI,CAACkF,OAAO,EAAE;QAChBlF,IAAI,CAACkF,OAAO,CAACmC,KAAK,CAAC,CAAC;MACtB;MACAtH,UAAU,CAAC,IAAI,CAAC;MAChBC,IAAI,CAACkF,OAAO,GAAG,IAAIoC,eAAe,CAAC,CAAC;MACpC,IAAMC,UAAU,MAAA7D,MAAA,CAAM9E,GAAG,2CAAA8E,MAAA,CAAwCxD,KAAK,sBAAmB;MAEzF5D,gBAAgB,CAACiL,UAAU,EAAE;QAC3BC,MAAM,EAAE,MAAM;QACdC,MAAM,EAAEzH,IAAI,CAACkF,OAAO,CAACuC,MAAM;QAC3BC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACV,MAAM,CAAC;QAC5BW,cAAc,EAAE,IAAI;QACpBC,OAAO,EAAE;UACP,cAAc,EAAE,kBAAkB;UAClC,eAAe,EAAE,UAAU;UAC3BC,MAAM,EAAE,MAAM;UACdC,aAAa,YAAAtE,MAAA,CAAY1E,KAAK;QAChC,CAAC;QACKiJ,MAAM,WAAAA,OAACC,QAAQ,EAAE;UAAA,OAAAC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,UAAAC,QAAA;YAAA,OAAAF,mBAAA,GAAAG,IAAA,UAAAC,SAAAC,QAAA;cAAA,kBAAAA,QAAA,CAAAnF,IAAA,GAAAmF,QAAA,CAAAC,IAAA;gBAAA;kBACrB,IACER,QAAQ,CAACS,EAAE,IACXT,QAAQ,CAACJ,OAAO,CAACc,GAAG,CAAC,cAAc,CAAC,KAAKrM,sBAAsB,EAC/D;oBACA;kBAAA,CACD,MAAM,IAAI2L,QAAQ,CAACW,MAAM,KAAK,GAAG,IAAIX,QAAQ,CAACW,MAAM,KAAK,GAAG,EAAE;oBAC7D9I,UAAU,CAAC,KAAK,CAAC;oBACjBR,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG;sBACRqF,IAAI,EAAE/H,SAAS,CAACiM,SAAS;sBACzBtM,OAAO,EAAE0L,QAAQ,CAACW,MAAM,KAAK,GAAG,GAAG,mBAAmB,GAAG;oBAC3D,CAAC,CAAC;oBACFzB,OAAO,CAAC,CAAC;kBACX,CAAC,MAAM,IACLc,QAAQ,CAACW,MAAM,IAAI,GAAG,IACtBX,QAAQ,CAACW,MAAM,GAAG,GAAG,IACrBX,QAAQ,CAACW,MAAM,KAAK,GAAG,EACvB;oBACAzB,OAAO,CAAC,CAAC;kBACX,CAAC,MAAM;oBACLA,OAAO,CAAC,CAAC;kBACX;gBAAC;gBAAA;kBAAA,OAAAqB,QAAA,CAAAM,IAAA;cAAA;YAAA,GAAAT,OAAA;UAAA;QACH,CAAC;QACDU,SAAS,EAAE,SAAAA,UAAC5E,KAAK,EAAK;UACpB,IAAM6E,OAAO,GAAG7L,aAAa,CAACgH,KAAK,CAACyB,IAAI,EAAE,CAAC,CAAC,CAAC;;UAE7C;UACA,IAAIkB,SAAgB,GAAGkC,OAAO;UAC9B,IAAIA,OAAO,CAACpD,IAAI,IAAIoD,OAAO,CAAC1L,MAAM,EAAE;YAClC;YACAwJ,SAAS,GAAA5I,aAAA,CAAAA,aAAA,KACJ8K,OAAO,CAACpD,IAAI;cACfgB,OAAO,EAAEoC,OAAO,CAACpD,IAAI;cAAE;cACvBN,YAAY,EAAE0D,OAAO,CAAC1L,MAAM,CAACgI,YAAY;cACzC2D,SAAS,EAAED,OAAO,CAAC1L,MAAM,CAAC2L,SAAS;cACnCpG,EAAE,EAAEmG,OAAO,CAAC1L,MAAM,CAACgI;YAAY,EAChC;UACH;UAEA,IAAIwB,SAAS,CAACoC,KAAK,EAAE;YACnB3M,OAAO,CAAC4M,OAAO,CAACrC,SAAS,CAACoC,KAAK,CAAC;YAChC;UACF;UACAzJ,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGqH,SAAS,CAAC;UACrB,IAAIA,SAAS,CAACF,OAAO,EAAE;YACrB;YACA,IAAIE,SAAS,CAACF,OAAO,CAACxB,IAAI,KAAK,UAAU,EAAE;cACzCsB,mBAAmB,CAACI,SAAS,CAAC;cAC9B;YACF;YACA;YAAA,IAAAsC,UAAA,GAAA3L,0BAAA,CACmBL,gBAAgB,CAAC0J,SAAS,CAACF,OAAO,CAACvJ,KAAK,CAAC;cAAAgM,MAAA;YAAA;cAA5D,KAAAD,UAAA,CAAAzL,CAAA,MAAA0L,MAAA,GAAAD,UAAA,CAAAxL,CAAA,IAAAC,IAAA,GAA8D;gBAAA,IAAnDC,IAAI,GAAAuL,MAAA,CAAAtL,KAAA;gBACbsI,WAAW,CAACS,SAAS,EAAEhJ,IAAI,CAAC;cAC9B;YAAC,SAAAO,GAAA;cAAA+K,UAAA,CAAA9K,CAAA,CAAAD,GAAA;YAAA;cAAA+K,UAAA,CAAA7K,CAAA;YAAA;UACH,CAAC,MAAM,IAAIuI,SAAS,CAAChC,YAAY,EAAE;YACjC+B,mBAAmB,CAACC,SAAS,CAAC;UAChC,CAAC,MAAM,IAAIA,SAAS,CAACxC,OAAO,EAAE;YAC5ByC,qBAAqB,CAACD,SAAS,CAAC;UAClC;QACF,CAAC;QACDwC,OAAO,EAAE,SAAAA,QAAA,EAAM;UACbxJ,UAAU,CAAC,KAAK,CAAC;UACjB,IAAImD,UAAU,CAACgC,OAAO,EAAE;YAAA,IAAAsE,mBAAA;YACtBhK,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG,EAAAgK,mBAAA,GAAAtG,UAAU,CAACgC,OAAO,cAAAsE,mBAAA,uBAAlBA,mBAAA,CAAoBvL,IAAI,KAAI,EAAE,EAAEiF,UAAU,CAACgC,OAAO,CAAC;UACjE;UACAhC,UAAU,CAACgC,OAAO,GAAG,IAAI;UACzBkC,OAAO,CAAC,CAAC;QACX,CAAC;QACDqC,OAAO,EAAE,SAAAA,QAACN,KAAK,EAAK;UAClBpJ,UAAU,CAAC,KAAK,CAAC;UACjBqH,OAAO,CAAC,CAAC;UACTsC,OAAO,CAACP,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;UAC3C,MAAMA,KAAK;QACb;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EACD,CACE/J,IAAI,EACJ8B,gBAAgB,EAChB8F,qBAAqB,EACrBF,mBAAmB,EACnBR,WAAW,CAEf,CAAC;;EAED;EACA,IAAMqD,SAAS;IAAA,IAAAC,KAAA,GAAAzB,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAwB,SAAAC,KAAA;MAAA,IAAAC,UAAA,EAAA9L,IAAA,EAAA+L,WAAA,EAAAC,KAAA,EAAArH,gBAAA;MAAA,OAAAwF,mBAAA,GAAAG,IAAA,UAAA2B,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA7G,IAAA,GAAA6G,SAAA,CAAAzB,IAAA;UAAA;YAAAqB,UAAA,GAAAD,KAAA,CAChB7L,IAAI,EAAJA,IAAI,GAAA8L,UAAA,cAAG,EAAE,GAAAA,UAAA,EAAAC,WAAA,GAAAF,KAAA,CACTG,KAAK,EAALA,KAAK,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA,EACVpH,gBAAgB,GAAAkH,KAAA,CAAhBlH,gBAAgB;YAAA,KAEZ9C,OAAO;cAAAqK,SAAA,CAAAzB,IAAA;cAAA;YAAA;YAAA,OAAAyB,SAAA,CAAAC,MAAA;UAAA;YAAA,MACP,CAACnM,IAAI,CAACoM,IAAI,CAAC,CAAC,IAAI,CAACzH,gBAAgB;cAAAuH,SAAA,CAAAzB,IAAA;cAAA;YAAA;YAAA,OAAAyB,SAAA,CAAAC,MAAA;UAAA;YACrC;YACAlI,qBAAqB,CAAC,EAAE,CAAC;YACzB;YACAI,WAAW,CAAC,UAACgB,IAAI,EAAK;cACpB,IAAIgH,IAAI,GAAA3G,kBAAA,CAAOL,IAAI,CAAC;cACpB;cACA,IAAIrF,IAAI,CAACoM,IAAI,CAAC,CAAC,EAAE;gBACfC,IAAI,CAAClM,IAAI,CAAC;kBACR0E,EAAE,EAAErG,EAAE,CAAC,CAAC;kBACR4I,IAAI,EAAE,MAAM;kBACZpH,IAAI,EAAJA;gBACF,CAAC,CAAC;cACJ;cACA;cACA,IAAIgM,KAAK,CAACzG,MAAM,GAAG,CAAC,EAAE;gBACpB8G,IAAI,CAAClM,IAAI,CAAC;kBACR0E,EAAE,EAAErG,EAAE,CAAC,CAAC;kBACR4I,IAAI,EAAE,MAAM;kBACZc,QAAQ,EAAE8D,KAAK,CAAClH,GAAG,CAAC,UAACwH,IAAI;oBAAA,IAAAC,cAAA,EAAAC,eAAA,EAAAC,eAAA;oBAAA,OAAM;sBAC7B9E,WAAW,EAAE2E,IAAI,CAACI,QAAQ,IAAIJ,IAAI,CAAC9F,IAAI;sBACvCqB,QAAQ,EAAEyE,IAAI,CAACzE,QAAQ,MAAA0E,cAAA,GAAID,IAAI,CAACrC,QAAQ,cAAAsC,cAAA,uBAAbA,cAAA,CAAe1E,QAAQ;sBAClD8E,OAAO,EAAEL,IAAI,CAACM,OAAO,MAAAJ,eAAA,GAAIF,IAAI,CAACrC,QAAQ,cAAAuC,eAAA,uBAAbA,eAAA,CAAeK,OAAO,OAAAJ,eAAA,GAAIH,IAAI,CAACrC,QAAQ,cAAAwC,eAAA,uBAAbA,eAAA,CAAeG,OAAO;oBAC3E,CAAC;kBAAA,CAAC;gBACJ,CAAC,CAAC;cACJ;cACA;cACA,IAAIjI,gBAAgB,EAAE;gBACpB0H,IAAI,CAAClM,IAAI,CAAC;kBACR0E,EAAE,EAAErG,EAAE,CAAC,CAAC;kBACR4I,IAAI,EAAE,MAAM;kBACZzC,gBAAgB,EAAhBA;gBACF,CAAC,CAAC;cACJ;cACA,OAAO0H,IAAI;YACb,CAAC,CAAC;YAACH,SAAA,CAAAzB,IAAA;YAAA,OACGzB,kBAAkB,CAAA9I,aAAA;cACtB4J,MAAM,EAAE,IAAI;cACZmB,SAAS,EAAEhI,gBAAgB;cAC3B2F,OAAO,EAAE;gBACPxB,IAAI,EAAE,MAAM;gBACZ/H,KAAK,EAAEsF,gBAAgB,GAAG,CAAC;kBAAEA,gBAAgB,EAAhBA;gBAAiB,CAAC,CAAC,GAAG,CAAC;kBAAE3E,IAAI,EAAJA;gBAAK,CAAC;cAC9D,CAAC;cACDgM,KAAK,EAAEA,KAAK,CAAClH,GAAG,CAAC,UAACwH,IAAI;gBAAA,IAAAQ,eAAA,EAAAC,eAAA,EAAAC,eAAA,EAAAC,eAAA,EAAAC,eAAA,EAAAC,eAAA;gBAAA,OAAM;kBAC1BT,QAAQ,EAAEJ,IAAI,CAACI,QAAQ,MAAAI,eAAA,GAAIR,IAAI,CAACrC,QAAQ,cAAA6C,eAAA,uBAAbA,eAAA,CAAeJ,QAAQ;kBAClDU,MAAM,EAAEd,IAAI,CAACc,MAAM,MAAAL,eAAA,GAAIT,IAAI,CAACrC,QAAQ,cAAA8C,eAAA,uBAAbA,eAAA,CAAeK,MAAM;kBAC5CR,OAAO,EAAEN,IAAI,CAACM,OAAO,MAAAI,eAAA,GAAIV,IAAI,CAACrC,QAAQ,cAAA+C,eAAA,uBAAbA,eAAA,CAAeH,OAAO,OAAAI,eAAA,GAAIX,IAAI,CAACrC,QAAQ,cAAAgD,eAAA,uBAAbA,eAAA,CAAeL,OAAO;kBACzEzL,IAAI,EAAEmL,IAAI,CAACnL,IAAI,MAAA+L,eAAA,GAAIZ,IAAI,CAACrC,QAAQ,cAAAiD,eAAA,uBAAbA,eAAA,CAAeG,QAAQ;kBAC1CxF,QAAQ,EAAEyE,IAAI,CAACzE,QAAQ,MAAAsF,eAAA,GAAIb,IAAI,CAACrC,QAAQ,cAAAkD,eAAA,uBAAbA,eAAA,CAAetF,QAAQ;gBACpD,CAAC;cAAA,CAAC;YAAC,GACCvD,aAAa,CAAC2C,OAAO,KAAK7G,SAAS,IAAI;cAAEkN,UAAU,EAAEhJ,aAAa,CAAC2C;YAAQ,CAAC,CACjF,CAAC;UAAA;YACF;YACAsG,oBAAoB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAArB,SAAA,CAAApB,IAAA;QAAA;MAAA,GAAAc,QAAA;IAAA,CACxB;IAAA,gBA5DKF,SAASA,CAAA8B,EAAA;MAAA,OAAA7B,KAAA,CAAA8B,KAAA,OAAA3H,SAAA;IAAA;EAAA,GA4Dd;;EAED;EACA,IAAM4H,MAAM,GAAG,SAATA,MAAMA,CAAA,EAAS;IACnB,IAAI7L,OAAO,EAAE;IACb,IAAIuC,QAAQ,CAACmB,MAAM,KAAK,CAAC,EAAE;IAC3BlB,WAAW,CAAC,UAACgB,IAAI,EAAK;MACpB,IAAMsI,WAAW,GAAAjI,kBAAA,CAAOL,IAAI,CAAC;MAC7B;MACA,IAAMuI,WAAW,GAAGD,WAAW,CAACE,aAAa,CAC3C,UAACnJ,GAAG;QAAA,OAAKA,GAAG,CAAC0C,IAAI,KAAK,KAAK;MAAA,CAC7B,CAAC;MACD,IAAIwG,WAAW,KAAK,CAAC,CAAC,EAAE;QACtBD,WAAW,CAACG,MAAM,CAACF,WAAW,EAAE,CAAC,CAAC;MACpC;MACA;MACA3J,qBAAqB,CAAC,EAAE,CAAC;MACzB;MACA,IAAM8J,eAAe,GAAGJ,WAAW,CAACK,QAAQ,CAC1C,UAACtJ,GAAG;QAAA,OAAKA,GAAG,CAAC0C,IAAI,KAAK,MAAM;MAAA,CAC9B,CAAC;MACD,IAAI2G,eAAe,EAAE;QACnB,IAAAE,qBAAA,GAAqCF,eAAe,CAA5C/N,IAAI;UAAJA,IAAI,GAAAiO,qBAAA,cAAG,EAAE,GAAAA,qBAAA;UAAAC,qBAAA,GAAoBH,eAAe,CAAjC7F,QAAQ;UAARA,QAAQ,GAAAgG,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAChClF,kBAAkB,CAAA9I,aAAA;UAChB4J,MAAM,EAAE,IAAI;UACZmB,SAAS,EAAEhI,gBAAgB;UAC3B2F,OAAO,EAAE;YACPxB,IAAI,EAAE,MAAM;YACZ/H,KAAK,EAAE,CACL;cACEW,IAAI,EAAJA;YACF,CAAC;UAEL,CAAC;UACDgM,KAAK,EAAE9D,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEpD,GAAG,CAAC,UAACwH,IAAI;YAAA,OAAM;cAC9BI,QAAQ,EAAEJ,IAAI,CAAC3E,WAAW;cAC1BiF,OAAO,EAAEN,IAAI,CAACK,OAAO;cACrB9E,QAAQ,EAAEyE,IAAI,CAACzE;YACjB,CAAC;UAAA,CAAC;QAAC,GACCvD,aAAa,CAAC2C,OAAO,KAAK7G,SAAS,IAAI;UAAEkN,UAAU,EAAEhJ,aAAa,CAAC2C;QAAQ,CAAC,CACjF,CAAC;MACJ;MAEA,OAAO0G,WAAW;IACpB,CAAC,CAAC;EACJ,CAAC;;EAED;EACA,IAAMQ,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAoB,EAAEC,SAAkB,EAAK;IAClE,IAAM1J,gBAAgB,GAAG;MACvBE,EAAE,EAAEuJ,MAAM,CAACvJ,EAAE;MACb2B,IAAI,EAAE4H,MAAM,CAAC5H,IAAI;MACjByD,QAAQ,EAAE;QAAEoE,SAAS,EAATA;MAAU;IACxB,CAAC;IACD3C,SAAS,CAAC;MAAE/G,gBAAgB,EAAhBA;IAAiB,CAAC,CAAC;EACjC,CAAC;;EAED;EACA,IAAM2J,WAAW,GAAG,SAAdA,WAAWA,CAAItO,IAAY,EAAK;IACpC,IAAI6B,OAAO,EAAE;IACb,IAAI,CAAC7B,IAAI,CAACoM,IAAI,CAAC,CAAC,EAAE;IAClBnI,qBAAqB,CAAC,EAAE,CAAC;IACzByH,SAAS,CAAC;MAAE1L,IAAI,EAAJA;IAAK,CAAC,CAAC;EACrB,CAAC;;EAED;EACA,IAAMuO,QAAQ,GAAGtQ,WAAW,CAAC,YAAM;IAAA,IAAAuQ,aAAA;IACjC,CAAAA,aAAA,GAAAzM,IAAI,CAACkF,OAAO,cAAAuH,aAAA,eAAZA,aAAA,CAAcpF,KAAK,CAAC,CAAC;IACrBtH,UAAU,CAAC,KAAK,CAAC;IACjBmD,UAAU,CAACgC,OAAO,GAAG,IAAI;EAC3B,CAAC,EAAE,CAAClF,IAAI,CAAC,CAAC;;EAEV;EACA,IAAM0M,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACtB,IAAMC,YAAY,GAAGpQ,EAAE,CAAC,CAAC;IACzB0E,mBAAmB,CAAC0L,YAAY,CAAC;IACjC;IACAL,QAAQ,CAAC,CAAC;IACV1K,WAAW,CAAC,CAAAxB,OAAO,aAAPA,OAAO,gBAAAqM,qBAAA,GAAPrM,OAAO,CAAEwM,cAAc,cAAAH,qBAAA,uBAAvBA,qBAAA,CAAyB9K,QAAQ,KAAI,EAAE,CAAC;IACpDS,WAAW,CAAC,EAAE,CAAC;IACfJ,qBAAqB,CAAC,CAAA5B,OAAO,aAAPA,OAAO,gBAAAsM,sBAAA,GAAPtM,OAAO,CAAEwM,cAAc,cAAAF,sBAAA,uBAAvBA,sBAAA,CAAyB9I,mBAAmB,KAAI,EAAE,CAAC;EAC3E,CAAC;;EAED;EACA,IAAMiJ,cAAc,GAAG,SAAjBA,cAAcA,CAAI1K,QAAe,EAAwB;IAAA,IAAtB2K,SAAS,GAAAjJ,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAA1F,SAAA,GAAA0F,SAAA,MAAG,KAAK;IACxD,IAAMkJ,MAAkB,GAAG,EAAE;IAC7B5K,QAAQ,CAACK,OAAO,CAAC,UAACwK,IAAI,EAAK;MACzB,IAAI,CAACA,IAAI,IAAI,CAACA,IAAI,CAACrG,OAAO,IAAI,CAACsG,KAAK,CAACC,OAAO,CAACF,IAAI,CAACrG,OAAO,CAACvJ,KAAK,CAAC,EAAE;MAElE,IAAM+H,IAAI,GACR,CAAC6H,IAAI,CAACrG,OAAO,CAACxB,IAAI,IAAI,EAAE,EAAEgI,WAAW,CAAC,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;MACrE,IAAM/P,KAAK,GAAG6P,KAAK,CAACC,OAAO,CAACF,IAAI,CAACrG,OAAO,CAACvJ,KAAK,CAAC,GAC3C4P,IAAI,CAACrG,OAAO,CAACvJ,KAAK,CAACgQ,MAAM,CAAC,UAACC,CAAM,EAAK;QACpC,IAAI,CAACA,CAAC,EAAE,OAAO,KAAK;QACpB,OAAOC,OAAO,CACZD,CAAC,CAACtP,IAAI,IACNsP,CAAC,CAAC5H,UAAU,IACZ4H,CAAC,CAACvK,YAAY,IACduK,CAAC,CAAC3K,gBAAgB,IAClB2K,CAAC,CAACpH,QAAQ,IACVoH,CAAC,CAAC7I,cAAc,IAChB6I,CAAC,CAAC1I,mBAAmB,IACrB0I,CAAC,CAACxI,YACJ,CAAC;MACH,CAAC,CAAC,GACF,EAAE;MAEN,IAAIzH,KAAK,CAACkG,MAAM,KAAK,CAAC,EAAE;;MAExB;MACA,IAAMiK,SAAS,GAAGnQ,KAAK,CAACgQ,MAAM,CAAC,UAACC,CAAM;QAAA,OAAKA,CAAC,CAACtP,IAAI,IAAIsP,CAAC,CAACxI,YAAY,IAAIwI,CAAC,CAAC5H,UAAU;MAAA,EAAC;MACpF,IAAM+H,aAAa,GAAGpQ,KAAK,CAACgQ,MAAM,CAAC,UAACC,CAAM;QAAA,OAAKA,CAAC,CAACpH,QAAQ;MAAA,EAAC;MAC1D,IAAMwH,UAAU,GAAGrQ,KAAK,CAACgQ,MAAM,CAAC,UAACC,CAAM;QAAA,OAAK,CAACA,CAAC,CAACtP,IAAI,IAAI,CAACsP,CAAC,CAACxI,YAAY,IAAI,CAACwI,CAAC,CAAC5H,UAAU,IAAI,CAAC4H,CAAC,CAACpH,QAAQ;MAAA,EAAC;;MAEvG;MACA,IAAIsH,SAAS,CAACjK,MAAM,GAAG,CAAC,IAAIkK,aAAa,CAAClK,MAAM,GAAG,CAAC,EAAE;QACpD,IAAMb,GAAa,GAAG;UACpBG,EAAE,EAAErG,EAAE,CAAC,CAAC;UACR6I,MAAM,EAAE4H,IAAI,CAAC5H,MAAM;UACnBC,YAAY,EAAE2H,IAAI,CAAC3H,YAAY;UAC/BC,OAAO,EAAE0H,IAAI,CAACpK,EAAE;UAChB2C,SAAS,EAAEyH,IAAI,CAACzH,SAAS;UACzBC,MAAM,EAAEwH,IAAI,CAACxH,MAAM;UACnBL,IAAI,EAAJA,IAAI;UACJuI,GAAG,EAAEV;QACP,CAAa;QAAC,IAAAW,UAAA,GAAAnQ,0BAAA,CAEK+P,SAAS;UAAAK,MAAA;QAAA;UAA5B,KAAAD,UAAA,CAAAjQ,CAAA,MAAAkQ,MAAA,GAAAD,UAAA,CAAAhQ,CAAA,IAAAC,IAAA,GAA8B;YAAA,IAAnBC,IAAI,GAAA+P,MAAA,CAAA9P,KAAA;YACb,IAAID,IAAI,CAAC4H,UAAU,EAAE;cACnBhD,GAAG,CAACgD,UAAU,GAAG;gBACfC,WAAW,EAAE7H,IAAI,CAAC4H,UAAU,CAACC,WAAW;gBACxCC,IAAI,EAAE9H,IAAI,CAAC4H,UAAU,CAACE,IAAI;gBAC1BC,QAAQ,EAAE/H,IAAI,CAAC4H,UAAU,CAACG;cAC5B,CAAQ;YACV;YACA,IAAI/H,IAAI,CAACE,IAAI,EAAE;cACb0E,GAAG,CAAC1E,IAAI,GAAG,CAAC0E,GAAG,CAAC1E,IAAI,GAAG0E,GAAG,CAAC1E,IAAI,GAAG,IAAI,GAAG,EAAE,IAAIF,IAAI,CAACE,IAAI;cACxD,IAAI,OAAOF,IAAI,CAACG,OAAO,KAAK,WAAW,EAAEyE,GAAG,CAACzE,OAAO,GAAGH,IAAI,CAACG,OAAO;YACrE;YACA,IAAIH,IAAI,CAACgH,YAAY,EAAE;cACrBpC,GAAG,CAAC1E,IAAI,GAAG,CAAC0E,GAAG,CAAC1E,IAAI,GAAG0E,GAAG,CAAC1E,IAAI,GAAG,IAAI,GAAG,EAAE,IAAIF,IAAI,CAACgH,YAAY;YAClE;UACF;QAAC,SAAAzG,GAAA;UAAAuP,UAAA,CAAAtP,CAAA,CAAAD,GAAA;QAAA;UAAAuP,UAAA,CAAArP,CAAA;QAAA;QAED,IAAIkP,aAAa,CAAClK,MAAM,GAAG,CAAC,EAAE;UAC5Bb,GAAG,CAACwD,QAAQ,GAAGuH,aAAa,CAAC3K,GAAG,CAAC,UAAChF,IAAS;YAAA,OAAM;cAC/C6H,WAAW,EAAE7H,IAAI,CAACoI,QAAQ,CAACP,WAAW,IAAI,EAAE;cAC5CgF,OAAO,EAAE7M,IAAI,CAACoI,QAAQ,CAACyE,OAAO;cAC9B9E,QAAQ,EAAE/H,IAAI,CAACoI,QAAQ,CAACL;YAC1B,CAAC;UAAA,CAAC,CAAC;QACL;QAEAmH,MAAM,CAAC7O,IAAI,CAACuE,GAAG,CAAC;MAClB;;MAEA;MACAgL,UAAU,CAACjL,OAAO,CAAC,UAAC3E,IAAS,EAAK;QAChC,IAAM4E,GAAa,GAAG;UACpBG,EAAE,EAAErG,EAAE,CAAC,CAAC;UACR6I,MAAM,EAAE4H,IAAI,CAAC5H,MAAM;UACnBC,YAAY,EAAE2H,IAAI,CAAC3H,YAAY;UAC/BC,OAAO,EAAE0H,IAAI,CAACpK,EAAE;UAChB2C,SAAS,EAAEyH,IAAI,CAACzH,SAAS;UACzBC,MAAM,EAAEwH,IAAI,CAACxH,MAAM;UACnBL,IAAI,EAAJA,IAAI;UACJuI,GAAG,EAAEV;QACP,CAAa;QAEb,IAAInP,IAAI,CAACiF,YAAY,EAAEL,GAAG,CAACK,YAAY,GAAGjF,IAAI,CAACiF,YAAY;QAC3D,IAAIjF,IAAI,CAAC2G,cAAc,EAAE/B,GAAG,CAAC+B,cAAc,GAAG3G,IAAI,CAAC2G,cAAc;QACjE,IAAI3G,IAAI,CAAC8G,mBAAmB,EAC1BlC,GAAG,CAACkC,mBAAmB,GAAG9G,IAAI,CAAC8G,mBAAmB;QACpD;QACA,IAAI9G,IAAI,CAAC6E,gBAAgB,EAAE;UACzB;UACA,IAAMmL,eAAe,GAAGd,MAAM,CAACe,IAAI,CACjC,UAACrL,GAAG;YAAA,IAAAsL,kBAAA,EAAAC,qBAAA;YAAA,OAAK,EAAAD,kBAAA,GAAAtL,GAAG,CAACK,YAAY,cAAAiL,kBAAA,uBAAhBA,kBAAA,CAAkBnL,EAAE,QAAAoL,qBAAA,GAAKnQ,IAAI,CAAC6E,gBAAgB,cAAAsL,qBAAA,uBAArBA,qBAAA,CAAuBpL,EAAE;UAAA,CAC7D,CAAC;UACD,IAAIiL,eAAe,EAAE;YACnBA,eAAe,CAACnL,gBAAgB,GAAG7E,IAAI,CAAC6E,gBAAgB;UAC1D;UACA;QACF;QACAqK,MAAM,CAAC7O,IAAI,CAACuE,GAAG,CAAC;MAClB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFL,WAAW,CAAC,UAACgB,IAAI;MAAA,OAAM0J,SAAS,GAAGC,MAAM,MAAAvJ,MAAA,CAAAC,kBAAA,CAAOL,IAAI,GAAK2J,MAAM,CAAC;IAAA,CAAC,CAAC;EACpE,CAAC;;EAED;EACA,IAAMkB,iBAAiB;IAAA,IAAAC,KAAA,GAAAjG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAgG,SAAOnF,SAAiB;MAAA,IAAAoF,qBAAA,EAAAzI,IAAA,EAAAtI,MAAA,EAAAgR,sBAAA,EAAAC,sBAAA;MAAA,OAAApG,mBAAA,GAAAG,IAAA,UAAAkG,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAApL,IAAA,GAAAoL,SAAA,CAAAhG,IAAA;UAAA;YAAA,KAC5CQ,SAAS;cAAAwF,SAAA,CAAAhG,IAAA;cAAA;YAAA;YAAA,MACPQ,SAAS,KAAKhI,gBAAgB;cAAAwN,SAAA,CAAAhG,IAAA;cAAA;YAAA;YAAA,OAAAgG,SAAA,CAAAtE,MAAA;UAAA;YAGlCjJ,mBAAmB,CAAC+H,SAAS,CAAC,CAAC,CAAC;YAAAwF,SAAA,CAAAhG,IAAA;YAAA,OACD1L,kBAAkB,CAAC;cAChD4B,GAAG,EAAHA,GAAG;cACHsB,KAAK,EAALA,KAAK;cACLgJ,SAAS,EAATA,SAAS;cACTlK,KAAK,EAALA;YACF,CAAC,CAAC;UAAA;YAAAsP,qBAAA,GAAAI,SAAA,CAAAC,IAAA;YALM9I,IAAI,GAAAyI,qBAAA,CAAJzI,IAAI;YAAEtI,MAAM,GAAA+Q,qBAAA,CAAN/Q,MAAM;YAOpB,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqH,IAAI,MAAKjI,gBAAgB,EAAE;cACrCmF,WAAW,CAAC,CAAAxB,OAAO,aAAPA,OAAO,gBAAAiO,sBAAA,GAAPjO,OAAO,CAAEwM,cAAc,cAAAyB,sBAAA,uBAAvBA,sBAAA,CAAyB1M,QAAQ,KAAI,EAAE,CAAC;cACpD;cACA,IAAIsL,KAAK,CAACC,OAAO,CAACvH,IAAI,CAAC,IAAIA,IAAI,CAACrC,MAAM,GAAG,CAAC,EAAE;gBAC1CuJ,cAAc,CAAClH,IAAI,EAAE,IAAI,CAAC;cAC5B,CAAC,MAAM;gBACL3D,qBAAqB,CACnB,CAAA5B,OAAO,aAAPA,OAAO,gBAAAkO,sBAAA,GAAPlO,OAAO,CAAEwM,cAAc,cAAA0B,sBAAA,uBAAvBA,sBAAA,CAAyB1K,mBAAmB,KAAI,EAClD,CAAC;cACH;YACF;YAAC4K,SAAA,CAAAhG,IAAA;YAAA;UAAA;YAED;YACAvH,mBAAmB,CAAC1E,EAAE,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAiS,SAAA,CAAA3F,IAAA;QAAA;MAAA,GAAAsF,QAAA;IAAA,CAE7B;IAAA,gBA5BKF,iBAAiBA,CAAAS,GAAA;MAAA,OAAAR,KAAA,CAAA1C,KAAA,OAAA3H,SAAA;IAAA;EAAA,GA4BtB;;EAED;EACA,IAAMyH,oBAAoB;IAAA,IAAAqD,KAAA,GAAA1G,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAyG,SAAA;MAAA,IAAAC,WAAA;QAAAC,qBAAA;QAAAC,sBAAA;QAAApJ,IAAA;QAAAqJ,UAAA;QAAA3R,MAAA;QAAA4R,cAAA;QAAAC,MAAA;QAAAlG,SAAA;QAAAmG,sBAAA;QAAAC,sBAAA;QAAAC,MAAA,GAAAxL,SAAA;MAAA,OAAAqE,mBAAA,GAAAG,IAAA,UAAAiH,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnM,IAAA,GAAAmM,SAAA,CAAA/G,IAAA;UAAA;YAAOqG,WAAW,GAAAQ,MAAA,CAAA/L,MAAA,QAAA+L,MAAA,QAAAlR,SAAA,GAAAkR,MAAA,MAAG,KAAK;YAAAE,SAAA,CAAAnM,IAAA;YAEnDvD,UAAU,CAAC,IAAI,CAAC;YAAC0P,SAAA,CAAA/G,IAAA;YAAA,OAMP3L,gBAAgB,CAAC;cACzB6B,GAAG,EAAHA,GAAG;cACHsB,KAAK,EAALA,KAAK;cACLlB,KAAK,EAALA,KAAK;cACLuC,QAAQ,EAAEE,iBAAiB,CAACF;YAC9B,CAAC,CAAC;UAAA;YAAAyN,qBAAA,GAAAS,SAAA,CAAAd,IAAA;YAAAM,sBAAA,GAAAD,qBAAA,CARAnJ,IAAI;YAAJA,IAAI,GAAAoJ,sBAAA,cAAG,EAAE,GAAAA,sBAAA;YACTC,UAAU,GAAAF,qBAAA,CAAVE,UAAU;YACV3R,MAAM,GAAAyR,qBAAA,CAANzR,MAAM;YAQR,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqH,IAAI,MAAKjI,gBAAgB,EAAE;cACrC,IAAIkJ,IAAI,CAACrC,MAAM,GAAG,CAAC,EAAE;gBACb2L,cAAc,GAAGtJ,IAAI,CAAC9C,GAAG,CAAC,UAACmK,IAAI,EAAK;kBACxC,OAAO;oBACLwC,GAAG,EAAExC,IAAI,CAAChE,SAAS;oBACnByG,KAAK,EAAEzC,IAAI,CAAC5I,KAAK,IAAI,KAAK;oBAC1BmB,SAAS,EAAE,IAAImK,IAAI,CAAC1C,IAAI,CAAC2C,SAAS,CAAC,CAACC,OAAO,CAAC,CAAC;oBAC7CzN,QAAQ,EAAE,EAAE;oBACZ0N,IAAI,EAAA5R,aAAA,KACC+O,IAAI;kBAEX,CAAC;gBACH,CAAC,CAAC;gBAEFnM,cAAc,CAACoO,cAAc,CAAC;gBAC9B;gBACAzN,oBAAoB,CAAC;kBACnBJ,OAAO,EAAEG,iBAAiB,CAACH,OAAO;kBAClCC,QAAQ,EAAEE,iBAAiB,CAACF,QAAQ;kBACpCF,KAAK,EAAE,CAAA6N,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE7N,KAAK,KAAI;gBAC9B,CAAC,CAAC;gBAAC+N,MAAA,GACmBvJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG,CAAC,CAAC,EAAvBqD,SAAS,GAAAkG,MAAA,CAATlG,SAAS;gBACjB,IAAI/I,gBAAgB,EAAE;kBACpBgO,iBAAiB,CAACjF,SAAS,CAAC;gBAC9B,CAAC,MAAM;kBACL6F,WAAW,IAAIjN,WAAW,CAAC,CAAAxB,OAAO,aAAPA,OAAO,gBAAA+O,sBAAA,GAAP/O,OAAO,CAAEwM,cAAc,cAAAuC,sBAAA,uBAAvBA,sBAAA,CAAyBxN,QAAQ,KAAI,EAAE,CAAC;kBACnEkN,WAAW,IACT7M,qBAAqB,CACnB,CAAA5B,OAAO,aAAPA,OAAO,gBAAAgP,sBAAA,GAAPhP,OAAO,CAAEwM,cAAc,cAAAwC,sBAAA,uBAAvBA,sBAAA,CAAyBxL,mBAAmB,KAAI,EAClD,CAAC;gBACL;gBACA;gBACA,IAAI,CAACpD,WAAW,EAAE;kBAChBjB,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG;oBACVmF,IAAI,EAAEhI,WAAW,CAACoT,yBAAyB;oBAC3CxT,OAAO,EAAE,WAAW;oBACpBqJ,IAAI,EAAE;sBACJqD,SAAS,EAATA;oBACF;kBACF,CAAC,CAAC;kBACFvI,cAAc,CAAC,IAAI,CAAC;gBACtB;cACF,CAAC,MAAM;gBACL;gBACA+L,SAAS,CAAC,CAAC;cACb;YACF,CAAC,MAAM;cACL3L,cAAc,CAAC,EAAE,CAAC;cAClBI,mBAAmB,CAAC1E,EAAE,CAAC,CAAC,CAAC;cACzBqF,WAAW,CAAC,EAAE,CAAC;cACfI,qBAAqB,CAAC,EAAE,CAAC;YAC3B;YAACuN,SAAA,CAAA/G,IAAA;YAAA;UAAA;YAAA+G,SAAA,CAAAnM,IAAA;YAAAmM,SAAA,CAAAQ,EAAA,GAAAR,SAAA;YAEDlQ,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG;cACRqF,IAAI,EAAE/H,SAAS,CAACiM,SAAS;cACzBtM,OAAO,EAAE;YACX,CAAC,CAAC;UAAC;YAAAiT,SAAA,CAAAnM,IAAA;YAEHvD,UAAU,CAAC,KAAK,CAAC;YAAC,OAAA0P,SAAA,CAAAS,MAAA;UAAA;UAAA;YAAA,OAAAT,SAAA,CAAA1G,IAAA;QAAA;MAAA,GAAA+F,QAAA;IAAA,CAErB;IAAA,gBA3EKtD,oBAAoBA,CAAA;MAAA,OAAAqD,KAAA,CAAAnD,KAAA,OAAA3H,SAAA;IAAA;EAAA,GA2EzB;;EAED;EACA,IAAMoM,aAAa;IAAA,IAAAC,KAAA,GAAAjI,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAgI,SAAOnH,SAAiB;MAAA,IAAAoH,mBAAA,EAAA/S,MAAA;MAAA,OAAA6K,mBAAA,GAAAG,IAAA,UAAAgI,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAlN,IAAA,GAAAkN,SAAA,CAAA9H,IAAA;UAAA;YAAA,IACvCQ,SAAS;cAAAsH,SAAA,CAAA9H,IAAA;cAAA;YAAA;YAAA,OAAA8H,SAAA,CAAApG,MAAA;UAAA;YAAAoG,SAAA,CAAA9H,IAAA;YAAA,OACWzL,YAAY,CAAC;cACpC2B,GAAG,EAAHA,GAAG;cACHsB,KAAK,EAALA,KAAK;cACLgJ,SAAS,EAATA,SAAS;cACTlK,KAAK,EAALA;YACF,CAAC,CAAC;UAAA;YAAAsR,mBAAA,GAAAE,SAAA,CAAA7B,IAAA;YALMpR,MAAM,GAAA+S,mBAAA,CAAN/S,MAAM;YAMd,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqH,IAAI,MAAKjI,gBAAgB,EAAE;cACrC;cACA6O,oBAAoB,CAAC,IAAI,CAAC;cAC1B;cACA,IAAItC,SAAS,KAAKhI,gBAAgB,EAAE;gBAClCwL,SAAS,CAAC,CAAC;cACb;YACF,CAAC,MAAM;cACLlQ,OAAO,CAAC2M,KAAK,CAAC,QAAQ,CAAC;YACzB;UAAC;UAAA;YAAA,OAAAqH,SAAA,CAAAzH,IAAA;QAAA;MAAA,GAAAsH,QAAA;IAAA,CACF;IAAA,gBAlBKF,aAAaA,CAAAM,GAAA;MAAA,OAAAL,KAAA,CAAA1E,KAAA,OAAA3H,SAAA;IAAA;EAAA,GAkBlB;;EAED;EACA,IAAM2M,WAAW;IAAA,IAAAC,KAAA,GAAAxI,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAuI,SAClBrL,YAAoB,EACpBG,MAAc,EACdmL,YAAsE;MAAA,IAAAC,kBAAA,EAAAvT,MAAA;MAAA,OAAA6K,mBAAA,GAAAG,IAAA,UAAAwI,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA1N,IAAA,GAAA0N,SAAA,CAAAtI,IAAA;UAAA;YAAA,MAElE,CAACxI,KAAK,IAAI,CAACqF,YAAY;cAAAyL,SAAA,CAAAtI,IAAA;cAAA;YAAA;YAAA,OAAAsI,SAAA,CAAA5G,MAAA,WAAS,KAAK;UAAA;YAAA4G,SAAA,CAAAtI,IAAA;YAAA,OAChBvL,WAAW,CAAAgB,aAAA;cAClCS,GAAG,EAAHA,GAAG;cACHsB,KAAK,EAALA,KAAK;cACLlB,KAAK,EAALA,KAAK;cACLiS,SAAS,EAAE1L,YAAY;cACvBG,MAAM,EAANA;YAAM,GACHmL,YAAY,CAChB,CAAC;UAAA;YAAAC,kBAAA,GAAAE,SAAA,CAAArC,IAAA;YAPMpR,MAAM,GAAAuT,kBAAA,CAANvT,MAAM;YAAA,MAQV,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqH,IAAI,MAAKjI,gBAAgB;cAAAqU,SAAA,CAAAtI,IAAA;cAAA;YAAA;YACnCpG,WAAW,CAAC,UAACgB,IAAI;cAAA,OACfA,IAAI,CAACP,GAAG,CAAC,UAACmB,CAAC;gBAAA,OACTA,CAAC,CAACqB,YAAY,KAAKA,YAAY,GAAApH,aAAA,CAAAA,aAAA,KAAQ+F,CAAC;kBAAEwB,MAAM,EAANA;gBAAM,KAAKxB,CAAC;cAAA,CACxD,CAAC;YAAA,CACH,CAAC;YAAC,OAAA8M,SAAA,CAAA5G,MAAA,WACK,IAAI;UAAA;YAAA,OAAA4G,SAAA,CAAA5G,MAAA,WAEN,KAAK;UAAA;UAAA;YAAA,OAAA4G,SAAA,CAAAjI,IAAA;QAAA;MAAA,GAAA6H,QAAA;IAAA,CACb;IAAA,gBAvBKF,WAAWA,CAAAQ,GAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAT,KAAA,CAAAjF,KAAA,OAAA3H,SAAA;IAAA;EAAA,GAuBhB;;EAED;EACA,IAAMsN,aAAa;IAAA,IAAAC,KAAA,GAAAnJ,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAkJ,SAAOrI,SAAiB,EAAE5E,KAAa;MAAA,IAAAkN,qBAAA,EAAAjU,MAAA;MAAA,OAAA6K,mBAAA,GAAAG,IAAA,UAAAkJ,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAApO,IAAA,GAAAoO,SAAA,CAAAhJ,IAAA;UAAA;YAAA,MACvD,CAACQ,SAAS,IAAI,CAAC5E,KAAK;cAAAoN,SAAA,CAAAhJ,IAAA;cAAA;YAAA;YAAA,OAAAgJ,SAAA,CAAAtH,MAAA;UAAA;YAAAsH,SAAA,CAAAhJ,IAAA;YAAA,OACCxL,kBAAkB,CAAC;cAC1C0B,GAAG,EAAHA,GAAG;cACHsB,KAAK,EAALA,KAAK;cACLoE,KAAK,EAALA,KAAK;cACL4E,SAAS,EAATA,SAAS;cACTlK,KAAK,EAALA;YACF,CAAC,CAAC;UAAA;YAAAwS,qBAAA,GAAAE,SAAA,CAAA/C,IAAA;YANMpR,MAAM,GAAAiU,qBAAA,CAANjU,MAAM;YAOd,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqH,IAAI,MAAKjI,gBAAgB,EAAE;cACrC;cACA6O,oBAAoB,CAAC,CAAC;YACxB,CAAC,MAAM;cACLhP,OAAO,CAAC2M,KAAK,CAAC,QAAQ,CAAC;YACzB;UAAC;UAAA;YAAA,OAAAuI,SAAA,CAAA3I,IAAA;QAAA;MAAA,GAAAwI,QAAA;IAAA,CACF;IAAA,gBAfKF,aAAaA,CAAAM,GAAA,EAAAC,GAAA;MAAA,OAAAN,KAAA,CAAA5F,KAAA,OAAA3H,SAAA;IAAA;EAAA,GAelB;;EAED;EACA,IAAM8N,UAAU;IAAA,IAAAC,MAAA,GAAA3J,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA0J,SAAA;MAAA,IAAAC,qBAAA,EAAAnM,IAAA,EAAAtI,MAAA;MAAA,OAAA6K,mBAAA,GAAAG,IAAA,UAAA0J,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA5O,IAAA,GAAA4O,SAAA,CAAAxJ,IAAA;UAAA;YAAAwJ,SAAA,CAAA5O,IAAA;YAEfvD,UAAU,CAAC,IAAI,CAAC;YAACmS,SAAA,CAAAxJ,IAAA;YAAA,OACc5L,cAAc,CAAC;cAAE8B,GAAG,EAAHA,GAAG;cAAEsB,KAAK,EAALA;YAAM,CAAC,CAAC;UAAA;YAAA8R,qBAAA,GAAAE,SAAA,CAAAvD,IAAA;YAArD9I,IAAI,GAAAmM,qBAAA,CAAJnM,IAAI;YAAEtI,MAAM,GAAAyU,qBAAA,CAANzU,MAAM;YACpB,IAAIA,MAAM,CAACqH,IAAI,KAAKjI,gBAAgB,EAAE;cACpC4D,UAAU,CAACsF,IAAI,CAAC;cAChB;cACApG,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG;gBACVmF,IAAI,EAAEhI,WAAW,CAACuV,uBAAuB;gBACzC3V,OAAO,EAAE;cACX,CAAC,CAAC;YACJ,CAAC,MAAM;cACL+C,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG;gBACRqF,IAAI,EAAGrH,MAAM,CAACqH,IAAI,IAAkB/H,SAAS,CAACuV,aAAa;gBAC3D5V,OAAO,EAAEe,MAAM,CAACf,OAAO,IAAI;cAC7B,CAAC,CAAC;YACJ;YAAC0V,SAAA,CAAAxJ,IAAA;YAAA;UAAA;YAAAwJ,SAAA,CAAA5O,IAAA;YAAA4O,SAAA,CAAAjC,EAAA,GAAAiC,SAAA;YAED3S,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAG;cACRqF,IAAI,EAAE/H,SAAS,CAACiM,SAAS;cACzBtM,OAAO,EAAE;YACX,CAAC,CAAC;UAAC;YAAA0V,SAAA,CAAA5O,IAAA;YAEHvD,UAAU,CAAC,KAAK,CAAC;YAAC,OAAAmS,SAAA,CAAAhC,MAAA;UAAA;UAAA;YAAA,OAAAgC,SAAA,CAAAnJ,IAAA;QAAA;MAAA,GAAAgJ,QAAA;IAAA,CAErB;IAAA,gBAzBKF,UAAUA,CAAA;MAAA,OAAAC,MAAA,CAAApG,KAAA,OAAA3H,SAAA;IAAA;EAAA,GAyBf;;EAED;EACA9H,SAAS,CAAC,YAAM;IACd,IAAIqD,OAAO,IAAIV,GAAG,IAAIsB,KAAK,EAAE;MAC3B2R,UAAU,CAAC,CAAC;IACd;IACA;EACF,CAAC,EAAE,CAACvS,OAAO,EAAEV,GAAG,EAAEsB,KAAK,CAAC,CAAC;;EAEzB;EACAjE,SAAS,CAAC,YAAM;IACd,IAAIqE,OAAO,EAAE;MACXkL,oBAAoB,CAAC,IAAI,CAAC;IAC5B;EACF,CAAC,EAAE,CAAClL,OAAO,CAAC,CAAC;EAEb,OAAO;IACLA,OAAO,EAAPA,OAAO;IACPqJ,SAAS,EAATA,SAAS;IACTgC,MAAM,EAANA,MAAM;IACNa,QAAQ,EAARA,QAAQ;IACRE,SAAS,EAATA,SAAS;IACTH,WAAW,EAAXA,WAAW;IACXH,aAAa,EAAbA,aAAa;IACb1L,WAAW,EAAXA,WAAW;IACXQ,gBAAgB,EAAhBA,gBAAgB;IAChBJ,WAAW,EAAXA,WAAW;IACXW,iBAAiB,EAAjBA,iBAAiB;IACjBI,QAAQ,EAARA,QAAQ;IACRwQ,WAAW,EAAEpQ,kBAAkB;IAC/BnC,OAAO,EAAPA,OAAO;IACPuC,QAAQ,EAAEG,cAAc;IACxBqB,wBAAwB,EAAxBA,wBAAwB;IACxBG,cAAc,EAAdA,cAAc;IACdmM,aAAa,EAAbA,aAAa;IACbkB,aAAa,EAAbA,aAAa;IACbnP,qBAAqB,EAArBA,qBAAqB;IACrBiM,iBAAiB,EAAjBA,iBAAiB;IACjB7L,WAAW,EAAXA,WAAW;IACX6B,WAAW,EAAXA,WAAW;IACXiB,YAAY,EAAZA,YAAY;IACZsL,WAAW,EAAXA,WAAW;IACX4B,aAAa,EAAE,SAAAA,cAACC,KAAsC,EAAK;MACzDhQ,aAAa,CAAC2C,OAAO,GAAGqN,KAAK;IAC/B;EACF,CAAC;AACH;AAEA,eAAe9T,UAAU"}
|
|
1
|
+
{"version":3,"names":["useEffect","useCallback","useMemo","useRef","useState","fetchEventSource","EventStreamContentType","message","v4","SESSION_PAGE_SIZE","API_SUCCESS_CODE","SuccessCode","ErrorCode","fetchAppConfig","fetchSessionList","fetchSessionDetail","closeSession","updateSessionTitle","addFeedback","safeJsonParse","combineTextParts","parts","result","combinedTextPart","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","text","thought","_objectSpread","push","undefined","err","e","f","useADKChat","_ref","_ref$url","url","window","location","origin","token","_ref$config","config","_ref$type","type","_ref$enabled","enabled","strategies","onError","onMessage","onSuccess","onStream","_useState","_useState2","_slicedToArray","loading","setLoading","ctrl","_ref2","appNo","showFirstSession","_useState3","_useState4","appInfo","setAppInfo","_useState5","_useState6","initialized","setInitialized","_useState7","_useState8","sessionList","setSessionList","_useState9","_useState10","currentSessionId","setCurrentSessionId","_useState11","total","pageNum","pageSize","_useState12","sessionPagination","setSessionPagination","_useState13","_useState14","prologue","setPrologue","_useState15","_useState16","suggestedQuestions","setSuggestedQuestions","_useState17","_useState18","messages","setMessages","stateDeltaRef","mergedMessages","fnResMap","forEach","msg","functionResponse","_msg$functionResponse","id","map","functionCall","_msg$functionCall","textMsgRef","eventDataRef","Map","insertMessage","prev","lastMessage","length","isLoading","concat","_toConsumableArray","slice","insertSuggestedQuestions","suggested_questions","arguments","insertPrologue","updateMessage","m","storeEvents","event","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","role","author","invocationId","eventId","timestamp","isLike","inlineData","displayName","data","mimeType","_event$groundingMetad","groundingMetadata","searchEntryPoint","renderedContent","fileData","Object","keys","processPart","_event$groundingMetad2","newChunk","newMessage","partial","processFollowupPart","_event$content","content","processErrorMessage","chunkJson","processActionArtifact","sendMessageRequest","values","Promise","resolve","abort","AbortController","requestUrl","method","signal","body","JSON","stringify","openWhenHidden","headers","stream","Authorization","onopen","response","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","next","ok","get","status","API_ERROR","stop","onmessage","rawData","sessionId","error","warning","_iterator2","_step2","onclose","_textMsgRef$current","onerror","console","startChat","_ref4","_callee2","_ref3","_ref3$text","_ref3$files","files","_callee2$","_context2","abrupt","trim","temp","file","_file$response","_file$response2","_file$response3","fileName","fileUri","tempUrl","fileUrl","_file$response4","_file$response5","_file$response6","_file$response7","_file$response8","_file$response9","fileId","fileType","stateDelta","initAppConversations","_x","apply","reChat","newMessages","lastAIIndex","findLastIndex","splice","lastUserMessage","findLast","_lastUserMessage$text","_lastUserMessage$file","confirmFnCall","fnCall","confirmed","_strategies$createFun","_strategies$createFun2","createFunctionResponse","call","suggestChat","stopChat","_ctrl$current","clearChat","_appInfo$onboardingIn","_appInfo$onboardingIn2","newSessionId","onboardingInfo","formatMessages","isReplace","mapped","item","Array","isArray","toLowerCase","filter","p","Boolean","textParts","fileDataParts","otherParts","raw","_iterator3","_step3","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSession","_ref5","_callee3","_yield$fetchSessionDe","_appInfo$onboardingIn3","_appInfo$onboardingIn4","_callee3$","_context3","sent","_x2","_ref6","_callee4","fetchDetail","_yield$fetchSessionLi","_yield$fetchSessionLi2","pagination","formatSessions","_data$","_appInfo$onboardingIn5","_appInfo$onboardingIn6","_args4","_callee4$","_context4","key","label","Date","startTime","getTime","meta","APP_MESSAGES_INIT_SUCCESS","t0","finish","deleteSession","_ref7","_callee5","_yield$closeSession","_callee5$","_context5","_x3","likeMessage","_ref8","_callee6","feedbackData","_yield$addFeedback","_callee6$","_context6","requestId","_x4","_x5","_x6","updateSession","_ref9","_callee7","_yield$updateSessionT","_callee7$","_context7","_x7","_x8","initConfig","_ref10","_callee8","_yield$fetchAppConfig","_callee8$","_context8","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","suggestions","setStateDelta","delta"],"sources":["../../../src/hooks/useADKChat.ts"],"sourcesContent":["import { useEffect, useCallback, useMemo, useRef, useState } from \"react\";\nimport {\n fetchEventSource,\n EventStreamContentType,\n} from \"@microsoft/fetch-event-source\";\nimport { message } from \"antd\";\nimport { v4 } from \"uuid\";\nimport { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from \"@/constants\";\nimport {\n SuccessCode,\n ErrorCode,\n DebugOptions,\n FunctionCall,\n SendContent,\n SessionData,\n AgentRunRequest,\n Event,\n FunctionResponse,\n IMessage,\n Part,\n} from \"@/types\";\nimport {\n fetchAppConfig,\n fetchSessionList,\n fetchSessionDetail,\n closeSession,\n updateSessionTitle,\n addFeedback,\n type ChatConfig,\n} from \"@/services/api\";\nimport { safeJsonParse } from \"@/utils\";\n\nconst combineTextParts = (parts: Part[]) => {\n const result: Part[] = [];\n let combinedTextPart: Part | undefined;\n\n // eslint-disable-next-line no-restricted-syntax\n for (const part of parts) {\n if (part.text) {\n // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用\n if (!combinedTextPart || combinedTextPart.thought !== part.thought) {\n combinedTextPart = { ...part };\n result.push(combinedTextPart);\n } else {\n combinedTextPart.text += part.text;\n }\n } else {\n combinedTextPart = undefined;\n result.push(part);\n }\n }\n return result;\n};\n\nfunction useADKChat({\n url = window.location.origin,\n token,\n config = {},\n type = \"agentDebug\",\n enabled = true, // ← 新增: 是否启用 Hook\n strategies,\n onError,\n onMessage,\n onSuccess,\n onStream,\n}: DebugOptions) {\n const [loading, setLoading] = useState(false);\n const ctrl = useRef<AbortController | null>(null);\n // 应用配置\n const { appNo, showFirstSession } = config || {};\n const [appInfo, setAppInfo] = useState<ChatConfig | null>(null);\n // 初始化完成\n const [initialized, setInitialized] = useState(false);\n // 会话记录\n const [sessionList, setSessionList] = useState<SessionData[]>([]);\n // 当前会话\n const [currentSessionId, setCurrentSessionId] = useState<string>(() => v4());\n // 会话分页设置\n const [sessionPagination, setSessionPagination] = useState({\n total: 0,\n pageNum: 1,\n pageSize: SESSION_PAGE_SIZE,\n });\n // 开场白\n const [prologue, setPrologue] = useState<string>(\"\");\n // 建议问题\n const [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n const [messages, setMessages] = useState<IMessage[]>([]);\n // 用户自定义业务参数 (stateDelta),每次发送请求时携带\n const stateDeltaRef = useRef<Record<string, any> | undefined>(undefined);\n const mergedMessages = useMemo(() => {\n const fnResMap: Record<string, FunctionResponse> = {};\n messages.forEach((msg) => {\n if (msg.functionResponse) {\n fnResMap[msg?.functionResponse?.id || \"\"] = msg.functionResponse;\n }\n });\n return messages.map((msg) => {\n if (msg.functionCall) {\n return {\n ...msg,\n functionResponse: fnResMap[msg?.functionCall?.id || \"\"],\n };\n }\n return msg;\n });\n }, [messages]);\n const textMsgRef = useRef<IMessage>(null);\n const eventDataRef = useRef<Map<string, any>>(new Map());\n\n // 插入消息\n const insertMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n const lastMessage = prev[prev.length - 1];\n if (lastMessage?.isLoading) {\n return [...prev.slice(0, -1), msg, lastMessage];\n }\n return [...prev, msg];\n });\n }, []);\n\n // 初始化开场白预设置问题\n const insertSuggestedQuestions = (suggested_questions: string[] = []) => {\n if (!suggested_questions?.length) return;\n // 无消息内容 且 有建议问题时\n if (messages.length === 0 && suggested_questions.length) {\n setSuggestedQuestions(suggested_questions);\n }\n };\n\n // 初始化开场白\n const insertPrologue = (prologue: string) => {\n if (prologue) {\n setPrologue(prologue);\n }\n };\n\n // 更新消息\n const updateMessage = useCallback((msg: IMessage) => {\n setMessages((prev) => {\n return prev.map((m) => {\n if (m.id === msg.id) {\n return msg;\n }\n return m;\n });\n });\n }, []);\n\n // 存储事件\n const storeEvents = useCallback((part: Part | null, event: any) => {\n let title = \"\";\n\n if (part == null && event.actions?.artifactDelta) {\n title += \"eventAction: artifact\";\n } else if (part) {\n if (part.text) {\n title += `text:${part.text}`;\n } else if (part.functionCall) {\n title += `functionCall:${part.functionCall.name}`;\n } else if (part.functionResponse) {\n title += `functionResponse:${part.functionResponse.name}`;\n } else if (part.executableCode) {\n title += `executableCode:${part.executableCode.code?.slice(0, 10)}`;\n } else if (part.codeExecutionResult) {\n title += `codeExecutionResult:${part.codeExecutionResult.outcome}`;\n } else if (part.errorMessage) {\n title += `errorMessage:${part.errorMessage}`;\n }\n }\n\n const updatedEvent = { ...event, title };\n\n const newEventData = new Map(eventDataRef.current);\n newEventData.set(event.id, updatedEvent);\n eventDataRef.current = newEventData;\n }, []);\n\n // 存储消息\n const storeMessage = useCallback(\n (part: Part | null, event: Event, role: \"user\" | \"bot\") => {\n const msg: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n isLike: event.isLike || 0,\n role,\n };\n\n if (part) {\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n };\n } else if (part.text) {\n msg.text = part.text;\n msg.thought = part.thought;\n\n if (event?.groundingMetadata?.searchEntryPoint?.renderedContent) {\n msg.renderedContent =\n event.groundingMetadata.searchEntryPoint.renderedContent;\n }\n } else if (part.fileData) {\n msg.fileData = [part.fileData];\n } else if (part.functionCall) {\n msg.functionCall = part.functionCall;\n } else if (part.functionResponse) {\n msg.functionResponse = part.functionResponse;\n } else if (part.executableCode) {\n msg.executableCode = part.executableCode;\n } else if (part.codeExecutionResult) {\n msg.codeExecutionResult = part.codeExecutionResult;\n }\n }\n\n if (part && Object.keys(part).length > 0) {\n insertMessage(msg);\n }\n },\n [insertMessage],\n );\n\n // 处理消息部分(关键更新)\n const processPart = useCallback(\n (event: Event, part: Part) => {\n const renderedContent =\n event.groundingMetadata?.searchEntryPoint?.renderedContent;\n if (part.text) {\n const newChunk = part.text;\n\n if (\n !textMsgRef.current ||\n textMsgRef.current.thought !== part.thought\n ) {\n const newMessage: IMessage = {\n id: v4(),\n author: event.author,\n invocationId: event.invocationId,\n eventId: event.id,\n timestamp: event.timestamp,\n role: \"bot\",\n text: newChunk,\n isLike: event.isLike || 0,\n thought: part.thought,\n };\n\n if (renderedContent) {\n newMessage.renderedContent = renderedContent;\n }\n\n textMsgRef.current = newMessage;\n // 存储原数据\n storeEvents(part, event);\n // 插入消息\n insertMessage(newMessage);\n } else {\n if (event.partial === false) {\n storeEvents(part, event);\n textMsgRef.current = null;\n return;\n }\n if (renderedContent) {\n textMsgRef.current = {\n ...textMsgRef.current,\n renderedContent,\n };\n }\n textMsgRef.current = {\n ...textMsgRef.current,\n text: (textMsgRef.current.text || \"\") + newChunk,\n };\n updateMessage(textMsgRef.current);\n }\n } else {\n textMsgRef.current = null;\n storeEvents(part, event);\n storeMessage(part, event, \"bot\");\n }\n },\n [storeEvents, storeMessage, insertMessage, updateMessage],\n );\n\n // 处理建议类消息\n const processFollowupPart = useCallback(\n (event: Event) => {\n // 获取建议类消息的文本内容\n const part = event?.content?.parts?.[0] || null;\n const text = part?.text || \"\";\n storeEvents(part, event);\n if (text) {\n setSuggestedQuestions((prev) => [...prev, text]);\n }\n },\n [storeEvents, insertMessage],\n );\n\n // 处理错误消息\n const processErrorMessage = useCallback(\n (chunkJson: any) => {\n storeEvents(null, chunkJson);\n insertMessage({\n id: v4(),\n text: chunkJson.errorMessage,\n role: \"bot\",\n });\n },\n [storeEvents, insertMessage],\n );\n\n // 处理动作和制品\n const processActionArtifact = useCallback(\n (event: any) => {\n if (event.actions && event.actions.artifactDelta) {\n storeEvents(null, event);\n storeMessage(null, event, \"bot\");\n }\n },\n [storeEvents, storeMessage],\n );\n\n // 发送消息请求\n const sendMessageRequest = useCallback(\n (values: AgentRunRequest) => {\n return new Promise<void>((resolve) => {\n if (ctrl.current) {\n ctrl.current.abort();\n }\n setLoading(true);\n ctrl.current = new AbortController();\n const requestUrl = `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`;\n\n fetchEventSource(requestUrl, {\n method: \"POST\",\n signal: ctrl.current.signal,\n body: JSON.stringify(values),\n openWhenHidden: true,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n stream: \"true\",\n Authorization: `Bearer ${token}`,\n },\n async onopen(response) {\n if (\n response.ok &&\n response.headers.get(\"content-type\") === EventStreamContentType\n ) {\n // everything's good\n } else if (response.status === 401 || response.status === 403) {\n setLoading(false);\n onError?.({\n code: ErrorCode.API_ERROR,\n message: response.status === 401 ? \"认证失败,token 无效或已过期\" : \"无权限访问该资源\",\n });\n resolve();\n } else if (\n response.status >= 400 &&\n response.status < 500 &&\n response.status !== 429\n ) {\n resolve();\n } else {\n resolve();\n }\n },\n onmessage: (event) => {\n const rawData = safeJsonParse(event.data, {});\n\n // 处理新的数据格式: { data: {...}, result: {...} }\n let chunkJson: Event = rawData;\n if (rawData.data && rawData.result) {\n // 转换为旧格式\n chunkJson = {\n ...rawData.data,\n content: rawData.data, // data 本身就是 content\n invocationId: rawData.result.invocationId,\n sessionId: rawData.result.sessionId,\n id: rawData.result.invocationId,\n };\n }\n\n if (chunkJson.error) {\n message.warning(chunkJson.error);\n return;\n }\n onStream?.(chunkJson);\n if (chunkJson.content) {\n // 建议类消息单独处理\n if (chunkJson.content.role === \"followup\") {\n processFollowupPart(chunkJson);\n return;\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const part of combineTextParts(chunkJson.content.parts)) {\n processPart(chunkJson, part);\n }\n } else if (chunkJson.errorMessage) {\n processErrorMessage(chunkJson);\n } else if (chunkJson.actions) {\n processActionArtifact(chunkJson);\n }\n },\n onclose: () => {\n setLoading(false);\n if (textMsgRef.current) {\n onMessage?.(textMsgRef.current?.text || \"\", textMsgRef.current);\n }\n textMsgRef.current = null;\n resolve();\n },\n onerror: (error) => {\n setLoading(false);\n resolve();\n console.error(\"EventSource failed:\", error);\n throw error;\n },\n });\n });\n },\n [\n type,\n currentSessionId,\n processActionArtifact,\n processErrorMessage,\n processPart,\n ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading) return;\n if (!text.trim() && !functionResponse) return;\n // 清空建议问题\n setSuggestedQuestions([]);\n // 发送消息\n setMessages((prev) => {\n let temp = [...prev];\n // 如果 text 存在\n if (text.trim()) {\n temp.push({\n id: v4(),\n role: \"user\",\n text,\n });\n }\n // 如果file 存在\n if (files.length > 0) {\n temp.push({\n id: v4(),\n role: \"user\",\n fileData: files.map((file) => ({\n displayName: file.fileName || file.name,\n mimeType: file.mimeType || file.response?.mimeType,\n fileUri: file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n })),\n });\n }\n // 如果 functionResponse 存在\n if (functionResponse) {\n temp.push({\n id: v4(),\n role: \"user\",\n functionResponse,\n });\n }\n return temp;\n });\n await sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: functionResponse ? [{ functionResponse }] : [{ text }],\n },\n files: files.map((file) => ({\n fileName: file.fileName || file.response?.fileName,\n fileId: file.fileId || file.response?.fileId,\n tempUrl: file.tempUrl || file.response?.fileUrl || file.response?.tempUrl,\n type: file.type || file.response?.fileType,\n mimeType: file.mimeType || file.response?.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && { stateDelta: stateDeltaRef.current }),\n });\n // 获取聊天记录\n initAppConversations();\n };\n\n // 重新发送会话\n const reChat = () => {\n if (loading) return;\n if (messages.length === 0) return;\n setMessages((prev) => {\n const newMessages = [...prev];\n // 删除最后一条 AI 消息\n const lastAIIndex = newMessages.findLastIndex(\n (msg) => msg.role === \"bot\",\n );\n if (lastAIIndex !== -1) {\n newMessages.splice(lastAIIndex, 1);\n }\n // 清空建议问题\n setSuggestedQuestions([]);\n // 重新发送最后一条用户消息\n const lastUserMessage = newMessages.findLast(\n (msg) => msg.role === \"user\",\n );\n if (lastUserMessage) {\n const { text = \"\", fileData = [] } = lastUserMessage;\n sendMessageRequest({\n stream: true,\n sessionId: currentSessionId,\n content: {\n role: \"user\",\n parts: [\n {\n text,\n },\n ],\n },\n files: fileData?.map((file) => ({\n fileName: file.displayName,\n tempUrl: file.fileUri,\n mimeType: file.mimeType,\n })),\n ...(stateDeltaRef.current !== undefined && { stateDelta: stateDeltaRef.current }),\n });\n }\n\n return newMessages;\n });\n };\n\n // 确认函数调用\n const confirmFnCall = (fnCall: FunctionCall, confirmed: boolean) => {\n const functionResponse =\n strategies?.createFunctionResponse?.(fnCall, confirmed) ?? {\n id: fnCall.id,\n name: fnCall.name,\n response: { confirmed },\n };\n startChat({ functionResponse });\n };\n\n // 使用建议问题\n const suggestChat = (text: string) => {\n if (loading) return;\n if (!text.trim()) return;\n setSuggestedQuestions([]);\n startChat({ text });\n };\n\n // 停止会话\n const stopChat = useCallback(() => {\n ctrl.current?.abort();\n setLoading(false);\n textMsgRef.current = null;\n }, [ctrl]);\n\n // 清除/重置会话\n const clearChat = () => {\n const newSessionId = v4();\n setCurrentSessionId(newSessionId);\n // 重置聊天内容\n stopChat();\n setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n setMessages([]);\n setSuggestedQuestions(appInfo?.onboardingInfo?.suggested_questions || []);\n };\n\n // 格式化会话记录\n const formatMessages = (messages: any[], isReplace = false) => {\n const mapped: IMessage[] = [];\n messages.forEach((item) => {\n if (!item || !item.content || !Array.isArray(item.content.parts)) return;\n\n const role =\n (item.content.role || \"\").toLowerCase() === \"user\" ? \"user\" : \"bot\";\n const parts = Array.isArray(item.content.parts)\n ? item.content.parts.filter((p: any) => {\n if (!p) return false;\n return Boolean(\n p.text ||\n p.inlineData ||\n p.functionCall ||\n p.functionResponse ||\n p.fileData ||\n p.executableCode ||\n p.codeExecutionResult ||\n p.errorMessage,\n );\n })\n : [];\n\n if (parts.length === 0) return;\n\n // 将同一条历史消息的 text/fileData parts 合并到一条 IMessage,避免拆分显示\n const textParts = parts.filter((p: any) => p.text || p.errorMessage || p.inlineData);\n const fileDataParts = parts.filter((p: any) => p.fileData);\n const otherParts = parts.filter((p: any) => !p.text && !p.errorMessage && !p.inlineData && !p.fileData);\n\n // 如果有 text/fileData,合并为一条消息\n if (textParts.length > 0 || fileDataParts.length > 0) {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n isLike: item.isLike,\n role,\n raw: item,\n } as IMessage;\n\n for (const part of textParts) {\n if (part.inlineData) {\n msg.inlineData = {\n displayName: part.inlineData.displayName,\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n } as any;\n }\n if (part.text) {\n msg.text = (msg.text ? msg.text + \"\\n\" : \"\") + part.text;\n if (typeof part.thought !== \"undefined\") msg.thought = part.thought;\n }\n if (part.errorMessage) {\n msg.text = (msg.text ? msg.text + \"\\n\" : \"\") + part.errorMessage;\n }\n }\n\n if (fileDataParts.length > 0) {\n msg.fileData = fileDataParts.map((part: any) => ({\n displayName: part.fileData.displayName || \"\",\n fileUri: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n }));\n }\n\n mapped.push(msg);\n }\n\n // 处理其他类型的 parts(functionCall、executableCode 等)\n otherParts.forEach((part: any) => {\n const msg: IMessage = {\n id: v4(),\n author: item.author,\n invocationId: item.invocationId,\n eventId: item.id,\n timestamp: item.timestamp,\n isLike: item.isLike,\n role,\n raw: item,\n } as IMessage;\n\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult)\n msg.codeExecutionResult = part.codeExecutionResult;\n // 补全函数调用结果\n if (part.functionResponse) {\n // 通过 functionCall.id 寻找对应的函数调用消息,在那条消息上添加functionResponse\n const functionCallMsg = mapped.find(\n (msg) => msg.functionCall?.id === part.functionResponse?.id,\n );\n if (functionCallMsg) {\n functionCallMsg.functionResponse = part.functionResponse;\n }\n return;\n }\n mapped.push(msg);\n });\n });\n\n setMessages((prev) => (isReplace ? mapped : [...prev, ...mapped]));\n };\n\n // 设置当前会话详情\n const setCurrentSession = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n // 新接口直接返回按 event/item 结构的数组,传入 formatMessages 处理\n if (Array.isArray(data) && data.length > 0) {\n formatMessages(data, true);\n } else {\n setSuggestedQuestions(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSessionId(v4());\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async (fetchDetail = false) => {\n try {\n setLoading(true);\n\n const {\n data = [],\n pagination,\n result,\n } = await fetchSessionList({\n url,\n appNo,\n token,\n pageSize: sessionPagination.pageSize,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n if (data.length > 0) {\n const formatSessions = data.map((item) => {\n return {\n key: item.sessionId,\n label: item.title || \"新对话\",\n timestamp: new Date(item.startTime).getTime(),\n messages: [],\n meta: {\n ...item,\n },\n };\n });\n\n setSessionList(formatSessions);\n // 设置分页信息\n setSessionPagination({\n pageNum: sessionPagination.pageNum,\n pageSize: sessionPagination.pageSize,\n total: pagination?.total || 0,\n });\n const { sessionId } = data?.[0];\n if (showFirstSession) {\n setCurrentSession(sessionId);\n } else {\n fetchDetail && setPrologue(appInfo?.onboardingInfo?.prologue || \"\");\n fetchDetail &&\n setSuggestedQuestions(\n appInfo?.onboardingInfo?.suggested_questions || [],\n );\n }\n // 成功回调\n if (!initialized) {\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: \"初始化聊天记录成功\",\n data: {\n sessionId,\n },\n });\n setInitialized(true);\n }\n } else {\n // 无会话记录时,初始化会话详情\n clearChat();\n }\n } else {\n setSessionList([]);\n setCurrentSessionId(v4());\n setPrologue(\"\");\n setSuggestedQuestions([]);\n }\n } catch {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: \"获取会话列表失败\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n // 删除会话\n const deleteSession = async (sessionId: string) => {\n if (!sessionId) return;\n const { result } = await closeSession({\n url,\n appNo,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 删除成功后,重新获取会话列表\n initAppConversations(true);\n // 如果删除的是当前会话,则创建新的会话\n if (sessionId === currentSessionId) {\n clearChat();\n }\n } else {\n message.error(\"删除会话失败\");\n }\n };\n\n // 点赞/点踩\n const likeMessage = async (\n invocationId: string,\n isLike: 1 | -1,\n feedbackData?: { feedbackTags?: string; feedbackDescription?: string },\n ) => {\n if (!appNo || !invocationId) return false;\n const { result } = await addFeedback({\n url,\n appNo,\n token,\n requestId: invocationId,\n isLike,\n ...feedbackData,\n });\n if (result?.code === API_SUCCESS_CODE) {\n setMessages((prev) =>\n prev.map((m) =>\n m.invocationId === invocationId ? { ...m, isLike } : m,\n ),\n );\n return true;\n }\n return false;\n };\n\n // 更新会话名称\n const updateSession = async (sessionId: string, title: string) => {\n if (!sessionId && !title) return;\n const { result } = await updateSessionTitle({\n url,\n appNo,\n title,\n sessionId,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n // 编辑成功后,重新获取会话列表\n initAppConversations();\n } else {\n message.error(\"更新会话失败\");\n }\n };\n\n // 初始化应用\n const initConfig = async () => {\n try {\n setLoading(true);\n const { data, result } = await fetchAppConfig({ url, appNo });\n if (result.code === API_SUCCESS_CODE) {\n setAppInfo(data);\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: \"初始化配置成功\",\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || \"获取应用配置失败\",\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: \"获取应用配置失败\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n // 初始化—获取配置 (仅在启用时)\n useEffect(() => {\n if (enabled && url && appNo) {\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, url, appNo]);\n\n // 初始化-聊天记录\n useEffect(() => {\n if (appInfo) {\n initAppConversations(true);\n }\n }, [appInfo]);\n\n return {\n appInfo,\n startChat,\n reChat,\n stopChat,\n clearChat,\n suggestChat,\n confirmFnCall,\n initialized,\n currentSessionId,\n sessionList,\n sessionPagination,\n prologue,\n suggestions: suggestedQuestions,\n loading,\n messages: mergedMessages,\n insertSuggestedQuestions,\n insertPrologue,\n deleteSession,\n updateSession,\n setSuggestedQuestions,\n setCurrentSession,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n setStateDelta: (delta: Record<string, any> | undefined) => {\n stateDeltaRef.current = delta;\n },\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -12,14 +12,15 @@ import XAdkProvider from "./components/XAdkProvider";
|
|
|
12
12
|
import XAdkChatbot from "./components/XAdkChatbot";
|
|
13
13
|
import XAdkSender from "./components/XAdkSender";
|
|
14
14
|
import useADKChat from "./hooks/useADKChat";
|
|
15
|
+
import { baseChatStrategies, basePreset, baseToolKindResolver, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, createXGroupUploadRequest, xGroupAdkPreset, xGroupToolKindResolver } from "./presets/xGroupAdk";
|
|
15
16
|
export { useChatState, useChatActions, useSession, } from "./components/XAdkProvider/context";
|
|
16
17
|
export * from "./types";
|
|
17
18
|
export type { ChatHookResult, ChatHookFactory } from "./types/ChatHook";
|
|
18
19
|
export { useXAi, XAiProvider, XAiChatbot, XAiSDK, XAiSender, XAiConversations, useXAiSDK, request, };
|
|
19
|
-
export { XAdkProvider, XAdkChatbot, XAdkSender, FileGallery, XAdkThoughtChain, useADKChat, };
|
|
20
|
+
export { XAdkProvider, XAdkChatbot, XAdkSender, FileGallery, XAdkThoughtChain, useADKChat, baseChatStrategies, basePreset, baseToolKindResolver, createXGroupUploadRequest, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, xGroupAdkPreset, xGroupToolKindResolver, };
|
|
20
21
|
export { default as MarkdownRender } from "./components/XAdkChatbot/components/MarkdownRender";
|
|
21
22
|
export { default as FunctionCallRender } from "./components/XAdkChatbot/components/FunctionCallRender";
|
|
22
23
|
export { default as ThinkRender } from "./components/XAdkChatbot/components/ThinkRender";
|
|
23
24
|
export type { MarkdownRenderProps } from "./components/XAdkChatbot/components/MarkdownRender";
|
|
24
|
-
export type { FunctionCallRenderProps } from "./
|
|
25
|
+
export type { FunctionCallRenderProps } from "./types/FunctionCallRender";
|
|
25
26
|
export type { XAdkThoughtChainProps, ThoughtChainItemType, } from "./types/XAdkThoughtChain";
|
package/dist/esm/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import XAdkProvider from "./components/XAdkProvider";
|
|
|
15
15
|
import XAdkChatbot from "./components/XAdkChatbot";
|
|
16
16
|
import XAdkSender from "./components/XAdkSender";
|
|
17
17
|
import useADKChat from "./hooks/useADKChat";
|
|
18
|
+
import { baseChatStrategies, basePreset, baseToolKindResolver, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, createXGroupUploadRequest, xGroupAdkPreset, xGroupToolKindResolver } from "./presets/xGroupAdk";
|
|
18
19
|
|
|
19
20
|
// 导出新的 Context Hooks
|
|
20
21
|
export { useChatState, useChatActions, useSession } from "./components/XAdkProvider/context";
|
|
@@ -26,7 +27,7 @@ export * from "./types";
|
|
|
26
27
|
export { useXAi, XAiProvider, XAiChatbot, XAiSDK, XAiSender, XAiConversations, useXAiSDK, request };
|
|
27
28
|
|
|
28
29
|
// 新 API - 推荐使用
|
|
29
|
-
export { XAdkProvider, XAdkChatbot, XAdkSender, FileGallery, XAdkThoughtChain, useADKChat };
|
|
30
|
+
export { XAdkProvider, XAdkChatbot, XAdkSender, FileGallery, XAdkThoughtChain, useADKChat, baseChatStrategies, basePreset, baseToolKindResolver, createXGroupUploadRequest, mergeChatStrategies, resolvePresetUploadRequest, resolveChatPreset, xGroupAdkPreset, xGroupToolKindResolver };
|
|
30
31
|
|
|
31
32
|
// 基础组件导出 - 供高级用户和业务侧使用
|
|
32
33
|
export { default as MarkdownRender } from "./components/XAdkChatbot/components/MarkdownRender";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useXAi","XAiProvider","XAiChatbot","XAiSDK","XAiSender","FileGallery","XAiConversations","XAdkThoughtChain","useXAiSDK","request","XAdkProvider","XAdkChatbot","XAdkSender","useADKChat","useChatState","useChatActions","useSession","default","MarkdownRender","FunctionCallRender","ThinkRender"],"sources":["../../src/index.ts"],"sourcesContent":["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport useADKChat from \"./hooks/useADKChat\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n};\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./
|
|
1
|
+
{"version":3,"names":["useXAi","XAiProvider","XAiChatbot","XAiSDK","XAiSender","FileGallery","XAiConversations","XAdkThoughtChain","useXAiSDK","request","XAdkProvider","XAdkChatbot","XAdkSender","useADKChat","baseChatStrategies","basePreset","baseToolKindResolver","mergeChatStrategies","resolvePresetUploadRequest","resolveChatPreset","createXGroupUploadRequest","xGroupAdkPreset","xGroupToolKindResolver","useChatState","useChatActions","useSession","default","MarkdownRender","FunctionCallRender","ThinkRender"],"sources":["../../src/index.ts"],"sourcesContent":["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xGroupAdk\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n} from \"./types/XAdkThoughtChain\";\n"],"mappings":"AAAA;AACA,SAASA,MAAM;AACf,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,MAAM;AACb,OAAOC,SAAS;AAChB,OAAOC,WAAW;AAClB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,SAAS;AAChB,OAAOC,OAAO;;AAEd;AACA,OAAOC,YAAY;AACnB,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,UAAU;AACjB,SACEC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,yBAAyB,EACzBC,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SACEC,YAAY,EACZC,cAAc,EACdC,UAAU;AAGZ;;AAEA;;AAGA;AACA,SACEzB,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTE,gBAAgB,EAChBE,SAAS,EACTC,OAAO;;AAGT;AACA,SACEC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVP,WAAW,EACXE,gBAAgB,EAChBM,UAAU,EACVC,kBAAkB,EAClBC,UAAU,EACVC,oBAAoB,EACpBI,yBAAyB,EACzBH,mBAAmB,EACnBC,0BAA0B,EAC1BC,iBAAiB,EACjBE,eAAe,EACfC,sBAAsB;;AAGxB;AACA,SAASI,OAAO,IAAIC,cAAc;AAClC,SAASD,OAAO,IAAIE,kBAAkB;AACtC,SAASF,OAAO,IAAIG,WAAW;;AAE/B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ChatPreset, ChatPresetInput, ChatStrategies, ToolRenderKind, UploadRequestFn } from "../types";
|
|
2
|
+
export declare const baseToolKindResolver: () => ToolRenderKind;
|
|
3
|
+
export declare const xGroupToolKindResolver: ({ name, }: {
|
|
4
|
+
name?: string | undefined;
|
|
5
|
+
}) => ToolRenderKind;
|
|
6
|
+
export declare const baseChatStrategies: Required<Pick<ChatStrategies, "resolveToolKind" | "createFunctionResponse" | "parseProcessMessage">>;
|
|
7
|
+
export declare const createXGroupUploadRequest: ({ url, token, appNo, }: {
|
|
8
|
+
url: string;
|
|
9
|
+
token?: string | undefined;
|
|
10
|
+
appNo?: string | undefined;
|
|
11
|
+
}) => UploadRequestFn | undefined;
|
|
12
|
+
export declare const xGroupAdkPreset: ChatPreset;
|
|
13
|
+
export declare const basePreset: ChatPreset;
|
|
14
|
+
export declare const resolveChatPreset: (preset: ChatPresetInput | undefined) => ChatPreset;
|
|
15
|
+
export declare const mergeChatStrategies: (preset: ChatPresetInput | undefined, overrides?: ChatStrategies) => ChatStrategies;
|
|
16
|
+
export declare const resolvePresetUploadRequest: (preset: ChatPresetInput | undefined, context: {
|
|
17
|
+
url: string;
|
|
18
|
+
token?: string;
|
|
19
|
+
appNo?: string;
|
|
20
|
+
}) => UploadRequestFn | undefined;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
|
+
import { parseAgentMessage } from "../utils";
|
|
5
|
+
export var baseToolKindResolver = function baseToolKindResolver() {
|
|
6
|
+
return "default";
|
|
7
|
+
};
|
|
8
|
+
export var xGroupToolKindResolver = function xGroupToolKindResolver(_ref) {
|
|
9
|
+
var name = _ref.name;
|
|
10
|
+
if (name === "adk_request_confirmation") return "approval";
|
|
11
|
+
if (name === "transferToAgent") return "handoff";
|
|
12
|
+
return "default";
|
|
13
|
+
};
|
|
14
|
+
export var baseChatStrategies = {
|
|
15
|
+
resolveToolKind: function resolveToolKind() {
|
|
16
|
+
return "default";
|
|
17
|
+
},
|
|
18
|
+
createFunctionResponse: function createFunctionResponse(fnCall, confirmed) {
|
|
19
|
+
return {
|
|
20
|
+
id: fnCall.id,
|
|
21
|
+
name: fnCall.name,
|
|
22
|
+
response: {
|
|
23
|
+
confirmed: confirmed
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
parseProcessMessage: parseAgentMessage
|
|
28
|
+
};
|
|
29
|
+
export var createXGroupUploadRequest = function createXGroupUploadRequest(_ref2) {
|
|
30
|
+
var url = _ref2.url,
|
|
31
|
+
token = _ref2.token,
|
|
32
|
+
appNo = _ref2.appNo;
|
|
33
|
+
if (!appNo || !token) return undefined;
|
|
34
|
+
return /*#__PURE__*/function () {
|
|
35
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref3) {
|
|
36
|
+
var file, onProgress, onSuccess, onError, _result$data, formData, response, result;
|
|
37
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
38
|
+
while (1) switch (_context.prev = _context.next) {
|
|
39
|
+
case 0:
|
|
40
|
+
file = _ref3.file, onProgress = _ref3.onProgress, onSuccess = _ref3.onSuccess, onError = _ref3.onError;
|
|
41
|
+
_context.prev = 1;
|
|
42
|
+
onProgress === null || onProgress === void 0 || onProgress({
|
|
43
|
+
percent: 0
|
|
44
|
+
});
|
|
45
|
+
formData = new FormData();
|
|
46
|
+
formData.append("file", file);
|
|
47
|
+
_context.next = 7;
|
|
48
|
+
return fetch("".concat(url, "/api/gateway-web/openApi/v1/aizt/app/").concat(appNo, "/uploadMultiFile"), {
|
|
49
|
+
method: "POST",
|
|
50
|
+
body: formData,
|
|
51
|
+
credentials: "include",
|
|
52
|
+
headers: {
|
|
53
|
+
Accept: "application/json, text/plain, */*",
|
|
54
|
+
Authorization: "Bearer ".concat(token),
|
|
55
|
+
"Cache-Control": "no-cache"
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
case 7:
|
|
59
|
+
response = _context.sent;
|
|
60
|
+
_context.next = 10;
|
|
61
|
+
return response.json().catch(function () {
|
|
62
|
+
return {};
|
|
63
|
+
});
|
|
64
|
+
case 10:
|
|
65
|
+
result = _context.sent;
|
|
66
|
+
if (response.ok) {
|
|
67
|
+
_context.next = 13;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
throw new Error((result === null || result === void 0 ? void 0 : result.message) || "\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25 (".concat(response.status, ")"));
|
|
71
|
+
case 13:
|
|
72
|
+
onProgress === null || onProgress === void 0 || onProgress({
|
|
73
|
+
percent: 100
|
|
74
|
+
});
|
|
75
|
+
onSuccess === null || onSuccess === void 0 || onSuccess((_result$data = result === null || result === void 0 ? void 0 : result.data) !== null && _result$data !== void 0 ? _result$data : result);
|
|
76
|
+
_context.next = 20;
|
|
77
|
+
break;
|
|
78
|
+
case 17:
|
|
79
|
+
_context.prev = 17;
|
|
80
|
+
_context.t0 = _context["catch"](1);
|
|
81
|
+
onError === null || onError === void 0 || onError(_context.t0 instanceof Error ? _context.t0 : new Error("文件上传失败"));
|
|
82
|
+
case 20:
|
|
83
|
+
case "end":
|
|
84
|
+
return _context.stop();
|
|
85
|
+
}
|
|
86
|
+
}, _callee, null, [[1, 17]]);
|
|
87
|
+
}));
|
|
88
|
+
return function (_x) {
|
|
89
|
+
return _ref4.apply(this, arguments);
|
|
90
|
+
};
|
|
91
|
+
}();
|
|
92
|
+
};
|
|
93
|
+
export var xGroupAdkPreset = {
|
|
94
|
+
name: "xgroup-adk",
|
|
95
|
+
strategies: {
|
|
96
|
+
resolveToolKind: xGroupToolKindResolver,
|
|
97
|
+
createFunctionResponse: baseChatStrategies.createFunctionResponse,
|
|
98
|
+
parseProcessMessage: function parseProcessMessage(text, options) {
|
|
99
|
+
return parseAgentMessage(text, _objectSpread({
|
|
100
|
+
mode: "comment"
|
|
101
|
+
}, options));
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
createUploadRequest: createXGroupUploadRequest
|
|
105
|
+
};
|
|
106
|
+
export var basePreset = {
|
|
107
|
+
name: "base",
|
|
108
|
+
strategies: baseChatStrategies
|
|
109
|
+
};
|
|
110
|
+
export var resolveChatPreset = function resolveChatPreset(preset) {
|
|
111
|
+
if (!preset || preset === "xgroup-adk") return xGroupAdkPreset;
|
|
112
|
+
if (preset === "base") return basePreset;
|
|
113
|
+
return preset;
|
|
114
|
+
};
|
|
115
|
+
export var mergeChatStrategies = function mergeChatStrategies(preset, overrides) {
|
|
116
|
+
return _objectSpread(_objectSpread(_objectSpread({}, baseChatStrategies), resolveChatPreset(preset).strategies), overrides);
|
|
117
|
+
};
|
|
118
|
+
export var resolvePresetUploadRequest = function resolvePresetUploadRequest(preset, context) {
|
|
119
|
+
var _resolveChatPreset$cr, _resolveChatPreset;
|
|
120
|
+
return (_resolveChatPreset$cr = (_resolveChatPreset = resolveChatPreset(preset)).createUploadRequest) === null || _resolveChatPreset$cr === void 0 ? void 0 : _resolveChatPreset$cr.call(_resolveChatPreset, context);
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=xGroupAdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseAgentMessage","baseToolKindResolver","xGroupToolKindResolver","_ref","name","baseChatStrategies","resolveToolKind","createFunctionResponse","fnCall","confirmed","id","response","parseProcessMessage","createXGroupUploadRequest","_ref2","url","token","appNo","undefined","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref3","file","onProgress","onSuccess","onError","_result$data","formData","result","wrap","_callee$","_context","prev","next","percent","FormData","append","fetch","concat","method","body","credentials","headers","Accept","Authorization","sent","json","catch","ok","Error","message","status","data","t0","stop","_x","apply","arguments","xGroupAdkPreset","strategies","text","options","_objectSpread","mode","createUploadRequest","basePreset","resolveChatPreset","preset","mergeChatStrategies","overrides","resolvePresetUploadRequest","context","_resolveChatPreset$cr","_resolveChatPreset","call"],"sources":["../../../src/presets/xGroupAdk.ts"],"sourcesContent":["import { parseAgentMessage } from \"@/utils\";\nimport type {\n ChatPreset,\n ChatPresetInput,\n ChatStrategies,\n FunctionCall,\n FunctionResponse,\n ToolRenderKind,\n UploadRequestFn,\n} from \"@/types\";\n\nexport const baseToolKindResolver = (): ToolRenderKind => \"default\";\n\nexport const xGroupToolKindResolver = ({\n name,\n}: {\n name?: string;\n}): ToolRenderKind => {\n if (name === \"adk_request_confirmation\") return \"approval\";\n if (name === \"transferToAgent\") return \"handoff\";\n return \"default\";\n};\n\nexport const baseChatStrategies: Required<\n Pick<ChatStrategies, \"resolveToolKind\" | \"createFunctionResponse\" | \"parseProcessMessage\">\n> = {\n resolveToolKind: () => \"default\",\n createFunctionResponse: (\n fnCall: FunctionCall,\n confirmed: boolean,\n ): FunctionResponse => ({\n id: fnCall.id,\n name: fnCall.name,\n response: { confirmed },\n }),\n parseProcessMessage: parseAgentMessage,\n};\n\nexport const createXGroupUploadRequest = ({\n url,\n token,\n appNo,\n}: {\n url: string;\n token?: string;\n appNo?: string;\n}): UploadRequestFn | undefined => {\n if (!appNo || !token) return undefined;\n\n return async ({ file, onProgress, onSuccess, onError }) => {\n try {\n onProgress?.({ percent: 0 });\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n const response = await fetch(\n `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/uploadMultiFile`,\n {\n method: \"POST\",\n body: formData,\n credentials: \"include\",\n headers: {\n Accept: \"application/json, text/plain, */*\",\n Authorization: `Bearer ${token}`,\n \"Cache-Control\": \"no-cache\",\n },\n },\n );\n\n const result = await response.json().catch(() => ({}));\n\n if (!response.ok) {\n throw new Error(result?.message || `文件上传失败 (${response.status})`);\n }\n\n onProgress?.({ percent: 100 });\n onSuccess?.(result?.data ?? result);\n } catch (error) {\n onError?.(error instanceof Error ? error : new Error(\"文件上传失败\"));\n }\n };\n};\n\nexport const xGroupAdkPreset: ChatPreset = {\n name: \"xgroup-adk\",\n strategies: {\n resolveToolKind: xGroupToolKindResolver,\n createFunctionResponse: baseChatStrategies.createFunctionResponse,\n parseProcessMessage: (text, options) =>\n parseAgentMessage(text, { mode: \"comment\", ...options }),\n },\n createUploadRequest: createXGroupUploadRequest,\n};\n\nexport const basePreset: ChatPreset = {\n name: \"base\",\n strategies: baseChatStrategies,\n};\n\nexport const resolveChatPreset = (\n preset: ChatPresetInput | undefined,\n): ChatPreset => {\n if (!preset || preset === \"xgroup-adk\") return xGroupAdkPreset;\n if (preset === \"base\") return basePreset;\n return preset;\n};\n\nexport const mergeChatStrategies = (\n preset: ChatPresetInput | undefined,\n overrides?: ChatStrategies,\n): ChatStrategies => ({\n ...baseChatStrategies,\n ...resolveChatPreset(preset).strategies,\n ...overrides,\n});\n\nexport const resolvePresetUploadRequest = (\n preset: ChatPresetInput | undefined,\n context: {\n url: string;\n token?: string;\n appNo?: string;\n },\n): UploadRequestFn | undefined => {\n return resolveChatPreset(preset).createUploadRequest?.(context);\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { ParseAgentMessageOptions, ParsedPart } from "../utils";
|
|
3
|
+
import type { IMessage, FunctionCall, FunctionResponse } from "./XAdkChatbot";
|
|
4
|
+
import type { ToolRenderKind } from "./FunctionCallRender";
|
|
5
|
+
import type { UploadRequestFn } from "./XAdkSender";
|
|
6
|
+
export interface ToolKindResolveContext {
|
|
7
|
+
name?: string;
|
|
8
|
+
msg?: IMessage;
|
|
9
|
+
}
|
|
10
|
+
export interface ChatStrategies {
|
|
11
|
+
/**
|
|
12
|
+
* 工具名/消息 -> 渲染类型解析策略。
|
|
13
|
+
*/
|
|
14
|
+
resolveToolKind?: (ctx: ToolKindResolveContext) => ToolRenderKind;
|
|
15
|
+
/**
|
|
16
|
+
* 函数调用确认场景中,基于工具调用和用户选择生成 functionResponse。
|
|
17
|
+
*/
|
|
18
|
+
createFunctionResponse?: (fnCall: FunctionCall, confirmed: boolean) => FunctionResponse;
|
|
19
|
+
/**
|
|
20
|
+
* 将模型文本拆分为过程节点和最终答案。
|
|
21
|
+
*/
|
|
22
|
+
parseProcessMessage?: (text: string, options?: ParseAgentMessageOptions) => ParsedPart[];
|
|
23
|
+
/**
|
|
24
|
+
* 自定义 approval 场景渲染,返回 null 则使用默认渲染。
|
|
25
|
+
*/
|
|
26
|
+
renderApproval?: (msg: IMessage, onConfirm?: (fnCall: FunctionCall, confirmed: boolean) => void) => React.ReactNode | null;
|
|
27
|
+
/**
|
|
28
|
+
* 自定义 handoff 场景渲染,返回 null 则使用默认渲染。
|
|
29
|
+
*/
|
|
30
|
+
renderHandoff?: (msg: IMessage) => React.ReactNode | null;
|
|
31
|
+
}
|
|
32
|
+
export interface ChatPreset {
|
|
33
|
+
name: string;
|
|
34
|
+
strategies?: ChatStrategies;
|
|
35
|
+
/**
|
|
36
|
+
* 基于当前协议预设创建默认文件上传函数。
|
|
37
|
+
* 用户显式传入 config.uploadRequest 时优先使用用户配置。
|
|
38
|
+
*/
|
|
39
|
+
createUploadRequest?: (context: {
|
|
40
|
+
url: string;
|
|
41
|
+
token?: string;
|
|
42
|
+
appNo?: string;
|
|
43
|
+
}) => UploadRequestFn | undefined;
|
|
44
|
+
}
|
|
45
|
+
export type ChatPresetInput = "base" | "xgroup-adk" | ChatPreset;
|