@ai-group/chat-sdk 3.3.5 → 3.3.6

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","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","withEventMeta","event","_event$modelCode","_event$usageMetadata","_event$finishReason","modelCode","usageMetadata","finishReason","raw","updateLastBotEventMeta","next","index","findLastIndex","role","storeEvents","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","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","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","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","_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 const withEventMeta = useCallback((msg: IMessage, event: Event): IMessage => {\n return {\n ...msg,\n modelCode: event.modelCode ?? msg.modelCode,\n usageMetadata: event.usageMetadata ?? msg.usageMetadata,\n finishReason: event.finishReason ?? msg.finishReason,\n raw: {\n ...(msg.raw || {}),\n ...event,\n },\n };\n }, []);\n\n const updateLastBotEventMeta = useCallback(\n (event: Event) => {\n if (!event.modelCode && !event.usageMetadata && !event.finishReason) return;\n\n setMessages((prev) => {\n const next = [...prev];\n const index = next.findLastIndex((msg) => msg.role === \"bot\");\n if (index < 0) return prev;\n\n next[index] = withEventMeta(next[index], event);\n return next;\n });\n },\n [withEventMeta],\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 modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 ...withEventMeta(textMsgRef.current, event),\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, withEventMeta],\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 updateLastBotEventMeta(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 updateLastBotEventMeta,\n ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading) return;\n if (!text.trim() && !files?.length && !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 modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\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 modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\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 // 切换会话时,abort 当前流式请求,防止数据污染和 loading 状态泄漏\n stopChat();\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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"}
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","sendingRef","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","withEventMeta","event","_event$modelCode","_event$usageMetadata","_event$finishReason","modelCode","usageMetadata","finishReason","raw","updateLastBotEventMeta","next","index","findLastIndex","role","storeEvents","_event$actions","title","actions","artifactDelta","name","executableCode","_part$executableCode$","code","codeExecutionResult","outcome","errorMessage","updatedEvent","newEventData","current","set","storeMessage","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","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","finish","initAppConversations","_x","apply","reChat","newMessages","lastAIIndex","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","_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","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 sendingRef = useRef(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 const withEventMeta = useCallback((msg: IMessage, event: Event): IMessage => {\n return {\n ...msg,\n modelCode: event.modelCode ?? msg.modelCode,\n usageMetadata: event.usageMetadata ?? msg.usageMetadata,\n finishReason: event.finishReason ?? msg.finishReason,\n raw: {\n ...(msg.raw || {}),\n ...event,\n },\n };\n }, []);\n\n const updateLastBotEventMeta = useCallback(\n (event: Event) => {\n if (!event.modelCode && !event.usageMetadata && !event.finishReason) return;\n\n setMessages((prev) => {\n const next = [...prev];\n const index = next.findLastIndex((msg) => msg.role === \"bot\");\n if (index < 0) return prev;\n\n next[index] = withEventMeta(next[index], event);\n return next;\n });\n },\n [withEventMeta],\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 modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 modelCode: event.modelCode,\n usageMetadata: event.usageMetadata,\n finishReason: event.finishReason,\n raw: event,\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 ...withEventMeta(textMsgRef.current, event),\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, withEventMeta],\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 updateLastBotEventMeta(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 updateLastBotEventMeta,\n ],\n );\n\n // 发送会话\n const startChat = async ({\n text = \"\",\n files = [],\n functionResponse,\n }: SendContent) => {\n if (loading || sendingRef.current) return;\n if (!text.trim() && !files?.length && !functionResponse) return;\n sendingRef.current = true;\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 try {\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 } finally {\n sendingRef.current = false;\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 modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\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 modelCode: item.modelCode,\n usageMetadata: item.usageMetadata,\n finishReason: item.finishReason,\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 // 切换会话时,abort 当前流式请求,防止数据污染和 loading 状态泄漏\n stopChat();\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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"}