@ai-group/chat-sdk 3.0.13 → 3.0.14

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.
@@ -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","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","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","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","raw","functionCallMsg","find","_msg$functionCall2","_part$functionRespons","setCurrentSessionDetail","_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","API_ERROR","suggestions"],"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 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 (\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 });\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 });\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 parts.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.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 = part.text;\n if (typeof part.thought !== \"undefined\") msg.thought = part.thought;\n }\n if (part.functionCall) msg.functionCall = part.functionCall;\n if (part.fileData) {\n msg.inlineData = {\n displayName: part.fileData.displayName || \"\",\n data: part.fileData.fileUri,\n mimeType: part.fileData.mimeType,\n } as any;\n }\n if (part.executableCode) msg.executableCode = part.executableCode;\n if (part.codeExecutionResult)\n msg.codeExecutionResult = part.codeExecutionResult;\n if (part.errorMessage) msg.text = part.errorMessage;\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 setCurrentSessionDetail = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n 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 setCurrentSessionDetail(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 //\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 setCurrentSessionDetail,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}
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","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","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","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","setCurrentSessionDetail","_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","API_ERROR","suggestions"],"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 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 (\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 });\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 });\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 setCurrentSessionDetail = async (sessionId: string) => {\n if (sessionId) {\n if (sessionId === currentSessionId) {\n return;\n }\n setCurrentSessionId(sessionId); // 设置当前会话 id;\n const { data, result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token,\n });\n\n if (result?.code === API_SUCCESS_CODE) {\n 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 setCurrentSessionDetail(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 //\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 setCurrentSessionDetail,\n setMessages,\n storeEvents,\n storeMessage,\n likeMessage,\n };\n}\n\nexport default useADKChat;\n"],"mappings":"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"}