@chat-lab/ui 0.1.0-beta.71 → 0.1.0-beta.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Chatkit/index.cjs +4 -3
- package/dist/components/Chatkit/index.cjs.map +1 -1
- package/dist/components/Chatkit/index.d.ts.map +1 -1
- package/dist/components/Chatkit/index.js +4 -3
- package/dist/components/Chatkit/index.js.map +1 -1
- package/dist/components/Chatkit/types.d.ts +1 -0
- package/dist/components/Chatkit/types.d.ts.map +1 -1
- package/dist/components/assistant-ui/markdown-text.cjs +14 -19
- package/dist/components/assistant-ui/markdown-text.cjs.map +1 -1
- package/dist/components/assistant-ui/markdown-text.d.ts +3 -1
- package/dist/components/assistant-ui/markdown-text.d.ts.map +1 -1
- package/dist/components/assistant-ui/markdown-text.js +16 -21
- package/dist/components/assistant-ui/markdown-text.js.map +1 -1
- package/dist/components/assistant-ui/thread.cjs +21 -9
- package/dist/components/assistant-ui/thread.cjs.map +1 -1
- package/dist/components/assistant-ui/thread.d.ts.map +1 -1
- package/dist/components/assistant-ui/thread.js +21 -9
- package/dist/components/assistant-ui/thread.js.map +1 -1
- package/dist/contexts/ChatkitContext.cjs.map +1 -1
- package/dist/contexts/ChatkitContext.d.ts +1 -0
- package/dist/contexts/ChatkitContext.d.ts.map +1 -1
- package/dist/contexts/ChatkitContext.js.map +1 -1
- package/dist/core/dist/index.cjs +5 -1
- package/dist/core/dist/index.cjs.map +1 -1
- package/dist/core/dist/index.js +5 -1
- package/dist/core/dist/index.js.map +1 -1
- package/dist/hooks/useClawChat/ClawProtocolAdaptor.cjs +10 -9
- package/dist/hooks/useClawChat/ClawProtocolAdaptor.cjs.map +1 -1
- package/dist/hooks/useClawChat/ClawProtocolAdaptor.d.ts.map +1 -1
- package/dist/hooks/useClawChat/ClawProtocolAdaptor.js +10 -9
- package/dist/hooks/useClawChat/ClawProtocolAdaptor.js.map +1 -1
- package/dist/index.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../core/dist/index.js"],"sourcesContent":["// src/protocols/Adk.ts\nimport { compact, keys, last } from \"lodash-es\";\nimport { v4 as uuid2 } from \"uuid\";\n\n// src/protocols/BaseProtocols.ts\nvar BaseProtocol = class {\n constructor(options) {\n this.protocol = options.protocol;\n this.protocolName = options.protocolName || options.protocol;\n }\n getProtocolName() {\n return this.protocolName;\n }\n onStartSend() {\n }\n onEndSend() {\n }\n};\nvar BaseProtocols_default = BaseProtocol;\n\n// src/protocols/constants.ts\nvar ProtocolEnum = {\n AG_UI: \"AG_UI\",\n ADK: \"ADK\",\n OPEN_AI: \"OPEN_AI\",\n ARK: \"ARK\",\n A2A: \"A2A\",\n // 以上直接提供支持\n CUSTOM: \"CUSTOM\"\n};\nvar SUPPORT_PROTOCOL = [\n ProtocolEnum.ADK,\n ProtocolEnum.OPEN_AI,\n ProtocolEnum.AG_UI,\n ProtocolEnum.ARK,\n ProtocolEnum.A2A\n];\n\n// src/utils/Message.ts\nimport { v4 as uuid } from \"uuid\";\n\n// src/types/Message.ts\nvar MessageStatus = /* @__PURE__ */ ((MessageStatus2) => {\n MessageStatus2[\"SENDING\"] = \"sending\";\n MessageStatus2[\"PENDING\"] = \"pending\";\n MessageStatus2[\"SUCCESS\"] = \"success\";\n MessageStatus2[\"ERROR\"] = \"error\";\n MessageStatus2[\"PAUSED\"] = \"paused\";\n MessageStatus2[\"ABORTED\"] = \"aborted\";\n return MessageStatus2;\n})(MessageStatus || {});\nvar isTextMessage = (message) => message.type === \"text\";\nvar isReasoningMessage = (message) => message.type === \"reasoning\";\nvar isImageMessage = (message) => message.type === \"image\";\nvar isMarkdownMessage = (message) => message.type === \"markdown\";\nvar isToolCallMessage = (message) => message.type === \"tool_call\";\nvar isHumanInLoopMessage = (message) => message.type === \"human_in_loop\";\nvar isCustomMessage = (message) => message.type === \"custom\";\n\n// src/utils/Message.ts\nfunction generateModelMessage(message) {\n return {\n id: uuid(),\n role: \"assistant\",\n status: \"sending\" /* SENDING */,\n content: [],\n createdAt: Date.now(),\n metadata: {},\n ...message\n };\n}\nvar isTextMessage2 = (message) => message.type === \"text\";\nvar isReasoningMessage2 = (message) => message.type === \"reasoning\";\n\n// src/utils/getDataType.ts\nvar supportTypes = [\"image\", \"video\"];\nvar supportMimeTypes = [\"application/pdf\"];\nvar getDataType = (mimeType) => {\n const type = mimeType.split(\"/\")[0];\n if (supportTypes.includes(type)) {\n return type;\n }\n if (supportMimeTypes.includes(mimeType)) {\n return \"pdf\";\n }\n return \"unknown\";\n};\n\n// src/protocols/Adk.ts\nvar isTextPart = (part) => {\n return \"text\" in part && !(\"thought\" in part);\n};\nvar isReasoningPart = (part) => {\n return \"text\" in part && !!part.thought;\n};\nvar isFunctionCallPart = (part) => {\n return \"functionCall\" in part;\n};\nvar isFunctionResponsePart = (part) => {\n return \"functionResponse\" in part;\n};\nvar isInlineResponsePart = (part) => {\n return \"inlineData\" in part;\n};\nvar isFileDataResponsePart = (part) => {\n return \"fileData\" in part;\n};\nvar formatInlinePart = (part) => {\n const dataType = getDataType(part.inlineData?.mimeType || \"\");\n if (dataType === \"unknown\") {\n console.log(\n `[chatkit:error]: encount unknow mime type ${part.inlineData.mimeType}`\n );\n return;\n }\n if (dataType === \"image\") {\n return {\n type: dataType,\n imageUrl: {\n url: `data:${part.inlineData?.mimeType};base64,${part.inlineData.data}`\n }\n };\n }\n const id = uuid2();\n return {\n type: \"file\",\n fileId: id,\n mimeType: part.inlineData.mimeType,\n fileData: part.inlineData.data,\n // 无 data 前缀\n name: `${part.inlineData.mimeType.split(\"/\")[1]}-${id}`\n };\n};\nvar formatFilePart = (part) => {\n const id = uuid2();\n return {\n type: \"file\",\n fileId: id,\n mimeType: part.fileData.mimeType,\n fileUrl: part.fileData.fileUri,\n name: part.fileData.displayName\n };\n};\nvar AdkProtocol = class extends BaseProtocols_default {\n constructor(options) {\n super(options);\n this.protocol = ProtocolEnum.ADK;\n this.authors = [];\n this.omitCompleteText = options.omitCompleteText == true;\n this.splitText = options.splitText || false;\n this.protocolName = options.protocolName || options.protocol;\n }\n onStartSend() {\n this.authors = [];\n this.lastAuthor = void 0;\n }\n // 修改parseChunk方法,使其符合父类抽象方法的定义\n parseChunk(chunk) {\n let { message, response } = chunk;\n let parsedJson = response;\n const author = parsedJson.author;\n if (parsedJson.error) {\n return {\n ...message,\n error: parsedJson.error,\n metadata: {\n ...message.metadata || {},\n invocationId: parsedJson.invocationId\n }\n };\n }\n let stateDelta = parsedJson?.actions?.stateDelta || {}, hasStateDelta = keys(stateDelta).length > 0;\n const parts = parsedJson?.content?.parts || [];\n if (parsedJson.partial) {\n for (const part of parts) {\n const lastMessageContent = last(\n message.content.filter((_content) => _content.author === author)\n );\n const lastReasoningContent = last(\n message.content.filter(\n (_content) => _content.author === author && isReasoningMessage2(_content)\n )\n );\n if (lastMessageContent && isTextMessage2(lastMessageContent) && isTextPart(part)) {\n lastMessageContent.text += part.text;\n } else if (isTextPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n {\n text: part.text,\n type: \"text\",\n author\n }\n ]\n };\n } else if (isReasoningPart(part) && lastReasoningContent) {\n lastReasoningContent.text += part.text;\n } else if (isReasoningPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n { text: part.text, type: \"reasoning\", author }\n ]\n };\n }\n }\n return {\n ...message,\n metadata: {\n ...message.metadata || {},\n invocationId: parsedJson.invocationId,\n hasStateDelta,\n stateDelta\n }\n };\n }\n for (const part of parts) {\n if (isFunctionCallPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n {\n content: null,\n toolCallId: part.functionCall.id,\n toolCallArgs: part.functionCall.args,\n toolCallName: part.functionCall.name,\n type: \"tool_call\",\n author\n }\n ]\n };\n } else if (isFunctionResponsePart(part)) {\n message = {\n ...message,\n content: message.content.map((item) => {\n if (item.type === \"tool_call\" && item.toolCallId === part.functionResponse.id) {\n return {\n ...item,\n content: part.functionResponse.response\n };\n }\n return item;\n })\n };\n } else if (isInlineResponsePart(part)) {\n message = {\n ...message,\n content: compact([...message.content, formatInlinePart(part)])\n };\n } else if (isFileDataResponsePart(part)) {\n message = {\n ...message,\n content: compact([...message.content, formatFilePart(part)])\n };\n } else if (\"text\" in part) {\n if (!this.omitCompleteText || parsedJson.content.role === \"user\") {\n if (isReasoningPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n { text: part.text, type: \"reasoning\", author }\n ]\n };\n } else if (isTextPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n { text: part.text, type: \"text\", author }\n ]\n };\n }\n }\n }\n }\n return {\n ...message,\n metadata: {\n ...message.metadata || {},\n invocationId: parsedJson.invocationId,\n hasStateDelta,\n stateDelta\n }\n };\n }\n // 修改generateRequestBody方法,使其符合父类抽象方法的定义\n generateRequestBody(request) {\n const { userMessage, defaultParams, dynamicParams } = request;\n const attachParts = userMessage.attaches?.map((item) => {\n if (item.url.startsWith(\"https://\") || item.url.startsWith(\"http://\") || item.url.startsWith(\"/\")) {\n return {\n fileData: {\n displayName: item.attachId,\n fileUri: item.url,\n mimeType: item.mimeType\n }\n };\n }\n const base64Data = item.url.startsWith(\"data:\") ? item.url.split(\",\")[1] : item.url;\n return {\n inlineData: {\n mimeType: item.mimeType,\n data: base64Data\n }\n };\n }) || [];\n return {\n ...defaultParams || {},\n ...dynamicParams || {},\n newMessage: {\n role: \"user\",\n parts: compact([\n ...userMessage.content?.map((item) => {\n if (item.type === \"text\") {\n return {\n text: item.text\n };\n }\n }) || [],\n ...attachParts\n ])\n }\n };\n }\n};\nvar Adk_default = AdkProtocol;\n\n// src/stores/index.ts\nimport { v4 as uuid3 } from \"uuid\";\nimport { proxy, useSnapshot } from \"valtio\";\nimport dayjs from \"dayjs\";\nvar defaultThreadManagerState = {\n loading: false,\n disabled: false,\n currentThreadId: null,\n threadMap: {}\n};\nvar createThreadManagerState = () => {\n return proxy({\n loading: false,\n disabled: false,\n currentThreadId: null,\n threadMap: {}\n });\n};\nvar createThreadManagerStateWithDefault = () => {\n const id = uuid3();\n return proxy({\n loading: false,\n disabled: false,\n currentThreadId: id,\n threadMap: {\n [id]: {\n id,\n name: id,\n metadata: {},\n sending: false,\n messages: [],\n createdAt: dayjs().unix()\n }\n }\n });\n};\nvar threadManagerState = proxy(defaultThreadManagerState);\nasync function initThreadManagerStore(state) {\n try {\n threadManagerState.currentThreadId = state?.currentThreadId || null;\n threadManagerState.threadMap = state?.threadMap || {};\n } catch (error) {\n console.error(\"initThreadManagerStore error\", error);\n }\n}\nvar generateThread = () => {\n const threadId = uuid3();\n const thread = {\n id: threadId,\n name: \"\\u9ED8\\u8BA4\\u5BF9\\u8BDD\",\n metadata: {},\n sending: false,\n messages: [],\n createdAt: dayjs().unix()\n };\n return { loading: false, disabled: false, currentThreadId: threadId, threadMap: { [threadId]: thread } };\n};\ninitThreadManagerStore(generateThread());\nvar useThreadManagerStore = () => useSnapshot(threadManagerState);\n\n// src/StoreManager.ts\nimport { v4 as uuidv4 } from \"uuid\";\nimport dayjs2 from \"dayjs\";\nvar ThreadMessageManager = class {\n constructor(state) {\n this.state = state;\n }\n // Thread APIs\n createThread({\n name = \"\",\n metadata = {},\n switchToNewThread = true\n }) {\n const id = uuidv4();\n const thread = {\n id,\n name: name || `\\u9ED8\\u8BA4\\u5BF9\\u8BDD${id.slice(0, 4)}`,\n metadata,\n createdAt: dayjs2().unix(),\n updatedAt: dayjs2().unix(),\n messages: [],\n sending: false\n };\n this.addThread(thread);\n if (switchToNewThread) {\n this.setCurrentThread(thread.id);\n }\n }\n addThread(thread) {\n if (this.checkThreadExist(thread.id, false)) {\n return;\n }\n this.state.threadMap[thread.id] = thread;\n }\n getThread(threadId, throwError = true) {\n const thread = this.checkThreadExist(threadId, throwError);\n if (!thread) {\n return null;\n }\n return this.state.threadMap[threadId];\n }\n setCurrentThread(threadId) {\n if (!this.checkThreadExist(threadId, false)) {\n console.warn(`Thread set current: thread not exist`, threadId);\n return;\n }\n this.state.currentThreadId = threadId;\n return threadId;\n }\n updateThread(threadId, thread) {\n this.checkThreadExist(threadId);\n this.state.threadMap[threadId] = {\n ...this.state.threadMap[threadId],\n ...thread,\n updatedAt: dayjs2().unix()\n };\n }\n deleteThread(threadId) {\n this.checkThreadExist(threadId);\n delete this.state.threadMap[threadId];\n }\n setSending(threadId, sending) {\n this.checkThreadExist(threadId);\n this.updateThread(threadId, { sending });\n }\n setLoading(threadId, loading, throwError = true) {\n const thread = this.checkThreadExist(threadId, throwError);\n if (!thread) {\n return;\n }\n this.updateThread(threadId, { loading });\n }\n getCurrentThread() {\n const threadId = this.state.currentThreadId;\n if (!threadId) {\n return null;\n }\n return this.state.threadMap[threadId];\n }\n checkThreadExist(threadId, throwError = true) {\n const thread = this.state.threadMap[threadId];\n if (!thread) {\n if (throwError) {\n throw new Error(`Thread ${threadId} not found`);\n }\n return null;\n }\n return thread;\n }\n // Message APIs\n getMessage(threadId, messageId) {\n return this.checkMessageExist(threadId, messageId);\n }\n addMessage(threadId, message) {\n const isExist = this.checkThreadExist(threadId, false);\n if (!isExist) {\n return;\n }\n this.state.threadMap[threadId].messages.push(message);\n }\n updateMessage(threadId, messageId, updateOptions) {\n const message = this.checkMessageExist(threadId, messageId);\n if (!message) {\n return;\n }\n const messageIndex = this.state.threadMap[threadId].messages.findIndex(\n (msg) => msg.id === messageId\n );\n const { updatedMessage, partial } = updateOptions;\n if (partial) {\n Object.assign(\n this.state.threadMap[threadId].messages[messageIndex],\n updatedMessage\n );\n } else {\n this.state.threadMap[threadId].messages[messageIndex] = {\n ...updatedMessage,\n id: messageId\n };\n }\n }\n updateMessages(threadId, messages) {\n this.checkThreadExist(threadId);\n this.state.threadMap[threadId].messages = messages;\n }\n removeMessage(threadId, messageId) {\n this.checkMessageExist(threadId, messageId);\n this.state.threadMap[threadId].messages = this.state.threadMap[threadId].messages.filter((msg) => msg.id !== messageId);\n }\n checkMessageExist(threadId, messageId) {\n const thread = this.checkThreadExist(threadId);\n if (!thread) {\n return null;\n }\n const message = thread.messages.find(\n (msg) => msg.id === messageId\n );\n if (!message) {\n return null;\n }\n return message;\n }\n};\nvar storeActions = new ThreadMessageManager(threadManagerState);\n\n// src/completions/a2aCompletion.ts\nimport {\n ClientFactory,\n ClientFactoryOptions,\n DefaultAgentCardResolver\n} from \"@a2a-js/sdk/client\";\nimport { v4 as uuid4 } from \"uuid\";\nfunction rewriteAgentCardUrl(original, serviceUrl) {\n const base = new URL(serviceUrl);\n const rewriteSingleUrl = (oldUrl) => {\n const u = new URL(oldUrl, base);\n u.protocol = base.protocol;\n u.hostname = base.hostname;\n u.port = base.port;\n return u.toString();\n };\n return {\n ...original,\n url: rewriteSingleUrl(original.url),\n additionalInterfaces: original.additionalInterfaces?.map((i) => ({\n ...i,\n url: rewriteSingleUrl(i.url)\n }))\n };\n}\nvar A2ACompletion = async ({\n onChunk,\n requestOptions,\n abortController,\n thread,\n onUpdateThread\n}) => {\n const cardResolver = new DefaultAgentCardResolver({\n fetchImpl: (input, init) => {\n return fetch(input, {\n ...init,\n headers: {\n ...init?.headers || {},\n ...requestOptions.headers\n }\n });\n }\n });\n const rawCard = await cardResolver.resolve(requestOptions.api);\n const serviceUrl = requestOptions.api;\n const rewrittenCard = rewriteAgentCardUrl(rawCard, serviceUrl);\n const factory = new ClientFactory(\n ClientFactoryOptions.createFrom(ClientFactoryOptions.default, {\n cardResolver\n })\n );\n const client = await factory.createFromAgentCard(rewrittenCard);\n const contextId = thread?.metadata?.contextId || uuid4();\n onUpdateThread?.({\n metadata: {\n ...thread?.metadata,\n contextId\n }\n });\n try {\n const stream = await client.sendMessageStream(\n {\n ...requestOptions.data,\n message: {\n ...requestOptions?.data?.message || {},\n contextId\n }\n },\n {\n signal: abortController?.signal,\n serviceParameters: requestOptions.headers\n }\n );\n for await (const event of stream) {\n onChunk({\n response: event,\n stop: () => {\n }\n });\n }\n } catch (e) {\n console.error(\"Error:\", e);\n }\n};\n\n// src/sse/SseError.ts\nvar SSEError = class {\n constructor(code, message, logid) {\n this.code = code;\n this.logid = logid;\n this.message = message;\n }\n};\n\n// src/utils/errorParse.ts\nfunction errorParse(str) {\n try {\n return JSON.parse(str);\n } catch (e) {\n try {\n return JSON.parse(str);\n } catch (e2) {\n const match = str.match(/^\\s*\\{\\s*\"error\"\\s*:\\s*\"(.*)\"\\s*\\}\\s*$/s);\n if (match) {\n return { error: match[1] };\n }\n throw e;\n }\n }\n}\n\n// src/sse/JsonParser.ts\nvar removePrefix = (text) => {\n if (text.startsWith(\"data:\")) {\n return text.slice(5);\n }\n return text;\n};\nvar JsonStreamParser = class {\n constructor(jsonParseCallback, finishCallback) {\n this.buffer = \"\";\n /**\n * Event Stream 的换行格式包括三种:CRLF(回车加换行)、LF(换行)和 CR(回车)\n * 默认支持 CRLF 换行格式\n * https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream\n */\n this.endOfLine = \"\\r\\n\\r\\n\";\n this.jsonParseCallback = jsonParseCallback;\n this.finishCallback = finishCallback;\n }\n receiveChunk(chunk) {\n this.buffer += chunk;\n this.findEndOfLine();\n let jsonBoundary = this.findJsonBoundary();\n while (jsonBoundary !== -1) {\n const rawJson = removePrefix(this.buffer.substring(0, jsonBoundary));\n this.buffer = this.buffer.substring(jsonBoundary + this.endOfLine.length);\n if (rawJson.trim() === \"[DONE]\") {\n this.finishCallback();\n return;\n }\n try {\n const json = JSON.parse(rawJson);\n this.jsonParseCallback(json);\n } catch (error) {\n try {\n const safeJson = errorParse(rawJson);\n if (safeJson) {\n this.jsonParseCallback(safeJson);\n } else {\n console.error(\"[JsonStreamParser] Failed to parse JSON\", error);\n }\n } catch (e) {\n console.error(\"[JsonStreamParser] Failed to parse JSON\", error);\n }\n }\n jsonBoundary = this.findJsonBoundary();\n }\n }\n checkFinishedWithSafeJson() {\n return this.buffer.length == 0 ? true : this.buffer;\n }\n findEndOfLine() {\n if (this.buffer.indexOf(\"\\r\\n\\r\\n\") !== -1) {\n this.endOfLine = \"\\r\\n\\r\\n\";\n } else if (this.buffer.indexOf(\"\\n\\n\") !== -1) {\n this.endOfLine = \"\\n\\n\";\n }\n }\n findJsonBoundary() {\n return this.buffer.indexOf(this.endOfLine);\n }\n};\n\n// src/sse/BetterEventSource.ts\nvar BetterEventSource = class {\n constructor(url, options) {\n this.headersReceived = null;\n this.isNormalFinished = false;\n this.url = url;\n this.options = options || {};\n this.eventListeners = /* @__PURE__ */ new Map();\n }\n fetchStream() {\n fetch(this.url, {\n method: \"POST\",\n headers: {\n ...this.options.headers,\n \"content-type\": \"application/json\"\n },\n body: this.options.body,\n credentials: \"include\",\n signal: this.options.abortSignal\n }).then(async (response) => {\n try {\n if (!response.ok) {\n const text = await response.text();\n this.emit(\"error\", new SSEError(\"ConnectionError\" /* ConnectionError */, text));\n return;\n }\n } catch (error) {\n try {\n response.json().then((resp) => {\n this.emit(\n \"error\",\n new SSEError(\"ConnectionError\" /* ConnectionError */, \"Fail to connect\")\n );\n });\n } catch (err) {\n this.emit(\n \"error\",\n new SSEError(\"ConnectionError\" /* ConnectionError */, \"Fail to connect\")\n );\n }\n return;\n }\n this.headersReceived = response.headers;\n this.emit(\"headerReceived\", this.headersReceived);\n const reader = response.body?.getReader();\n return this.readStream(reader);\n }).catch((error) => {\n this.emit(\n \"error\",\n new SSEError(\n error?.name || \"Error\" /* Error */,\n error?.message || \"Failed to response\"\n )\n );\n });\n }\n async readStream(reader) {\n if (!reader) {\n return;\n }\n const jsonStreamParser = new JsonStreamParser(\n (json) => {\n this.emit(\"message\", json);\n },\n () => this.isNormalFinished = true\n );\n const decoder = new TextDecoder();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n this.emit(\"end\");\n const remaining = jsonStreamParser.checkFinishedWithSafeJson();\n if (remaining) {\n this.emit(\n \"error\",\n new SSEError(\n \"ResponseStreamError\" /* ResponseStreamError */,\n \"Response Stream Error: response is not complete with remaining data: \" + remaining\n )\n );\n }\n if (this.isNormalFinished) {\n } else {\n this.emit(\n \"error\",\n new SSEError(\n \"InterruptError\" /* InterruptError */,\n \"Request abnormal termination\"\n )\n );\n }\n break;\n }\n const text = decoder.decode(value, { stream: true });\n let response = null;\n if (text.startsWith(\"data:\")) {\n response = text.slice(5);\n } else {\n response = text;\n }\n jsonStreamParser.receiveChunk(response);\n }\n } catch (error) {\n this.emit(\n \"error\",\n new SSEError(\n error?.name || \"ReadableStreamError\" /* ReadableStreamError */,\n error?.message || \"Failed to read stream\"\n )\n );\n } finally {\n try {\n reader.releaseLock();\n } catch (e) {\n console.warn(\n \"Failed to release reader lock, might be already released:\",\n e\n );\n }\n }\n }\n addEventListener(event, listener) {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event)?.push(listener);\n if (event === \"message\" && this.eventListeners.get(event)?.length === 1) {\n this.fetchStream();\n }\n }\n removeEventListener(event, listener) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n }\n emit(event, data) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((listener) => listener(data));\n }\n }\n getHeader(name) {\n return this.headersReceived?.get(name) || null;\n }\n};\n\n// src/completions/baseCompletion.ts\nvar completion = async (params) => {\n const {\n requestOptions: { api, headers = {}, data },\n abortController,\n onChunk\n } = params;\n try {\n const eventSource = new BetterEventSource(api, {\n body: JSON.stringify(data),\n headers,\n abortSignal: abortController?.signal\n });\n return new Promise((resolve, reject) => {\n eventSource.addEventListener(\"error\", (error) => {\n if (error.code === \"AbortError\") {\n console.log(error);\n return;\n }\n reject(error);\n });\n eventSource.addEventListener(\"message\", (data2) => {\n onChunk({ response: data2, stop: () => {\n } });\n });\n eventSource.addEventListener(\"end\", () => {\n resolve();\n });\n }).catch((err) => {\n if (err.code === \"AbortError\") {\n return;\n } else {\n throw err;\n }\n });\n } catch (error) {\n console.error(\"\\u8BF7\\u6C42\\u5931\\u8D25:\", error.message);\n throw error;\n }\n};\n\n// src/completions/adkCompletion.ts\nfunction getHostUrl(fullUrl) {\n if (!fullUrl) return \"\";\n try {\n const urlObj = new URL(fullUrl);\n return urlObj.origin;\n } catch (error) {\n console.error(`\\u89E3\\u6790URL\\u5931\\u8D25\\uFF0C\\u65E0\\u6548\\u7684URL\\u683C\\u5F0F\\uFF1A${fullUrl}`, error);\n return \"\";\n }\n}\nvar AdkCompletion = async (params) => {\n try {\n await completion(params);\n } catch (error) {\n if (error instanceof SSEError && error.message === '{\"detail\":\"Session not found\"}') {\n await fetch(\n `${getHostUrl(params.requestOptions.api)}/apps/${params.requestOptions.data?.appName}/users/${params.requestOptions.data?.userId}/sessions/${params.requestOptions.data?.sessionId}`,\n { method: \"post\", headers: params.requestOptions.headers }\n );\n await completion(params);\n return;\n }\n throw error;\n }\n};\nvar AdkCompletionWithWebsocket = async (params) => {\n try {\n await completion(params);\n } catch (error) {\n if (error instanceof SSEError && error.message === '{\"detail\":\"Session not found\"}') {\n await fetch(\n `${getHostUrl(params.requestOptions.api)}/apps/${params.requestOptions.data?.appName}/users/${params.requestOptions.data?.userId}/sessions/${params.requestOptions.data?.sessionId}`,\n {\n method: \"post\",\n headers: {\n ...params.requestOptions.headers || {},\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n websocket_id: params.requestOptions?.meta?.websocket_id\n })\n }\n );\n await completion(params);\n return;\n }\n throw error;\n }\n};\n\n// src/index.ts\nimport { useSnapshot as useSnapshot2, snapshot, subscribe } from \"valtio\";\n\n// src/MetaData.ts\nimport { proxy as proxy2 } from \"valtio\";\nvar createMetaData = (metaData) => proxy2(metaData || {});\n\n// src/protocols/a2a.ts\nimport { v4 as uuid5 } from \"uuid\";\nvar A2AProtocol = class extends BaseProtocols_default {\n constructor(options) {\n super(options);\n this.protocol = ProtocolEnum.A2A;\n this.protocolName = options.protocolName || options.protocol;\n }\n // 修改parseChunk方法,使其符合父类抽象方法的定义\n parseChunk(chunk) {\n let { message, response } = chunk;\n const event = response;\n switch (event.kind) {\n // case 'task':\n // const parts =\n // event.history?.reverse().find(prev => prev.role === 'agent')?.parts ||\n // [];\n // const contents = [];\n // for (const part of parts) {\n // if (part.kind === 'text') {\n // contents.push({\n // type: 'text' as const,\n // text: part.text,\n // });\n // }\n // }\n // return { ...message, content: contents };\n // }\n case \"artifact-update\":\n const parts = event.artifact.parts || [];\n const contents = [...message.content];\n for (const part of parts) {\n if (part.kind === \"text\") {\n contents.push({\n type: \"text\",\n text: part.text\n });\n }\n }\n return { ...message, content: contents };\n case \"status-update\": {\n const msg = event.status?.message;\n if (msg && msg.role === \"agent\") {\n const contents2 = [...message.content];\n for (const part of msg.parts) {\n if (part.kind === \"text\") {\n } else if (part.kind === \"data\") {\n const dataPart = part;\n const adkType = part.metadata?.adk_type;\n if (adkType === \"function_call\" || adkType === \"function_response\") {\n const existingIdx = contents2.findIndex(\n (c) => c.type === \"tool_call\" && c.toolCallId === dataPart.data.id\n );\n if (existingIdx !== -1) {\n const existing = contents2[existingIdx];\n if (adkType === \"function_call\") {\n existing.toolCallArgs = dataPart.data.args;\n existing.toolCallName = dataPart.data.name;\n } else {\n existing.content = dataPart.data.response;\n }\n contents2[existingIdx] = existing;\n } else {\n if (adkType === \"function_call\") {\n contents2.push({\n type: \"tool_call\",\n toolCallId: dataPart.data.id,\n toolCallName: dataPart.data.name,\n toolCallArgs: dataPart.data.args,\n content: null\n });\n } else {\n contents2.push({\n type: \"tool_call\",\n toolCallId: dataPart.data.id,\n toolCallName: dataPart.data.name,\n toolCallArgs: {},\n content: dataPart.data.response\n });\n }\n }\n }\n }\n }\n return { ...message, content: contents2 };\n }\n break;\n }\n }\n return message;\n }\n // 修改generateRequestBody方法,使其符合父类抽象方法的定义\n generateRequestBody(request) {\n const { userMessage, defaultParams, dynamicParams } = request;\n const attachParts = userMessage.attaches?.map((item) => {\n if (item.url.startsWith(\"https://\") || item.url.startsWith(\"http://\")) {\n return {\n fileData: {\n displayName: item.attachId,\n fileUri: item.url,\n mimeType: item.mimeType\n }\n };\n }\n const base64Data = item.url.startsWith(\"data:\") ? item.url.split(\",\")[1] : item.url;\n return {\n inlineData: {\n mimeType: item.mimeType,\n data: base64Data\n }\n };\n }) || [];\n return {\n // ...(defaultParams || {}),\n // ...(dynamicParams || {}),\n message: {\n messageId: uuid5(),\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: userMessage.content.filter((item) => item.type === \"text\").map((item) => item.text).join(\"\")\n }\n ],\n kind: \"message\"\n }\n };\n }\n};\nvar a2a_default = A2AProtocol;\n\n// src/protocols/ark.ts\nimport { findLastIndex } from \"lodash-es\";\nvar ArkProtocol = class extends BaseProtocols_default {\n // stream: boolean;\n constructor(options) {\n super(options);\n this.protocol = ProtocolEnum.ARK;\n this.protocolName = options.protocolName || options.protocol;\n }\n // 修改parseChunk方法的签名,使其符合BaseProtocol接口定义\n parseChunk(chunk) {\n const arkResponse = chunk.response;\n const text = arkResponse.choices?.[0]?.message?.content || \"\";\n const reasoningText = arkResponse?.choices?.[0]?.message?.reasoningContent || \"\";\n const newContent = [...chunk.message.content];\n if (reasoningText) {\n const lastReasoningIndex = findLastIndex(\n newContent,\n (c) => c.type === \"reasoning\"\n );\n if (lastReasoningIndex !== -1) {\n const prev = newContent[lastReasoningIndex];\n newContent[lastReasoningIndex] = {\n ...prev,\n text: prev.text + reasoningText\n };\n } else {\n newContent.push({\n type: \"reasoning\",\n text: reasoningText\n });\n }\n }\n if (text) {\n const lastTextIndex = findLastIndex(newContent, (c) => c.type === \"text\");\n if (lastTextIndex !== -1) {\n const prev = newContent[lastTextIndex];\n newContent[lastTextIndex] = {\n ...prev,\n text: prev.text + text\n };\n } else {\n newContent.push({\n type: \"text\",\n text\n });\n }\n }\n return {\n ...chunk.message,\n content: newContent\n };\n }\n // 修改generateRequestBody方法,确保包含defaultParams参数\n generateRequestBody(request) {\n const { userMessage, contextMessages } = request;\n return {\n model: \"doubao-seed-1-6-251015\",\n max_completion_tokens: 65535,\n messages: [\n ...contextMessages.map((item) => ({\n role: item.role,\n content: item.content.map((content) => ({\n text: content.text,\n type: \"text\"\n }))\n })),\n {\n content: [\n {\n text: userMessage.content[0].text,\n type: \"text\"\n }\n ],\n role: \"user\"\n }\n ],\n reasoning_effort: \"medium\"\n };\n }\n};\nvar ark_default = ArkProtocol;\n\n// src/protocols/getProtocol.ts\nvar getSupportProtocolAdaptor = (protocol) => {\n switch (protocol) {\n case ProtocolEnum.ARK:\n return new ark_default({\n protocolName: \"ark stream\",\n protocol: ProtocolEnum.ARK\n });\n case ProtocolEnum.ADK:\n return new Adk_default({\n protocolName: \"adk stream\",\n protocol: ProtocolEnum.ADK,\n omitCompleteText: true\n });\n case ProtocolEnum.A2A:\n return new a2a_default({\n protocolName: \"a2a stream\",\n protocol: ProtocolEnum.A2A\n });\n default:\n return new ark_default({\n protocolName: \"ark stream\",\n protocol: ProtocolEnum.ARK\n });\n }\n};\nvar getProtocolAdaptor = (protocolOptions) => {\n if (protocolOptions.protocol === ProtocolEnum.CUSTOM) {\n return protocolOptions.protocolAdaptor;\n }\n return getSupportProtocolAdaptor(protocolOptions.protocol);\n};\n\n// src/plugins/BasePlugin.ts\nimport mitt from \"mitt\";\nvar SyncWaterfallHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n call(initialData) {\n let currentData = initialData;\n const taps = [...this.taps];\n for (const tap of taps) {\n try {\n const result = tap.fn(currentData);\n if (result !== void 0) {\n currentData = result;\n }\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n return currentData;\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar AsyncSeriesWaterfallHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n tapAsync(name, fn) {\n this.tap(name, (data) => {\n return fn(data);\n });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n async callAsync(initialData) {\n let currentData = initialData;\n const taps = [...this.taps];\n for (const tap of taps) {\n try {\n const result = await tap.fn(currentData);\n if (result !== void 0) {\n currentData = result;\n }\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n return currentData;\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar SyncHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n call(data) {\n const taps = [...this.taps];\n for (const tap of taps) {\n try {\n tap.fn(data);\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar SyncBailHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n call(initialData) {\n for (const tap of this.taps) {\n try {\n const result = tap.fn(initialData);\n if (result !== void 0) {\n return result;\n }\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n return void 0;\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar ChatkitPlugin = class {\n constructor({ pluginName: pluginName2 }) {\n this.chatController = null;\n this.pluginName = pluginName2;\n this.emitter = mitt();\n }\n getName() {\n return this.pluginName;\n }\n apply(compiler) {\n throw new Error(\"[chatkit:plugin] function apply need to be implement!\");\n }\n setChatController(chatController) {\n this.chatController = chatController;\n }\n // Lifecycle hooks\n onInit() {\n }\n onDestroy() {\n }\n};\nvar Compiler = class {\n constructor() {\n this.hooks = {\n lifecycle: {\n inited: new AsyncSeriesWaterfallHook(),\n beforeInitStore: new AsyncSeriesWaterfallHook(),\n beforeDestroy: new AsyncSeriesWaterfallHook()\n },\n message: {\n received: new SyncHook(),\n beforeSend: new AsyncSeriesWaterfallHook(),\n error: new SyncWaterfallHook(),\n end: new AsyncSeriesWaterfallHook()\n },\n attachment: {\n added: new AsyncSeriesWaterfallHook(),\n removed: new AsyncSeriesWaterfallHook()\n },\n thread: {\n beforeCreate: new AsyncSeriesWaterfallHook(),\n created: new AsyncSeriesWaterfallHook(),\n updated: new AsyncSeriesWaterfallHook(),\n deleted: new AsyncSeriesWaterfallHook(),\n beforeSwitch: new AsyncSeriesWaterfallHook(),\n afterSwitch: new AsyncSeriesWaterfallHook()\n },\n error: {\n occurred: new SyncHook()\n },\n ui: {\n renderSlot: new SyncWaterfallHook()\n }\n };\n }\n offByName(name) {\n Object.values(this.hooks).forEach((group) => {\n Object.values(group).forEach((hook) => {\n if (hook instanceof AsyncSeriesWaterfallHook || hook instanceof SyncWaterfallHook || hook instanceof SyncHook || hook instanceof SyncBailHook) {\n hook.untap(name);\n }\n });\n });\n }\n};\nvar ChatkitPluginManager = class {\n constructor({\n plugins,\n chatController\n }) {\n this.plugins = [];\n this.plugins = [];\n this.compiler = new Compiler();\n this.chatController = chatController;\n plugins.forEach((plugin) => {\n this.addPlugin(plugin);\n });\n }\n async addPlugin(plugin) {\n if (this.plugins.includes(plugin)) return;\n this.plugins.push(plugin);\n plugin.apply(this.compiler);\n plugin.setChatController(this.chatController);\n if (plugin.onInit) {\n try {\n await plugin.onInit();\n } catch (e) {\n console.error(`Error initializing plugin ${plugin.getName()}:`, e);\n }\n }\n }\n async removePlugin(plugin) {\n const index = this.plugins.indexOf(plugin);\n if (index === -1) return;\n this.plugins = this.plugins.filter((p) => p !== plugin);\n this.compiler.offByName(plugin.getName());\n if (plugin.onDestroy) {\n try {\n await plugin.onDestroy();\n } catch (e) {\n console.error(`Error destroying plugin ${plugin.getName()}:`, e);\n }\n }\n }\n getPlugins() {\n return this.plugins;\n }\n // Accessor for the compiler to allow external triggering of hooks\n get hooks() {\n return this.compiler.hooks;\n }\n reportError(error) {\n return this.compiler.hooks.error.occurred.call(error);\n }\n getPluginByName(name) {\n return this.plugins.find((plugin) => plugin.getName() === name);\n }\n};\n\n// src/plugins/adk-plugin.ts\nimport { last as last2 } from \"lodash-es\";\nimport { v4 as uuid6 } from \"uuid\";\n\n// src/utils/LocalStorage.ts\nvar LocalStorage = class {\n constructor(namespace) {\n this.namespace = namespace;\n }\n getKey(key) {\n return `${this.namespace}:${key}`;\n }\n async getItem(key) {\n const value = localStorage.getItem(this.getKey(key));\n try {\n return value ? JSON.parse(value) : null;\n } catch (e) {\n return value;\n }\n }\n async setItem(key, value) {\n localStorage.setItem(this.getKey(key), JSON.stringify(value));\n }\n async removeItem(key) {\n localStorage.removeItem(this.getKey(key));\n }\n async removeByValue(value) {\n const targetValue = JSON.stringify(value);\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${this.namespace}:`)) {\n const itemValue = localStorage.getItem(key);\n if (itemValue === targetValue) {\n keysToRemove.push(key);\n }\n }\n }\n keysToRemove.forEach((key) => localStorage.removeItem(key));\n }\n};\n\n// src/plugins/adk-plugin.ts\nimport dayjs3 from \"dayjs\";\nvar pluginName = \"ADKPlugin\";\nfunction buildSessionUrl(api, appName, userId, sessionId) {\n const apiUrlObj = new URL(api);\n const baseUrl = `${apiUrlObj.origin}/apps/${appName}/users/${userId}/sessions/${sessionId}`;\n const queryString = apiUrlObj.search;\n return queryString ? `${baseUrl}${queryString}` : baseUrl;\n}\nfunction buildRunSseUrl(api) {\n const apiUrlObj = new URL(api);\n const baseApiUrl = `${apiUrlObj.origin}`;\n const queryString = apiUrlObj.search;\n return queryString ? `${baseApiUrl}/run_sse${queryString}` : `${baseApiUrl}/run_sse`;\n}\nvar AdkPlugin = class extends ChatkitPlugin {\n constructor(options) {\n super({ pluginName });\n this.runtimeMap = new LocalStorage(\"runtime\");\n this.switchRuntime = async (runtime, appName) => {\n this.options.appName = appName;\n const threadID = await this.runtimeMap.getItem(runtime);\n if (!threadID || !this.chatController?.getThread(threadID)) {\n const id = threadID || uuid6();\n this.chatController?.addThread({\n id,\n name: id,\n metadata: {},\n sending: false,\n messages: [],\n createdAt: dayjs3().unix()\n }).then((res) => {\n this.runtimeMap.setItem(runtime, res.id);\n this.chatController?.setCurrentThread(res.id);\n });\n return;\n }\n this.chatController?.setCurrentThread(threadID);\n };\n this.setAppName = (appName) => {\n this.options.appName = appName;\n };\n this.updateOptions = (options) => {\n this.options = options;\n };\n this.options = options;\n this.adkProtocol = new Adk_default({\n omitCompleteText: false,\n protocol: \"ADK\"\n });\n }\n apply(compiler) {\n compiler.hooks.message.beforeSend.tap(pluginName, async (ctx) => {\n const requestOptions = ctx.requestOptions || {};\n const headers = requestOptions.headers || {};\n const thread = ctx.thread;\n if (!requestOptions.api || !headers.Authorization) {\n this.chatController?.onError?.(\n new Error(\"ADK\\u914D\\u7F6E\\u7F3A\\u5931\\uFF1Aapi \\u6216 Authorization \\u4E3A\\u7A7A\")\n );\n ctx.shouldSend = false;\n return ctx;\n }\n const hasInitSession = !!thread.metadata?.[\"sessionInited\"];\n const isInitingSession = !!thread.metadata?.[\"isInitingSession\"];\n if (!hasInitSession && !isInitingSession) {\n ctx.thread.metadata = {\n ...ctx.thread.metadata,\n [\"isInitingSession\"]: true\n };\n let res;\n try {\n const url = buildSessionUrl(\n requestOptions.api,\n this.options.appName,\n this.options.userId,\n thread.id\n );\n res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: headers.Authorization\n }\n });\n if (!res.ok) {\n const text = await res.text();\n this.chatController?.onError?.(\n new Error(\n `ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u72B6\\u6001\\u7801\\uFF1A${res.status}\\uFF0C\\u9519\\u8BEF\\u4FE1\\u606F\\uFF1A${text}`\n )\n );\n ctx.shouldSend = false;\n return ctx;\n }\n } catch (error) {\n console.error(\"Error initializing ADK session:\", error);\n this.chatController?.onError?.(\n new Error(`ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u9519\\u8BEF\\u4FE1\\u606F\\uFF1A${error.message}`)\n );\n ctx.shouldSend = false;\n return ctx;\n }\n const xSessionId = res.headers.get(\"x-session-id\");\n const data = await res.json();\n const runSseUrl = buildRunSseUrl(requestOptions.api);\n this.chatController?.updateThread(ctx.thread.id, {\n metadata: {\n ...ctx.thread.metadata,\n [\"sessionInited\"]: true,\n [\"isInitingSession\"]: false,\n sessionId: data.id,\n [\"x-session-id\"]: xSessionId\n }\n });\n ctx.dynamicParams = {\n ...ctx.dynamicParams,\n sessionId: data.id,\n userId: this.options.userId,\n appName: this.options.appName\n };\n ctx.extraRequestOptions = {\n ...ctx.extraRequestOptions,\n headers: {\n ...requestOptions.headers,\n [\"x-session-id\"]: xSessionId\n },\n api: runSseUrl\n };\n return ctx;\n }\n ctx.dynamicParams = {\n ...ctx.dynamicParams,\n sessionId: thread.metadata?.[\"sessionId\"],\n userId: this.options.userId,\n appName: this.options.appName\n };\n ctx.extraRequestOptions = {\n ...ctx.extraRequestOptions,\n headers: {\n ...requestOptions.headers,\n [\"x-session-id\"]: thread.metadata?.[\"x-session-id\"]\n },\n api: buildRunSseUrl(requestOptions.api)\n };\n return ctx;\n });\n compiler.hooks.thread.created.tap(pluginName, async (thread) => {\n if (this.chatController === null) {\n return thread;\n }\n const threadId = thread.id;\n const requestOptions = this.chatController?.getRequestOptions();\n if (!requestOptions || !requestOptions.api || !requestOptions.headers) {\n this.chatController?.onError?.(\n new Error(\"ADK\\u914D\\u7F6E\\u7F3A\\u5931\\uFF1Aapi \\u6216 Authorization \\u4E3A\\u7A7A\")\n );\n return thread;\n }\n const url = buildSessionUrl(\n requestOptions.api,\n this.options.appName,\n this.options.userId,\n thread.id\n );\n const getFetchResponse = await fetch(url, {\n method: \"get\",\n headers: requestOptions.headers\n });\n if (getFetchResponse.ok) {\n const data = await getFetchResponse.json();\n const xSessionId = getFetchResponse.headers.get(\"x-session-id\");\n this.options.onStateChange?.(data.state);\n this.chatController?.updateThread(threadId, {\n metadata: {\n ...thread.metadata,\n [\"sessionInited\"]: true,\n sessionId: data.id,\n [\"isInitingSession\"]: false,\n [\"x-session-id\"]: xSessionId,\n state: data.state\n },\n // id: string;\n // author: string;\n // content: { parts: any[] };\n // }) =>\n // this.adkProtocol.parseChunk({\n // message: {\n // id: chunk.id,\n // status: MessageStatus.SUCCESS,\n // role: chunk.author === 'user' ? 'user' : 'assistant',\n // threadId: threadId,\n // metadata: {},\n // content: [],\n // },\n // response: chunk,\n // }),\n // ),\n messages: data?.events?.reduce((prev, cur) => {\n if (prev.length === 0 || cur.author === \"user\" || last2(prev)?.role !== (cur.author === \"user\" ? \"user\" : \"assistant\")) {\n prev.push(\n this.adkProtocol.parseChunk({\n message: {\n id: cur.id,\n status: \"success\" /* SUCCESS */,\n role: cur.author === \"user\" ? \"user\" : \"assistant\",\n threadId,\n metadata: {},\n content: []\n },\n response: cur\n })\n );\n } else {\n prev[prev.length - 1] = this.adkProtocol.parseChunk({\n message: last2(prev),\n response: cur\n });\n }\n return prev;\n }, [])\n });\n return thread;\n }\n const postFetchResponse = await fetch(url, {\n method: \"POST\",\n headers: requestOptions.headers\n });\n if (postFetchResponse.ok) {\n const data = await postFetchResponse.json();\n const xSessionId = postFetchResponse.headers.get(\"x-session-id\");\n this.chatController?.updateThread(threadId, {\n metadata: {\n ...thread.metadata,\n [\"sessionInited\"]: true,\n [\"x-session-id\"]: xSessionId,\n sessionId: data.id,\n [\"isInitingSession\"]: false\n },\n messages: []\n });\n } else {\n this.chatController?.onError?.(\n new Error(\n `ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u72B6\\u6001\\u7801\\uFF1A${postFetchResponse.status}`\n )\n );\n console.warn(\n `ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u72B6\\u6001\\u7801\\uFF1A${postFetchResponse.status}`\n );\n }\n return thread;\n });\n compiler.hooks.thread.afterSwitch.tap(\n pluginName,\n async (thread) => {\n if (this.chatController === null) {\n return thread;\n }\n const threadId = thread.id;\n const requestOptions = this.chatController?.getRequestOptions();\n const url = buildSessionUrl(\n requestOptions.api,\n this.options.appName,\n this.options.userId,\n thread.id\n );\n const res = await fetch(url, {\n method: \"POST\",\n headers: requestOptions.headers\n });\n if (res.ok) {\n const data = await res.json();\n this.chatController?.updateThread(threadId, {\n metadata: {\n ...thread.metadata,\n [\"sessionInited\"]: true,\n sessionId: data.id,\n [\"isInitingSession\"]: false,\n [\"x-session-id\"]: res.headers.get(\"x-session-id\")\n }\n // messages: data.events.map((chunk:{id:string}) =>\n // this.adkProtocol.parseChunk({\n // message: {\n // id: chunk.id,\n // status: MessageStatusEnum.SUCCESS,\n // role: chunk.message.role,\n // threadId: chunk.message.threadId,\n // metadata: chunk.message.metadata,\n // content: [],\n // },\n // response: chunk,\n // }),\n // ),\n });\n }\n return thread;\n }\n );\n compiler.hooks.thread.deleted.tap(pluginName, (thread) => {\n this.runtimeMap.removeByValue(thread.id);\n return thread;\n });\n compiler.hooks.error.occurred.tap(pluginName, (error) => {\n this.chatController?.onError?.(error);\n });\n }\n};\n\n// src/ChatController.ts\nimport { v4 as uuid7 } from \"uuid\";\nimport dayjs5 from \"dayjs\";\nimport { isNil } from \"lodash-es\";\n\n// src/Chat.ts\nimport dayjs4 from \"dayjs\";\nimport { throttle } from \"lodash-es\";\nasync function fetchChatCompletion({\n message,\n requestOptions,\n abortController,\n pluginManager,\n completions,\n protocolAdaptor,\n onResponse,\n onReceivedMessage,\n storeManager,\n thread\n}) {\n try {\n let currentMessage = storeManager.getMessage(\n message.threadId,\n message.id\n ) || message;\n const throttledOnResponse = throttle(\n (msg) => onResponse(msg),\n 500,\n { leading: true, trailing: true }\n );\n const onChunk = ({\n response\n }) => {\n const updatedMessage = protocolAdaptor.parseChunk({\n message: currentMessage,\n response\n });\n currentMessage = updatedMessage;\n onReceivedMessage?.(currentMessage);\n if (updatedMessage.status === \"error\" /* ERROR */) {\n throttledOnResponse.cancel();\n onResponse(() => ({ ...currentMessage, status: \"error\" /* ERROR */ }));\n return;\n }\n throttledOnResponse(() => ({\n status: \"pending\" /* PENDING */,\n ...currentMessage\n }));\n };\n try {\n if (abortController?.signal) {\n abortController.signal.addEventListener(\"abort\", () => {\n throttledOnResponse.cancel();\n currentMessage = {\n ...currentMessage,\n sending: false,\n status: \"aborted\" /* ABORTED */,\n endedAt: dayjs4().unix()\n };\n onResponse(currentMessage);\n });\n }\n await completions({\n abortController,\n requestOptions,\n onChunk,\n thread,\n onUpdateThread: (updates) => {\n storeManager.updateThread(message.threadId, updates);\n }\n });\n } catch (error) {\n throttledOnResponse.cancel();\n console.log(error);\n currentMessage = {\n ...currentMessage,\n status: \"error\" /* ERROR */,\n sending: false,\n endedAt: Date.now(),\n error: {\n message: error.message || \"\\u672A\\u77E5\\u9519\\u8BEF\",\n extra: error.stack\n }\n };\n onResponse(currentMessage);\n return;\n }\n throttledOnResponse.cancel();\n onResponse({\n ...currentMessage,\n id: currentMessage.id,\n threadId: currentMessage.threadId,\n status: currentMessage.status !== \"error\" /* ERROR */ ? \"success\" /* SUCCESS */ : \"error\" /* ERROR */,\n endedAt: Date.now()\n });\n } catch (error) {\n console.log(error);\n const _message = storeManager.getMessage(\n message.threadId,\n message.id\n );\n _message.status = \"error\" /* ERROR */;\n _message.sending = false;\n _message.endedAt = Date.now();\n _message.error = {\n message: error.message || \"\\u672A\\u77E5\\u9519\\u8BEF\",\n extra: error.stack\n };\n onResponse(_message);\n } finally {\n pluginManager.hooks.message.end.callAsync(\n storeManager.getThread(message.threadId)\n );\n }\n}\n\n// src/utils/ToRaw.ts\nvar toRaw = (obj) => {\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (err) {\n return obj;\n }\n};\n\n// src/ChatController.ts\nvar ChatController = class {\n constructor(options) {\n this.abortControllers = /* @__PURE__ */ new Map();\n this.pluginManager = new ChatkitPluginManager({\n plugins: options.plugins || [],\n chatController: this\n });\n this.requestOptions = options.requestOptions;\n this.protocolOptions = options.protocolOptions;\n this.store = options.storeManager || storeActions;\n this.onError = options.onError;\n this.metaData = options.metaData || createMetaData();\n }\n setStore(store) {\n this.store = store;\n }\n setRequestOptions(requestOptions) {\n let pending;\n if (typeof requestOptions === \"function\") {\n pending = requestOptions(this.requestOptions);\n } else {\n pending = requestOptions;\n }\n this.requestOptions = pending;\n }\n getRequestOptions() {\n return this.requestOptions;\n }\n setProtocolOptions(protocolOptions) {\n this.protocolOptions = protocolOptions;\n }\n getProtocolOptions() {\n return this.protocolOptions;\n }\n async sendMessage(msg, extraRequestOptions) {\n const currentThread = this.store.getCurrentThread();\n if (!currentThread) {\n return;\n }\n const userMessage = {\n id: msg.id || uuid7(),\n role: \"user\",\n threadId: currentThread.id,\n metadata: {},\n attaches: msg.attaches,\n status: \"sending\" /* SENDING */,\n content: msg.content,\n createdAt: dayjs5().unix(),\n updatedAt: dayjs5().unix()\n };\n const controller = new AbortController();\n this.abortControllers.set(currentThread.id, controller);\n await this.sendMessageCore({\n extraRequestOptions,\n userMessage,\n threadId: currentThread.id,\n allMessages: currentThread?.messages || [],\n abortController: controller\n });\n return controller;\n }\n async triggerCompletion({\n assistantMessage,\n extraRequestOptions\n }) {\n const currentThread = this.store.getCurrentThread();\n if (!currentThread) {\n return;\n }\n const controller = new AbortController();\n this.abortControllers.set(currentThread.id, controller);\n await this.sendMessageCore({\n assistantMessage,\n extraRequestOptions,\n threadId: currentThread.id,\n allMessages: currentThread?.messages || [],\n abortController: controller\n });\n return controller;\n }\n abortMessage(threadId) {\n const id = threadId || this.store.getCurrentThread()?.id;\n if (!id) {\n return;\n }\n const controller = this.abortControllers.get(id);\n controller?.abort();\n this.abortControllers.delete(id);\n this.store.setSending(id, false);\n this.store.setLoading(id, false);\n }\n getCurrentThread() {\n const thread = this.store.getCurrentThread();\n if (isNil(thread)) {\n return null;\n }\n return toRaw(thread);\n }\n async setCurrentThread(threadId) {\n this.store.setCurrentThread(threadId);\n }\n async addThread(thread) {\n const context = await this.pluginManager.hooks.thread.beforeCreate.callAsync(\n thread\n );\n this.store.addThread(context);\n this.pluginManager.hooks.thread.created.callAsync(context);\n return context;\n }\n getThread(threadId, throwError = false) {\n return this.store.getThread(threadId, throwError);\n }\n updateThread(threadId, thread) {\n this.store.updateThread(threadId, thread);\n }\n setThreadName(threadId, name) {\n this.store.updateThread(threadId, { name });\n }\n deleteThread(threadId) {\n const thread = this.store.getThread(threadId);\n if (!thread) {\n console.warn(\"Thread deleted: thread not exist\", threadId);\n return;\n }\n this.store.deleteThread(threadId);\n this.pluginManager.hooks.thread.deleted.callAsync(thread);\n }\n clearCurrentThread() {\n const currentThread = this.store.getCurrentThread();\n if (currentThread?.id) {\n if (currentThread.sending) {\n throw new Error(\"\\u6B63\\u5728\\u53D1\\u9001\\u6D88\\u606F\\uFF0C\\u8BF7\\u5148\\u505C\\u6B62\\u53D1\\u9001\\u518D\\u6E05\\u7A7A\\u4F1A\\u8BDD\");\n }\n this.updateThread(currentThread?.id, {\n sending: false,\n messages: [],\n createdAt: dayjs5().unix()\n });\n }\n }\n setSending(threadId, sending) {\n this.store.setSending(threadId, sending);\n }\n setLoading(threadId, loading) {\n this.store.setLoading(threadId, loading);\n }\n addMessage(threadId, message) {\n this.store.addMessage(threadId, message);\n }\n updateMessage(threadId, messageId, updateOptions) {\n this.store.updateMessage(threadId, messageId, updateOptions);\n }\n updateMessages(threadId, messages) {\n this.store.updateMessages(threadId, messages);\n }\n reloadMessage({\n threadId,\n messageId\n }) {\n const thread = this.store.getThread(threadId);\n if (!thread) {\n return;\n }\n const message = thread.messages.find((item) => messageId.includes(item.id));\n if (!message) {\n return;\n }\n const userMessage = {\n ...message,\n id: uuid7(),\n status: \"sending\" /* SENDING */\n };\n this.sendMessage({\n id: userMessage.id,\n content: userMessage.content,\n attaches: userMessage.attaches\n });\n }\n getMessage(threadId, messageId) {\n return this.store.getMessage(threadId, messageId);\n }\n removeMessage(threadId, messageId) {\n this.store.removeMessage(threadId, messageId);\n }\n async sendMessageCore({\n extraRequestOptions,\n userMessage,\n assistantMessage: assistantMessageFromProps,\n threadId,\n allMessages = [],\n abortController,\n // completions,\n onError: onErrorFromProps,\n override = false\n }) {\n const thread = this.store.getThread(threadId);\n if (!thread) {\n onErrorFromProps?.(new Error(`\\u5BF9\\u8BDD ${threadId} \\u4E0D\\u5B58\\u5728`));\n return;\n }\n let assistantMessage;\n this.store.setLoading(threadId, true);\n const onError = (error) => {\n this.store.setLoading(threadId, false);\n onErrorFromProps?.(error);\n };\n let hookContext = {\n requestOptions: this.requestOptions,\n userMessage,\n contextMessages: allMessages,\n thread,\n onError,\n dynamicParams: {},\n extraRequestOptions: {},\n shouldSend: true\n };\n try {\n hookContext = await this.pluginManager.hooks.message.beforeSend.callAsync(\n hookContext\n );\n } catch (e) {\n }\n if (hookContext.shouldSend === false) {\n this.store.setLoading(threadId, false, false);\n return;\n }\n const shouldSend = {\n dynamicParams: hookContext.dynamicParams,\n requestOptions: hookContext.extraRequestOptions,\n userMessage: hookContext.userMessage\n };\n const storeManager = this.store;\n try {\n const protocolAdaptor = getProtocolAdaptor(this.protocolOptions);\n const requestBody = protocolAdaptor.generateRequestBody({\n dynamicParams: shouldSend.dynamicParams,\n defaultParams: this.requestOptions.defaultParams || {},\n userMessage: shouldSend.userMessage || {\n role: \"user\",\n content: [],\n attaches: []\n },\n thread,\n contextMessages: allMessages\n });\n if (userMessage) storeManager.addMessage(threadId, userMessage);\n assistantMessage = assistantMessageFromProps || generateModelMessage({\n threadId\n });\n if (!assistantMessageFromProps) {\n if (override) {\n this.store.updateMessages(threadId, [\n ...allMessages,\n assistantMessage\n ]);\n } else this.store.addMessage(threadId, assistantMessage);\n }\n this.store.setSending(threadId, true);\n await fetchChatCompletion({\n abortController,\n message: assistantMessage,\n requestOptions: {\n ...this.requestOptions || {},\n ...shouldSend?.requestOptions || {},\n ...extraRequestOptions || {},\n data: requestBody\n },\n pluginManager: this.pluginManager,\n completions: this.requestOptions.completions || AdkCompletion,\n protocolAdaptor,\n storeManager,\n thread,\n onReceivedMessage: async (message) => {\n this.pluginManager.hooks.message.received.call(message);\n },\n onResponse: async (updatedMessageOrFactory) => {\n let updatedMessage;\n if (typeof updatedMessageOrFactory === \"function\") {\n updatedMessage = updatedMessageOrFactory();\n } else {\n updatedMessage = updatedMessageOrFactory;\n }\n if (updatedMessage.status === \"pending\" /* PENDING */ && !updatedMessage.createdAt) {\n updatedMessage.createdAt = Date.now();\n }\n storeManager.updateMessage(threadId, updatedMessage.id, {\n updatedMessage,\n partial: true\n });\n }\n });\n } catch (error) {\n onErrorFromProps?.(error);\n } finally {\n storeManager.setSending(threadId, false);\n storeManager.setLoading(threadId, false);\n return;\n }\n }\n};\nexport {\n A2ACompletion,\n AdkCompletion,\n AdkCompletionWithWebsocket,\n AdkPlugin,\n Adk_default as AdkProtocol,\n AsyncSeriesWaterfallHook,\n BaseProtocols_default as BaseProtocol,\n ChatController,\n ChatkitPlugin,\n ChatkitPluginManager,\n Compiler,\n MessageStatus,\n ProtocolEnum,\n SyncBailHook,\n SyncHook,\n SyncWaterfallHook,\n ThreadMessageManager,\n completion,\n createMetaData,\n createThreadManagerState,\n createThreadManagerStateWithDefault,\n getProtocolAdaptor,\n isCustomMessage,\n isHumanInLoopMessage,\n isImageMessage,\n isMarkdownMessage,\n isReasoningMessage,\n isTextMessage,\n isToolCallMessage,\n snapshot,\n storeActions,\n subscribe,\n threadManagerState,\n useSnapshot2 as useSnapshot,\n useThreadManagerStore\n};\n//# sourceMappingURL=index.js.map"],"names":["uuid","uuid2","uuid3","uuidv4","dayjs2","uuid4","proxy2","uuid5","uuid6","dayjs3","last2","dayjs4","uuid7","dayjs5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../core/dist/index.js"],"sourcesContent":["// src/protocols/Adk.ts\nimport { compact, keys, last } from \"lodash-es\";\nimport { v4 as uuid2 } from \"uuid\";\n\n// src/protocols/BaseProtocols.ts\nvar BaseProtocol = class {\n constructor(options) {\n this.protocol = options.protocol;\n this.protocolName = options.protocolName || options.protocol;\n }\n getProtocolName() {\n return this.protocolName;\n }\n onStartSend() {\n }\n onEndSend() {\n }\n};\nvar BaseProtocols_default = BaseProtocol;\n\n// src/protocols/constants.ts\nvar ProtocolEnum = {\n AG_UI: \"AG_UI\",\n ADK: \"ADK\",\n OPEN_AI: \"OPEN_AI\",\n ARK: \"ARK\",\n A2A: \"A2A\",\n // 以上直接提供支持\n CUSTOM: \"CUSTOM\"\n};\nvar SUPPORT_PROTOCOL = [\n ProtocolEnum.ADK,\n ProtocolEnum.OPEN_AI,\n ProtocolEnum.AG_UI,\n ProtocolEnum.ARK,\n ProtocolEnum.A2A\n];\n\n// src/utils/Message.ts\nimport { v4 as uuid } from \"uuid\";\n\n// src/types/Message.ts\nvar MessageStatus = /* @__PURE__ */ ((MessageStatus2) => {\n MessageStatus2[\"SENDING\"] = \"sending\";\n MessageStatus2[\"PENDING\"] = \"pending\";\n MessageStatus2[\"SUCCESS\"] = \"success\";\n MessageStatus2[\"ERROR\"] = \"error\";\n MessageStatus2[\"PAUSED\"] = \"paused\";\n MessageStatus2[\"ABORTED\"] = \"aborted\";\n return MessageStatus2;\n})(MessageStatus || {});\nvar isTextMessage = (message) => message.type === \"text\";\nvar isReasoningMessage = (message) => message.type === \"reasoning\";\nvar isImageMessage = (message) => message.type === \"image\";\nvar isMarkdownMessage = (message) => message.type === \"markdown\";\nvar isToolCallMessage = (message) => message.type === \"tool_call\";\nvar isHumanInLoopMessage = (message) => message.type === \"human_in_loop\";\nvar isCustomMessage = (message) => message.type === \"custom\";\n\n// src/utils/Message.ts\nfunction generateModelMessage(message) {\n return {\n id: uuid(),\n role: \"assistant\",\n status: \"sending\" /* SENDING */,\n content: [],\n createdAt: Date.now(),\n metadata: {},\n ...message\n };\n}\nvar isTextMessage2 = (message) => message.type === \"text\";\nvar isReasoningMessage2 = (message) => message.type === \"reasoning\";\n\n// src/utils/getDataType.ts\nvar supportTypes = [\"image\", \"video\"];\nvar supportMimeTypes = [\"application/pdf\"];\nvar getDataType = (mimeType) => {\n const type = mimeType.split(\"/\")[0];\n if (supportTypes.includes(type)) {\n return type;\n }\n if (supportMimeTypes.includes(mimeType)) {\n return \"pdf\";\n }\n return \"unknown\";\n};\n\n// src/protocols/Adk.ts\nvar isTextPart = (part) => {\n return \"text\" in part && !(\"thought\" in part);\n};\nvar isReasoningPart = (part) => {\n return \"text\" in part && !!part.thought;\n};\nvar isFunctionCallPart = (part) => {\n return \"functionCall\" in part;\n};\nvar isFunctionResponsePart = (part) => {\n return \"functionResponse\" in part;\n};\nvar isInlineResponsePart = (part) => {\n return \"inlineData\" in part;\n};\nvar isFileDataResponsePart = (part) => {\n return \"fileData\" in part;\n};\nvar formatInlinePart = (part) => {\n const dataType = getDataType(part.inlineData?.mimeType || \"\");\n if (dataType === \"unknown\") {\n console.log(\n `[chatkit:error]: encount unknow mime type ${part.inlineData.mimeType}`\n );\n return;\n }\n if (dataType === \"image\") {\n return {\n type: dataType,\n imageUrl: {\n url: `data:${part.inlineData?.mimeType};base64,${part.inlineData.data}`\n }\n };\n }\n const id = uuid2();\n return {\n type: \"file\",\n fileId: id,\n mimeType: part.inlineData.mimeType,\n fileData: part.inlineData.data,\n // 无 data 前缀\n name: `${part.inlineData.mimeType.split(\"/\")[1]}-${id}`\n };\n};\nvar formatFilePart = (part) => {\n const id = uuid2();\n return {\n type: \"file\",\n fileId: id,\n mimeType: part.fileData.mimeType,\n fileUrl: part.fileData.fileUri,\n name: part.fileData.displayName\n };\n};\nvar AdkProtocol = class extends BaseProtocols_default {\n constructor(options) {\n super(options);\n this.protocol = ProtocolEnum.ADK;\n this.authors = [];\n this.omitCompleteText = options.omitCompleteText == true;\n this.splitText = options.splitText || false;\n this.protocolName = options.protocolName || options.protocol;\n }\n onStartSend() {\n this.authors = [];\n this.lastAuthor = void 0;\n }\n // 修改parseChunk方法,使其符合父类抽象方法的定义\n parseChunk(chunk) {\n let { message, response } = chunk;\n let parsedJson = response;\n const author = parsedJson.author;\n if (parsedJson.error) {\n return {\n ...message,\n error: parsedJson.error,\n metadata: {\n ...message.metadata || {},\n invocationId: parsedJson.invocationId\n }\n };\n }\n let stateDelta = parsedJson?.actions?.stateDelta || {}, hasStateDelta = keys(stateDelta).length > 0;\n const parts = parsedJson?.content?.parts || [];\n if (parsedJson.partial) {\n for (const part of parts) {\n const lastMessageContent = last(\n message.content.filter((_content) => _content.author === author)\n );\n const lastReasoningContent = last(\n message.content.filter(\n (_content) => _content.author === author && isReasoningMessage2(_content)\n )\n );\n if (lastMessageContent && isTextMessage2(lastMessageContent) && isTextPart(part)) {\n lastMessageContent.text += part.text;\n } else if (isTextPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n {\n text: part.text,\n type: \"text\",\n author\n }\n ]\n };\n } else if (isReasoningPart(part) && lastReasoningContent) {\n lastReasoningContent.text += part.text;\n } else if (isReasoningPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n { text: part.text, type: \"reasoning\", author }\n ]\n };\n }\n }\n return {\n ...message,\n metadata: {\n ...message.metadata || {},\n invocationId: parsedJson.invocationId,\n hasStateDelta,\n stateDelta\n }\n };\n }\n for (const part of parts) {\n if (isFunctionCallPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n {\n content: null,\n toolCallId: part.functionCall.id,\n toolCallArgs: part.functionCall.args,\n toolCallName: part.functionCall.name,\n type: \"tool_call\",\n author\n }\n ]\n };\n } else if (isFunctionResponsePart(part)) {\n message = {\n ...message,\n content: message.content.map((item) => {\n if (item.type === \"tool_call\" && item.toolCallId === part.functionResponse.id) {\n return {\n ...item,\n content: part.functionResponse.response\n };\n }\n return item;\n })\n };\n } else if (isInlineResponsePart(part)) {\n message = {\n ...message,\n content: compact([...message.content, formatInlinePart(part)])\n };\n } else if (isFileDataResponsePart(part)) {\n message = {\n ...message,\n content: compact([...message.content, formatFilePart(part)])\n };\n } else if (\"text\" in part) {\n if (!this.omitCompleteText || parsedJson.content.role === \"user\") {\n if (isReasoningPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n { text: part.text, type: \"reasoning\", author }\n ]\n };\n } else if (isTextPart(part)) {\n message = {\n ...message,\n content: [\n ...message.content,\n { text: part.text, type: \"text\", author }\n ]\n };\n }\n }\n }\n }\n return {\n ...message,\n metadata: {\n ...message.metadata || {},\n invocationId: parsedJson.invocationId,\n hasStateDelta,\n stateDelta\n }\n };\n }\n // 修改generateRequestBody方法,使其符合父类抽象方法的定义\n generateRequestBody(request) {\n const { userMessage, defaultParams, dynamicParams } = request;\n const attachParts = userMessage.attaches?.map((item) => {\n if (item.url.startsWith(\"https://\") || item.url.startsWith(\"http://\") || item.url.startsWith(\"/\")) {\n return {\n fileData: {\n displayName: item.attachId,\n fileUri: item.url,\n mimeType: item.mimeType\n }\n };\n }\n const base64Data = item.url.startsWith(\"data:\") ? item.url.split(\",\")[1] : item.url;\n return {\n inlineData: {\n mimeType: item.mimeType,\n data: base64Data\n }\n };\n }) || [];\n return {\n ...defaultParams || {},\n ...dynamicParams || {},\n newMessage: {\n role: \"user\",\n parts: compact([\n ...userMessage.content?.map((item) => {\n if (item.type === \"text\") {\n return {\n text: item.text\n };\n }\n }) || [],\n ...attachParts\n ])\n }\n };\n }\n};\nvar Adk_default = AdkProtocol;\n\n// src/stores/index.ts\nimport { v4 as uuid3 } from \"uuid\";\nimport { proxy, useSnapshot } from \"valtio\";\nimport dayjs from \"dayjs\";\nvar defaultThreadManagerState = {\n loading: false,\n disabled: false,\n currentThreadId: null,\n threadMap: {}\n};\nvar createThreadManagerState = () => {\n return proxy({\n loading: false,\n disabled: false,\n currentThreadId: null,\n threadMap: {}\n });\n};\nvar createThreadManagerStateWithDefault = () => {\n const id = uuid3();\n return proxy({\n loading: false,\n disabled: false,\n currentThreadId: id,\n threadMap: {\n [id]: {\n id,\n name: id,\n metadata: {},\n sending: false,\n messages: [],\n createdAt: dayjs().unix()\n }\n }\n });\n};\nvar threadManagerState = proxy(defaultThreadManagerState);\nasync function initThreadManagerStore(state) {\n try {\n threadManagerState.currentThreadId = state?.currentThreadId || null;\n threadManagerState.threadMap = state?.threadMap || {};\n } catch (error) {\n console.error(\"initThreadManagerStore error\", error);\n }\n}\nvar generateThread = () => {\n const threadId = uuid3();\n const thread = {\n id: threadId,\n name: \"\\u9ED8\\u8BA4\\u5BF9\\u8BDD\",\n metadata: {},\n sending: false,\n messages: [],\n createdAt: dayjs().unix()\n };\n return { loading: false, disabled: false, currentThreadId: threadId, threadMap: { [threadId]: thread } };\n};\ninitThreadManagerStore(generateThread());\nvar useThreadManagerStore = () => useSnapshot(threadManagerState);\n\n// src/StoreManager.ts\nimport { v4 as uuidv4 } from \"uuid\";\nimport dayjs2 from \"dayjs\";\nvar ThreadMessageManager = class {\n constructor(state) {\n this.state = state;\n }\n // Thread APIs\n createThread({\n name = \"\",\n metadata = {},\n switchToNewThread = true\n }) {\n const id = uuidv4();\n const thread = {\n id,\n name: name || `\\u9ED8\\u8BA4\\u5BF9\\u8BDD${id.slice(0, 4)}`,\n metadata,\n createdAt: dayjs2().unix(),\n updatedAt: dayjs2().unix(),\n messages: [],\n sending: false\n };\n this.addThread(thread);\n if (switchToNewThread) {\n this.setCurrentThread(thread.id);\n }\n }\n addThread(thread) {\n if (this.checkThreadExist(thread.id, false)) {\n return;\n }\n this.state.threadMap[thread.id] = thread;\n }\n getThread(threadId, throwError = true) {\n const thread = this.checkThreadExist(threadId, throwError);\n if (!thread) {\n return null;\n }\n return this.state.threadMap[threadId];\n }\n setCurrentThread(threadId) {\n if (!this.checkThreadExist(threadId, false)) {\n console.warn(`Thread set current: thread not exist`, threadId);\n return;\n }\n this.state.currentThreadId = threadId;\n return threadId;\n }\n updateThread(threadId, thread) {\n this.checkThreadExist(threadId);\n this.state.threadMap[threadId] = {\n ...this.state.threadMap[threadId],\n ...thread,\n updatedAt: dayjs2().unix()\n };\n }\n deleteThread(threadId) {\n this.checkThreadExist(threadId);\n delete this.state.threadMap[threadId];\n }\n setSending(threadId, sending) {\n this.checkThreadExist(threadId);\n this.updateThread(threadId, { sending });\n }\n setLoading(threadId, loading, throwError = true) {\n const thread = this.checkThreadExist(threadId, throwError);\n if (!thread) {\n return;\n }\n this.updateThread(threadId, { loading });\n }\n getCurrentThread() {\n const threadId = this.state.currentThreadId;\n if (!threadId) {\n return null;\n }\n return this.state.threadMap[threadId];\n }\n checkThreadExist(threadId, throwError = true) {\n const thread = this.state.threadMap[threadId];\n if (!thread) {\n if (throwError) {\n throw new Error(`Thread ${threadId} not found`);\n }\n return null;\n }\n return thread;\n }\n // Message APIs\n getMessage(threadId, messageId) {\n return this.checkMessageExist(threadId, messageId);\n }\n addMessage(threadId, message) {\n const isExist = this.checkThreadExist(threadId, false);\n if (!isExist) {\n return;\n }\n this.state.threadMap[threadId].messages.push(message);\n }\n updateMessage(threadId, messageId, updateOptions) {\n const message = this.checkMessageExist(threadId, messageId);\n if (!message) {\n return;\n }\n const messageIndex = this.state.threadMap[threadId].messages.findIndex(\n (msg) => msg.id === messageId\n );\n const { updatedMessage, partial } = updateOptions;\n if (partial) {\n Object.assign(\n this.state.threadMap[threadId].messages[messageIndex],\n updatedMessage\n );\n } else {\n this.state.threadMap[threadId].messages[messageIndex] = {\n ...updatedMessage,\n id: messageId\n };\n }\n }\n updateMessages(threadId, messages) {\n this.checkThreadExist(threadId);\n this.state.threadMap[threadId].messages = messages;\n }\n removeMessage(threadId, messageId) {\n this.checkMessageExist(threadId, messageId);\n this.state.threadMap[threadId].messages = this.state.threadMap[threadId].messages.filter((msg) => msg.id !== messageId);\n }\n checkMessageExist(threadId, messageId) {\n const thread = this.checkThreadExist(threadId);\n if (!thread) {\n return null;\n }\n const message = thread.messages.find(\n (msg) => msg.id === messageId\n );\n if (!message) {\n return null;\n }\n return message;\n }\n};\nvar storeActions = new ThreadMessageManager(threadManagerState);\n\n// src/completions/a2aCompletion.ts\nimport {\n ClientFactory,\n ClientFactoryOptions,\n DefaultAgentCardResolver\n} from \"@a2a-js/sdk/client\";\nimport { v4 as uuid4 } from \"uuid\";\nfunction rewriteAgentCardUrl(original, serviceUrl) {\n const base = new URL(serviceUrl);\n const rewriteSingleUrl = (oldUrl) => {\n const u = new URL(oldUrl, base);\n u.protocol = base.protocol;\n u.hostname = base.hostname;\n u.port = base.port;\n return u.toString();\n };\n return {\n ...original,\n url: rewriteSingleUrl(original.url),\n additionalInterfaces: original.additionalInterfaces?.map((i) => ({\n ...i,\n url: rewriteSingleUrl(i.url)\n }))\n };\n}\nvar A2ACompletion = async ({\n onChunk,\n requestOptions,\n abortController,\n thread,\n onUpdateThread\n}) => {\n const cardResolver = new DefaultAgentCardResolver({\n fetchImpl: (input, init) => {\n return fetch(input, {\n ...init,\n headers: {\n ...init?.headers || {},\n ...requestOptions.headers\n }\n });\n }\n });\n const rawCard = await cardResolver.resolve(requestOptions.api);\n const serviceUrl = requestOptions.api;\n const rewrittenCard = rewriteAgentCardUrl(rawCard, serviceUrl);\n const factory = new ClientFactory(\n ClientFactoryOptions.createFrom(ClientFactoryOptions.default, {\n cardResolver\n })\n );\n const client = await factory.createFromAgentCard(rewrittenCard);\n const contextId = thread?.metadata?.contextId || uuid4();\n onUpdateThread?.({\n metadata: {\n ...thread?.metadata,\n contextId\n }\n });\n try {\n const stream = await client.sendMessageStream(\n {\n ...requestOptions.data,\n message: {\n ...requestOptions?.data?.message || {},\n contextId\n }\n },\n {\n signal: abortController?.signal,\n serviceParameters: requestOptions.headers\n }\n );\n for await (const event of stream) {\n onChunk({\n response: event,\n stop: () => {\n }\n });\n }\n } catch (e) {\n console.error(\"Error:\", e);\n }\n};\n\n// src/sse/SseError.ts\nvar SSEError = class {\n constructor(code, message, logid) {\n this.code = code;\n this.logid = logid;\n this.message = message;\n }\n};\n\n// src/utils/errorParse.ts\nfunction errorParse(str) {\n try {\n return JSON.parse(str);\n } catch (e) {\n try {\n return JSON.parse(str);\n } catch (e2) {\n const match = str.match(/^\\s*\\{\\s*\"error\"\\s*:\\s*\"(.*)\"\\s*\\}\\s*$/s);\n if (match) {\n return { error: match[1] };\n }\n throw e;\n }\n }\n}\n\n// src/sse/JsonParser.ts\nvar removePrefix = (text) => {\n if (text.startsWith(\"data:\")) {\n return text.slice(5);\n }\n return text;\n};\nvar JsonStreamParser = class {\n constructor(jsonParseCallback, finishCallback) {\n this.buffer = \"\";\n /**\n * Event Stream 的换行格式包括三种:CRLF(回车加换行)、LF(换行)和 CR(回车)\n * 默认支持 CRLF 换行格式\n * https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream\n */\n this.endOfLine = \"\\r\\n\\r\\n\";\n this.jsonParseCallback = jsonParseCallback;\n this.finishCallback = finishCallback;\n }\n receiveChunk(chunk) {\n this.buffer += chunk;\n this.findEndOfLine();\n let jsonBoundary = this.findJsonBoundary();\n while (jsonBoundary !== -1) {\n const rawJson = removePrefix(this.buffer.substring(0, jsonBoundary));\n this.buffer = this.buffer.substring(jsonBoundary + this.endOfLine.length);\n if (rawJson.trim() === \"[DONE]\") {\n this.finishCallback();\n return;\n }\n try {\n const json = JSON.parse(rawJson);\n this.jsonParseCallback(json);\n } catch (error) {\n try {\n const safeJson = errorParse(rawJson);\n if (safeJson) {\n this.jsonParseCallback(safeJson);\n } else {\n console.error(\"[JsonStreamParser] Failed to parse JSON\", error);\n }\n } catch (e) {\n console.error(\"[JsonStreamParser] Failed to parse JSON\", error);\n }\n }\n jsonBoundary = this.findJsonBoundary();\n }\n }\n checkFinishedWithSafeJson() {\n return this.buffer.length == 0 ? true : this.buffer;\n }\n findEndOfLine() {\n if (this.buffer.indexOf(\"\\r\\n\\r\\n\") !== -1) {\n this.endOfLine = \"\\r\\n\\r\\n\";\n } else if (this.buffer.indexOf(\"\\n\\n\") !== -1) {\n this.endOfLine = \"\\n\\n\";\n }\n }\n findJsonBoundary() {\n return this.buffer.indexOf(this.endOfLine);\n }\n};\n\n// src/sse/BetterEventSource.ts\nvar BetterEventSource = class {\n constructor(url, options) {\n this.headersReceived = null;\n this.isNormalFinished = false;\n this.url = url;\n this.options = options || {};\n this.eventListeners = /* @__PURE__ */ new Map();\n }\n fetchStream() {\n fetch(this.url, {\n method: \"POST\",\n headers: {\n ...this.options.headers,\n \"content-type\": \"application/json\"\n },\n body: this.options.body,\n credentials: \"include\",\n signal: this.options.abortSignal\n }).then(async (response) => {\n try {\n if (!response.ok) {\n const text = await response.text();\n this.emit(\"error\", new SSEError(\"ConnectionError\" /* ConnectionError */, text));\n return;\n }\n } catch (error) {\n try {\n response.json().then((resp) => {\n this.emit(\n \"error\",\n new SSEError(\"ConnectionError\" /* ConnectionError */, \"Fail to connect\")\n );\n });\n } catch (err) {\n this.emit(\n \"error\",\n new SSEError(\"ConnectionError\" /* ConnectionError */, \"Fail to connect\")\n );\n }\n return;\n }\n this.headersReceived = response.headers;\n this.emit(\"headerReceived\", this.headersReceived);\n const reader = response.body?.getReader();\n return this.readStream(reader);\n }).catch((error) => {\n this.emit(\n \"error\",\n new SSEError(\n error?.name || \"Error\" /* Error */,\n error?.message || \"Failed to response\"\n )\n );\n });\n }\n async readStream(reader) {\n if (!reader) {\n return;\n }\n const jsonStreamParser = new JsonStreamParser(\n (json) => {\n this.emit(\"message\", json);\n },\n () => this.isNormalFinished = true\n );\n const decoder = new TextDecoder();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n this.emit(\"end\");\n const remaining = jsonStreamParser.checkFinishedWithSafeJson();\n if (remaining) {\n this.emit(\n \"error\",\n new SSEError(\n \"ResponseStreamError\" /* ResponseStreamError */,\n \"Response Stream Error: response is not complete with remaining data: \" + remaining\n )\n );\n }\n if (this.isNormalFinished) {\n } else {\n this.emit(\n \"error\",\n new SSEError(\n \"InterruptError\" /* InterruptError */,\n \"Request abnormal termination\"\n )\n );\n }\n break;\n }\n const text = decoder.decode(value, { stream: true });\n let response = null;\n if (text.startsWith(\"data:\")) {\n response = text.slice(5);\n } else {\n response = text;\n }\n jsonStreamParser.receiveChunk(response);\n }\n } catch (error) {\n this.emit(\n \"error\",\n new SSEError(\n error?.name || \"ReadableStreamError\" /* ReadableStreamError */,\n error?.message || \"Failed to read stream\"\n )\n );\n } finally {\n try {\n reader.releaseLock();\n } catch (e) {\n console.warn(\n \"Failed to release reader lock, might be already released:\",\n e\n );\n }\n }\n }\n addEventListener(event, listener) {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event)?.push(listener);\n if (event === \"message\" && this.eventListeners.get(event)?.length === 1) {\n this.fetchStream();\n }\n }\n removeEventListener(event, listener) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n }\n emit(event, data) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((listener) => listener(data));\n }\n }\n getHeader(name) {\n return this.headersReceived?.get(name) || null;\n }\n};\n\n// src/completions/baseCompletion.ts\nvar completion = async (params) => {\n const {\n requestOptions: { api, headers = {}, data },\n abortController,\n onChunk\n } = params;\n try {\n const eventSource = new BetterEventSource(api, {\n body: JSON.stringify(data),\n headers,\n abortSignal: abortController?.signal\n });\n return new Promise((resolve, reject) => {\n eventSource.addEventListener(\"error\", (error) => {\n if (error.code === \"AbortError\") {\n console.log(error);\n return;\n }\n reject(error);\n });\n eventSource.addEventListener(\"message\", (data2) => {\n onChunk({ response: data2, stop: () => {\n } });\n });\n eventSource.addEventListener(\"end\", () => {\n resolve();\n });\n }).catch((err) => {\n if (err.code === \"AbortError\") {\n return;\n } else {\n throw err;\n }\n });\n } catch (error) {\n console.error(\"\\u8BF7\\u6C42\\u5931\\u8D25:\", error.message);\n throw error;\n }\n};\n\n// src/completions/adkCompletion.ts\nfunction getHostUrl(fullUrl) {\n if (!fullUrl) return \"\";\n try {\n const urlObj = new URL(fullUrl);\n return urlObj.origin;\n } catch (error) {\n console.error(`\\u89E3\\u6790URL\\u5931\\u8D25\\uFF0C\\u65E0\\u6548\\u7684URL\\u683C\\u5F0F\\uFF1A${fullUrl}`, error);\n return \"\";\n }\n}\nvar AdkCompletion = async (params) => {\n try {\n await completion(params);\n } catch (error) {\n if (error instanceof SSEError && error.message === '{\"detail\":\"Session not found\"}') {\n await fetch(\n `${getHostUrl(params.requestOptions.api)}/apps/${params.requestOptions.data?.appName}/users/${params.requestOptions.data?.userId}/sessions/${params.requestOptions.data?.sessionId}`,\n { method: \"post\", headers: params.requestOptions.headers }\n );\n await completion(params);\n return;\n }\n throw error;\n }\n};\nvar AdkCompletionWithWebsocket = async (params) => {\n try {\n await completion(params);\n } catch (error) {\n if (error instanceof SSEError && error.message === '{\"detail\":\"Session not found\"}') {\n await fetch(\n `${getHostUrl(params.requestOptions.api)}/apps/${params.requestOptions.data?.appName}/users/${params.requestOptions.data?.userId}/sessions/${params.requestOptions.data?.sessionId}`,\n {\n method: \"post\",\n headers: {\n ...params.requestOptions.headers || {},\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n websocket_id: params.requestOptions?.meta?.websocket_id\n })\n }\n );\n await completion(params);\n return;\n }\n throw error;\n }\n};\n\n// src/index.ts\nimport { useSnapshot as useSnapshot2, snapshot, subscribe } from \"valtio\";\n\n// src/MetaData.ts\nimport { proxy as proxy2 } from \"valtio/vanilla\";\nvar createMetaData = (metaData) => {\n const meta = proxy2(metaData || {});\n return meta;\n};\n\n// src/protocols/a2a.ts\nimport { v4 as uuid5 } from \"uuid\";\nvar A2AProtocol = class extends BaseProtocols_default {\n constructor(options) {\n super(options);\n this.protocol = ProtocolEnum.A2A;\n this.protocolName = options.protocolName || options.protocol;\n }\n // 修改parseChunk方法,使其符合父类抽象方法的定义\n parseChunk(chunk) {\n let { message, response } = chunk;\n const event = response;\n switch (event.kind) {\n // case 'task':\n // const parts =\n // event.history?.reverse().find(prev => prev.role === 'agent')?.parts ||\n // [];\n // const contents = [];\n // for (const part of parts) {\n // if (part.kind === 'text') {\n // contents.push({\n // type: 'text' as const,\n // text: part.text,\n // });\n // }\n // }\n // return { ...message, content: contents };\n // }\n case \"artifact-update\":\n const parts = event.artifact.parts || [];\n const contents = [...message.content];\n for (const part of parts) {\n if (part.kind === \"text\") {\n contents.push({\n type: \"text\",\n text: part.text\n });\n }\n }\n return { ...message, content: contents };\n case \"status-update\": {\n const msg = event.status?.message;\n if (msg && msg.role === \"agent\") {\n const contents2 = [...message.content];\n for (const part of msg.parts) {\n if (part.kind === \"text\") {\n } else if (part.kind === \"data\") {\n const dataPart = part;\n const adkType = part.metadata?.adk_type;\n if (adkType === \"function_call\" || adkType === \"function_response\") {\n const existingIdx = contents2.findIndex(\n (c) => c.type === \"tool_call\" && c.toolCallId === dataPart.data.id\n );\n if (existingIdx !== -1) {\n const existing = contents2[existingIdx];\n if (adkType === \"function_call\") {\n existing.toolCallArgs = dataPart.data.args;\n existing.toolCallName = dataPart.data.name;\n } else {\n existing.content = dataPart.data.response;\n }\n contents2[existingIdx] = existing;\n } else {\n if (adkType === \"function_call\") {\n contents2.push({\n type: \"tool_call\",\n toolCallId: dataPart.data.id,\n toolCallName: dataPart.data.name,\n toolCallArgs: dataPart.data.args,\n content: null\n });\n } else {\n contents2.push({\n type: \"tool_call\",\n toolCallId: dataPart.data.id,\n toolCallName: dataPart.data.name,\n toolCallArgs: {},\n content: dataPart.data.response\n });\n }\n }\n }\n }\n }\n return { ...message, content: contents2 };\n }\n break;\n }\n }\n return message;\n }\n // 修改generateRequestBody方法,使其符合父类抽象方法的定义\n generateRequestBody(request) {\n const { userMessage, defaultParams, dynamicParams } = request;\n const attachParts = userMessage.attaches?.map((item) => {\n if (item.url.startsWith(\"https://\") || item.url.startsWith(\"http://\")) {\n return {\n fileData: {\n displayName: item.attachId,\n fileUri: item.url,\n mimeType: item.mimeType\n }\n };\n }\n const base64Data = item.url.startsWith(\"data:\") ? item.url.split(\",\")[1] : item.url;\n return {\n inlineData: {\n mimeType: item.mimeType,\n data: base64Data\n }\n };\n }) || [];\n return {\n // ...(defaultParams || {}),\n // ...(dynamicParams || {}),\n message: {\n messageId: uuid5(),\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: userMessage.content.filter((item) => item.type === \"text\").map((item) => item.text).join(\"\")\n }\n ],\n kind: \"message\"\n }\n };\n }\n};\nvar a2a_default = A2AProtocol;\n\n// src/protocols/ark.ts\nimport { findLastIndex } from \"lodash-es\";\nvar ArkProtocol = class extends BaseProtocols_default {\n // stream: boolean;\n constructor(options) {\n super(options);\n this.protocol = ProtocolEnum.ARK;\n this.protocolName = options.protocolName || options.protocol;\n }\n // 修改parseChunk方法的签名,使其符合BaseProtocol接口定义\n parseChunk(chunk) {\n const arkResponse = chunk.response;\n const text = arkResponse.choices?.[0]?.message?.content || \"\";\n const reasoningText = arkResponse?.choices?.[0]?.message?.reasoningContent || \"\";\n const newContent = [...chunk.message.content];\n if (reasoningText) {\n const lastReasoningIndex = findLastIndex(\n newContent,\n (c) => c.type === \"reasoning\"\n );\n if (lastReasoningIndex !== -1) {\n const prev = newContent[lastReasoningIndex];\n newContent[lastReasoningIndex] = {\n ...prev,\n text: prev.text + reasoningText\n };\n } else {\n newContent.push({\n type: \"reasoning\",\n text: reasoningText\n });\n }\n }\n if (text) {\n const lastTextIndex = findLastIndex(newContent, (c) => c.type === \"text\");\n if (lastTextIndex !== -1) {\n const prev = newContent[lastTextIndex];\n newContent[lastTextIndex] = {\n ...prev,\n text: prev.text + text\n };\n } else {\n newContent.push({\n type: \"text\",\n text\n });\n }\n }\n return {\n ...chunk.message,\n content: newContent\n };\n }\n // 修改generateRequestBody方法,确保包含defaultParams参数\n generateRequestBody(request) {\n const { userMessage, contextMessages } = request;\n return {\n model: \"doubao-seed-1-6-251015\",\n max_completion_tokens: 65535,\n messages: [\n ...contextMessages.map((item) => ({\n role: item.role,\n content: item.content.map((content) => ({\n text: content.text,\n type: \"text\"\n }))\n })),\n {\n content: [\n {\n text: userMessage.content[0].text,\n type: \"text\"\n }\n ],\n role: \"user\"\n }\n ],\n reasoning_effort: \"medium\"\n };\n }\n};\nvar ark_default = ArkProtocol;\n\n// src/protocols/getProtocol.ts\nvar getSupportProtocolAdaptor = (protocol) => {\n switch (protocol) {\n case ProtocolEnum.ARK:\n return new ark_default({\n protocolName: \"ark stream\",\n protocol: ProtocolEnum.ARK\n });\n case ProtocolEnum.ADK:\n return new Adk_default({\n protocolName: \"adk stream\",\n protocol: ProtocolEnum.ADK,\n omitCompleteText: true\n });\n case ProtocolEnum.A2A:\n return new a2a_default({\n protocolName: \"a2a stream\",\n protocol: ProtocolEnum.A2A\n });\n default:\n return new ark_default({\n protocolName: \"ark stream\",\n protocol: ProtocolEnum.ARK\n });\n }\n};\nvar getProtocolAdaptor = (protocolOptions) => {\n if (protocolOptions.protocol === ProtocolEnum.CUSTOM) {\n return protocolOptions.protocolAdaptor;\n }\n return getSupportProtocolAdaptor(protocolOptions.protocol);\n};\n\n// src/plugins/BasePlugin.ts\nimport mitt from \"mitt\";\nvar SyncWaterfallHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n call(initialData) {\n let currentData = initialData;\n const taps = [...this.taps];\n for (const tap of taps) {\n try {\n const result = tap.fn(currentData);\n if (result !== void 0) {\n currentData = result;\n }\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n return currentData;\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar AsyncSeriesWaterfallHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n tapAsync(name, fn) {\n this.tap(name, (data) => {\n return fn(data);\n });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n async callAsync(initialData) {\n let currentData = initialData;\n const taps = [...this.taps];\n for (const tap of taps) {\n try {\n const result = await tap.fn(currentData);\n if (result !== void 0) {\n currentData = result;\n }\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n return currentData;\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar SyncHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n call(data) {\n const taps = [...this.taps];\n for (const tap of taps) {\n try {\n tap.fn(data);\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar SyncBailHook = class {\n constructor() {\n this.taps = [];\n }\n tap(name, fn) {\n this.taps.push({ name, fn });\n }\n untap(name) {\n this.taps = this.taps.filter((t) => t.name !== name);\n }\n call(initialData) {\n for (const tap of this.taps) {\n try {\n const result = tap.fn(initialData);\n if (result !== void 0) {\n return result;\n }\n } catch (e) {\n console.error(`Error in plugin hook ${tap.name}:`, e);\n }\n }\n return void 0;\n }\n isEmpty() {\n return this.taps.length === 0;\n }\n};\nvar ChatkitPlugin = class {\n constructor({ pluginName: pluginName2 }) {\n this.chatController = null;\n this.pluginName = pluginName2;\n this.emitter = mitt();\n }\n getName() {\n return this.pluginName;\n }\n apply(compiler) {\n throw new Error(\"[chatkit:plugin] function apply need to be implement!\");\n }\n setChatController(chatController) {\n this.chatController = chatController;\n }\n // Lifecycle hooks\n onInit() {\n }\n onDestroy() {\n }\n};\nvar Compiler = class {\n constructor() {\n this.hooks = {\n lifecycle: {\n inited: new AsyncSeriesWaterfallHook(),\n beforeInitStore: new AsyncSeriesWaterfallHook(),\n beforeDestroy: new AsyncSeriesWaterfallHook()\n },\n message: {\n received: new SyncHook(),\n beforeSend: new AsyncSeriesWaterfallHook(),\n error: new SyncWaterfallHook(),\n end: new AsyncSeriesWaterfallHook()\n },\n attachment: {\n added: new AsyncSeriesWaterfallHook(),\n removed: new AsyncSeriesWaterfallHook()\n },\n thread: {\n beforeCreate: new AsyncSeriesWaterfallHook(),\n created: new AsyncSeriesWaterfallHook(),\n updated: new AsyncSeriesWaterfallHook(),\n deleted: new AsyncSeriesWaterfallHook(),\n beforeSwitch: new AsyncSeriesWaterfallHook(),\n afterSwitch: new AsyncSeriesWaterfallHook()\n },\n error: {\n occurred: new SyncHook()\n },\n ui: {\n renderSlot: new SyncWaterfallHook()\n }\n };\n }\n offByName(name) {\n Object.values(this.hooks).forEach((group) => {\n Object.values(group).forEach((hook) => {\n if (hook instanceof AsyncSeriesWaterfallHook || hook instanceof SyncWaterfallHook || hook instanceof SyncHook || hook instanceof SyncBailHook) {\n hook.untap(name);\n }\n });\n });\n }\n};\nvar ChatkitPluginManager = class {\n constructor({\n plugins,\n chatController\n }) {\n this.plugins = [];\n this.plugins = [];\n this.compiler = new Compiler();\n this.chatController = chatController;\n plugins.forEach((plugin) => {\n this.addPlugin(plugin);\n });\n }\n async addPlugin(plugin) {\n if (this.plugins.includes(plugin)) return;\n this.plugins.push(plugin);\n plugin.apply(this.compiler);\n plugin.setChatController(this.chatController);\n if (plugin.onInit) {\n try {\n await plugin.onInit();\n } catch (e) {\n console.error(`Error initializing plugin ${plugin.getName()}:`, e);\n }\n }\n }\n async removePlugin(plugin) {\n const index = this.plugins.indexOf(plugin);\n if (index === -1) return;\n this.plugins = this.plugins.filter((p) => p !== plugin);\n this.compiler.offByName(plugin.getName());\n if (plugin.onDestroy) {\n try {\n await plugin.onDestroy();\n } catch (e) {\n console.error(`Error destroying plugin ${plugin.getName()}:`, e);\n }\n }\n }\n getPlugins() {\n return this.plugins;\n }\n // Accessor for the compiler to allow external triggering of hooks\n get hooks() {\n return this.compiler.hooks;\n }\n reportError(error) {\n return this.compiler.hooks.error.occurred.call(error);\n }\n getPluginByName(name) {\n return this.plugins.find((plugin) => plugin.getName() === name);\n }\n};\n\n// src/plugins/adk-plugin.ts\nimport { last as last2 } from \"lodash-es\";\nimport { v4 as uuid6 } from \"uuid\";\n\n// src/utils/LocalStorage.ts\nvar LocalStorage = class {\n constructor(namespace) {\n this.namespace = namespace;\n }\n getKey(key) {\n return `${this.namespace}:${key}`;\n }\n async getItem(key) {\n const value = localStorage.getItem(this.getKey(key));\n try {\n return value ? JSON.parse(value) : null;\n } catch (e) {\n return value;\n }\n }\n async setItem(key, value) {\n localStorage.setItem(this.getKey(key), JSON.stringify(value));\n }\n async removeItem(key) {\n localStorage.removeItem(this.getKey(key));\n }\n async removeByValue(value) {\n const targetValue = JSON.stringify(value);\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${this.namespace}:`)) {\n const itemValue = localStorage.getItem(key);\n if (itemValue === targetValue) {\n keysToRemove.push(key);\n }\n }\n }\n keysToRemove.forEach((key) => localStorage.removeItem(key));\n }\n};\n\n// src/plugins/adk-plugin.ts\nimport dayjs3 from \"dayjs\";\nvar pluginName = \"ADKPlugin\";\nfunction buildSessionUrl(api, appName, userId, sessionId) {\n const apiUrlObj = new URL(api);\n const baseUrl = `${apiUrlObj.origin}/apps/${appName}/users/${userId}/sessions/${sessionId}`;\n const queryString = apiUrlObj.search;\n return queryString ? `${baseUrl}${queryString}` : baseUrl;\n}\nfunction buildRunSseUrl(api) {\n const apiUrlObj = new URL(api);\n const baseApiUrl = `${apiUrlObj.origin}`;\n const queryString = apiUrlObj.search;\n return queryString ? `${baseApiUrl}/run_sse${queryString}` : `${baseApiUrl}/run_sse`;\n}\nvar AdkPlugin = class extends ChatkitPlugin {\n constructor(options) {\n super({ pluginName });\n this.runtimeMap = new LocalStorage(\"runtime\");\n this.switchRuntime = async (runtime, appName) => {\n this.options.appName = appName;\n const threadID = await this.runtimeMap.getItem(runtime);\n if (!threadID || !this.chatController?.getThread(threadID)) {\n const id = threadID || uuid6();\n this.chatController?.addThread({\n id,\n name: id,\n metadata: {},\n sending: false,\n messages: [],\n createdAt: dayjs3().unix()\n }).then((res) => {\n this.runtimeMap.setItem(runtime, res.id);\n this.chatController?.setCurrentThread(res.id);\n });\n return;\n }\n this.chatController?.setCurrentThread(threadID);\n };\n this.setAppName = (appName) => {\n this.options.appName = appName;\n };\n this.updateOptions = (options) => {\n this.options = options;\n };\n this.options = options;\n this.adkProtocol = new Adk_default({\n omitCompleteText: false,\n protocol: \"ADK\"\n });\n }\n apply(compiler) {\n compiler.hooks.message.beforeSend.tap(pluginName, async (ctx) => {\n const requestOptions = ctx.requestOptions || {};\n const headers = requestOptions.headers || {};\n const thread = ctx.thread;\n if (!requestOptions.api || !headers.Authorization) {\n this.chatController?.onError?.(\n new Error(\"ADK\\u914D\\u7F6E\\u7F3A\\u5931\\uFF1Aapi \\u6216 Authorization \\u4E3A\\u7A7A\")\n );\n ctx.shouldSend = false;\n return ctx;\n }\n const hasInitSession = !!thread.metadata?.[\"sessionInited\"];\n const isInitingSession = !!thread.metadata?.[\"isInitingSession\"];\n if (!hasInitSession && !isInitingSession) {\n ctx.thread.metadata = {\n ...ctx.thread.metadata,\n [\"isInitingSession\"]: true\n };\n let res;\n try {\n const url = buildSessionUrl(\n requestOptions.api,\n this.options.appName,\n this.options.userId,\n thread.id\n );\n res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: headers.Authorization\n }\n });\n if (!res.ok) {\n const text = await res.text();\n this.chatController?.onError?.(\n new Error(\n `ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u72B6\\u6001\\u7801\\uFF1A${res.status}\\uFF0C\\u9519\\u8BEF\\u4FE1\\u606F\\uFF1A${text}`\n )\n );\n ctx.shouldSend = false;\n return ctx;\n }\n } catch (error) {\n console.error(\"Error initializing ADK session:\", error);\n this.chatController?.onError?.(\n new Error(`ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u9519\\u8BEF\\u4FE1\\u606F\\uFF1A${error.message}`)\n );\n ctx.shouldSend = false;\n return ctx;\n }\n const xSessionId = res.headers.get(\"x-session-id\");\n const data = await res.json();\n const runSseUrl = buildRunSseUrl(requestOptions.api);\n this.chatController?.updateThread(ctx.thread.id, {\n metadata: {\n ...ctx.thread.metadata,\n [\"sessionInited\"]: true,\n [\"isInitingSession\"]: false,\n sessionId: data.id,\n [\"x-session-id\"]: xSessionId\n }\n });\n ctx.dynamicParams = {\n ...ctx.dynamicParams,\n sessionId: data.id,\n userId: this.options.userId,\n appName: this.options.appName\n };\n ctx.extraRequestOptions = {\n ...ctx.extraRequestOptions,\n headers: {\n ...requestOptions.headers,\n [\"x-session-id\"]: xSessionId\n },\n api: runSseUrl\n };\n return ctx;\n }\n ctx.dynamicParams = {\n ...ctx.dynamicParams,\n sessionId: thread.metadata?.[\"sessionId\"],\n userId: this.options.userId,\n appName: this.options.appName\n };\n ctx.extraRequestOptions = {\n ...ctx.extraRequestOptions,\n headers: {\n ...requestOptions.headers,\n [\"x-session-id\"]: thread.metadata?.[\"x-session-id\"]\n },\n api: buildRunSseUrl(requestOptions.api)\n };\n return ctx;\n });\n compiler.hooks.thread.created.tap(pluginName, async (thread) => {\n if (this.chatController === null) {\n return thread;\n }\n const threadId = thread.id;\n const requestOptions = this.chatController?.getRequestOptions();\n if (!requestOptions || !requestOptions.api || !requestOptions.headers) {\n this.chatController?.onError?.(\n new Error(\"ADK\\u914D\\u7F6E\\u7F3A\\u5931\\uFF1Aapi \\u6216 Authorization \\u4E3A\\u7A7A\")\n );\n return thread;\n }\n const url = buildSessionUrl(\n requestOptions.api,\n this.options.appName,\n this.options.userId,\n thread.id\n );\n const getFetchResponse = await fetch(url, {\n method: \"get\",\n headers: requestOptions.headers\n });\n if (getFetchResponse.ok) {\n const data = await getFetchResponse.json();\n const xSessionId = getFetchResponse.headers.get(\"x-session-id\");\n this.options.onStateChange?.(data.state);\n this.chatController?.updateThread(threadId, {\n metadata: {\n ...thread.metadata,\n [\"sessionInited\"]: true,\n sessionId: data.id,\n [\"isInitingSession\"]: false,\n [\"x-session-id\"]: xSessionId,\n state: data.state\n },\n // id: string;\n // author: string;\n // content: { parts: any[] };\n // }) =>\n // this.adkProtocol.parseChunk({\n // message: {\n // id: chunk.id,\n // status: MessageStatus.SUCCESS,\n // role: chunk.author === 'user' ? 'user' : 'assistant',\n // threadId: threadId,\n // metadata: {},\n // content: [],\n // },\n // response: chunk,\n // }),\n // ),\n messages: data?.events?.reduce((prev, cur) => {\n if (prev.length === 0 || cur.author === \"user\" || last2(prev)?.role !== (cur.author === \"user\" ? \"user\" : \"assistant\")) {\n prev.push(\n this.adkProtocol.parseChunk({\n message: {\n id: cur.id,\n status: \"success\" /* SUCCESS */,\n role: cur.author === \"user\" ? \"user\" : \"assistant\",\n threadId,\n metadata: {},\n content: []\n },\n response: cur\n })\n );\n } else {\n prev[prev.length - 1] = this.adkProtocol.parseChunk({\n message: last2(prev),\n response: cur\n });\n }\n return prev;\n }, [])\n });\n return thread;\n }\n const postFetchResponse = await fetch(url, {\n method: \"POST\",\n headers: requestOptions.headers\n });\n if (postFetchResponse.ok) {\n const data = await postFetchResponse.json();\n const xSessionId = postFetchResponse.headers.get(\"x-session-id\");\n this.chatController?.updateThread(threadId, {\n metadata: {\n ...thread.metadata,\n [\"sessionInited\"]: true,\n [\"x-session-id\"]: xSessionId,\n sessionId: data.id,\n [\"isInitingSession\"]: false\n },\n messages: []\n });\n } else {\n this.chatController?.onError?.(\n new Error(\n `ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u72B6\\u6001\\u7801\\uFF1A${postFetchResponse.status}`\n )\n );\n console.warn(\n `ADK \\u63D2\\u4EF6\\u521D\\u59CB\\u5316\\u4F1A\\u8BDD\\u5931\\u8D25\\uFF0C\\u72B6\\u6001\\u7801\\uFF1A${postFetchResponse.status}`\n );\n }\n return thread;\n });\n compiler.hooks.thread.afterSwitch.tap(\n pluginName,\n async (thread) => {\n if (this.chatController === null) {\n return thread;\n }\n const threadId = thread.id;\n const requestOptions = this.chatController?.getRequestOptions();\n const url = buildSessionUrl(\n requestOptions.api,\n this.options.appName,\n this.options.userId,\n thread.id\n );\n const res = await fetch(url, {\n method: \"POST\",\n headers: requestOptions.headers\n });\n if (res.ok) {\n const data = await res.json();\n this.chatController?.updateThread(threadId, {\n metadata: {\n ...thread.metadata,\n [\"sessionInited\"]: true,\n sessionId: data.id,\n [\"isInitingSession\"]: false,\n [\"x-session-id\"]: res.headers.get(\"x-session-id\")\n }\n // messages: data.events.map((chunk:{id:string}) =>\n // this.adkProtocol.parseChunk({\n // message: {\n // id: chunk.id,\n // status: MessageStatusEnum.SUCCESS,\n // role: chunk.message.role,\n // threadId: chunk.message.threadId,\n // metadata: chunk.message.metadata,\n // content: [],\n // },\n // response: chunk,\n // }),\n // ),\n });\n }\n return thread;\n }\n );\n compiler.hooks.thread.deleted.tap(pluginName, (thread) => {\n this.runtimeMap.removeByValue(thread.id);\n return thread;\n });\n compiler.hooks.error.occurred.tap(pluginName, (error) => {\n this.chatController?.onError?.(error);\n });\n }\n};\n\n// src/ChatController.ts\nimport { v4 as uuid7 } from \"uuid\";\nimport dayjs5 from \"dayjs\";\nimport { isNil } from \"lodash-es\";\n\n// src/Chat.ts\nimport dayjs4 from \"dayjs\";\nimport { throttle } from \"lodash-es\";\nasync function fetchChatCompletion({\n message,\n requestOptions,\n abortController,\n pluginManager,\n completions,\n protocolAdaptor,\n onResponse,\n onReceivedMessage,\n storeManager,\n thread\n}) {\n try {\n let currentMessage = storeManager.getMessage(\n message.threadId,\n message.id\n ) || message;\n const throttledOnResponse = throttle(\n (msg) => onResponse(msg),\n 500,\n { leading: true, trailing: true }\n );\n const onChunk = ({\n response\n }) => {\n const updatedMessage = protocolAdaptor.parseChunk({\n message: currentMessage,\n response\n });\n currentMessage = updatedMessage;\n onReceivedMessage?.(currentMessage);\n if (updatedMessage.status === \"error\" /* ERROR */) {\n throttledOnResponse.cancel();\n onResponse(() => ({ ...currentMessage, status: \"error\" /* ERROR */ }));\n return;\n }\n throttledOnResponse(() => ({\n status: \"pending\" /* PENDING */,\n ...currentMessage\n }));\n };\n try {\n if (abortController?.signal) {\n abortController.signal.addEventListener(\"abort\", () => {\n throttledOnResponse.cancel();\n currentMessage = {\n ...currentMessage,\n sending: false,\n status: \"aborted\" /* ABORTED */,\n endedAt: dayjs4().unix()\n };\n onResponse(currentMessage);\n });\n }\n await completions({\n abortController,\n requestOptions,\n onChunk,\n thread,\n onUpdateThread: (updates) => {\n storeManager.updateThread(message.threadId, updates);\n }\n });\n } catch (error) {\n throttledOnResponse.cancel();\n console.log(error);\n currentMessage = {\n ...currentMessage,\n status: \"error\" /* ERROR */,\n sending: false,\n endedAt: Date.now(),\n error: {\n message: error.message || \"\\u672A\\u77E5\\u9519\\u8BEF\",\n extra: error.stack\n }\n };\n onResponse(currentMessage);\n return;\n }\n throttledOnResponse.cancel();\n onResponse({\n ...currentMessage,\n id: currentMessage.id,\n threadId: currentMessage.threadId,\n status: currentMessage.status !== \"error\" /* ERROR */ ? \"success\" /* SUCCESS */ : \"error\" /* ERROR */,\n endedAt: Date.now()\n });\n } catch (error) {\n console.log(error);\n const _message = storeManager.getMessage(\n message.threadId,\n message.id\n );\n _message.status = \"error\" /* ERROR */;\n _message.sending = false;\n _message.endedAt = Date.now();\n _message.error = {\n message: error.message || \"\\u672A\\u77E5\\u9519\\u8BEF\",\n extra: error.stack\n };\n onResponse(_message);\n } finally {\n pluginManager.hooks.message.end.callAsync(\n storeManager.getThread(message.threadId)\n );\n }\n}\n\n// src/utils/ToRaw.ts\nvar toRaw = (obj) => {\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (err) {\n return obj;\n }\n};\n\n// src/ChatController.ts\nvar ChatController = class {\n constructor(options) {\n this.abortControllers = /* @__PURE__ */ new Map();\n this.pluginManager = new ChatkitPluginManager({\n plugins: options.plugins || [],\n chatController: this\n });\n this.requestOptions = options.requestOptions;\n this.protocolOptions = options.protocolOptions;\n this.store = options.storeManager || storeActions;\n this.onError = options.onError;\n this.metaData = options.metaData || createMetaData();\n }\n setStore(store) {\n this.store = store;\n }\n setRequestOptions(requestOptions) {\n let pending;\n if (typeof requestOptions === \"function\") {\n pending = requestOptions(this.requestOptions);\n } else {\n pending = requestOptions;\n }\n this.requestOptions = pending;\n }\n getRequestOptions() {\n return this.requestOptions;\n }\n setProtocolOptions(protocolOptions) {\n this.protocolOptions = protocolOptions;\n }\n getProtocolOptions() {\n return this.protocolOptions;\n }\n async sendMessage(msg, extraRequestOptions) {\n const currentThread = this.store.getCurrentThread();\n if (!currentThread) {\n return;\n }\n const userMessage = {\n id: msg.id || uuid7(),\n role: \"user\",\n threadId: currentThread.id,\n metadata: {},\n attaches: msg.attaches,\n status: \"sending\" /* SENDING */,\n content: msg.content,\n createdAt: dayjs5().unix(),\n updatedAt: dayjs5().unix()\n };\n const controller = new AbortController();\n this.abortControllers.set(currentThread.id, controller);\n await this.sendMessageCore({\n extraRequestOptions,\n userMessage,\n threadId: currentThread.id,\n allMessages: currentThread?.messages || [],\n abortController: controller\n });\n return controller;\n }\n async triggerCompletion({\n assistantMessage,\n extraRequestOptions\n }) {\n const currentThread = this.store.getCurrentThread();\n if (!currentThread) {\n return;\n }\n const controller = new AbortController();\n this.abortControllers.set(currentThread.id, controller);\n await this.sendMessageCore({\n assistantMessage,\n extraRequestOptions,\n threadId: currentThread.id,\n allMessages: currentThread?.messages || [],\n abortController: controller\n });\n return controller;\n }\n abortMessage(threadId) {\n const id = threadId || this.store.getCurrentThread()?.id;\n if (!id) {\n return;\n }\n const controller = this.abortControllers.get(id);\n controller?.abort();\n this.abortControllers.delete(id);\n this.store.setSending(id, false);\n this.store.setLoading(id, false);\n }\n getCurrentThread() {\n const thread = this.store.getCurrentThread();\n if (isNil(thread)) {\n return null;\n }\n return toRaw(thread);\n }\n async setCurrentThread(threadId) {\n this.store.setCurrentThread(threadId);\n }\n async addThread(thread) {\n const context = await this.pluginManager.hooks.thread.beforeCreate.callAsync(\n thread\n );\n this.store.addThread(context);\n this.pluginManager.hooks.thread.created.callAsync(context);\n return context;\n }\n getThread(threadId, throwError = false) {\n return this.store.getThread(threadId, throwError);\n }\n updateThread(threadId, thread) {\n this.store.updateThread(threadId, thread);\n }\n setThreadName(threadId, name) {\n this.store.updateThread(threadId, { name });\n }\n deleteThread(threadId) {\n const thread = this.store.getThread(threadId);\n if (!thread) {\n console.warn(\"Thread deleted: thread not exist\", threadId);\n return;\n }\n this.store.deleteThread(threadId);\n this.pluginManager.hooks.thread.deleted.callAsync(thread);\n }\n clearCurrentThread() {\n const currentThread = this.store.getCurrentThread();\n if (currentThread?.id) {\n if (currentThread.sending) {\n throw new Error(\"\\u6B63\\u5728\\u53D1\\u9001\\u6D88\\u606F\\uFF0C\\u8BF7\\u5148\\u505C\\u6B62\\u53D1\\u9001\\u518D\\u6E05\\u7A7A\\u4F1A\\u8BDD\");\n }\n this.updateThread(currentThread?.id, {\n sending: false,\n messages: [],\n createdAt: dayjs5().unix()\n });\n }\n }\n setSending(threadId, sending) {\n this.store.setSending(threadId, sending);\n }\n setLoading(threadId, loading) {\n this.store.setLoading(threadId, loading);\n }\n addMessage(threadId, message) {\n this.store.addMessage(threadId, message);\n }\n updateMessage(threadId, messageId, updateOptions) {\n this.store.updateMessage(threadId, messageId, updateOptions);\n }\n updateMessages(threadId, messages) {\n this.store.updateMessages(threadId, messages);\n }\n reloadMessage({\n threadId,\n messageId\n }) {\n const thread = this.store.getThread(threadId);\n if (!thread) {\n return;\n }\n const message = thread.messages.find((item) => messageId.includes(item.id));\n if (!message) {\n return;\n }\n const userMessage = {\n ...message,\n id: uuid7(),\n status: \"sending\" /* SENDING */\n };\n this.sendMessage({\n id: userMessage.id,\n content: userMessage.content,\n attaches: userMessage.attaches\n });\n }\n getMessage(threadId, messageId) {\n return this.store.getMessage(threadId, messageId);\n }\n removeMessage(threadId, messageId) {\n this.store.removeMessage(threadId, messageId);\n }\n async sendMessageCore({\n extraRequestOptions,\n userMessage,\n assistantMessage: assistantMessageFromProps,\n threadId,\n allMessages = [],\n abortController,\n // completions,\n onError: onErrorFromProps,\n override = false\n }) {\n const thread = this.store.getThread(threadId);\n if (!thread) {\n onErrorFromProps?.(new Error(`\\u5BF9\\u8BDD ${threadId} \\u4E0D\\u5B58\\u5728`));\n return;\n }\n let assistantMessage;\n this.store.setLoading(threadId, true);\n const onError = (error) => {\n this.store.setLoading(threadId, false);\n onErrorFromProps?.(error);\n };\n let hookContext = {\n requestOptions: this.requestOptions,\n userMessage,\n contextMessages: allMessages,\n thread,\n onError,\n dynamicParams: {},\n extraRequestOptions: {},\n shouldSend: true\n };\n try {\n hookContext = await this.pluginManager.hooks.message.beforeSend.callAsync(\n hookContext\n );\n } catch (e) {\n }\n if (hookContext.shouldSend === false) {\n this.store.setLoading(threadId, false, false);\n return;\n }\n const shouldSend = {\n dynamicParams: hookContext.dynamicParams,\n requestOptions: hookContext.extraRequestOptions,\n userMessage: hookContext.userMessage\n };\n const storeManager = this.store;\n try {\n const protocolAdaptor = getProtocolAdaptor(this.protocolOptions);\n const requestBody = protocolAdaptor.generateRequestBody({\n dynamicParams: shouldSend.dynamicParams,\n defaultParams: this.requestOptions.defaultParams || {},\n userMessage: shouldSend.userMessage || {\n role: \"user\",\n content: [],\n attaches: []\n },\n thread,\n contextMessages: allMessages\n });\n if (userMessage) storeManager.addMessage(threadId, userMessage);\n assistantMessage = assistantMessageFromProps || generateModelMessage({\n threadId\n });\n if (!assistantMessageFromProps) {\n if (override) {\n this.store.updateMessages(threadId, [\n ...allMessages,\n assistantMessage\n ]);\n } else this.store.addMessage(threadId, assistantMessage);\n }\n this.store.setSending(threadId, true);\n await fetchChatCompletion({\n abortController,\n message: assistantMessage,\n requestOptions: {\n ...this.requestOptions || {},\n ...shouldSend?.requestOptions || {},\n ...extraRequestOptions || {},\n data: requestBody\n },\n pluginManager: this.pluginManager,\n completions: this.requestOptions.completions || AdkCompletion,\n protocolAdaptor,\n storeManager,\n thread,\n onReceivedMessage: async (message) => {\n this.pluginManager.hooks.message.received.call(message);\n },\n onResponse: async (updatedMessageOrFactory) => {\n let updatedMessage;\n if (typeof updatedMessageOrFactory === \"function\") {\n updatedMessage = updatedMessageOrFactory();\n } else {\n updatedMessage = updatedMessageOrFactory;\n }\n if (updatedMessage.status === \"pending\" /* PENDING */ && !updatedMessage.createdAt) {\n updatedMessage.createdAt = Date.now();\n }\n storeManager.updateMessage(threadId, updatedMessage.id, {\n updatedMessage,\n partial: true\n });\n }\n });\n } catch (error) {\n onErrorFromProps?.(error);\n } finally {\n storeManager.setSending(threadId, false);\n storeManager.setLoading(threadId, false);\n return;\n }\n }\n};\nexport {\n A2ACompletion,\n AdkCompletion,\n AdkCompletionWithWebsocket,\n AdkPlugin,\n Adk_default as AdkProtocol,\n AsyncSeriesWaterfallHook,\n BaseProtocols_default as BaseProtocol,\n ChatController,\n ChatkitPlugin,\n ChatkitPluginManager,\n Compiler,\n MessageStatus,\n ProtocolEnum,\n SyncBailHook,\n SyncHook,\n SyncWaterfallHook,\n ThreadMessageManager,\n completion,\n createMetaData,\n createThreadManagerState,\n createThreadManagerStateWithDefault,\n getProtocolAdaptor,\n isCustomMessage,\n isHumanInLoopMessage,\n isImageMessage,\n isMarkdownMessage,\n isReasoningMessage,\n isTextMessage,\n isToolCallMessage,\n snapshot,\n storeActions,\n subscribe,\n threadManagerState,\n useSnapshot2 as useSnapshot,\n useThreadManagerStore\n};\n//# sourceMappingURL=index.js.map"],"names":["uuid","uuid2","uuid3","uuidv4","dayjs2","uuid4","proxy2","uuid5","uuid6","dayjs3","last2","dayjs4","uuid7","dayjs5"],"mappings":"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"}
|