@next-bricks/ai 1.32.14 → 1.32.15
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/bricks.json +1 -1
- package/dist/chunks/2862.36930d5a.js +3 -0
- package/dist/chunks/2862.36930d5a.js.map +1 -0
- package/dist/chunks/7736.477cde3e.js.map +1 -1
- package/dist/chunks/chat-agent.7726f29c.js.map +1 -1
- package/dist/chunks/chat-view.20131fe6.js.map +1 -1
- package/dist/chunks/{main.1d2068a6.js → main.247369ae.js} +2 -2
- package/dist/chunks/{main.1d2068a6.js.map → main.247369ae.js.map} +1 -1
- package/dist/examples.json +8 -1
- package/dist/{index.46def2d7.js → index.76c0e328.js} +2 -2
- package/dist/{index.46def2d7.js.map → index.76c0e328.js.map} +1 -1
- package/dist/manifest.json +37 -5
- package/dist-types/chat-agent/index.d.ts +23 -0
- package/dist-types/chat-view/index.d.ts +14 -5
- package/docs/chat-agent.md +117 -0
- package/docs/chat-agent.react.md +95 -0
- package/docs/chat-view.md +132 -0
- package/docs/chat-view.react.md +123 -0
- package/package.json +2 -2
- package/dist/chunks/2862.8a658734.js +0 -3
- package/dist/chunks/2862.8a658734.js.map +0 -1
- /package/dist/chunks/{2862.8a658734.js.LICENSE.txt → 2862.36930d5a.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7736.477cde3e.js","mappings":"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","sources":["webpack:///./src/chat-agent/styles.shadow.css","webpack:///./src/chat-view/index.tsx","webpack:///./src/chat-agent/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n ChatViewContext,\n QuickAnswerConfig,\n snippet,\n} from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput, SearchInputRef } from \"./components/SearchInput.js\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\nimport \"./index.css\";\nimport { commandBrickConf } from \"./ChatViewContext\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport { ChatBody } from \"./ChatService.js\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\ntype InputToolbarBrick = { useBrick: UseBrickConf };\n\nexport interface ChatViewRef extends SearchInputRef {\n setConfig(config: Record<string, unknown> | undefined): void;\n setFormData(formData: Record<string, unknown> | undefined): void;\n}\n\nexport interface ChatViewProps {\n agentId: string;\n robotId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n showShare?: boolean;\n useSpiltWord?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n snippetList?: snippet[];\n enterInterval?: number;\n debug?: boolean;\n commandBricks?: commandBrickConf;\n answerLanguage?: string;\n inputToolbarBrick?: InputToolbarBrick;\n showToolCalls?: boolean;\n onSessionIdChange: (sessionId: string | undefined) => void;\n onRobotIdChange: (robotId: string | undefined) => void;\n onQaFinish: (sessionId: string | undefined) => void;\n}\n\nexport function LegacyChatViewComponent(\n {\n agentId,\n robotId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n showShare = true,\n quickAnswerConfig,\n snippetList,\n enterInterval,\n debug = false,\n useSpiltWord = false,\n commandBricks,\n answerLanguage,\n inputToolbarBrick,\n showToolCalls,\n onSessionIdChange,\n onRobotIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<ChatViewRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n setConfig,\n setFormData,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n showToolCalls,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n onRobotIdChange(\n sessionList.find((item) => item.conversationId === activeSessionId)\n ?.robotId\n );\n }\n }, [activeSessionId, onRobotIdChange, onSessionIdChange, sessionList]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\n\n const inputRef = useRef<SearchInputRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n handleInsertQuestion(value) {\n return inputRef.current?.handleInsertQuestion(value);\n },\n sendMsg(msg) {\n return inputRef.current?.sendMsg(msg);\n },\n setConfig,\n setFormData,\n }),\n [setConfig, setFormData]\n );\n\n return (\n <ChatViewContext.Provider\n value={{\n sessionEnd,\n sessionLoading,\n activeSessionId,\n sessionList,\n msgEnd,\n msgLoading,\n msgList,\n chatting,\n loading,\n searchStr,\n showLike,\n showShare,\n readonly,\n quickAnswerConfig,\n snippetList,\n commandBricks,\n showToolCalls,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n }}\n >\n <div className=\"chat-view-container\">\n {showSessionList && (\n <div className=\"chat-view-selector\">\n <SessionList />\n </div>\n )}\n <div className=\"chat-view-content\">\n <MessageList showAvatar={showAvatar} />\n {!readonly && (\n <SearchInput inputToolbarBrick={inputToolbarBrick} ref={inputRef} />\n )}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n\nexport const ChatViewComponent = forwardRef(LegacyChatViewComponent);\n\n/**\n * AI 对话终端\n */\nexport\n@defineElement(\"ai.chat-view\", {\n // shadow 模式下,会导致 useBrick 样式丢失\n // 如:commandBricks 配置 cmdb-instances.instance-list\n shadowOptions: false,\n})\nclass ChatView extends ReactNextElement {\n @property()\n accessor sessionId: string | undefined;\n\n /**\n * 智能体id\n */\n @property()\n accessor agentId!: string;\n\n /**\n * 机器人id\n */\n @property()\n accessor robotId!: string;\n\n /**\n * 指定智能体回答代码时所使用的语言\n */\n @property()\n accessor answerLanguage: string | undefined;\n\n /**\n * 是否为debug模式\n */\n @property({\n type: Boolean,\n })\n accessor debug: boolean | undefined;\n\n /**\n * 是否展示对话用户头像\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showAvatar: boolean | undefined;\n\n /**\n * 是否展示历史会话信息\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showSessionList: boolean | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否展示点赞能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showLike: boolean | undefined;\n\n /**\n * 是否展示分享能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showShare: boolean | undefined;\n\n /**\n * 是否开启前端分词\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor useSpiltWord: boolean | undefined;\n\n /**\n * 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出\n *\n * @default 50\n */\n @property({\n type: Number,\n })\n accessor enterInterval: number | undefined;\n\n /**\n * 快速入口列表\n */\n @property({\n attribute: false,\n })\n accessor quickAnswerConfig: QuickAnswerConfig | undefined;\n\n /**\n * 常用语列表\n */\n @property({\n attribute: false,\n })\n accessor snippetList: snippet[] | undefined;\n\n /**\n * 自定义语言配置\n */\n @property({\n attribute: false,\n })\n accessor commandBricks: commandBrickConf | undefined;\n\n /**\n * 输入框工具栏 useBrick\n */\n @property({\n attribute: false,\n })\n accessor inputToolbarBrick: InputToolbarBrick | undefined;\n\n /**\n * 是否显示工具调用过程\n */\n @property({ type: Boolean })\n accessor showToolCalls: boolean | undefined;\n\n /** 设置接口 config */\n @method()\n setConfig(config: Record<string, unknown> | undefined): void {\n this.#ref.current?.setConfig(config);\n }\n\n /** 设置接口 formData */\n @method()\n setFormData(formData: Record<string, unknown> | undefined): void {\n this.#ref.current?.setFormData(formData);\n }\n\n #ref = React.createRef<ChatViewRef>();\n\n @event({ type: \"sessionId.change\" })\n accessor #sessionIdChange!: EventEmitter<string | undefined>;\n\n #handleSessionIdChange = (activeSessionId: string | undefined) => {\n this.#sessionIdChange.emit(activeSessionId);\n };\n\n @event({ type: \"robotId.change\" })\n accessor #robotIdChange!: EventEmitter<string | undefined>;\n\n #handleRobotIdChange = (robotId: string | undefined) => {\n this.#robotIdChange.emit(robotId);\n };\n\n @event({ type: \"qa.finish\" })\n accessor #qaFinish!: EventEmitter<string | undefined>;\n\n #handleQaFinish = (activeSessionId: string | undefined) => {\n this.#qaFinish.emit(activeSessionId);\n };\n\n /**\n *\n * @description 调用方法进行提问\n */\n @method()\n insertQuestion(args: { value: string }): void {\n const { value } = args;\n if (!value) return;\n this.#ref.current?.handleInsertQuestion(value);\n }\n\n /**\n * @description 外部提问\n */\n @method()\n sendMsg(msg: string | ChatBody): void {\n this.#ref.current?.sendMsg(msg);\n }\n\n render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\n robotId={this.robotId}\n debug={this.debug}\n sessionId={this.sessionId}\n readonly={this.readonly}\n showAvatar={this.showAvatar}\n showSessionList={this.showSessionList}\n showLike={this.showLike}\n showShare={this.showShare}\n useSpiltWord={this.useSpiltWord}\n quickAnswerConfig={this.quickAnswerConfig}\n snippetList={this.snippetList}\n enterInterval={this.enterInterval}\n commandBricks={this.commandBricks}\n answerLanguage={this.answerLanguage}\n inputToolbarBrick={this.inputToolbarBrick}\n showToolCalls={this.showToolCalls}\n onSessionIdChange={this.#handleSessionIdChange}\n onRobotIdChange={this.#handleRobotIdChange}\n onQaFinish={this.#handleQaFinish}\n ref={this.#ref}\n />\n );\n }\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { createSSEStream, type Options } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatAgentProps {\n agentId?: string;\n robotId?: string;\n conversationId?: string;\n alwaysUseNewConversation?: boolean;\n}\n\nexport interface Message extends BaseMessage {\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface BaseMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface MessageChunk {\n delta: BaseMessage;\n conversationId?: string;\n key: number;\n partial?: boolean;\n}\n\nexport interface LowLevelMessageChunk {\n choices: LowLevelChoice[];\n}\n\nexport interface LowLevelChoice {\n delta: {\n role: \"assistant\";\n content?: string;\n };\n}\n\nexport const ChatAgentComponent = forwardRef(LegacyChatAgentComponent);\n\n/**\n * 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。\n */\nexport\n@defineElement(\"ai.chat-agent\", {\n styleTexts: [styleText],\n})\nclass ChatAgent extends ReactNextElement implements ChatAgentProps {\n @property()\n accessor agentId: string | undefined;\n\n @property()\n accessor robotId: string | undefined;\n\n @property()\n accessor conversationId: string | undefined;\n\n @property()\n accessor alwaysUseNewConversation: boolean | undefined;\n\n /**\n * 发送消息到默认的聊天 API\n */\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n /**\n * 发送聊天请求到指定的 URL\n */\n @method()\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.sendRequest(leadingMessages, url, options);\n }\n\n /**\n * 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。\n */\n @method()\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.lowLevelSendRequest(\n leadingMessages,\n url,\n options\n );\n }\n\n @method()\n newConversation() {\n this.#ref.current?.newConversation();\n }\n\n // @event({ type: \"messageChunk.push\" })\n // accessor #messageChunkPushEvent!: EventEmitter<MessageChunk>;\n\n // #handleMessageChunkPush = (msg: MessageChunk) => {\n // this.#messageChunkPushEvent.emit(msg);\n // };\n\n @event({ type: \"messages.update\" })\n accessor #messagesUpdate!: EventEmitter<Message[]>;\n\n #handleMessagesUpdate = (messages: Message[]) => {\n this.#messagesUpdate.emit(messages);\n };\n\n @event({ type: \"busy.change\" })\n accessor #busyChangeEvent!: EventEmitter<boolean>;\n\n #handleBusyChange = (busy: boolean) => {\n this.#busyChangeEvent.emit(busy);\n };\n\n @event({ type: \"conversationId.change\" })\n accessor #conversationIdChangeEvent!: EventEmitter<string | null>;\n\n #handleConversationIdChange = (conversationId: string | null) => {\n this.#conversationIdChangeEvent.emit(conversationId);\n };\n\n #ref = createRef<ChatAgentRef>();\n\n render() {\n return (\n <ChatAgentComponent\n ref={this.#ref}\n agentId={this.agentId}\n robotId={this.robotId}\n conversationId={this.conversationId}\n alwaysUseNewConversation={this.alwaysUseNewConversation}\n // onMessageChunkPush={this.#handleMessageChunkPush}\n onMessagesUpdate={this.#handleMessagesUpdate}\n onBusyChange={this.#handleBusyChange}\n onConversationIdChange={this.#handleConversationIdChange}\n />\n );\n }\n}\n\nexport interface ChatAgentComponentProps extends ChatAgentProps {\n onMessageChunkPush?(msg: MessageChunk): void;\n onMessagesUpdate?(messages: Message[]): void;\n onBusyChange?(busy: boolean): void;\n onConversationIdChange?(conversationId: string | null): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | null>;\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n newConversation(): void;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n robotId,\n conversationId: propConversationId,\n alwaysUseNewConversation,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n const chatIdRef = useRef(1);\n const busyRef = useRef(false);\n const [conversationId, setConversationId] = useState<string | null>(null);\n\n useEffect(() => {\n setConversationId(propConversationId ?? null);\n }, [propConversationId]);\n\n useEffect(() => {\n didMountRef.current && onConversationIdChange?.(conversationId);\n }, [conversationId, onConversationIdChange]);\n\n const counterRef = useRef(0);\n const getMessageChunkKey = useCallback(() => counterRef.current++, []);\n\n const [fullMessages, setFullMessages] = useState<Message[]>([]);\n\n const pushPartialMessage = useCallback(\n (chunk: MessageChunk) => {\n onMessageChunkPush?.(chunk);\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last && last.key === chunk.key) {\n last.content += chunk.delta.content;\n return [...prev];\n }\n if (last?.partial) {\n last.partial = false;\n }\n return [\n ...prev,\n { ...chunk.delta, key: chunk.key, partial: chunk.partial },\n ];\n });\n },\n [onMessageChunkPush]\n );\n\n const legacySendRequest = useCallback(\n async (\n isLowLevel: boolean,\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk | LowLevelMessageChunk>\n ) => {\n // Use ref instead of state to handle sync sequential calls.\n if (busyRef.current) {\n return null;\n }\n if (alwaysUseNewConversation || isLowLevel) {\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n }\n const thisChatId = chatIdRef.current;\n let newConversationError: Error | undefined;\n const checkNewConversation = async () => {\n if (thisChatId !== chatIdRef.current) {\n // istanbul ignore else: should never happen\n if (!newConversationError) {\n newConversationError = new Error(\"New conversation started\");\n }\n throw newConversationError;\n }\n };\n\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId =\n alwaysUseNewConversation || isLowLevel ? null : conversationId;\n\n onBusyChange?.((busyRef.current = true));\n\n try {\n if (Array.isArray(leadingMessages)) {\n for (const msg of leadingMessages) {\n const isAssistant = msg.role === \"assistant\";\n if (isAssistant || msg.role === \"user\") {\n pushPartialMessage?.({\n key: isAssistant ? assistantKey : userKey,\n delta: {\n role: msg.role,\n content: msg.content,\n },\n });\n }\n }\n } else {\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: leadingMessages,\n role: \"user\",\n },\n });\n }\n const request = createSSEStream<MessageChunk | LowLevelMessageChunk>(\n new URL(url, `${location.origin}${getBasePath()}`).toString(),\n options\n );\n\n // Put a placeholder assistant message to indicate that the assistant\n // is processing if the request takes longer than one second.\n await Promise.race([\n request,\n new Promise((resolve) => setTimeout(resolve, 1000)),\n ]);\n\n await checkNewConversation();\n\n pushPartialMessage?.({\n key: assistantKey,\n delta: {\n content: \"\",\n role: \"assistant\",\n },\n partial: true,\n });\n\n const stream = await request;\n for await (const value of stream) {\n // istanbul ignore next\n // if (process.env.NODE_ENV === \"development\") {\n // // eslint-disable-next-line no-console\n // console.log(\"stream iterated:\", value);\n // }\n\n await checkNewConversation();\n\n if (isLowLevel) {\n const delta = (value as LowLevelMessageChunk).choices?.[0]?.delta;\n if (delta?.content) {\n pushPartialMessage({\n delta: {\n role: delta.role,\n content: delta.content,\n },\n key: assistantKey,\n partial: true,\n });\n }\n } else {\n pushPartialMessage?.({\n delta: (value as MessageChunk).delta,\n key: assistantKey,\n partial: true,\n });\n if (\n !alwaysUseNewConversation &&\n (value as MessageChunk).conversationId &&\n !currentConversationId\n ) {\n setConversationId(\n (currentConversationId = (value as MessageChunk)\n .conversationId!)\n );\n }\n }\n }\n\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last?.partial) {\n last.partial = false;\n }\n return [...prev];\n });\n } catch (error) {\n if (error && error === newConversationError) {\n throw error;\n }\n\n // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n let keep = prev;\n if (last?.key === assistantKey) {\n if (last.content) {\n last.partial = false;\n last.failed = true;\n } else {\n // Ignore the empty assistant message.\n keep = prev.slice(0, -1);\n }\n }\n return [\n ...keep,\n {\n role: \"assistant\",\n content: \"系统错误\",\n key: getMessageChunkKey(),\n failed: true,\n },\n ];\n });\n }\n\n await checkNewConversation();\n\n onBusyChange?.((busyRef.current = false));\n\n return currentConversationId;\n },\n [\n conversationId,\n alwaysUseNewConversation,\n getMessageChunkKey,\n onBusyChange,\n pushPartialMessage,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n lowLevelSendRequest: (...args) => legacySendRequest(true, ...args),\n sendRequest: (...args) => legacySendRequest(false, ...args),\n postMessage(content: string) {\n return legacySendRequest(\n false,\n content,\n \"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions\",\n {\n method: \"POST\",\n body: JSON.stringify({\n agentId,\n robotId,\n input: content,\n stream: true,\n conversationId:\n alwaysUseNewConversation || conversationId === null\n ? undefined\n : conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n newConversation() {\n chatIdRef.current++;\n setConversationId(null);\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n if (busyRef.current) {\n onBusyChange?.((busyRef.current = false));\n }\n },\n }),\n [\n legacySendRequest,\n agentId,\n robotId,\n alwaysUseNewConversation,\n conversationId,\n onBusyChange,\n ]\n );\n\n useEffect(() => {\n didMountRef.current && onMessagesUpdate?.(fullMessages);\n }, [fullMessages, onMessagesUpdate]);\n\n useEffect(() => {\n didMountRef.current = true;\n }, []);\n\n return null;\n}\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","defineElement","property","method","event","createDecorators","LegacyChatViewComponent","_ref","ref","agentId","robotId","sessionId","showAvatar","showSessionList","readonly","showLike","showShare","quickAnswerConfig","snippetList","enterInterval","debug","useSpiltWord","commandBricks","answerLanguage","inputToolbarBrick","showToolCalls","onSessionIdChange","onRobotIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","toolNames","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","setConfig","setFormData","useChatViewInfo","useEffect","_sessionList$find","find","item","conversationId","inputRef","useRef","useImperativeHandle","handleInsertQuestion","value","_inputRef$current","current","sendMsg","msg","_inputRef$current2","React","ChatViewContext","Provider","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref2","_R","_ChatView_brand","WeakSet","_handleSessionIdChange","_S","_handleRobotIdChange","_T","_handleQaFinish","ChatView","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_answerLanguage","_init_extra_answerLanguage","_init_debug","_init_extra_debug","_init_showAvatar","_init_extra_showAvatar","_init_showSessionList","_init_extra_showSessionList","_init_readonly","_init_extra_readonly","_init_showLike","_init_extra_showLike","_init_showShare","_init_extra_showShare","_init_useSpiltWord","_init_extra_useSpiltWord","_init_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","_init_snippetList","_init_extra_snippetList","_init_commandBricks","_init_extra_commandBricks","_init_inputToolbarBrick","_init_extra_inputToolbarBrick","_init_showToolCalls","_init_extra_showToolCalls","_init_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_robotIdChange","_init_extra_robotIdChange","_get_robotIdChange","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","config","_classPrivateFieldGet2","formData","_classPrivateFieldGet3","insertQuestion","args","_classPrivateFieldGet4","_classPrivateFieldGet5","render","_ChatView2","e","_set_sessionIdChange","_set_robotIdChange","_set_qaFinish","c","_initClass","_applyDecs","shadowOptions","type","Boolean","Number","attribute","o","_","has","_checkInRHS","ChatAgentComponent","LegacyChatAgentComponent","_ChatAgent","_ChatAgent_brand","_handleMessagesUpdate","_handleBusyChange","_handleConversationIdChange","ChatAgent","_init_conversationId","_init_extra_conversationId","_init_alwaysUseNewConversation","_init_extra_alwaysUseNewConversation","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_get_messagesUpdate","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","_get_conversationIdChangeEvent","createRef","alwaysUseNewConversation","postMessage","content","sendRequest","leadingMessages","url","options","lowLevelSendRequest","newConversation","onMessagesUpdate","onBusyChange","onConversationIdChange","propConversationId","onMessageChunkPush","didMountRef","chatIdRef","busyRef","setConversationId","useState","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","length","key","delta","partial","legacySendRequest","async","isLowLevel","thisChatId","newConversationError","checkNewConversation","Error","userKey","assistantKey","currentConversationId","Array","isArray","isAssistant","role","request","createSSEStream","URL","location","origin","getBasePath","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","_len","_key","_len2","_key2","body","JSON","stringify","input","undefined","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","styleTexts","styleText"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/7736.477cde3e.js","mappings":"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","sources":["webpack:///./src/chat-agent/styles.shadow.css","webpack:///./src/chat-view/index.tsx","webpack:///./src/chat-agent/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n ChatViewContext,\n QuickAnswerConfig,\n snippet,\n} from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput, SearchInputRef } from \"./components/SearchInput.js\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\nimport \"./index.css\";\nimport { commandBrickConf } from \"./ChatViewContext\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport { ChatBody } from \"./ChatService.js\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\ntype InputToolbarBrick = { useBrick: UseBrickConf };\n\nexport interface ChatViewRef extends SearchInputRef {\n setConfig(config: Record<string, unknown> | undefined): void;\n setFormData(formData: Record<string, unknown> | undefined): void;\n}\n\nexport interface ChatViewProps {\n agentId: string;\n robotId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n showShare?: boolean;\n useSpiltWord?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n snippetList?: snippet[];\n enterInterval?: number;\n debug?: boolean;\n commandBricks?: commandBrickConf;\n answerLanguage?: string;\n inputToolbarBrick?: InputToolbarBrick;\n showToolCalls?: boolean;\n onSessionIdChange: (sessionId: string | undefined) => void;\n onRobotIdChange: (robotId: string | undefined) => void;\n onQaFinish: (sessionId: string | undefined) => void;\n}\n\nexport function LegacyChatViewComponent(\n {\n agentId,\n robotId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n showShare = true,\n quickAnswerConfig,\n snippetList,\n enterInterval,\n debug = false,\n useSpiltWord = false,\n commandBricks,\n answerLanguage,\n inputToolbarBrick,\n showToolCalls,\n onSessionIdChange,\n onRobotIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<ChatViewRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n setConfig,\n setFormData,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n showToolCalls,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n onRobotIdChange(\n sessionList.find((item) => item.conversationId === activeSessionId)\n ?.robotId\n );\n }\n }, [activeSessionId, onRobotIdChange, onSessionIdChange, sessionList]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\n\n const inputRef = useRef<SearchInputRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n handleInsertQuestion(value) {\n return inputRef.current?.handleInsertQuestion(value);\n },\n sendMsg(msg) {\n return inputRef.current?.sendMsg(msg);\n },\n setConfig,\n setFormData,\n }),\n [setConfig, setFormData]\n );\n\n return (\n <ChatViewContext.Provider\n value={{\n sessionEnd,\n sessionLoading,\n activeSessionId,\n sessionList,\n msgEnd,\n msgLoading,\n msgList,\n chatting,\n loading,\n searchStr,\n showLike,\n showShare,\n readonly,\n quickAnswerConfig,\n snippetList,\n commandBricks,\n showToolCalls,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n }}\n >\n <div className=\"chat-view-container\">\n {showSessionList && (\n <div className=\"chat-view-selector\">\n <SessionList />\n </div>\n )}\n <div className=\"chat-view-content\">\n <MessageList showAvatar={showAvatar} />\n {!readonly && (\n <SearchInput inputToolbarBrick={inputToolbarBrick} ref={inputRef} />\n )}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n\nexport const ChatViewComponent = forwardRef(LegacyChatViewComponent);\n\n/**\n * AI 对话终端\n * @category ai\n */\nexport\n@defineElement(\"ai.chat-view\", {\n // shadow 模式下,会导致 useBrick 样式丢失\n // 如:commandBricks 配置 cmdb-instances.instance-list\n shadowOptions: false,\n})\nclass ChatView extends ReactNextElement {\n /**\n * 当前会话 ID\n */\n @property()\n accessor sessionId: string | undefined;\n\n /**\n * 智能体id\n */\n @property()\n accessor agentId!: string;\n\n /**\n * 机器人id\n */\n @property()\n accessor robotId!: string;\n\n /**\n * 指定智能体回答代码时所使用的语言\n */\n @property()\n accessor answerLanguage: string | undefined;\n\n /**\n * 是否为debug模式\n */\n @property({\n type: Boolean,\n })\n accessor debug: boolean | undefined;\n\n /**\n * 是否展示对话用户头像\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showAvatar: boolean | undefined;\n\n /**\n * 是否展示历史会话信息\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showSessionList: boolean | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否展示点赞能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showLike: boolean | undefined;\n\n /**\n * 是否展示分享能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showShare: boolean | undefined;\n\n /**\n * 是否开启前端分词\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor useSpiltWord: boolean | undefined;\n\n /**\n * 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出\n *\n * @default 50\n */\n @property({\n type: Number,\n })\n accessor enterInterval: number | undefined;\n\n /**\n * 快速入口列表\n */\n @property({\n attribute: false,\n })\n accessor quickAnswerConfig: QuickAnswerConfig | undefined;\n\n /**\n * 常用语列表\n */\n @property({\n attribute: false,\n })\n accessor snippetList: snippet[] | undefined;\n\n /**\n * 自定义语言配置\n */\n @property({\n attribute: false,\n })\n accessor commandBricks: commandBrickConf | undefined;\n\n /**\n * 输入框工具栏 useBrick\n */\n @property({\n attribute: false,\n })\n accessor inputToolbarBrick: InputToolbarBrick | undefined;\n\n /**\n * 是否显示工具调用过程\n */\n @property({ type: Boolean })\n accessor showToolCalls: boolean | undefined;\n\n /** 设置接口 config\n * @param config 传递给接口的 config 参数\n */\n @method()\n setConfig(config: Record<string, unknown> | undefined): void {\n this.#ref.current?.setConfig(config);\n }\n\n /** 设置接口 formData\n * @param formData 传递给接口的 formData 参数\n */\n @method()\n setFormData(formData: Record<string, unknown> | undefined): void {\n this.#ref.current?.setFormData(formData);\n }\n\n #ref = React.createRef<ChatViewRef>();\n\n /**\n * 会话 ID 变化时触发\n * @detail 当前激活的会话 ID\n */\n @event({ type: \"sessionId.change\" })\n accessor #sessionIdChange!: EventEmitter<string | undefined>;\n\n #handleSessionIdChange = (activeSessionId: string | undefined) => {\n this.#sessionIdChange.emit(activeSessionId);\n };\n\n /**\n * 机器人 ID 变化时触发(切换会话时可能切换对应机器人)\n * @detail 当前会话对应的机器人 ID\n */\n @event({ type: \"robotId.change\" })\n accessor #robotIdChange!: EventEmitter<string | undefined>;\n\n #handleRobotIdChange = (robotId: string | undefined) => {\n this.#robotIdChange.emit(robotId);\n };\n\n /**\n * 一次问答完成时触发(chatting 从 true 变为 false 时)\n * @detail 当前激活的会话 ID\n */\n @event({ type: \"qa.finish\" })\n accessor #qaFinish!: EventEmitter<string | undefined>;\n\n #handleQaFinish = (activeSessionId: string | undefined) => {\n this.#qaFinish.emit(activeSessionId);\n };\n\n /**\n * 调用方法进行提问,将内容插入输入框并发送\n * @param args 包含问题内容的对象\n */\n @method()\n insertQuestion(args: { value: string }): void {\n const { value } = args;\n if (!value) return;\n this.#ref.current?.handleInsertQuestion(value);\n }\n\n /**\n * 外部发起提问,直接发送消息不经过输入框交互\n * @param msg 要发送的消息,可以是字符串或结构化消息体\n */\n @method()\n sendMsg(msg: string | ChatBody): void {\n this.#ref.current?.sendMsg(msg);\n }\n\n render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\n robotId={this.robotId}\n debug={this.debug}\n sessionId={this.sessionId}\n readonly={this.readonly}\n showAvatar={this.showAvatar}\n showSessionList={this.showSessionList}\n showLike={this.showLike}\n showShare={this.showShare}\n useSpiltWord={this.useSpiltWord}\n quickAnswerConfig={this.quickAnswerConfig}\n snippetList={this.snippetList}\n enterInterval={this.enterInterval}\n commandBricks={this.commandBricks}\n answerLanguage={this.answerLanguage}\n inputToolbarBrick={this.inputToolbarBrick}\n showToolCalls={this.showToolCalls}\n onSessionIdChange={this.#handleSessionIdChange}\n onRobotIdChange={this.#handleRobotIdChange}\n onQaFinish={this.#handleQaFinish}\n ref={this.#ref}\n />\n );\n }\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { createSSEStream, type Options } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatAgentProps {\n agentId?: string;\n robotId?: string;\n conversationId?: string;\n alwaysUseNewConversation?: boolean;\n}\n\nexport interface Message extends BaseMessage {\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface BaseMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface MessageChunk {\n delta: BaseMessage;\n conversationId?: string;\n key: number;\n partial?: boolean;\n}\n\nexport interface LowLevelMessageChunk {\n choices: LowLevelChoice[];\n}\n\nexport interface LowLevelChoice {\n delta: {\n role: \"assistant\";\n content?: string;\n };\n}\n\nexport const ChatAgentComponent = forwardRef(LegacyChatAgentComponent);\n\n/**\n * 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。\n * @category ai\n */\nexport\n@defineElement(\"ai.chat-agent\", {\n styleTexts: [styleText],\n})\nclass ChatAgent extends ReactNextElement implements ChatAgentProps {\n /**\n * 智能体 ID\n */\n @property()\n accessor agentId: string | undefined;\n\n /**\n * 机器人 ID\n */\n @property()\n accessor robotId: string | undefined;\n\n /**\n * 会话 ID,用于延续历史会话\n */\n @property()\n accessor conversationId: string | undefined;\n\n /**\n * 是否每次请求都使用新会话,设为 true 时每次发消息不会延续历史会话\n */\n @property()\n accessor alwaysUseNewConversation: boolean | undefined;\n\n /**\n * 发送消息到默认的聊天 API\n * @param content 要发送的消息内容\n */\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n /**\n * 发送聊天请求到指定的 URL\n * @param leadingMessages 消息内容,可以是字符串或消息对象数组\n * @param url 请求的目标 URL\n * @param options SSE 流请求选项\n */\n @method()\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.sendRequest(leadingMessages, url, options);\n }\n\n /**\n * 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。\n * @param leadingMessages 消息内容,可以是字符串或消息对象数组\n * @param url 请求的目标 URL\n * @param options SSE 流请求选项\n */\n @method()\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.lowLevelSendRequest(\n leadingMessages,\n url,\n options\n );\n }\n\n /**\n * 开启新会话,清空当前消息列表并重置会话状态\n */\n @method()\n newConversation() {\n this.#ref.current?.newConversation();\n }\n\n // @event({ type: \"messageChunk.push\" })\n // accessor #messageChunkPushEvent!: EventEmitter<MessageChunk>;\n\n // #handleMessageChunkPush = (msg: MessageChunk) => {\n // this.#messageChunkPushEvent.emit(msg);\n // };\n\n /**\n * 消息列表更新时触发\n * @detail 当前全部消息列表\n */\n @event({ type: \"messages.update\" })\n accessor #messagesUpdate!: EventEmitter<Message[]>;\n\n #handleMessagesUpdate = (messages: Message[]) => {\n this.#messagesUpdate.emit(messages);\n };\n\n /**\n * 忙碌状态变化时触发,true 表示正在等待 AI 响应,false 表示响应完成\n * @detail 当前忙碌状态\n */\n @event({ type: \"busy.change\" })\n accessor #busyChangeEvent!: EventEmitter<boolean>;\n\n #handleBusyChange = (busy: boolean) => {\n this.#busyChangeEvent.emit(busy);\n };\n\n /**\n * 会话 ID 变化时触发\n * @detail 新的会话 ID,开启新会话时为 null\n */\n @event({ type: \"conversationId.change\" })\n accessor #conversationIdChangeEvent!: EventEmitter<string | null>;\n\n #handleConversationIdChange = (conversationId: string | null) => {\n this.#conversationIdChangeEvent.emit(conversationId);\n };\n\n #ref = createRef<ChatAgentRef>();\n\n render() {\n return (\n <ChatAgentComponent\n ref={this.#ref}\n agentId={this.agentId}\n robotId={this.robotId}\n conversationId={this.conversationId}\n alwaysUseNewConversation={this.alwaysUseNewConversation}\n // onMessageChunkPush={this.#handleMessageChunkPush}\n onMessagesUpdate={this.#handleMessagesUpdate}\n onBusyChange={this.#handleBusyChange}\n onConversationIdChange={this.#handleConversationIdChange}\n />\n );\n }\n}\n\nexport interface ChatAgentComponentProps extends ChatAgentProps {\n onMessageChunkPush?(msg: MessageChunk): void;\n onMessagesUpdate?(messages: Message[]): void;\n onBusyChange?(busy: boolean): void;\n onConversationIdChange?(conversationId: string | null): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | null>;\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n newConversation(): void;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n robotId,\n conversationId: propConversationId,\n alwaysUseNewConversation,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n const chatIdRef = useRef(1);\n const busyRef = useRef(false);\n const [conversationId, setConversationId] = useState<string | null>(null);\n\n useEffect(() => {\n setConversationId(propConversationId ?? null);\n }, [propConversationId]);\n\n useEffect(() => {\n didMountRef.current && onConversationIdChange?.(conversationId);\n }, [conversationId, onConversationIdChange]);\n\n const counterRef = useRef(0);\n const getMessageChunkKey = useCallback(() => counterRef.current++, []);\n\n const [fullMessages, setFullMessages] = useState<Message[]>([]);\n\n const pushPartialMessage = useCallback(\n (chunk: MessageChunk) => {\n onMessageChunkPush?.(chunk);\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last && last.key === chunk.key) {\n last.content += chunk.delta.content;\n return [...prev];\n }\n if (last?.partial) {\n last.partial = false;\n }\n return [\n ...prev,\n { ...chunk.delta, key: chunk.key, partial: chunk.partial },\n ];\n });\n },\n [onMessageChunkPush]\n );\n\n const legacySendRequest = useCallback(\n async (\n isLowLevel: boolean,\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk | LowLevelMessageChunk>\n ) => {\n // Use ref instead of state to handle sync sequential calls.\n if (busyRef.current) {\n return null;\n }\n if (alwaysUseNewConversation || isLowLevel) {\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n }\n const thisChatId = chatIdRef.current;\n let newConversationError: Error | undefined;\n const checkNewConversation = async () => {\n if (thisChatId !== chatIdRef.current) {\n // istanbul ignore else: should never happen\n if (!newConversationError) {\n newConversationError = new Error(\"New conversation started\");\n }\n throw newConversationError;\n }\n };\n\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId =\n alwaysUseNewConversation || isLowLevel ? null : conversationId;\n\n onBusyChange?.((busyRef.current = true));\n\n try {\n if (Array.isArray(leadingMessages)) {\n for (const msg of leadingMessages) {\n const isAssistant = msg.role === \"assistant\";\n if (isAssistant || msg.role === \"user\") {\n pushPartialMessage?.({\n key: isAssistant ? assistantKey : userKey,\n delta: {\n role: msg.role,\n content: msg.content,\n },\n });\n }\n }\n } else {\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: leadingMessages,\n role: \"user\",\n },\n });\n }\n const request = createSSEStream<MessageChunk | LowLevelMessageChunk>(\n new URL(url, `${location.origin}${getBasePath()}`).toString(),\n options\n );\n\n // Put a placeholder assistant message to indicate that the assistant\n // is processing if the request takes longer than one second.\n await Promise.race([\n request,\n new Promise((resolve) => setTimeout(resolve, 1000)),\n ]);\n\n await checkNewConversation();\n\n pushPartialMessage?.({\n key: assistantKey,\n delta: {\n content: \"\",\n role: \"assistant\",\n },\n partial: true,\n });\n\n const stream = await request;\n for await (const value of stream) {\n // istanbul ignore next\n // if (process.env.NODE_ENV === \"development\") {\n // // eslint-disable-next-line no-console\n // console.log(\"stream iterated:\", value);\n // }\n\n await checkNewConversation();\n\n if (isLowLevel) {\n const delta = (value as LowLevelMessageChunk).choices?.[0]?.delta;\n if (delta?.content) {\n pushPartialMessage({\n delta: {\n role: delta.role,\n content: delta.content,\n },\n key: assistantKey,\n partial: true,\n });\n }\n } else {\n pushPartialMessage?.({\n delta: (value as MessageChunk).delta,\n key: assistantKey,\n partial: true,\n });\n if (\n !alwaysUseNewConversation &&\n (value as MessageChunk).conversationId &&\n !currentConversationId\n ) {\n setConversationId(\n (currentConversationId = (value as MessageChunk)\n .conversationId!)\n );\n }\n }\n }\n\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last?.partial) {\n last.partial = false;\n }\n return [...prev];\n });\n } catch (error) {\n if (error && error === newConversationError) {\n throw error;\n }\n\n // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n let keep = prev;\n if (last?.key === assistantKey) {\n if (last.content) {\n last.partial = false;\n last.failed = true;\n } else {\n // Ignore the empty assistant message.\n keep = prev.slice(0, -1);\n }\n }\n return [\n ...keep,\n {\n role: \"assistant\",\n content: \"系统错误\",\n key: getMessageChunkKey(),\n failed: true,\n },\n ];\n });\n }\n\n await checkNewConversation();\n\n onBusyChange?.((busyRef.current = false));\n\n return currentConversationId;\n },\n [\n conversationId,\n alwaysUseNewConversation,\n getMessageChunkKey,\n onBusyChange,\n pushPartialMessage,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n lowLevelSendRequest: (...args) => legacySendRequest(true, ...args),\n sendRequest: (...args) => legacySendRequest(false, ...args),\n postMessage(content: string) {\n return legacySendRequest(\n false,\n content,\n \"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions\",\n {\n method: \"POST\",\n body: JSON.stringify({\n agentId,\n robotId,\n input: content,\n stream: true,\n conversationId:\n alwaysUseNewConversation || conversationId === null\n ? undefined\n : conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n newConversation() {\n chatIdRef.current++;\n setConversationId(null);\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n if (busyRef.current) {\n onBusyChange?.((busyRef.current = false));\n }\n },\n }),\n [\n legacySendRequest,\n agentId,\n robotId,\n alwaysUseNewConversation,\n conversationId,\n onBusyChange,\n ]\n );\n\n useEffect(() => {\n didMountRef.current && onMessagesUpdate?.(fullMessages);\n }, [fullMessages, onMessagesUpdate]);\n\n useEffect(() => {\n didMountRef.current = true;\n }, []);\n\n return null;\n}\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","defineElement","property","method","event","createDecorators","LegacyChatViewComponent","_ref","ref","agentId","robotId","sessionId","showAvatar","showSessionList","readonly","showLike","showShare","quickAnswerConfig","snippetList","enterInterval","debug","useSpiltWord","commandBricks","answerLanguage","inputToolbarBrick","showToolCalls","onSessionIdChange","onRobotIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","toolNames","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","setConfig","setFormData","useChatViewInfo","useEffect","_sessionList$find","find","item","conversationId","inputRef","useRef","useImperativeHandle","handleInsertQuestion","value","_inputRef$current","current","sendMsg","msg","_inputRef$current2","React","ChatViewContext","Provider","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref2","_R","_ChatView_brand","WeakSet","_handleSessionIdChange","_S","_handleRobotIdChange","_T","_handleQaFinish","ChatView","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_answerLanguage","_init_extra_answerLanguage","_init_debug","_init_extra_debug","_init_showAvatar","_init_extra_showAvatar","_init_showSessionList","_init_extra_showSessionList","_init_readonly","_init_extra_readonly","_init_showLike","_init_extra_showLike","_init_showShare","_init_extra_showShare","_init_useSpiltWord","_init_extra_useSpiltWord","_init_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","_init_snippetList","_init_extra_snippetList","_init_commandBricks","_init_extra_commandBricks","_init_inputToolbarBrick","_init_extra_inputToolbarBrick","_init_showToolCalls","_init_extra_showToolCalls","_init_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_robotIdChange","_init_extra_robotIdChange","_get_robotIdChange","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","config","_classPrivateFieldGet2","formData","_classPrivateFieldGet3","insertQuestion","args","_classPrivateFieldGet4","_classPrivateFieldGet5","render","_ChatView2","e","_set_sessionIdChange","_set_robotIdChange","_set_qaFinish","c","_initClass","_applyDecs","shadowOptions","type","Boolean","Number","attribute","o","_","has","_checkInRHS","ChatAgentComponent","LegacyChatAgentComponent","_ChatAgent","_ChatAgent_brand","_handleMessagesUpdate","_handleBusyChange","_handleConversationIdChange","ChatAgent","_init_conversationId","_init_extra_conversationId","_init_alwaysUseNewConversation","_init_extra_alwaysUseNewConversation","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_get_messagesUpdate","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","_get_conversationIdChangeEvent","createRef","alwaysUseNewConversation","postMessage","content","sendRequest","leadingMessages","url","options","lowLevelSendRequest","newConversation","onMessagesUpdate","onBusyChange","onConversationIdChange","propConversationId","onMessageChunkPush","didMountRef","chatIdRef","busyRef","setConversationId","useState","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","length","key","delta","partial","legacySendRequest","async","isLowLevel","thisChatId","newConversationError","checkNewConversation","Error","userKey","assistantKey","currentConversationId","Array","isArray","isAssistant","role","request","createSSEStream","URL","location","origin","getBasePath","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","_len","_key","_len2","_key2","body","JSON","stringify","input","undefined","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","styleTexts","styleText"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/chat-agent.7726f29c.js","mappings":"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","sources":["webpack:///./src/chat-agent/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./src/chat-agent/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { createSSEStream, type Options } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatAgentProps {\n agentId?: string;\n robotId?: string;\n conversationId?: string;\n alwaysUseNewConversation?: boolean;\n}\n\nexport interface Message extends BaseMessage {\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface BaseMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface MessageChunk {\n delta: BaseMessage;\n conversationId?: string;\n key: number;\n partial?: boolean;\n}\n\nexport interface LowLevelMessageChunk {\n choices: LowLevelChoice[];\n}\n\nexport interface LowLevelChoice {\n delta: {\n role: \"assistant\";\n content?: string;\n };\n}\n\nexport const ChatAgentComponent = forwardRef(LegacyChatAgentComponent);\n\n/**\n * 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。\n */\nexport\n@defineElement(\"ai.chat-agent\", {\n styleTexts: [styleText],\n})\nclass ChatAgent extends ReactNextElement implements ChatAgentProps {\n @property()\n accessor agentId: string | undefined;\n\n @property()\n accessor robotId: string | undefined;\n\n @property()\n accessor conversationId: string | undefined;\n\n @property()\n accessor alwaysUseNewConversation: boolean | undefined;\n\n /**\n * 发送消息到默认的聊天 API\n */\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n /**\n * 发送聊天请求到指定的 URL\n */\n @method()\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.sendRequest(leadingMessages, url, options);\n }\n\n /**\n * 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。\n */\n @method()\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.lowLevelSendRequest(\n leadingMessages,\n url,\n options\n );\n }\n\n @method()\n newConversation() {\n this.#ref.current?.newConversation();\n }\n\n // @event({ type: \"messageChunk.push\" })\n // accessor #messageChunkPushEvent!: EventEmitter<MessageChunk>;\n\n // #handleMessageChunkPush = (msg: MessageChunk) => {\n // this.#messageChunkPushEvent.emit(msg);\n // };\n\n @event({ type: \"messages.update\" })\n accessor #messagesUpdate!: EventEmitter<Message[]>;\n\n #handleMessagesUpdate = (messages: Message[]) => {\n this.#messagesUpdate.emit(messages);\n };\n\n @event({ type: \"busy.change\" })\n accessor #busyChangeEvent!: EventEmitter<boolean>;\n\n #handleBusyChange = (busy: boolean) => {\n this.#busyChangeEvent.emit(busy);\n };\n\n @event({ type: \"conversationId.change\" })\n accessor #conversationIdChangeEvent!: EventEmitter<string | null>;\n\n #handleConversationIdChange = (conversationId: string | null) => {\n this.#conversationIdChangeEvent.emit(conversationId);\n };\n\n #ref = createRef<ChatAgentRef>();\n\n render() {\n return (\n <ChatAgentComponent\n ref={this.#ref}\n agentId={this.agentId}\n robotId={this.robotId}\n conversationId={this.conversationId}\n alwaysUseNewConversation={this.alwaysUseNewConversation}\n // onMessageChunkPush={this.#handleMessageChunkPush}\n onMessagesUpdate={this.#handleMessagesUpdate}\n onBusyChange={this.#handleBusyChange}\n onConversationIdChange={this.#handleConversationIdChange}\n />\n );\n }\n}\n\nexport interface ChatAgentComponentProps extends ChatAgentProps {\n onMessageChunkPush?(msg: MessageChunk): void;\n onMessagesUpdate?(messages: Message[]): void;\n onBusyChange?(busy: boolean): void;\n onConversationIdChange?(conversationId: string | null): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | null>;\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n newConversation(): void;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n robotId,\n conversationId: propConversationId,\n alwaysUseNewConversation,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n const chatIdRef = useRef(1);\n const busyRef = useRef(false);\n const [conversationId, setConversationId] = useState<string | null>(null);\n\n useEffect(() => {\n setConversationId(propConversationId ?? null);\n }, [propConversationId]);\n\n useEffect(() => {\n didMountRef.current && onConversationIdChange?.(conversationId);\n }, [conversationId, onConversationIdChange]);\n\n const counterRef = useRef(0);\n const getMessageChunkKey = useCallback(() => counterRef.current++, []);\n\n const [fullMessages, setFullMessages] = useState<Message[]>([]);\n\n const pushPartialMessage = useCallback(\n (chunk: MessageChunk) => {\n onMessageChunkPush?.(chunk);\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last && last.key === chunk.key) {\n last.content += chunk.delta.content;\n return [...prev];\n }\n if (last?.partial) {\n last.partial = false;\n }\n return [\n ...prev,\n { ...chunk.delta, key: chunk.key, partial: chunk.partial },\n ];\n });\n },\n [onMessageChunkPush]\n );\n\n const legacySendRequest = useCallback(\n async (\n isLowLevel: boolean,\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk | LowLevelMessageChunk>\n ) => {\n // Use ref instead of state to handle sync sequential calls.\n if (busyRef.current) {\n return null;\n }\n if (alwaysUseNewConversation || isLowLevel) {\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n }\n const thisChatId = chatIdRef.current;\n let newConversationError: Error | undefined;\n const checkNewConversation = async () => {\n if (thisChatId !== chatIdRef.current) {\n // istanbul ignore else: should never happen\n if (!newConversationError) {\n newConversationError = new Error(\"New conversation started\");\n }\n throw newConversationError;\n }\n };\n\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId =\n alwaysUseNewConversation || isLowLevel ? null : conversationId;\n\n onBusyChange?.((busyRef.current = true));\n\n try {\n if (Array.isArray(leadingMessages)) {\n for (const msg of leadingMessages) {\n const isAssistant = msg.role === \"assistant\";\n if (isAssistant || msg.role === \"user\") {\n pushPartialMessage?.({\n key: isAssistant ? assistantKey : userKey,\n delta: {\n role: msg.role,\n content: msg.content,\n },\n });\n }\n }\n } else {\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: leadingMessages,\n role: \"user\",\n },\n });\n }\n const request = createSSEStream<MessageChunk | LowLevelMessageChunk>(\n new URL(url, `${location.origin}${getBasePath()}`).toString(),\n options\n );\n\n // Put a placeholder assistant message to indicate that the assistant\n // is processing if the request takes longer than one second.\n await Promise.race([\n request,\n new Promise((resolve) => setTimeout(resolve, 1000)),\n ]);\n\n await checkNewConversation();\n\n pushPartialMessage?.({\n key: assistantKey,\n delta: {\n content: \"\",\n role: \"assistant\",\n },\n partial: true,\n });\n\n const stream = await request;\n for await (const value of stream) {\n // istanbul ignore next\n // if (process.env.NODE_ENV === \"development\") {\n // // eslint-disable-next-line no-console\n // console.log(\"stream iterated:\", value);\n // }\n\n await checkNewConversation();\n\n if (isLowLevel) {\n const delta = (value as LowLevelMessageChunk).choices?.[0]?.delta;\n if (delta?.content) {\n pushPartialMessage({\n delta: {\n role: delta.role,\n content: delta.content,\n },\n key: assistantKey,\n partial: true,\n });\n }\n } else {\n pushPartialMessage?.({\n delta: (value as MessageChunk).delta,\n key: assistantKey,\n partial: true,\n });\n if (\n !alwaysUseNewConversation &&\n (value as MessageChunk).conversationId &&\n !currentConversationId\n ) {\n setConversationId(\n (currentConversationId = (value as MessageChunk)\n .conversationId!)\n );\n }\n }\n }\n\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last?.partial) {\n last.partial = false;\n }\n return [...prev];\n });\n } catch (error) {\n if (error && error === newConversationError) {\n throw error;\n }\n\n // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n let keep = prev;\n if (last?.key === assistantKey) {\n if (last.content) {\n last.partial = false;\n last.failed = true;\n } else {\n // Ignore the empty assistant message.\n keep = prev.slice(0, -1);\n }\n }\n return [\n ...keep,\n {\n role: \"assistant\",\n content: \"系统错误\",\n key: getMessageChunkKey(),\n failed: true,\n },\n ];\n });\n }\n\n await checkNewConversation();\n\n onBusyChange?.((busyRef.current = false));\n\n return currentConversationId;\n },\n [\n conversationId,\n alwaysUseNewConversation,\n getMessageChunkKey,\n onBusyChange,\n pushPartialMessage,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n lowLevelSendRequest: (...args) => legacySendRequest(true, ...args),\n sendRequest: (...args) => legacySendRequest(false, ...args),\n postMessage(content: string) {\n return legacySendRequest(\n false,\n content,\n \"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions\",\n {\n method: \"POST\",\n body: JSON.stringify({\n agentId,\n robotId,\n input: content,\n stream: true,\n conversationId:\n alwaysUseNewConversation || conversationId === null\n ? undefined\n : conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n newConversation() {\n chatIdRef.current++;\n setConversationId(null);\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n if (busyRef.current) {\n onBusyChange?.((busyRef.current = false));\n }\n },\n }),\n [\n legacySendRequest,\n agentId,\n robotId,\n alwaysUseNewConversation,\n conversationId,\n onBusyChange,\n ]\n );\n\n useEffect(() => {\n didMountRef.current && onMessagesUpdate?.(fullMessages);\n }, [fullMessages, onMessagesUpdate]);\n\n useEffect(() => {\n didMountRef.current = true;\n }, []);\n\n return null;\n}\n","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","_classPrivateFieldGet2","s","a","get","_classPrivateFieldInitSpec","obj","privateMap","value","set","exports","cssWithMappingToString","list","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","toPropertyKey","t","e","Symbol","toPrimitive","call","r","TypeError","String","defineElement","property","event","method","createDecorators","ChatAgentComponent","forwardRef","LegacyChatAgentComponent","_ChatAgent","_A","WeakMap","_B","_C","_D","_E","_ChatAgent_brand","WeakSet","_handleMessagesUpdate","_F","_handleBusyChange","_G","_handleConversationIdChange","_ref","ChatAgent","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_initProto","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_conversationId","_init_extra_conversationId","_init_alwaysUseNewConversation","_init_extra_alwaysUseNewConversation","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_classPrivateGetter","_get_messagesUpdate","emit","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","conversationId","_get_conversationIdChangeEvent","createRef","agentId","_classPrivateFieldGet","v","_classPrivateFieldSet","robotId","alwaysUseNewConversation","postMessage","current","sendRequest","leadingMessages","url","options","_classPrivateFieldGet3","lowLevelSendRequest","_classPrivateFieldGet4","newConversation","_classPrivateFieldGet5","render","React","ref","onMessagesUpdate","onBusyChange","onConversationIdChange","_ref2","propConversationId","onMessageChunkPush","didMountRef","useRef","chatIdRef","busyRef","setConversationId","useState","useEffect","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","key","delta","partial","legacySendRequest","async","isLowLevel","thisChatId","newConversationError","checkNewConversation","Error","userKey","assistantKey","currentConversationId","Array","isArray","msg","isAssistant","role","request","createSSEStream","URL","location","origin","getBasePath","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","useImperativeHandle","_len","args","_key","_len2","_key2","body","JSON","stringify","input","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","c","_initClass","_applyDecs","styleTexts","styleText","type","o","_","has","_checkInRHS","_checkPrivateRedeclaration","privateCollection","_assertClassBrand","n","setFunctionName","description","Object","defineProperty","configurable","applyDecs2311","u","f","l","p","d","metadata","m","h","create","y","g","apply","b","applyDec","w","D","S","j","E","I","P","F","getOwnPropertyDescriptor","name","N","O","z","A","H","K","kind","addInitializer","bind","access","init","unshift","splice","enumerable","prototype","checkInRHS","privateSet","add","_classPrivateFieldSet2","_typeof","iterator"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/chat-agent.7726f29c.js","mappings":"8KAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sBAAuB,KAEhE,QAAeH,EAAwBI,U,+CCNxB,SAASC,EAAuBC,EAAGC,GAChD,OAAOD,EAAEE,KAAI,OAAiBF,EAAGC,GACnC,C,+CCFe,SAASE,EAA2BC,EAAKC,EAAYC,IAClE,OAA0BF,EAAKC,GAC/BA,EAAWE,IAAIH,EAAKE,EACtB,C,UCEAV,EAAOY,QAAU,SAAUC,GACzB,IAAIC,EAAO,GA4EX,OAzEAA,EAAKZ,SAAW,WACd,OAAOa,KAAKC,KAAI,SAAUC,GACxB,IAAIC,EAAU,GACVC,OAA+B,IAAZF,EAAK,GAoB5B,OAnBIA,EAAK,KACPC,GAAW,cAAcE,OAAOH,EAAK,GAAI,QAEvCA,EAAK,KACPC,GAAW,UAAUE,OAAOH,EAAK,GAAI,OAEnCE,IACFD,GAAW,SAASE,OAAOH,EAAK,GAAGI,OAAS,EAAI,IAAID,OAAOH,EAAK,IAAM,GAAI,OAE5EC,GAAWL,EAAuBI,GAC9BE,IACFD,GAAW,KAETD,EAAK,KACPC,GAAW,KAETD,EAAK,KACPC,GAAW,KAENA,CACT,IAAGI,KAAK,GACV,EAGAR,EAAKS,EAAI,SAAWC,EAASC,EAAOC,EAAQC,EAAUC,GAC7B,iBAAZJ,IACTA,EAAU,CAAC,CAAC,KAAMA,OAASK,KAE7B,IAAIC,EAAyB,CAAC,EAC9B,GAAIJ,EACF,IAAK,IAAIK,EAAI,EAAGA,EAAIhB,KAAKM,OAAQU,IAAK,CACpC,IAAI9B,EAAKc,KAAKgB,GAAG,GACP,MAAN9B,IACF6B,EAAuB7B,IAAM,EAEjC,CAEF,IAAK,IAAI+B,EAAK,EAAGA,EAAKR,EAAQH,OAAQW,IAAM,CAC1C,IAAIf,EAAO,GAAGG,OAAOI,EAAQQ,IACzBN,GAAUI,EAAuBb,EAAK,WAGrB,IAAVW,SACc,IAAZX,EAAK,KAGdA,EAAK,GAAK,SAASG,OAAOH,EAAK,GAAGI,OAAS,EAAI,IAAID,OAAOH,EAAK,IAAM,GAAI,MAAMG,OAAOH,EAAK,GAAI,MAF/FA,EAAK,GAAKW,GAMVH,IACGR,EAAK,IAGRA,EAAK,GAAK,UAAUG,OAAOH,EAAK,GAAI,MAAMG,OAAOH,EAAK,GAAI,KAC1DA,EAAK,GAAKQ,GAHVR,EAAK,GAAKQ,GAMVE,IACGV,EAAK,IAGRA,EAAK,GAAK,cAAcG,OAAOH,EAAK,GAAI,OAAOG,OAAOH,EAAK,GAAI,KAC/DA,EAAK,GAAKU,GAHVV,EAAK,GAAK,GAAGG,OAAOO,IAMxBb,EAAKf,KAAKkB,GACZ,CACF,EACOH,CACT,C,gDClFe,SAASmB,EAAcC,GACpC,IAAIX,ECFS,SAAqBW,GAClC,GAAI,WAAY,OAAQA,KAAOA,EAAG,OAAOA,EACzC,IAAIC,EAAID,EAAEE,OAAOC,aACjB,QAAI,IAAWF,EAAG,CAChB,IAAIZ,EAAIY,EAAEG,KAAKJ,EAAGK,UAClB,GAAI,WAAY,OAAQhB,GAAI,OAAOA,EACnC,MAAM,IAAIiB,UAAU,+CACtB,CACA,OAAyBC,OAAiBP,EAC5C,CDPUG,CAAYH,GACpB,MAAO,WAAY,OAAQX,GAAKA,EAAIA,EAAI,EAC1C,C,oSEUA,MAAM,cAAEmB,EAAa,SAAEC,EAAQ,MAAEC,EAAK,OAAEC,IAAWC,EAAAA,EAAAA,oBAsCtCC,GAAqBC,EAAAA,EAAAA,YAAWC,IAE7C,IAAAC,EAAA,IAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAC,QAAAC,EAAA,IAAAP,QAAAQ,EAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAKA,MAAAa,WAGwBC,EAAAA,iBAA2CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAZ,IACjElD,EAAAA,EAAAA,GAAA,KAAA4C,GAAAmB,EAAA,MAAAC,EAAA,SAMAhE,EAAAA,EAAAA,GAAA,KAAA8C,GAAAmB,EAAA,MAAAC,EAAA,SAMAlE,EAAAA,EAAAA,GAAA,KAAA+C,GAAAoB,EAAA,MAAAC,EAAA,SAMApE,EAAAA,EAAAA,GAAA,KAAAgD,GAAAqB,EAAA,MAAAC,EAAA,SAgEAtE,EAAAA,EAAAA,GAAA,KAAAiD,GAAAsB,EAAA,MAAAC,EAAA,SAOAxE,EAAAA,EAAAA,GAAA,KAAAoD,GAAqBqB,EAAA,MAAIC,KACvBC,EAAAA,EAAAA,GAAAzB,EAAA1C,KAAKoE,GAAgBC,KAAKH,EAAS,KAGrC1E,EAAAA,EAAAA,GAAA,KAAAqD,EAAAyB,EAAA,QAOA9E,EAAAA,EAAAA,GAAA,KAAAsD,IAAiByB,EAAA,MAAIC,KACnBL,EAAAA,EAAAA,GAAAzB,EAAA1C,KAAKyE,GAAiBJ,KAAKG,EAAK,KAGlChF,EAAAA,EAAAA,GAAA,KAAAuD,GAAA2B,EAAA,QAOAlF,EAAAA,EAAAA,GAAA,KAAAwD,IAA2B2B,EAAA,MAAIC,KAC7BT,EAAAA,EAAAA,GAAAzB,EAAA1C,KAAK6E,GAA2BR,KAAKO,EAAe,KAGtDpF,EAAAA,EAAAA,GAAA,KAAAyD,IAAO6B,EAAAA,EAAAA,aAA0B,YA/GxBC,GAAO,OAAAC,EAAAA,EAAAA,GAAA5C,EAAA,iBAAP2C,CAAOE,IAAAC,EAAAA,EAAAA,GAAA9C,EAAA,KAAA6C,EAAA,YAMPE,GAAO,OAAAH,EAAAA,EAAAA,GAAA1C,EAAA,iBAAP6C,CAAOF,IAAAC,EAAAA,EAAAA,GAAA5C,EAAA,KAAA2C,EAAA,mBAMPL,GAAc,OAAAI,EAAAA,EAAAA,GAAAzC,EAAA,wBAAdqC,CAAcK,IAAAC,EAAAA,EAAAA,GAAA3C,EAAA,KAAA0C,EAAA,CAQvB,4BAFSG,GAAwB,OAAAJ,EAAAA,EAAAA,GAAAxC,EAAA,kCAAxB4C,CAAwBH,IAAAC,EAAAA,EAAAA,GAAA1C,EAAA,KAAAyC,EAAA,CAOjCI,WAAAA,CAAYlF,GAAiB,IAAAf,EAC3B,OAAwB,QAAxBA,GAAO4F,EAAAA,EAAAA,GAAK/B,GAALjD,MAAUsF,eAAO,IAAAlG,OAAA,EAAjBA,EAAmBiG,YAAYlF,EACxC,CASAoF,WAAAA,CACEC,EACAC,EACAC,GACA,IAAAC,EACA,OAAwB,QAAxBA,GAAOX,EAAAA,EAAAA,GAAK/B,GAALjD,MAAUsF,eAAO,IAAAK,OAAA,EAAjBA,EAAmBJ,YAAYC,EAAiBC,EAAKC,EAC9D,CASAE,mBAAAA,CACEJ,EACAC,EACAC,GACA,IAAAG,EACA,OAAwB,QAAxBA,GAAOb,EAAAA,EAAAA,GAAK/B,GAALjD,MAAUsF,eAAO,IAAAO,OAAA,EAAjBA,EAAmBD,oBACxBJ,EACAC,EACAC,EAEJ,CAMAI,eAAAA,GAAkB,IAAAC,EACC,QAAjBA,GAAAf,EAAAA,EAAAA,GAAK/B,GAALjD,MAAUsF,eAAO,IAAAS,GAAjBA,EAAmBD,iBACrB,CA4CAE,MAAAA,GACE,OACEC,IAAAA,cAACjE,EAAkB,CACjBkE,KAAKlB,EAAAA,EAAAA,GAAK/B,GAALjD,MACL+E,QAAS/E,KAAK+E,QACdI,QAASnF,KAAKmF,QACdP,eAAgB5E,KAAK4E,eACrBQ,yBAA0BpF,KAAKoF,yBAE/Be,kBAAkBnB,EAAAA,EAAAA,GAAKpC,EAAL5C,MAClBoG,cAAcpB,EAAAA,EAAAA,GAAKlC,GAAL9C,MACdqG,wBAAwBrB,EAAAA,EAAAA,GAAKhC,GAALhD,OAG9B,EAyBK,SAASkC,GAAwBoE,EAWtCJ,GACA,IAXA,QACEnB,EAAO,QACPI,EACAP,eAAgB2B,EAAkB,yBAClCnB,EAAwB,mBACxBoB,EAAkB,iBAClBL,EAAgB,aAChBC,EAAY,uBACZC,GACwBC,EAG1B,MAAMG,GAAcC,EAAAA,EAAAA,SAAO,GACrBC,GAAYD,EAAAA,EAAAA,QAAO,GACnBE,GAAUF,EAAAA,EAAAA,SAAO,IAChB9B,EAAgBiC,IAAqBC,EAAAA,EAAAA,UAAwB,OAEpEC,EAAAA,EAAAA,YAAU,KACRF,EAAkBN,QAAAA,EAAsB,KAAK,GAC5C,CAACA,KAEJQ,EAAAA,EAAAA,YAAU,KACRN,EAAYnB,UAAWe,SAAAA,EAAyBzB,GAAe,GAC9D,CAACA,EAAgByB,IAEpB,MAAMW,GAAaN,EAAAA,EAAAA,QAAO,GACpBO,GAAqBC,EAAAA,EAAAA,cAAY,IAAMF,EAAW1B,WAAW,KAE5D6B,EAAcC,IAAmBN,EAAAA,EAAAA,UAAoB,IAEtDO,GAAqBH,EAAAA,EAAAA,cACxBI,IACCd,SAAAA,EAAqBc,GACrBF,GAAiBG,IACf,MAAMC,EAAOD,EAAKA,EAAKjH,OAAS,GAChC,OAAIkH,GAAQA,EAAKC,MAAQH,EAAMG,KAC7BD,EAAKrH,SAAWmH,EAAMI,MAAMvH,QACrB,IAAIoH,KAETC,SAAAA,EAAMG,UACRH,EAAKG,SAAU,GAEV,IACFJ,EACH,IAAKD,EAAMI,MAAOD,IAAKH,EAAMG,IAAKE,QAASL,EAAMK,UAClD,GACD,GAEJ,CAACnB,IAGGoB,GAAoBV,EAAAA,EAAAA,cACxBW,MACEC,EACAtC,EACAC,EACAC,KAGA,GAAIkB,EAAQtB,QACV,OAAO,MAELF,GAA4B0C,IAC9BV,GAAiBG,GAA0B,IAAhBA,EAAKjH,OAAeiH,EAAO,KAExD,MAAMQ,EAAapB,EAAUrB,QAC7B,IAAI0C,EACJ,MAAMC,EAAuBJ,UAC3B,GAAIE,IAAepB,EAAUrB,QAK3B,MAHK0C,IACHA,EAAuB,IAAIE,MAAM,6BAE7BF,CACR,EAGIG,EAAUlB,IACVmB,EAAenB,IACrB,IAAIoB,EACFjD,GAA4B0C,EAAa,KAAOlD,EAElDwB,SAAAA,EAAgBQ,EAAQtB,SAAU,GAElC,IACE,GAAIgD,MAAMC,QAAQ/C,GAChB,IAAK,MAAMgD,KAAOhD,EAAiB,CACjC,MAAMiD,EAA2B,cAAbD,EAAIE,MACpBD,GAA4B,SAAbD,EAAIE,QACrBrB,SAAAA,EAAqB,CACnBI,IAAKgB,EAAcL,EAAeD,EAClCT,MAAO,CACLgB,KAAMF,EAAIE,KACVvI,QAASqI,EAAIrI,WAIrB,MAEAkH,SAAAA,EAAqB,CACnBI,IAAKU,EACLT,MAAO,CACLvH,QAASqF,EACTkD,KAAM,UAIZ,MAAMC,GAAUC,EAAAA,EAAAA,iBACd,IAAIC,IAAIpD,EAAK,GAAGqD,SAASC,UAASC,EAAAA,EAAAA,kBAAiB7J,WACnDuG,SAKIuD,QAAQC,KAAK,CACjBP,EACA,IAAIM,SAASE,GAAYC,WAAWD,EAAS,eAGzClB,IAENZ,SAAAA,EAAqB,CACnBI,IAAKW,EACLV,MAAO,CACLvH,QAAS,GACTuI,KAAM,aAERf,SAAS,IAGX,MAAM0B,QAAeV,EACrB,UAAW,MAAMhJ,KAAS0J,EASxB,SAFMpB,IAEFH,EAAY,KAAAwB,EACd,MAAM5B,EAA+C,QAA1C4B,EAAI3J,EAA+B4J,eAAO,IAAAD,GAAK,QAALA,EAAvCA,EAA0C,UAAE,IAAAA,OAAA,EAA5CA,EAA8C5B,MACxDA,SAAAA,EAAOvH,SACTkH,EAAmB,CACjBK,MAAO,CACLgB,KAAMhB,EAAMgB,KACZvI,QAASuH,EAAMvH,SAEjBsH,IAAKW,EACLT,SAAS,GAGf,MACEN,SAAAA,EAAqB,CACnBK,MAAQ/H,EAAuB+H,MAC/BD,IAAKW,EACLT,SAAS,IAGRvC,IACAzF,EAAuBiF,gBACvByD,GAEDxB,EACGwB,EAAyB1I,EACvBiF,sBAMLqD,IAENb,GAAiBG,IACf,MAAMC,EAAOD,EAAKA,EAAKjH,OAAS,GAIhC,OAHIkH,SAAAA,EAAMG,UACRH,EAAKG,SAAU,GAEV,IAAIJ,EAAK,GAEpB,CAAE,MAAOiC,GACP,GAAIA,GAASA,IAAUxB,EACrB,MAAMwB,EAIRC,QAAQD,MAAM,iBAAkBA,SAC1BvB,IAENb,GAAiBG,IACf,MAAMC,EAAOD,EAAKA,EAAKjH,OAAS,GAChC,IAAIoJ,EAAOnC,EAUX,OATIC,aAAI,EAAJA,EAAMC,OAAQW,IACZZ,EAAKrH,SACPqH,EAAKG,SAAU,EACfH,EAAKmC,QAAS,GAGdD,EAAOnC,EAAKqC,MAAM,GAAI,IAGnB,IACFF,EACH,CACEhB,KAAM,YACNvI,QAAS,OACTsH,IAAKR,IACL0C,QAAQ,GAEX,GAEL,CAMA,aAJM1B,IAEN7B,SAAAA,EAAgBQ,EAAQtB,SAAU,GAE3B+C,CAAqB,GAE9B,CACEzD,EACAQ,EACA6B,EACAb,EACAiB,IA4DJ,OAxDAwC,EAAAA,EAAAA,qBACE3D,GACA,KAAM,CACJN,oBAAqB,mBAAAkE,EAAAzG,UAAA/C,OAAIyJ,EAAI,IAAAzB,MAAAwB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA3G,UAAA2G,GAAA,OAAKpC,GAAkB,KAASmC,EAAK,EAClExE,YAAa,mBAAA0E,EAAA5G,UAAA/C,OAAIyJ,EAAI,IAAAzB,MAAA2B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJH,EAAIG,GAAA7G,UAAA6G,GAAA,OAAKtC,GAAkB,KAAUmC,EAAK,EAC3D1E,YAAYlF,GACHyH,GACL,EACAzH,EACA,kGACA,CACE2B,OAAQ,OACRqI,KAAMC,KAAKC,UAAU,CACnBtF,UACAI,UACAmF,MAAOnK,EACPkJ,QAAQ,EACRzE,eACEQ,GAA+C,OAAnBR,OACxB9D,EACA8D,IAER2F,QAAS,CACP,wBACE,gDAKVzE,eAAAA,GACEa,EAAUrB,UACVuB,EAAkB,MAClBO,GAAiBG,GAA0B,IAAhBA,EAAKjH,OAAeiH,EAAO,KAClDX,EAAQtB,UACVc,SAAAA,EAAgBQ,EAAQtB,SAAU,GAEtC,KAEF,CACEsC,EACA7C,EACAI,EACAC,EACAR,EACAwB,KAIJW,EAAAA,EAAAA,YAAU,KACRN,EAAYnB,UAAWa,SAAAA,EAAmBgB,GAAa,GACtD,CAACA,EAAchB,KAElBY,EAAAA,EAAAA,YAAU,KACRN,EAAYnB,SAAU,CAAI,GACzB,IAEI,IACT,CAtTCkF,EAAAtH,KAAA9B,GAAAoC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAI,EAAAqG,EAAAxG,EAAAK,EAAAG,EAAAiG,EAAAnG,EAAAG,EAAAG,EAAA8F,EAAAhG,EAAApB,GAAAqH,GAAAzI,EAAA0I,KAAAC,EAAAA,EAAAA,GAAAN,EAAA,CAxIA7I,EAAc,gBAAiB,CAC9BoJ,WAAY,CAACC,EAAAA,MACb,EAKCpJ,IAAU,cAMVA,IAAU,cAMVA,IAAU,qBAMVA,IAAU,+BAOVE,IAAQ,kBAWRA,IAAQ,kBAeRA,IAAQ,0BAgBRA,IAAQ,sBAgBRD,EAAM,CAAEoJ,KAAM,oBAAoB,mBAAAC,IAAAlG,EAAAA,EAAAA,GAAAvC,EAAAyI,GAAA,CAAAA,EAAAjG,KAAAC,EAAAA,EAAAA,GAAAzC,EAAAyI,EAAAjG,IAAA,CAWlCpD,EAAM,CAAEoJ,KAAM,gBAAgB,oBAAAC,IAAAlG,EAAAA,EAAAA,GAAAnC,EAAAqI,GAAA,CAAAA,EAAAjG,KAAAC,EAAAA,EAAAA,GAAArC,EAAAqI,EAAAjG,IAAA,CAW9BpD,EAAM,CAAEoJ,KAAM,0BAA0B,8BAAAC,IAAAlG,EAAAA,EAAAA,GAAAjC,GAAAmI,GAAA,CAAAA,EAAAjG,KAAAC,EAAAA,EAAAA,GAAAnC,GAAAmI,EAAAjG,KAAA,GAAAkG,GAAAlI,GAAAmI,KAAAC,EAAAA,EAAAA,GAAAF,KA7GnBhI,EAAAA,mBAAgB0H,G,iBC/DzB,SAASS,EAA2B7L,EAAK8L,GACtD,GAAIA,EAAkBH,IAAI3L,GACxB,MAAM,IAAIgC,UAAU,iEAExB,C,iCCJe,SAAS+J,EAAkBpK,EAAGD,EAAGsK,GAC9C,GAAI,mBAAqBrK,EAAIA,IAAMD,EAAIC,EAAEgK,IAAIjK,GAAI,OAAOkC,UAAU/C,OAAS,EAAIa,EAAIsK,EACnF,MAAM,IAAIhK,UAAU,gDACtB,C,0ECFe,SAASiK,EAAgBtK,EAAGD,EAAGsK,GAC5C,WAAY,OAAQtK,KAAOA,GAAKA,EAAIA,EAAEwK,aAAe,IAAMxK,EAAI,IAAM,IACrE,IACEyK,OAAOC,eAAezK,EAAG,OAAQ,CAC/B0K,cAAc,EACdnM,MAAO8L,EAAIA,EAAI,IAAMtK,EAAIA,GAE7B,CAAE,MAAOC,GAAI,CACb,OAAOA,CACT,C,cCNe,SAAS2K,EAAc3K,EAAGD,EAAGsK,EAAGjK,EAAG0J,EAAG1K,GACnD,IAAIlB,EACFsL,EACAoB,EACA3M,EACA4M,EACAC,EACAC,EACAC,EAAI/K,OAAOgL,UAAYhL,OAAY,IAAE,mBACrCiL,EAAIV,OAAOC,eACXU,EAAIX,OAAOY,OACXC,EAAI,CAACF,EAAE,MAAOA,EAAE,OAChBtH,EAAI9D,EAAEb,OACR,SAASoM,EAAEvL,EAAGsK,EAAGjK,GACf,OAAO,SAAU0J,EAAG1K,GAClBiL,IAAMjL,EAAI0K,EAAGA,EAAI9J,GACjB,IAAK,IAAI9B,EAAI,EAAGA,EAAI6B,EAAEb,OAAQhB,IAAKkB,EAAIW,EAAE7B,GAAGqN,MAAMzB,EAAG1J,EAAI,CAAChB,GAAK,IAC/D,OAAOgB,EAAIhB,EAAI0K,CACjB,CACF,CACA,SAAS0B,EAAExL,EAAGD,EAAGsK,EAAGjK,GAClB,GAAI,mBAAqBJ,IAAMI,QAAK,IAAWJ,GAAI,MAAM,IAAIK,UAAUN,EAAI,UAAYsK,GAAK,MAAQ,eAAiBjK,EAAI,GAAK,kBAC9H,OAAOJ,CACT,CACA,SAASyL,EAASzL,EAAGD,EAAGsK,EAAGjK,EAAG0J,EAAG1K,EAAGwL,EAAG3M,EAAG4M,EAAGC,EAAGC,GAC9C,SAASC,EAAEhL,GACT,IAAK+K,EAAE/K,GAAI,MAAM,IAAIK,UAAU,sDACjC,CACA,IAAI8K,EAAI,GAAGlM,OAAOc,EAAE,IAClB8D,EAAI9D,EAAE,GACN2L,GAAKd,EACLe,EAAI,IAAM7B,EACV8B,EAAI,IAAM9B,EACV+B,EAAI,IAAM/B,EACVgC,EAAI,IAAMhC,EACZ,SAASiC,EAAEhM,EAAGsK,EAAGjK,GACf,OAAO,SAAU0J,EAAG1K,GAClB,OAAOiL,IAAMjL,EAAI0K,EAAGA,EAAI9J,GAAII,GAAKA,EAAE0J,GAAIkC,EAAEjM,GAAGI,KAAK2J,EAAG1K,EACtD,CACF,CACA,IAAKsM,EAAG,CACN,IAAIM,EAAI,CAAC,EACPpM,EAAI,GACJqM,EAAIL,EAAI,MAAQC,GAAKF,EAAI,MAAQ,QACnC,GAAId,GAAKC,GAAKa,EAAIK,EAAI,CACpB7N,IAAKmM,GAAgB,WACnB,OAAOzG,EAAEjF,KACX,GAAGwB,EAAG,OACN5B,IAAK,SAAawB,GAChBD,EAAE,GAAGnB,KAAMoB,EACb,GACEgM,EAAEC,GAAKpI,EAAGiH,GAAKR,EAAgB0B,EAAEC,GAAI7L,EAAG0L,EAAI,GAAKG,IAAMnB,IAAMkB,EAAIxB,OAAO0B,yBAAyBlM,EAAGI,KAAM0K,IAAMD,EAAG,CACrH,IAAKrB,EAAI6B,GAAGpN,GAAGmC,KAAO,IAAMoJ,EAAIM,GAAI,MAAMhD,MAAM,+CAAiDkF,EAAEC,GAAGE,KAAO,0BAC7Gd,GAAGpN,GAAGmC,GAAK0J,EAAI,EAAI,EAAIA,CACzB,CACF,CACA,IAAK,IAAIsC,EAAIpM,EAAGqM,EAAIlB,EAAEjM,OAAS,EAAGmN,GAAK,EAAGA,GAAKhC,EAAI,EAAI,EAAG,CACxD,IAAIiC,EAAId,EAAEL,EAAEkB,GAAI,cAAe,MAAM,GACnCE,EAAIlC,EAAIc,EAAEkB,EAAI,QAAK,EACnBG,EAAI,CAAC,EACLC,EAAI,CACFC,KAAM,CAAC,QAAS,WAAY,SAAU,SAAU,SAAU,SAAS5C,GACnEqC,KAAM/L,EACN6K,SAAU/M,EACVyO,eAAgB,SAAU3M,EAAGD,GAC3B,GAAIC,EAAE6D,EAAG,MAAMiD,MAAM,kEACrB0E,EAAEzL,EAAG,iBAAkB,MAAM,GAAKX,EAAExB,KAAKmC,EAC3C,EAAE6M,KAAK,KAAMJ,IAEjB,GAAId,EAAGlC,EAAI8C,EAAEnM,KAAKoM,EAAGH,EAAGK,GAAID,EAAE3I,EAAI,EAAG2H,EAAEhC,EAAG,mBAAoB,YAAc4C,EAAI5C,QAAQ,GAAIiD,EAAU,OAAIxO,EAAGwO,EAAW,QAAI5B,EAAGrB,EAAIiD,EAAEI,OAAS,CAC5I7C,IAAKa,EAAIE,EAAE6B,OAAS,SAAU5M,GAC5B,OAAOI,KAAKJ,CACd,GACC6L,IAAMrC,EAAErL,IAAM0M,EAAIiB,EAAI,SAAU9L,GACjC,OAAOgL,EAAEhL,GAAIgM,EAAEzN,KACjB,EAAIwN,EAAE,MAAO,EAAGf,GAAK,SAAUhL,GAC7B,OAAOA,EAAEI,EACX,GAAI0L,GAAKF,IAAMpC,EAAEhL,IAAMqM,EAAIkB,EAAE,MAAO,EAAGf,GAAK,SAAUhL,EAAGD,GACvDC,EAAEI,GAAKL,CACT,GAAIqM,EAAIE,EAAEnM,KAAKoM,EAAGZ,EAAI,CACpBxN,IAAK6N,EAAE7N,IACPK,IAAKwN,EAAExN,KACLwN,EAAEC,GAAIQ,GAAID,EAAE3I,EAAI,EAAG8H,GACrB,GAAI,WAAY,OAAQS,IAAMA,GAAI5C,EAAIgC,EAAEY,EAAEjO,IAAK,mBAAqB6N,EAAE7N,IAAMqL,IAAKA,EAAIgC,EAAEY,EAAE5N,IAAK,mBAAqBwN,EAAExN,IAAMgL,IAAKA,EAAIgC,EAAEY,EAAEU,KAAM,mBAAqBlN,EAAEmN,QAAQvD,QAAQ,QAAI,IAAW4C,EAAG,MAAM,IAAI/L,UAAU,iGACtNmL,EAAEY,GAAItB,EAAI,QAAU,UAAY,cAAe,YAAcA,EAAIlL,EAAEmN,QAAQX,GAAKJ,EAAEC,GAAKG,EAChG,CACA,OAAOtC,EAAI,GAAKc,EAAEhN,KAAK0N,EAAE1L,EAAG3B,EAAG,GAAIqN,EAAElM,EAAGnB,EAAG,IAAK6M,GAAKY,IAAMb,EAAIc,EAAIf,EAAEoC,QAAQ,EAAG,EAAGjB,EAAE,MAAO9N,GAAI8N,EAAE,MAAO9N,IAAM2M,EAAEhN,KAAKkO,EAAIE,EAAEC,GAAKT,EAAErL,KAAKyM,KAAKZ,EAAEC,KAAOf,EAAElL,EAAGI,EAAG4L,IAAKI,CACrK,CACA,SAASV,EAAE1L,GACT,OAAOkL,EAAElL,EAAGgL,EAAG,CACbN,cAAc,EACduC,YAAY,EACZ1O,MAAOL,GAEX,CACA,YAAO,IAAWkB,IAAMlB,EAAIkB,EAAE4L,IAAK9M,EAAIiN,EAAE,MAAQjN,EAAI,KAAOA,GAAI2M,EAAI,GAAIC,EAAI,SAAW9K,GACrFA,GAAK6K,EAAEjN,KAAK0N,EAAEtL,GAChB,EAAG+K,EAAI,SAAWhL,EAAGK,GACnB,IAAK,IAAIhB,EAAI,EAAGA,EAAIiL,EAAEnL,OAAQE,IAAK,CACjC,IAAIlB,EAAImM,EAAEjL,GACRoK,EAAItL,EAAE,GACN4M,EAAI,EAAItB,EACV,IAAK,EAAIA,IAAMzJ,IAAM+K,GAAK1K,EAAG,CAC3B,IAAI2K,EAAI7M,EAAE,GACR8M,IAAM9M,EAAE,GACRgN,EAAI,GAAK1B,EACXiC,EAAS1L,EAAIC,EAAIA,EAAEkN,UAAWhP,EAAGgN,EAAGF,EAAI,IAAMD,GAAI,EAAAjL,EAAA,GAAciL,GAAID,EAAGA,EAAI,EAAI,GAAK/K,EAAI9B,EAAIA,GAAK,GAAK2M,EAAIA,GAAK,GAAIC,IAAK9K,EAAGiL,EAAG5K,EAAGL,GAAKiL,EAAI,SAAUjL,GAClJ,OAAO,EAAAoN,EAAA,GAAWpN,KAAOC,CAC3B,EAAI8J,EACN,CACF,CACF,EAAGiB,EAAE,EAAG,GAAIA,EAAE,EAAG,GAAIA,EAAE,EAAG,GAAIA,EAAE,EAAG,GAAID,EAAEF,GAAIE,EAAE7M,GAAIuL,EAAIqB,EAAGhH,GAAK6H,EAAE1L,GAAI,CACnEA,EAAGwJ,EACH,KAAIA,GACF,IAAIa,EAAI,GACR,OAAOxG,GAAK,CAAC6H,EAAE1L,EAAIyL,EAASzL,EAAG,CAACD,GAAIK,EAAGJ,EAAEmM,KAAM,EAAG9B,IAAKiB,EAAEjB,EAAG,GAC9D,EAEJ,C,gDCzHe,SAASnI,EAA4B7D,EAAK+O,IACvD,OAA0B/O,EAAK+O,GAC/BA,EAAWC,IAAIhP,EACjB,C,gDCHe,SAAS0E,EAAoB9E,EAAGmC,EAAGlC,GAChD,OAAOA,GAAE,OAAiBD,EAAGmC,GAC/B,C,gDCFe,SAASkN,EAAuBrP,EAAGC,EAAGkC,GACnD,OAAOnC,EAAEO,KAAI,OAAiBP,EAAGC,GAAIkC,GAAIA,CAC3C,C,WCDAvC,EAAOY,QAAU,SAAUW,GACzB,OAAOA,EAAE,EACX,C,gDCHe,SAAS6K,EAAYjK,GAClC,GAAIwK,OAAOxK,KAAOA,EAAG,MAAMK,UAAU,qDAAuD,OAASL,GAAI,OAAQA,GAAK,SACtH,OAAOA,CACT,C,iBCJe,SAASuN,EAAQzD,GAG9B,OAAOyD,EAAU,mBAAqBtN,QAAU,iBAAmBA,OAAOuN,SAAW,SAAU1D,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqB7J,QAAU6J,EAAE9H,cAAgB/B,QAAU6J,IAAM7J,OAAOiN,UAAY,gBAAkBpD,CACpH,EAAGyD,EAAQzD,EACb,C","sources":["webpack:///./src/chat-agent/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./src/chat-agent/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { createSSEStream, type Options } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatAgentProps {\n agentId?: string;\n robotId?: string;\n conversationId?: string;\n alwaysUseNewConversation?: boolean;\n}\n\nexport interface Message extends BaseMessage {\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface BaseMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface MessageChunk {\n delta: BaseMessage;\n conversationId?: string;\n key: number;\n partial?: boolean;\n}\n\nexport interface LowLevelMessageChunk {\n choices: LowLevelChoice[];\n}\n\nexport interface LowLevelChoice {\n delta: {\n role: \"assistant\";\n content?: string;\n };\n}\n\nexport const ChatAgentComponent = forwardRef(LegacyChatAgentComponent);\n\n/**\n * 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。\n * @category ai\n */\nexport\n@defineElement(\"ai.chat-agent\", {\n styleTexts: [styleText],\n})\nclass ChatAgent extends ReactNextElement implements ChatAgentProps {\n /**\n * 智能体 ID\n */\n @property()\n accessor agentId: string | undefined;\n\n /**\n * 机器人 ID\n */\n @property()\n accessor robotId: string | undefined;\n\n /**\n * 会话 ID,用于延续历史会话\n */\n @property()\n accessor conversationId: string | undefined;\n\n /**\n * 是否每次请求都使用新会话,设为 true 时每次发消息不会延续历史会话\n */\n @property()\n accessor alwaysUseNewConversation: boolean | undefined;\n\n /**\n * 发送消息到默认的聊天 API\n * @param content 要发送的消息内容\n */\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n /**\n * 发送聊天请求到指定的 URL\n * @param leadingMessages 消息内容,可以是字符串或消息对象数组\n * @param url 请求的目标 URL\n * @param options SSE 流请求选项\n */\n @method()\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.sendRequest(leadingMessages, url, options);\n }\n\n /**\n * 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。\n * @param leadingMessages 消息内容,可以是字符串或消息对象数组\n * @param url 请求的目标 URL\n * @param options SSE 流请求选项\n */\n @method()\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.lowLevelSendRequest(\n leadingMessages,\n url,\n options\n );\n }\n\n /**\n * 开启新会话,清空当前消息列表并重置会话状态\n */\n @method()\n newConversation() {\n this.#ref.current?.newConversation();\n }\n\n // @event({ type: \"messageChunk.push\" })\n // accessor #messageChunkPushEvent!: EventEmitter<MessageChunk>;\n\n // #handleMessageChunkPush = (msg: MessageChunk) => {\n // this.#messageChunkPushEvent.emit(msg);\n // };\n\n /**\n * 消息列表更新时触发\n * @detail 当前全部消息列表\n */\n @event({ type: \"messages.update\" })\n accessor #messagesUpdate!: EventEmitter<Message[]>;\n\n #handleMessagesUpdate = (messages: Message[]) => {\n this.#messagesUpdate.emit(messages);\n };\n\n /**\n * 忙碌状态变化时触发,true 表示正在等待 AI 响应,false 表示响应完成\n * @detail 当前忙碌状态\n */\n @event({ type: \"busy.change\" })\n accessor #busyChangeEvent!: EventEmitter<boolean>;\n\n #handleBusyChange = (busy: boolean) => {\n this.#busyChangeEvent.emit(busy);\n };\n\n /**\n * 会话 ID 变化时触发\n * @detail 新的会话 ID,开启新会话时为 null\n */\n @event({ type: \"conversationId.change\" })\n accessor #conversationIdChangeEvent!: EventEmitter<string | null>;\n\n #handleConversationIdChange = (conversationId: string | null) => {\n this.#conversationIdChangeEvent.emit(conversationId);\n };\n\n #ref = createRef<ChatAgentRef>();\n\n render() {\n return (\n <ChatAgentComponent\n ref={this.#ref}\n agentId={this.agentId}\n robotId={this.robotId}\n conversationId={this.conversationId}\n alwaysUseNewConversation={this.alwaysUseNewConversation}\n // onMessageChunkPush={this.#handleMessageChunkPush}\n onMessagesUpdate={this.#handleMessagesUpdate}\n onBusyChange={this.#handleBusyChange}\n onConversationIdChange={this.#handleConversationIdChange}\n />\n );\n }\n}\n\nexport interface ChatAgentComponentProps extends ChatAgentProps {\n onMessageChunkPush?(msg: MessageChunk): void;\n onMessagesUpdate?(messages: Message[]): void;\n onBusyChange?(busy: boolean): void;\n onConversationIdChange?(conversationId: string | null): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | null>;\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n newConversation(): void;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n robotId,\n conversationId: propConversationId,\n alwaysUseNewConversation,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n const chatIdRef = useRef(1);\n const busyRef = useRef(false);\n const [conversationId, setConversationId] = useState<string | null>(null);\n\n useEffect(() => {\n setConversationId(propConversationId ?? null);\n }, [propConversationId]);\n\n useEffect(() => {\n didMountRef.current && onConversationIdChange?.(conversationId);\n }, [conversationId, onConversationIdChange]);\n\n const counterRef = useRef(0);\n const getMessageChunkKey = useCallback(() => counterRef.current++, []);\n\n const [fullMessages, setFullMessages] = useState<Message[]>([]);\n\n const pushPartialMessage = useCallback(\n (chunk: MessageChunk) => {\n onMessageChunkPush?.(chunk);\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last && last.key === chunk.key) {\n last.content += chunk.delta.content;\n return [...prev];\n }\n if (last?.partial) {\n last.partial = false;\n }\n return [\n ...prev,\n { ...chunk.delta, key: chunk.key, partial: chunk.partial },\n ];\n });\n },\n [onMessageChunkPush]\n );\n\n const legacySendRequest = useCallback(\n async (\n isLowLevel: boolean,\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk | LowLevelMessageChunk>\n ) => {\n // Use ref instead of state to handle sync sequential calls.\n if (busyRef.current) {\n return null;\n }\n if (alwaysUseNewConversation || isLowLevel) {\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n }\n const thisChatId = chatIdRef.current;\n let newConversationError: Error | undefined;\n const checkNewConversation = async () => {\n if (thisChatId !== chatIdRef.current) {\n // istanbul ignore else: should never happen\n if (!newConversationError) {\n newConversationError = new Error(\"New conversation started\");\n }\n throw newConversationError;\n }\n };\n\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId =\n alwaysUseNewConversation || isLowLevel ? null : conversationId;\n\n onBusyChange?.((busyRef.current = true));\n\n try {\n if (Array.isArray(leadingMessages)) {\n for (const msg of leadingMessages) {\n const isAssistant = msg.role === \"assistant\";\n if (isAssistant || msg.role === \"user\") {\n pushPartialMessage?.({\n key: isAssistant ? assistantKey : userKey,\n delta: {\n role: msg.role,\n content: msg.content,\n },\n });\n }\n }\n } else {\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: leadingMessages,\n role: \"user\",\n },\n });\n }\n const request = createSSEStream<MessageChunk | LowLevelMessageChunk>(\n new URL(url, `${location.origin}${getBasePath()}`).toString(),\n options\n );\n\n // Put a placeholder assistant message to indicate that the assistant\n // is processing if the request takes longer than one second.\n await Promise.race([\n request,\n new Promise((resolve) => setTimeout(resolve, 1000)),\n ]);\n\n await checkNewConversation();\n\n pushPartialMessage?.({\n key: assistantKey,\n delta: {\n content: \"\",\n role: \"assistant\",\n },\n partial: true,\n });\n\n const stream = await request;\n for await (const value of stream) {\n // istanbul ignore next\n // if (process.env.NODE_ENV === \"development\") {\n // // eslint-disable-next-line no-console\n // console.log(\"stream iterated:\", value);\n // }\n\n await checkNewConversation();\n\n if (isLowLevel) {\n const delta = (value as LowLevelMessageChunk).choices?.[0]?.delta;\n if (delta?.content) {\n pushPartialMessage({\n delta: {\n role: delta.role,\n content: delta.content,\n },\n key: assistantKey,\n partial: true,\n });\n }\n } else {\n pushPartialMessage?.({\n delta: (value as MessageChunk).delta,\n key: assistantKey,\n partial: true,\n });\n if (\n !alwaysUseNewConversation &&\n (value as MessageChunk).conversationId &&\n !currentConversationId\n ) {\n setConversationId(\n (currentConversationId = (value as MessageChunk)\n .conversationId!)\n );\n }\n }\n }\n\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last?.partial) {\n last.partial = false;\n }\n return [...prev];\n });\n } catch (error) {\n if (error && error === newConversationError) {\n throw error;\n }\n\n // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n let keep = prev;\n if (last?.key === assistantKey) {\n if (last.content) {\n last.partial = false;\n last.failed = true;\n } else {\n // Ignore the empty assistant message.\n keep = prev.slice(0, -1);\n }\n }\n return [\n ...keep,\n {\n role: \"assistant\",\n content: \"系统错误\",\n key: getMessageChunkKey(),\n failed: true,\n },\n ];\n });\n }\n\n await checkNewConversation();\n\n onBusyChange?.((busyRef.current = false));\n\n return currentConversationId;\n },\n [\n conversationId,\n alwaysUseNewConversation,\n getMessageChunkKey,\n onBusyChange,\n pushPartialMessage,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n lowLevelSendRequest: (...args) => legacySendRequest(true, ...args),\n sendRequest: (...args) => legacySendRequest(false, ...args),\n postMessage(content: string) {\n return legacySendRequest(\n false,\n content,\n \"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions\",\n {\n method: \"POST\",\n body: JSON.stringify({\n agentId,\n robotId,\n input: content,\n stream: true,\n conversationId:\n alwaysUseNewConversation || conversationId === null\n ? undefined\n : conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n newConversation() {\n chatIdRef.current++;\n setConversationId(null);\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n if (busyRef.current) {\n onBusyChange?.((busyRef.current = false));\n }\n },\n }),\n [\n legacySendRequest,\n agentId,\n robotId,\n alwaysUseNewConversation,\n conversationId,\n onBusyChange,\n ]\n );\n\n useEffect(() => {\n didMountRef.current && onMessagesUpdate?.(fullMessages);\n }, [fullMessages, onMessagesUpdate]);\n\n useEffect(() => {\n didMountRef.current = true;\n }, []);\n\n return null;\n}\n","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","_classPrivateFieldGet2","s","a","get","_classPrivateFieldInitSpec","obj","privateMap","value","set","exports","cssWithMappingToString","list","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","toPropertyKey","t","e","Symbol","toPrimitive","call","r","TypeError","String","defineElement","property","event","method","createDecorators","ChatAgentComponent","forwardRef","LegacyChatAgentComponent","_ChatAgent","_A","WeakMap","_B","_C","_D","_E","_ChatAgent_brand","WeakSet","_handleMessagesUpdate","_F","_handleBusyChange","_G","_handleConversationIdChange","_ref","ChatAgent","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_initProto","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_conversationId","_init_extra_conversationId","_init_alwaysUseNewConversation","_init_extra_alwaysUseNewConversation","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_classPrivateGetter","_get_messagesUpdate","emit","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","conversationId","_get_conversationIdChangeEvent","createRef","agentId","_classPrivateFieldGet","v","_classPrivateFieldSet","robotId","alwaysUseNewConversation","postMessage","current","sendRequest","leadingMessages","url","options","_classPrivateFieldGet3","lowLevelSendRequest","_classPrivateFieldGet4","newConversation","_classPrivateFieldGet5","render","React","ref","onMessagesUpdate","onBusyChange","onConversationIdChange","_ref2","propConversationId","onMessageChunkPush","didMountRef","useRef","chatIdRef","busyRef","setConversationId","useState","useEffect","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","key","delta","partial","legacySendRequest","async","isLowLevel","thisChatId","newConversationError","checkNewConversation","Error","userKey","assistantKey","currentConversationId","Array","isArray","msg","isAssistant","role","request","createSSEStream","URL","location","origin","getBasePath","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","useImperativeHandle","_len","args","_key","_len2","_key2","body","JSON","stringify","input","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","c","_initClass","_applyDecs","styleTexts","styleText","type","o","_","has","_checkInRHS","_checkPrivateRedeclaration","privateCollection","_assertClassBrand","n","setFunctionName","description","Object","defineProperty","configurable","applyDecs2311","u","f","l","p","d","metadata","m","h","create","y","g","apply","b","applyDec","w","D","S","j","E","I","P","F","getOwnPropertyDescriptor","name","N","O","z","A","H","K","kind","addInitializer","bind","access","init","unshift","splice","enumerable","prototype","checkInRHS","privateSet","add","_classPrivateFieldSet2","_typeof","iterator"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/chat-view.20131fe6.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n ChatViewContext,\n QuickAnswerConfig,\n snippet,\n} from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput, SearchInputRef } from \"./components/SearchInput.js\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\nimport \"./index.css\";\nimport { commandBrickConf } from \"./ChatViewContext\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport { ChatBody } from \"./ChatService.js\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\ntype InputToolbarBrick = { useBrick: UseBrickConf };\n\nexport interface ChatViewRef extends SearchInputRef {\n setConfig(config: Record<string, unknown> | undefined): void;\n setFormData(formData: Record<string, unknown> | undefined): void;\n}\n\nexport interface ChatViewProps {\n agentId: string;\n robotId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n showShare?: boolean;\n useSpiltWord?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n snippetList?: snippet[];\n enterInterval?: number;\n debug?: boolean;\n commandBricks?: commandBrickConf;\n answerLanguage?: string;\n inputToolbarBrick?: InputToolbarBrick;\n showToolCalls?: boolean;\n onSessionIdChange: (sessionId: string | undefined) => void;\n onRobotIdChange: (robotId: string | undefined) => void;\n onQaFinish: (sessionId: string | undefined) => void;\n}\n\nexport function LegacyChatViewComponent(\n {\n agentId,\n robotId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n showShare = true,\n quickAnswerConfig,\n snippetList,\n enterInterval,\n debug = false,\n useSpiltWord = false,\n commandBricks,\n answerLanguage,\n inputToolbarBrick,\n showToolCalls,\n onSessionIdChange,\n onRobotIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<ChatViewRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n setConfig,\n setFormData,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n showToolCalls,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n onRobotIdChange(\n sessionList.find((item) => item.conversationId === activeSessionId)\n ?.robotId\n );\n }\n }, [activeSessionId, onRobotIdChange, onSessionIdChange, sessionList]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\n\n const inputRef = useRef<SearchInputRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n handleInsertQuestion(value) {\n return inputRef.current?.handleInsertQuestion(value);\n },\n sendMsg(msg) {\n return inputRef.current?.sendMsg(msg);\n },\n setConfig,\n setFormData,\n }),\n [setConfig, setFormData]\n );\n\n return (\n <ChatViewContext.Provider\n value={{\n sessionEnd,\n sessionLoading,\n activeSessionId,\n sessionList,\n msgEnd,\n msgLoading,\n msgList,\n chatting,\n loading,\n searchStr,\n showLike,\n showShare,\n readonly,\n quickAnswerConfig,\n snippetList,\n commandBricks,\n showToolCalls,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n }}\n >\n <div className=\"chat-view-container\">\n {showSessionList && (\n <div className=\"chat-view-selector\">\n <SessionList />\n </div>\n )}\n <div className=\"chat-view-content\">\n <MessageList showAvatar={showAvatar} />\n {!readonly && (\n <SearchInput inputToolbarBrick={inputToolbarBrick} ref={inputRef} />\n )}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n\nexport const ChatViewComponent = forwardRef(LegacyChatViewComponent);\n\n/**\n * AI 对话终端\n */\nexport\n@defineElement(\"ai.chat-view\", {\n // shadow 模式下,会导致 useBrick 样式丢失\n // 如:commandBricks 配置 cmdb-instances.instance-list\n shadowOptions: false,\n})\nclass ChatView extends ReactNextElement {\n @property()\n accessor sessionId: string | undefined;\n\n /**\n * 智能体id\n */\n @property()\n accessor agentId!: string;\n\n /**\n * 机器人id\n */\n @property()\n accessor robotId!: string;\n\n /**\n * 指定智能体回答代码时所使用的语言\n */\n @property()\n accessor answerLanguage: string | undefined;\n\n /**\n * 是否为debug模式\n */\n @property({\n type: Boolean,\n })\n accessor debug: boolean | undefined;\n\n /**\n * 是否展示对话用户头像\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showAvatar: boolean | undefined;\n\n /**\n * 是否展示历史会话信息\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showSessionList: boolean | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否展示点赞能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showLike: boolean | undefined;\n\n /**\n * 是否展示分享能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showShare: boolean | undefined;\n\n /**\n * 是否开启前端分词\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor useSpiltWord: boolean | undefined;\n\n /**\n * 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出\n *\n * @default 50\n */\n @property({\n type: Number,\n })\n accessor enterInterval: number | undefined;\n\n /**\n * 快速入口列表\n */\n @property({\n attribute: false,\n })\n accessor quickAnswerConfig: QuickAnswerConfig | undefined;\n\n /**\n * 常用语列表\n */\n @property({\n attribute: false,\n })\n accessor snippetList: snippet[] | undefined;\n\n /**\n * 自定义语言配置\n */\n @property({\n attribute: false,\n })\n accessor commandBricks: commandBrickConf | undefined;\n\n /**\n * 输入框工具栏 useBrick\n */\n @property({\n attribute: false,\n })\n accessor inputToolbarBrick: InputToolbarBrick | undefined;\n\n /**\n * 是否显示工具调用过程\n */\n @property({ type: Boolean })\n accessor showToolCalls: boolean | undefined;\n\n /** 设置接口 config */\n @method()\n setConfig(config: Record<string, unknown> | undefined): void {\n this.#ref.current?.setConfig(config);\n }\n\n /** 设置接口 formData */\n @method()\n setFormData(formData: Record<string, unknown> | undefined): void {\n this.#ref.current?.setFormData(formData);\n }\n\n #ref = React.createRef<ChatViewRef>();\n\n @event({ type: \"sessionId.change\" })\n accessor #sessionIdChange!: EventEmitter<string | undefined>;\n\n #handleSessionIdChange = (activeSessionId: string | undefined) => {\n this.#sessionIdChange.emit(activeSessionId);\n };\n\n @event({ type: \"robotId.change\" })\n accessor #robotIdChange!: EventEmitter<string | undefined>;\n\n #handleRobotIdChange = (robotId: string | undefined) => {\n this.#robotIdChange.emit(robotId);\n };\n\n @event({ type: \"qa.finish\" })\n accessor #qaFinish!: EventEmitter<string | undefined>;\n\n #handleQaFinish = (activeSessionId: string | undefined) => {\n this.#qaFinish.emit(activeSessionId);\n };\n\n /**\n *\n * @description 调用方法进行提问\n */\n @method()\n insertQuestion(args: { value: string }): void {\n const { value } = args;\n if (!value) return;\n this.#ref.current?.handleInsertQuestion(value);\n }\n\n /**\n * @description 外部提问\n */\n @method()\n sendMsg(msg: string | ChatBody): void {\n this.#ref.current?.sendMsg(msg);\n }\n\n render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\n robotId={this.robotId}\n debug={this.debug}\n sessionId={this.sessionId}\n readonly={this.readonly}\n showAvatar={this.showAvatar}\n showSessionList={this.showSessionList}\n showLike={this.showLike}\n showShare={this.showShare}\n useSpiltWord={this.useSpiltWord}\n quickAnswerConfig={this.quickAnswerConfig}\n snippetList={this.snippetList}\n enterInterval={this.enterInterval}\n commandBricks={this.commandBricks}\n answerLanguage={this.answerLanguage}\n inputToolbarBrick={this.inputToolbarBrick}\n showToolCalls={this.showToolCalls}\n onSessionIdChange={this.#handleSessionIdChange}\n onRobotIdChange={this.#handleRobotIdChange}\n onQaFinish={this.#handleQaFinish}\n ref={this.#ref}\n />\n );\n }\n}\n"],"names":["defineElement","property","method","event","createDecorators","LegacyChatViewComponent","_ref","ref","agentId","robotId","sessionId","showAvatar","showSessionList","readonly","showLike","showShare","quickAnswerConfig","snippetList","enterInterval","debug","useSpiltWord","commandBricks","answerLanguage","inputToolbarBrick","showToolCalls","onSessionIdChange","onRobotIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","toolNames","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","setConfig","setFormData","useChatViewInfo","useEffect","_sessionList$find","find","item","conversationId","inputRef","useRef","useImperativeHandle","handleInsertQuestion","value","_inputRef$current","current","sendMsg","msg","_inputRef$current2","React","ChatViewContext","Provider","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref2","_R","_ChatView_brand","WeakSet","_handleSessionIdChange","_S","_handleRobotIdChange","_T","_handleQaFinish","ChatView","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_answerLanguage","_init_extra_answerLanguage","_init_debug","_init_extra_debug","_init_showAvatar","_init_extra_showAvatar","_init_showSessionList","_init_extra_showSessionList","_init_readonly","_init_extra_readonly","_init_showLike","_init_extra_showLike","_init_showShare","_init_extra_showShare","_init_useSpiltWord","_init_extra_useSpiltWord","_init_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","_init_snippetList","_init_extra_snippetList","_init_commandBricks","_init_extra_commandBricks","_init_inputToolbarBrick","_init_extra_inputToolbarBrick","_init_showToolCalls","_init_extra_showToolCalls","_init_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_robotIdChange","_init_extra_robotIdChange","_get_robotIdChange","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","config","_classPrivateFieldGet2","formData","_classPrivateFieldGet3","insertQuestion","args","_classPrivateFieldGet4","_classPrivateFieldGet5","render","_ChatView2","e","_set_sessionIdChange","_set_robotIdChange","_set_qaFinish","c","_initClass","_applyDecs","shadowOptions","type","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/chat-view.20131fe6.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n ChatViewContext,\n QuickAnswerConfig,\n snippet,\n} from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput, SearchInputRef } from \"./components/SearchInput.js\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\nimport \"./index.css\";\nimport { commandBrickConf } from \"./ChatViewContext\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport { ChatBody } from \"./ChatService.js\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\ntype InputToolbarBrick = { useBrick: UseBrickConf };\n\nexport interface ChatViewRef extends SearchInputRef {\n setConfig(config: Record<string, unknown> | undefined): void;\n setFormData(formData: Record<string, unknown> | undefined): void;\n}\n\nexport interface ChatViewProps {\n agentId: string;\n robotId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n showShare?: boolean;\n useSpiltWord?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n snippetList?: snippet[];\n enterInterval?: number;\n debug?: boolean;\n commandBricks?: commandBrickConf;\n answerLanguage?: string;\n inputToolbarBrick?: InputToolbarBrick;\n showToolCalls?: boolean;\n onSessionIdChange: (sessionId: string | undefined) => void;\n onRobotIdChange: (robotId: string | undefined) => void;\n onQaFinish: (sessionId: string | undefined) => void;\n}\n\nexport function LegacyChatViewComponent(\n {\n agentId,\n robotId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n showShare = true,\n quickAnswerConfig,\n snippetList,\n enterInterval,\n debug = false,\n useSpiltWord = false,\n commandBricks,\n answerLanguage,\n inputToolbarBrick,\n showToolCalls,\n onSessionIdChange,\n onRobotIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<ChatViewRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n setConfig,\n setFormData,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n showToolCalls,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n onRobotIdChange(\n sessionList.find((item) => item.conversationId === activeSessionId)\n ?.robotId\n );\n }\n }, [activeSessionId, onRobotIdChange, onSessionIdChange, sessionList]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\n\n const inputRef = useRef<SearchInputRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n handleInsertQuestion(value) {\n return inputRef.current?.handleInsertQuestion(value);\n },\n sendMsg(msg) {\n return inputRef.current?.sendMsg(msg);\n },\n setConfig,\n setFormData,\n }),\n [setConfig, setFormData]\n );\n\n return (\n <ChatViewContext.Provider\n value={{\n sessionEnd,\n sessionLoading,\n activeSessionId,\n sessionList,\n msgEnd,\n msgLoading,\n msgList,\n chatting,\n loading,\n searchStr,\n showLike,\n showShare,\n readonly,\n quickAnswerConfig,\n snippetList,\n commandBricks,\n showToolCalls,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n }}\n >\n <div className=\"chat-view-container\">\n {showSessionList && (\n <div className=\"chat-view-selector\">\n <SessionList />\n </div>\n )}\n <div className=\"chat-view-content\">\n <MessageList showAvatar={showAvatar} />\n {!readonly && (\n <SearchInput inputToolbarBrick={inputToolbarBrick} ref={inputRef} />\n )}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n\nexport const ChatViewComponent = forwardRef(LegacyChatViewComponent);\n\n/**\n * AI 对话终端\n * @category ai\n */\nexport\n@defineElement(\"ai.chat-view\", {\n // shadow 模式下,会导致 useBrick 样式丢失\n // 如:commandBricks 配置 cmdb-instances.instance-list\n shadowOptions: false,\n})\nclass ChatView extends ReactNextElement {\n /**\n * 当前会话 ID\n */\n @property()\n accessor sessionId: string | undefined;\n\n /**\n * 智能体id\n */\n @property()\n accessor agentId!: string;\n\n /**\n * 机器人id\n */\n @property()\n accessor robotId!: string;\n\n /**\n * 指定智能体回答代码时所使用的语言\n */\n @property()\n accessor answerLanguage: string | undefined;\n\n /**\n * 是否为debug模式\n */\n @property({\n type: Boolean,\n })\n accessor debug: boolean | undefined;\n\n /**\n * 是否展示对话用户头像\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showAvatar: boolean | undefined;\n\n /**\n * 是否展示历史会话信息\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showSessionList: boolean | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否展示点赞能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showLike: boolean | undefined;\n\n /**\n * 是否展示分享能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showShare: boolean | undefined;\n\n /**\n * 是否开启前端分词\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor useSpiltWord: boolean | undefined;\n\n /**\n * 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出\n *\n * @default 50\n */\n @property({\n type: Number,\n })\n accessor enterInterval: number | undefined;\n\n /**\n * 快速入口列表\n */\n @property({\n attribute: false,\n })\n accessor quickAnswerConfig: QuickAnswerConfig | undefined;\n\n /**\n * 常用语列表\n */\n @property({\n attribute: false,\n })\n accessor snippetList: snippet[] | undefined;\n\n /**\n * 自定义语言配置\n */\n @property({\n attribute: false,\n })\n accessor commandBricks: commandBrickConf | undefined;\n\n /**\n * 输入框工具栏 useBrick\n */\n @property({\n attribute: false,\n })\n accessor inputToolbarBrick: InputToolbarBrick | undefined;\n\n /**\n * 是否显示工具调用过程\n */\n @property({ type: Boolean })\n accessor showToolCalls: boolean | undefined;\n\n /** 设置接口 config\n * @param config 传递给接口的 config 参数\n */\n @method()\n setConfig(config: Record<string, unknown> | undefined): void {\n this.#ref.current?.setConfig(config);\n }\n\n /** 设置接口 formData\n * @param formData 传递给接口的 formData 参数\n */\n @method()\n setFormData(formData: Record<string, unknown> | undefined): void {\n this.#ref.current?.setFormData(formData);\n }\n\n #ref = React.createRef<ChatViewRef>();\n\n /**\n * 会话 ID 变化时触发\n * @detail 当前激活的会话 ID\n */\n @event({ type: \"sessionId.change\" })\n accessor #sessionIdChange!: EventEmitter<string | undefined>;\n\n #handleSessionIdChange = (activeSessionId: string | undefined) => {\n this.#sessionIdChange.emit(activeSessionId);\n };\n\n /**\n * 机器人 ID 变化时触发(切换会话时可能切换对应机器人)\n * @detail 当前会话对应的机器人 ID\n */\n @event({ type: \"robotId.change\" })\n accessor #robotIdChange!: EventEmitter<string | undefined>;\n\n #handleRobotIdChange = (robotId: string | undefined) => {\n this.#robotIdChange.emit(robotId);\n };\n\n /**\n * 一次问答完成时触发(chatting 从 true 变为 false 时)\n * @detail 当前激活的会话 ID\n */\n @event({ type: \"qa.finish\" })\n accessor #qaFinish!: EventEmitter<string | undefined>;\n\n #handleQaFinish = (activeSessionId: string | undefined) => {\n this.#qaFinish.emit(activeSessionId);\n };\n\n /**\n * 调用方法进行提问,将内容插入输入框并发送\n * @param args 包含问题内容的对象\n */\n @method()\n insertQuestion(args: { value: string }): void {\n const { value } = args;\n if (!value) return;\n this.#ref.current?.handleInsertQuestion(value);\n }\n\n /**\n * 外部发起提问,直接发送消息不经过输入框交互\n * @param msg 要发送的消息,可以是字符串或结构化消息体\n */\n @method()\n sendMsg(msg: string | ChatBody): void {\n this.#ref.current?.sendMsg(msg);\n }\n\n render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\n robotId={this.robotId}\n debug={this.debug}\n sessionId={this.sessionId}\n readonly={this.readonly}\n showAvatar={this.showAvatar}\n showSessionList={this.showSessionList}\n showLike={this.showLike}\n showShare={this.showShare}\n useSpiltWord={this.useSpiltWord}\n quickAnswerConfig={this.quickAnswerConfig}\n snippetList={this.snippetList}\n enterInterval={this.enterInterval}\n commandBricks={this.commandBricks}\n answerLanguage={this.answerLanguage}\n inputToolbarBrick={this.inputToolbarBrick}\n showToolCalls={this.showToolCalls}\n onSessionIdChange={this.#handleSessionIdChange}\n onRobotIdChange={this.#handleRobotIdChange}\n onQaFinish={this.#handleQaFinish}\n ref={this.#ref}\n />\n );\n }\n}\n"],"names":["defineElement","property","method","event","createDecorators","LegacyChatViewComponent","_ref","ref","agentId","robotId","sessionId","showAvatar","showSessionList","readonly","showLike","showShare","quickAnswerConfig","snippetList","enterInterval","debug","useSpiltWord","commandBricks","answerLanguage","inputToolbarBrick","showToolCalls","onSessionIdChange","onRobotIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","toolNames","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","setConfig","setFormData","useChatViewInfo","useEffect","_sessionList$find","find","item","conversationId","inputRef","useRef","useImperativeHandle","handleInsertQuestion","value","_inputRef$current","current","sendMsg","msg","_inputRef$current2","React","ChatViewContext","Provider","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref2","_R","_ChatView_brand","WeakSet","_handleSessionIdChange","_S","_handleRobotIdChange","_T","_handleQaFinish","ChatView","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_answerLanguage","_init_extra_answerLanguage","_init_debug","_init_extra_debug","_init_showAvatar","_init_extra_showAvatar","_init_showSessionList","_init_extra_showSessionList","_init_readonly","_init_extra_readonly","_init_showLike","_init_extra_showLike","_init_showShare","_init_extra_showShare","_init_useSpiltWord","_init_extra_useSpiltWord","_init_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","_init_snippetList","_init_extra_snippetList","_init_commandBricks","_init_extra_commandBricks","_init_inputToolbarBrick","_init_extra_inputToolbarBrick","_init_showToolCalls","_init_extra_showToolCalls","_init_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_robotIdChange","_init_extra_robotIdChange","_get_robotIdChange","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","config","_classPrivateFieldGet2","formData","_classPrivateFieldGet3","insertQuestion","args","_classPrivateFieldGet4","_classPrivateFieldGet5","render","_ChatView2","e","_set_sessionIdChange","_set_robotIdChange","_set_qaFinish","c","_initClass","_applyDecs","shadowOptions","type","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|