@next-bricks/ai 1.24.0 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bricks.json CHANGED
@@ -20,5 +20,5 @@
20
20
  "eo-input"
21
21
  ]
22
22
  },
23
- "filePath": "bricks/ai/dist/index.46181209.js"
23
+ "filePath": "bricks/ai/dist/index.53a18932.js"
24
24
  }
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[4145],{4145:(e,t,s)=>{s.r(t);var n,i=s(4635),a=s(918),r=s(6902),o=s(5536),h=s(6121),l=s(829),c=s(2740),u=s(8769),d=s.n(u),A=s(4782),g=s(1389),w=s(15),p=s(24),v=s(2442),k=s(3830),I=s(205);let y,m,f,S,L,b,M,W,C,E,B,R,q,N,T,x,U,_,P,Q,F,D,H,O,$,J,Z,j,z,G,K,V,X,Y,ee,te,se,ne,ie,ae,re,oe;s(6477),s(2896),s(3262);const{defineElement:he,property:le,method:ce,event:ue}=(0,A.createDecorators)();function de(e,t){let{agentId:s,robotId:n,sessionId:i,showAvatar:a,showSessionList:r=!0,readonly:o=!1,showLike:h=!0,showShare:l=!0,quickAnswerConfig:c,snippetList:A,enterInterval:g,debug:y=!1,useSpiltWord:m=!1,commandBricks:f,answerLanguage:S,inputToolbarBrick:L,onSessionIdChange:b,onQaFinish:M}=e;const{sessionEnd:W,sessionLoading:C,activeSessionId:E,msgEnd:B,msgLoading:R,msgList:q,sessionList:N,loading:T,chatting:x,searchStr:U,setAgent:_,handleIsLike:P,handleChat:Q,stopChat:F,createSession:D,deleteSession:H,updateSession:O,checkSession:$,setSearchStr:J,querySessionHistory:Z}=(0,v.Fn)({agentId:s,robotId:n,sessionId:i,enterInterval:g,debug:y,answerLanguage:S,useSpiltWord:m});return(0,u.useEffect)((()=>{E&&b(E)}),[E]),(0,u.useEffect)((()=>{!x&&E&&M(E)}),[x]),d().createElement(w.t.Provider,{value:{sessionEnd:W,sessionLoading:C,activeSessionId:E,sessionList:N,msgEnd:B,msgLoading:R,msgList:q,chatting:x,loading:T,searchStr:U,showLike:h,showShare:l,readonly:o,quickAnswerConfig:c,snippetList:A,commandBricks:f,setAgent:_,handleIsLike:P,handleChat:Q,stopChat:F,createSession:D,deleteSession:H,updateSession:O,checkSession:$,setSearchStr:J,querySessionHistory:Z}},d().createElement("div",{className:"chat-view-container"},r&&d().createElement("div",{className:"chat-view-selector"},d().createElement(k.Z,null)),d().createElement("div",{className:"chat-view-content"},d().createElement(p.M,{showAvatar:a}),!o&&d().createElement(I.D,{inputToolbarBrick:L,ref:t}))))}const Ae=(0,u.forwardRef)(de);let ge;var we=new WeakMap,pe=new WeakMap,ve=new WeakMap,ke=new WeakMap,Ie=new WeakMap,ye=new WeakMap,me=new WeakMap,fe=new WeakMap,Se=new WeakMap,Le=new WeakMap,be=new WeakMap,Me=new WeakMap,We=new WeakMap,Ce=new WeakMap,Ee=new WeakMap,Be=new WeakMap,Re=new WeakMap,qe=new WeakMap,Ne=new WeakSet,Te=new WeakMap,xe=new WeakMap,Ue=new WeakMap;class _e extends g.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,Ne),(0,a.A)(this,we,(y(this),f(this))),(0,a.A)(this,pe,(S(this),L(this))),(0,a.A)(this,ve,(b(this),M(this))),(0,a.A)(this,ke,(W(this),C(this))),(0,a.A)(this,Ie,(E(this),B(this))),(0,a.A)(this,ye,(R(this),q(this))),(0,a.A)(this,me,(N(this),T(this))),(0,a.A)(this,fe,(x(this),U(this))),(0,a.A)(this,Se,(_(this),P(this))),(0,a.A)(this,Le,(Q(this),F(this))),(0,a.A)(this,be,(D(this),H(this))),(0,a.A)(this,Me,(O(this),$(this))),(0,a.A)(this,We,(J(this),Z(this))),(0,a.A)(this,Ce,(j(this),z(this))),(0,a.A)(this,Ee,(G(this),K(this))),(0,a.A)(this,Be,(V(this),X(this))),(0,a.A)(this,Re,(Y(this),d().createRef())),(0,a.A)(this,qe,ee(this)),(0,a.A)(this,Te,(ne(this),e=>{(0,o.A)(Ne,this,te).emit(e)})),(0,a.A)(this,xe,ie(this)),(0,a.A)(this,Ue,(oe(this),e=>{(0,o.A)(Ne,this,ae).emit(e)}))}get sessionId(){return(0,l.A)(we,this)}set sessionId(e){(0,h.A)(we,this,e)}get agentId(){return(0,l.A)(pe,this)}set agentId(e){(0,h.A)(pe,this,e)}get robotId(){return(0,l.A)(ve,this)}set robotId(e){(0,h.A)(ve,this,e)}get answerLanguage(){return(0,l.A)(ke,this)}set answerLanguage(e){(0,h.A)(ke,this,e)}get debug(){return(0,l.A)(Ie,this)}set debug(e){(0,h.A)(Ie,this,e)}get showAvatar(){return(0,l.A)(ye,this)}set showAvatar(e){(0,h.A)(ye,this,e)}get showSessionList(){return(0,l.A)(me,this)}set showSessionList(e){(0,h.A)(me,this,e)}get readonly(){return(0,l.A)(fe,this)}set readonly(e){(0,h.A)(fe,this,e)}get showLike(){return(0,l.A)(Se,this)}set showLike(e){(0,h.A)(Se,this,e)}get showShare(){return(0,l.A)(Le,this)}set showShare(e){(0,h.A)(Le,this,e)}get useSpiltWord(){return(0,l.A)(be,this)}set useSpiltWord(e){(0,h.A)(be,this,e)}get enterInterval(){return(0,l.A)(Me,this)}set enterInterval(e){(0,h.A)(Me,this,e)}get quickAnswerConfig(){return(0,l.A)(We,this)}set quickAnswerConfig(e){(0,h.A)(We,this,e)}get snippetList(){return(0,l.A)(Ce,this)}set snippetList(e){(0,h.A)(Ce,this,e)}get commandBricks(){return(0,l.A)(Ee,this)}set commandBricks(e){(0,h.A)(Ee,this,e)}get inputToolbarBrick(){return(0,l.A)(Be,this)}set inputToolbarBrick(e){(0,h.A)(Be,this,e)}insertQuestion(e){var t;const{value:s}=e;s&&(null===(t=(0,l.A)(Re,this).current)||void 0===t||t.handleInsertQuestion(s))}sendMsg(e){var t;null===(t=(0,l.A)(Re,this).current)||void 0===t||t.sendMsg(e)}render(){return d().createElement(Ae,{agentId:this.agentId,robotId:this.robotId,debug:this.debug,sessionId:this.sessionId,readonly:this.readonly,showAvatar:this.showAvatar,showSessionList:this.showSessionList,showLike:this.showLike,showShare:this.showShare,useSpiltWord:this.useSpiltWord,quickAnswerConfig:this.quickAnswerConfig,snippetList:this.snippetList,enterInterval:this.enterInterval,commandBricks:this.commandBricks,answerLanguage:this.answerLanguage,inputToolbarBrick:this.inputToolbarBrick,onSessionIdChange:(0,l.A)(Te,this),onQaFinish:(0,l.A)(Ue,this),ref:(0,l.A)(Re,this)})}}n=_e,({e:[f,S,L,b,M,W,C,E,B,R,q,N,T,x,U,_,P,Q,F,D,H,O,$,J,Z,j,z,G,K,V,X,Y,ee,te,se,ne,ie,ae,re,oe,y],c:[ge,m]}=(0,c.A)(n,[he("ai.chat-view",{shadowOptions:!1})],[[le(),1,"sessionId"],[le(),1,"agentId"],[le(),1,"robotId"],[le(),1,"answerLanguage"],[le({type:Boolean}),1,"debug"],[le({type:Boolean}),1,"showAvatar"],[le({type:Boolean}),1,"showSessionList"],[le({type:Boolean}),1,"readonly"],[le({type:Boolean}),1,"showLike"],[le({type:Boolean}),1,"showShare"],[le({type:Boolean}),1,"useSpiltWord"],[le({type:Number}),1,"enterInterval"],[le({attribute:!1}),1,"quickAnswerConfig"],[le({attribute:!1}),1,"snippetList"],[le({attribute:!1}),1,"commandBricks"],[le({attribute:!1}),1,"inputToolbarBrick"],[ue({type:"sessionId.change"}),1,"sessionIdChange",e=>(0,l.A)(qe,e),(e,t)=>(0,h.A)(qe,e,t)],[ue({type:"qa.finish"}),1,"qaFinish",e=>(0,l.A)(xe,e),(e,t)=>(0,h.A)(xe,e,t)],[ce(),2,"insertQuestion"],[ce(),2,"sendMsg"]],0,(e=>Ue.has((0,r.A)(e))),g.ReactNextElement)),m();var Pe,Qe=s(1816),Fe=s(279),De=s(356);let He,Oe,$e,Je,Ze,je,ze,Ge,Ke,Ve,Xe,Ye,et,tt,st,nt,it,at,rt,ot,ht,lt;const{defineElement:ct,property:ut,event:dt,method:At}=(0,A.createDecorators)(),gt=(0,u.forwardRef)(Et);let wt;var pt=new WeakMap,vt=new WeakMap,kt=new WeakMap,It=new WeakMap,yt=new WeakMap,mt=new WeakSet,ft=new WeakMap,St=new WeakMap,Lt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Wt=new WeakMap;class Ct extends g.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,mt),(0,a.A)(this,pt,(He(this),$e(this))),(0,a.A)(this,vt,(Je(this),Ze(this))),(0,a.A)(this,kt,(je(this),ze(this))),(0,a.A)(this,It,(Ge(this),Ke(this))),(0,a.A)(this,yt,(Ve(this),Xe(this))),(0,a.A)(this,ft,(tt(this),e=>{(0,o.A)(mt,this,Ye).emit(e)})),(0,a.A)(this,St,st(this)),(0,a.A)(this,Lt,(at(this),e=>{(0,o.A)(mt,this,nt).emit(e)})),(0,a.A)(this,bt,rt(this)),(0,a.A)(this,Mt,(lt(this),e=>{(0,o.A)(mt,this,ot).emit(e)})),(0,a.A)(this,Wt,(0,u.createRef)())}get agentId(){return(0,l.A)(pt,this)}set agentId(e){(0,h.A)(pt,this,e)}get robotId(){return(0,l.A)(vt,this)}set robotId(e){(0,h.A)(vt,this,e)}get conversationId(){return(0,l.A)(kt,this)}set conversationId(e){(0,h.A)(kt,this,e)}get alwaysUseNewConversation(){return(0,l.A)(It,this)}set alwaysUseNewConversation(e){(0,h.A)(It,this,e)}postMessage(e){var t;return null===(t=(0,l.A)(Wt,this).current)||void 0===t?void 0:t.postMessage(e)}sendRequest(e,t,s){var n;return null===(n=(0,l.A)(Wt,this).current)||void 0===n?void 0:n.sendRequest(e,t,s)}lowLevelSendRequest(e,t,s){var n;return null===(n=(0,l.A)(Wt,this).current)||void 0===n?void 0:n.lowLevelSendRequest(e,t,s)}newConversation(){var e;null===(e=(0,l.A)(Wt,this).current)||void 0===e||e.newConversation()}render(){return d().createElement(gt,{ref:(0,l.A)(Wt,this),agentId:this.agentId,robotId:this.robotId,conversationId:this.conversationId,alwaysUseNewConversation:this.alwaysUseNewConversation,onMessagesUpdate:(0,l.A)(ft,this),onBusyChange:(0,l.A)(Lt,this),onConversationIdChange:(0,l.A)(Mt,this)})}}function Et(e,t){let{agentId:s,robotId:n,conversationId:i,alwaysUseNewConversation:a,onMessageChunkPush:r,onMessagesUpdate:o,onBusyChange:h,onConversationIdChange:l}=e;const c=(0,u.useRef)(!1),d=(0,u.useRef)(1),A=(0,u.useRef)(!1),[g,w]=(0,u.useState)(null);(0,u.useEffect)((()=>{w(i??null)}),[i]),(0,u.useEffect)((()=>{c.current&&(null==l||l(g))}),[g,l]);const p=(0,u.useRef)(0),v=(0,u.useCallback)((()=>p.current++),[]),[k,I]=(0,u.useState)([]),y=(0,u.useCallback)((e=>{null==r||r(e),I((t=>{const s=t[t.length-1];return s&&s.key===e.key?(s.content+=e.delta.content,[...t]):(null!=s&&s.partial&&(s.partial=!1),[...t,{...e.delta,key:e.key,partial:e.partial}])}))}),[r]),m=(0,u.useCallback)((async(e,t,s,n)=>{if(A.current)return null;(a||e)&&I((e=>0===e.length?e:[]));const i=d.current;let r;const o=async()=>{if(i!==d.current)throw r||(r=new Error("New conversation started")),r},l=v(),c=v();let u=a||e?null:g;null==h||h(A.current=!0);try{if(Array.isArray(t))for(const e of t){const t="assistant"===e.role;(t||"user"===e.role)&&(null==y||y({key:t?c:l,delta:{role:e.role,content:e.content}}))}else null==y||y({key:l,delta:{content:t,role:"user"}});const i=(0,Fe.createSSEStream)(new URL(s,`${location.origin}${(0,Qe.getBasePath)()}`).toString(),n);await Promise.race([i,new Promise((e=>setTimeout(e,1e3)))]),await o(),null==y||y({key:c,delta:{content:"",role:"assistant"},partial:!0});const r=await i;for await(const t of r)if(await o(),e){var p;const e=null===(p=t.choices)||void 0===p||null===(p=p[0])||void 0===p?void 0:p.delta;null!=e&&e.content&&y({delta:{role:e.role,content:e.content},key:c,partial:!0})}else null==y||y({delta:t.delta,key:c,partial:!0}),a||!t.conversationId||u||w(u=t.conversationId);await o(),I((e=>{const t=e[e.length-1];return null!=t&&t.partial&&(t.partial=!1),[...e]}))}catch(e){if(e&&e===r)throw e;console.error("stream failed:",e),await o(),I((e=>{const t=e[e.length-1];let s=e;return(null==t?void 0:t.key)===c&&(t.content?(t.partial=!1,t.failed=!0):s=e.slice(0,-1)),[...s,{role:"assistant",content:"系统错误",key:v(),failed:!0}]}))}return await o(),null==h||h(A.current=!1),u}),[g,a,v,h,y]);return(0,u.useImperativeHandle)(t,(()=>({lowLevelSendRequest:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return m(!0,...t)},sendRequest:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return m(!1,...t)},postMessage:e=>m(!1,e,"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions",{method:"POST",body:JSON.stringify({agentId:s,robotId:n,input:e,stream:!0,conversationId:a||null===g?void 0:g}),headers:{"giraffe-contract-name":"easyops.api.aiops_chat.manage.LLMChatProxy"}}),newConversation(){d.current++,w(null),I((e=>0===e.length?e:[])),A.current&&(null==h||h(A.current=!1))}})),[m,s,n,a,g,h]),(0,u.useEffect)((()=>{c.current&&(null==o||o(k))}),[k,o]),(0,u.useEffect)((()=>{c.current=!0}),[]),null}Pe=Ct,({e:[$e,Je,Ze,je,ze,Ge,Ke,Ve,Xe,Ye,et,tt,st,nt,it,at,rt,ot,ht,lt,He],c:[wt,Oe]}=(0,c.A)(Pe,[ct("ai.chat-agent",{styleTexts:[De.A]})],[[ut(),1,"agentId"],[ut(),1,"robotId"],[ut(),1,"conversationId"],[ut(),1,"alwaysUseNewConversation"],[At(),2,"postMessage"],[At(),2,"sendRequest"],[At(),2,"lowLevelSendRequest"],[At(),2,"newConversation"],[dt({type:"messages.update"}),1,"messagesUpdate",e=>(0,l.A)(yt,e),(e,t)=>(0,h.A)(yt,e,t)],[dt({type:"busy.change"}),1,"busyChangeEvent",e=>(0,l.A)(St,e),(e,t)=>(0,h.A)(St,e,t)],[dt({type:"conversationId.change"}),1,"conversationIdChangeEvent",e=>(0,l.A)(bt,e),(e,t)=>(0,h.A)(bt,e,t)]],0,(e=>Wt.has((0,r.A)(e))),g.ReactNextElement)),Oe()},356:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(6758),i=s.n(n),a=s(935),r=s.n(a)()(i());r.push([e.id,":host{display:none}",""]);const o=r.toString()}}]);
2
+ //# sourceMappingURL=4145.1277c275.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/4145.1277c275.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx","webpack:///./src/chat-agent/index.tsx","webpack:///./src/chat-agent/styles.shadow.css"],"sourcesContent":["import React, { forwardRef, useEffect } 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 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 onSessionIdChange: (sessionId: 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 onSessionIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<SearchInputRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n }\n }, [activeSessionId]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\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 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={ref} />\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 #ref = React.createRef<SearchInputRef>();\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: \"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 onSessionIdChange={this.#handleSessionIdChange}\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","// 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"],"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","onSessionIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","useChatViewInfo","useEffect","React","ChatViewContext","Provider","value","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_ref2","_Q","_ChatView_brand","WeakSet","_handleSessionIdChange","_R","_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_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","insertQuestion","args","_classPrivateFieldGet2","current","handleInsertQuestion","sendMsg","msg","_classPrivateFieldGet3","render","_ChatView2","e","_set_sessionIdChange","_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","conversationId","_get_conversationIdChangeEvent","createRef","alwaysUseNewConversation","postMessage","content","sendRequest","leadingMessages","url","options","lowLevelSendRequest","_classPrivateFieldGet4","newConversation","_classPrivateFieldGet5","onMessagesUpdate","onBusyChange","onConversationIdChange","propConversationId","onMessageChunkPush","didMountRef","useRef","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","toString","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","useImperativeHandle","_len","_key","_len2","_key2","body","JSON","stringify","input","undefined","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","styleTexts","styleText","___CSS_LOADER_EXPORT___","push","module","id"],"sourceRoot":""}